oxlint
Run and configure oxlint — the high-performance JavaScript/TypeScript linter built on the Oxc compiler stack. Use this skill whenever working in a project that has oxlint installed (check for `oxlint` in package.json devDependencies or an `.oxlintrc.json` / `oxlint.config.ts` config file). This incl
By delexw · 399 installs
npx skills add delexw/claude-code-misc --skill oxlint
Source repository · Upstream listing
Oxlint — High Performance JS/TS Linter
Oxlint is 50 100x faster than ESLint. It ships with 690+ rules covering ESLint core, TypeScript, React, Jest, Unicorn, jsx a11y, and more. It prioritizes high signal correctness checks by default — things that are incorrect, unsafe, or useless — so teams can adopt it without drowning in false positives.
Detection
Before linting, confirm the project uses oxlint by checking for any of:
oxlint in package.json devDependencies/dependencies
An .oxlintrc.json file in the project root
An oxlint.config.ts file in the project root
An oxlint or lint script in package.json that references oxlint
If none of these exist, the project doesn't use oxlint — don't run it.
Running Oxlint
After code changes
Run oxlint to check your work. Prefer the project's npm script if one exists:
Fixing issues automatically
Use fix for safe automatic fixes. Avoid fix dangerously unless the user explicitly asks for it — it can apply unsafe transformations.
Linting specific files
After editing only a few files, you can lint just those:
Interpreting output
Oxlint prints diagnostics with rule names in parentheses, e.g. (no unused vars) . When fixing:
1. Read the diagnostic message carefully — oxlint gives precise, actionable information
2. Fix the underlying code issue rather than suppressing the rule
3. Only add // oxlint ignore comments as a last resort when the diagnostic is a genuine false positive
Output formats
For CI or tooling integration:
Configuration
Creating a config
This generates an .oxlintrc.json starter config.
Config file format (.oxlintrc.json)
The config uses JSONC (JSON with comments). Key sections:
Rule severity levels
"off" / "allow" — Disable the rule
"warn" — Report but don't fail the build
"error" / "deny" — Report and exit non zero
Unique rule names can omit plugin prefix: "no console" = "eslint/no console" .
Categories
Categories group rules by intent. The recommended starting point:
correctness: "error" — Always on. Catches real bugs.
suspicious: "warn" — Good signal, occasionally noisy.
Everything else: enable incrementally as the team is ready.
Available plugins
Enabled by default: typescript , unicorn , oxc
Opt in (CLI flags or config):
Plugin CLI flag Purpose
react react plugin React specific rules
jsx a11y jsx a11y plugin Accessibility rules for JSX
nextjs nextjs plugin Next.js best practices
import import plugin Import/export validation
jest jest plugin Jest testing rules
vitest vitest plugin Vitest testing rules
jsdoc jsdoc plugin JSDoc documentation rules
node node plugin Node.js specific rules
promise promise plugin Promise best practices
react perf react perf plugin React performance rules
vue vue plugin Vue.js rules
To disable a default plugin: disable typescript plugin , disable unicorn plugin , disable oxc plugin .
Extending shared configs
Later entries override earlier ones. Paths resolve relative to the declaring config.
Monorepo support
Oxlint supports nested configs. Each directory can have its own .oxlintrc.json that overrides parent settings. Disable with disable nested config if unwanted.
CLI Quick Reference
Flag What it does
c, config=PATH Use a specific config file
tsconfig=PATH TypeScript config for path aliases
fix Auto fix safe issues
fix suggestions Also apply suggested fixes
A, allow=RULE Suppress a rule (e.g., A no console )
W, warn=RULE Warn on a rule
D, deny=RULE Error on a rule
quiet Suppress warnings, show only errors
deny warnings Treat warnings as errors (exit non zero)
max warnings=N Fail if more than N warnings
f, format=FMT Output format: default, json, github, unix, etc.
ignore pattern=PAT Exclude files matching pattern
type aware Enable type informed rules (needs tsconfig)
print config Show resolved config (useful for debugging)
rules List all available rules
Categories can also be used with A / W / D :
Suppressing rules inline
Use oxlint ignore (not eslint disable ) — oxlint recognizes both, but prefer its native syntax.
Migrating from ESLint
If the project is moving from ESLint to oxlint:
1. Side by side approach — Run both linters, with eslint plugin oxlint disabling rules that oxlint already covers:
Add it as the last plugin in your ESLint config.
2. Full replacement — Use @oxlint/migrate to convert your ESLint config:
This generates an .oxlintrc.json from your existing ESLint configuration.
Supported file types
.js , .mjs , .cjs , .ts , .mts , .cts , .jsx , .tsx , .vue , .svelte , .astro
For .vue , .svelte , and .astro files, oxlint lints only the <script blocks.