Migrate from ESLint
This guide is for existing JavaScript and TypeScript projects that currently use ESLint and want to migrate to Oxlint.
Overview
Oxlint and ESLint share similar configuration concepts, but they differ in supported rules and config formats.
Oxlint already supports more than 700 rules from ESLint core and various popular plugins. We intend to support nearly all existing ESLint core rules, and this work is ongoing. Check the compatibility matrix to verify support for your frameworks and file types.
When migrating, expect the following:
- Most ESLint core rules and popular plugin rules are supported
- Some rules may not yet be available
- ESLint configuration files must be converted to Oxlint’s config format
- Oxlint is designed for incremental adoption; a full migration is not required upfront
- Oxlint's JS Plugins allow usage of ESLint plugins that are not implemented natively by Oxlint
Migrate with Skills
You can migrate interactively using the migrate-oxlint skill:
bash
npx skills add https://github.com/oxc-project/oxc --skill migrate-oxlint
``````bash
npx @oxlint/migrate <optional-eslint-flat-config-path>
``````bash
npx @oxlint/migrate --type-aware
``````json [.oxlintrc.json]
{
"$schema": "./node_modules/oxlint/configuration_schema.json",
"jsPlugins": ["./eslint-plugin-company/lib/index.js"]
}
``````ts [oxlint.config.ts]
import { defineConfig } from "oxlint";
export default defineConfig({
jsPlugins: ["./eslint-plugin-company/lib/index.js"],
});
``````bash
oxlint && eslint
``````bash
npm install --save-dev eslint-plugin-oxlint