About oxlint
A workflow skill for development work involving Oxlint or Oxc, including configuration, rules, migration, editors, and CI. It emphasizes inspecting the repository first, consulting focused guides, and verifying changes with project-owned commands.
Key features
- 01Inspect versions, config, and ESLint setup
- 02Guidance for CLI, config, and rule choices
- 03Type-aware linting and plugin considerations
- 04ESLint coexistence and migration support
- 05Verify lint results with project commands
Use cases
- 01Configure or adjust Oxlint in an existing repository
- 02Troubleshoot rules, plugins, or type-aware linting
- 03Plan ESLint and Oxlint coexistence or migration
- 04Verify editor settings or CI lint changes
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ dobroslavradosavljevic/ skills --skill oxlintAfter installing, type/oxlintin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
agents/openai.yamlreferences/eslint-ci-editors.mdrules-plugins-typeaware.mdsetup-cli-config.mdsource-map.mdusage-guide.mdDetails
From the project READMEOxlint
Use this skill when work touches Oxlint or Oxc linting: install/config, day-to-day usage, rules/plugins, React Compiler lint rules, type-aware linting, ESLint coexistence or migration, editors, or CI.
Workflow
- Inspect the local Oxlint surface before changing code:
- Package versions for
oxlint, optionaloxlint-tsgolint,eslint-plugin-oxlint,@oxlint/migrate. - Config: prefer
oxlint.config.ts/.mtswithdefineConfig; also accept.oxlintrc.json(c)(one type per directory). - Remaining ESLint setup, ignore files, scripts (
lint/lint:fix), and editor Oxc settings. - Whether type-aware linting, JS plugins, or React Compiler rules are in play.
- Package versions for
- For setup, how-to, progressive adoption, diagnostics loops, baselines, or troubleshooting, follow the full guide first: usage-guide.md.
- Refresh current official docs when versions differ from the snapshot or the work touches type-aware, JS plugins, React Compiler, or migration. Start from source-map.md.
- Route deeper detail to the focused references:
- Install, CLI, config shape, nested configs, ignores: setup-cli-config.md.
- Categories, plugins, React Compiler, JS plugins, rules, inline ignores, type-aware: rules-plugins-typeaware.md.
- ESLint coexistence, migration, editors, CI: eslint-ci-editors.md.
- Preserve the repository's existing lint severity and plugin choices unless the user asks to migrate or expand coverage.
- Verify with the narrowest useful
bunx oxlint/bun run lintinvocation.
Core Judgment
- Default Oxlint enables only the
correctnesscategory. Turn on other categories and plugins deliberately. - Setting
plugins: [...]replaces the default plugin set. Re-listeslint,typescript,unicorn, andoxcwhen you still want them. - Prefer
oxlint.config.ts+defineConfigfor new configs (typed, shareable via imports). Keep or use.oxlintrc.jsononly when the project already has it, or when using a standalone binary without a Node runtime. CLI help still labels JS/TS config loading as experimental; official config docs treatoxlint.config.tsas first-class. - Nested configs do not auto-merge with parents — use
extends(TS: imported objects; JSON: relative paths).-c/--configdisables nested lookup. - Vite+ (
vp lint, Vite+ 1.0 pins a specific Oxlint) reads thelintblock invite.config.*; nested configs are always off in Vite+ mode (1.85+), so use rootlint.overrides. - Prefer
ignorePatternsin config over scattered ignore files for editor/CI consistency..gitignoreapplies to walk discovery; an explicitly named file is still linted. - Prefer
oxlint-disable*comments long-term;eslint-disable*still works while migrating (respectEslintDisableDirectivesdefault true). - Type-aware linting needs
oxlint-tsgolint+--type-aware/options.typeAware. Those options are root-only. Do not pass--tsconfigtogether with type-aware. - Keep
oxlintandeslint-plugin-oxlinton the same minor. Put oxlint flat configs last in ESLint so they disable overlapping rules. - JS plugins (
jsPlugins) are alpha and outside normal semver — avoid unless required. - React Compiler lint rules are experimental. Since 1.79 they are per-category
react/*rules (notreact/react-compiler). Enabling thereactplugin with defaultcorrectnessturns on the recommended compiler rules. Remove any leftoverreact/react-compilerentry. - Vue/Svelte/Astro/Angular: Oxlint covers script blocks only, not templates.
- Do not treat Oxlint as a formatter. Formatting belongs in a separate formatter tool (for example Oxfmt or Prettier).
Verification
Prefer repository-owned commands. For meaningful Oxlint work, cover the relevant subset:
bunx oxlint(or projectlintscript) on changed paths.bunx oxlint --fixwhen autofixes are expected; review remaining diagnostics.- Type-aware:
bunx oxlint --type-awareafter dependents are built so.d.tsexist. - CI-shaped run with
--deny-warningsor--max-warningswhen those gates are project policy. - After ESLint coexistence changes: run
oxlint && eslintand confirm no duplicate rule noise. - Editor/LSP smoke when changing Oxc extension settings or
options.typeAware. - After enabling the
reactplugin on 1.79+: confirm whether experimental compiler rules should stay on.
Report which checks ran, which did not, and any package-version, React Compiler, or type-aware assumptions that remain.