Oxlint
Oxlint is a high-performance linter for JavaScript and TypeScript that is 50–100x faster than ESLint. It is correctness-focused by default and supports 695+ rules across a wide range of plugins — including TypeScript, React, Unicorn, Import, and jsx-a11y — making migration straightforward.
Oxlint replaces ESLint (and the linting part of Biome) with a Rust-based tool
that runs dramatically faster in CI. Drop in oxlint.config.ts to get
started and retain fine-grained rule control.
Installation
Section titled “Installation”npm i oxlintyarn add oxlintpnpm add oxlintbun add oxlintConfiguration
Section titled “Configuration”Oxlint can be configured with a TypeScript config file (oxlint.config.ts) or
a JSON file (.oxlintrc.json). The TypeScript format provides type-safe
config with auto-complete.
import { defineConfig } from 'oxlint'
export default defineConfig({ $schema: './node_modules/oxlint/configuration_schema.json', plugins: ['import', 'typescript'], categories: { correctness: 'error', suspicious: 'warn', }, rules: { 'no-console': 'warn', }, ignorePatterns: ['dist/**', '.astro/**', 'src/content/docs/snippets/**'], overrides: [ { files: ['scripts/**'], rules: { 'no-console': 'off', }, }, ],})Available plugins
Section titled “Available plugins”Enable only the plugins relevant to your stack:
| Plugin | Coverage |
|---|---|
typescript | @typescript-eslint rules |
import | eslint-plugin-import-x rules |
unicorn | eslint-plugin-unicorn rules |
react | eslint-plugin-react + react-hooks rules |
jsx-a11y | Accessibility rules for JSX |
jest | eslint-plugin-jest rules |
vitest | eslint-plugin-vitest rules |
jsdoc | JSDoc documentation rules |
promise | eslint-plugin-promise rules |
node | Node.js-specific rules |
Rule categories
Section titled “Rule categories”Control entire categories at once via categories:
{ "categories": { "correctness": "error", "suspicious": "warn", "style": "warn" }}Individual rules in rules override category-level settings.
Scripts
Section titled “Scripts”Add to package.json:
{ "scripts": { "lint": "oxlint .", "lint:fix": "oxlint --fix ." }}Type-aware linting
Section titled “Type-aware linting”Oxlint supports type-aware rules by integrating with
oxlint-tsgolint, the tsgo
(TypeScript 7 native Go port) bridge.
npm i oxlint-tsgolintyarn add oxlint-tsgolintpnpm add oxlint-tsgolintbun add oxlint-tsgolintEnable type-aware mode in your config:
import { defineConfig } from 'oxlint'
export default defineConfig({ options: { typeAware: true, }, // ...})Astro support
Section titled “Astro support”Oxlint lints the <script> blocks of .astro files automatically — no
plugin needed.
VS Code integration
Section titled “VS Code integration”Install the OXC extension and add to your workspace settings:
{ "oxc.enable": true, "editor.codeActionsOnSave": { "source.fixAll.oxc": "explicit" }}