Skip to content

Oxlint

  • npm weekly downloads

Oxlint (/oʊ-ɛks-lɪnt/) is a high-performance linter for JavaScript and TypeScript built on the Oxc compiler stack.

Built for scale

Oxlint is built for large repositories and CI environments. Its architecture removes structural bottlenecks that limit performance in ESLint.

Our benchmarks show Oxlint is 50 to 100 times faster than ESLint.

Correctness focused defaults

Oxlint is useful out of the box. By default, it prioritizes high signal correctness checks. These checks surface code that is incorrect, unsafe, or useless, so teams can adopt Oxlint without excessive noise.

Additional rules can be enabled incrementally as requirements evolve.

A large and growing rule set

Oxlint includes more than 645 rules, with coverage across the ecosystems most teams already use, including:

  • ESLint core rules
  • TypeScript rules
  • Popular plugins such as React, Jest, Unicorn, and JSX a11y
  • Custom JS plugins compatible with the ESLint plugin ecosystem

This breadth makes migration straightforward without sacrificing rule coverage.

Type-aware linting

Oxlint leverages the native Go port of the TypeScript compiler (tsgo), providing full TypeScript compatibility and the same type system behavior you expect from TypeScript itself.

This enables mission critical checks that require types, such as detecting floating promises.

In contrast, Biome’s approach is to implement its own type inference instead of relying on the TypeScript compiler, and they note coverage is still improving.

See: Type aware linting

Multi-file analysis

Oxlint supports multi-file analysis as a first-class capability.

When enabled, Oxlint builds a project-wide module graph and shares parsing and resolution across rules. This improves checks that depend on cross-file imports and helps avoid the performance cliff often seen with import/no-cycle in ESLint.

See: Multi-file analysis

AI friendly diagnostics

Oxlint diagnostics are designed to be both human readable and machine actionable.

In addition to clear messages, diagnostics include structured information such as precise spans and contextual data. This helps AI to understand issues and apply fixes reliably.

Reliability as a priority

Oxlint is built for workflows where failures are not acceptable.

Crashes are treated as top priority bugs. Performance regressions are treated as bugs.

Stability and throughput are always prioritized, especially for CI and large monorepos.

Get started

The recommended setup is to install Oxlint as a dev dependency and add scripts.

sh
pnpm add -D oxlint

Add scripts to package.json:

package.json
json
{
  "scripts": {
    "lint": "oxlint",
    "lint:fix": "oxlint --fix"
  }
}

Next steps:

Adoption paths

Choose the approach that fits your repository:

  • Replace ESLint (recommended for most projects). Use Oxlint as your primary linter.
  • Migrate incrementally (recommended for large repos). Run Oxlint first, then run ESLint with overlapping rules disabled. This keeps CI fast while you migrate.

What Oxlint supports

Oxlint supports:

  • JavaScript and TypeScript (.js, .mjs, .cjs, .ts, .mts, .cts)
  • JSX and TSX (.jsx, .tsx)
  • Framework files (.vue, .svelte, .astro) by linting only their <script> blocks

Features

Projects using Oxlint

Oxlint is used in production by popular projects such as:

Reference

Released under the MIT License.