
Migrate Oxlint
Migrate a JavaScript or TypeScript repo from ESLint to Oxlint using the official @oxlint/migrate tool and optional type-aware rules.
Install
npx skills add https://github.com/oxc-project/oxc --skill migrate-oxlintWhat is this skill?
- Stepwise migration guided from ESLint flat config to .oxlintrc.json
- Runs official npx @oxlint/migrate with auto-discovery of eslint.config.js
- Documents --type-aware path for @typescript-eslint rules via oxlint-tsgolint
- Supports coexistence or full replacement strategies with Oxlint’s Rust-native rules
Adoption & trust: 3.7k installs on skills.sh; 21.5k GitHub stars; 2/3 security scanners passed (skills.sh audits).
Recommended Skills
Improve Codebase Architecturemattpocock/skills
Zoom Outmattpocock/skills
Caveman Reviewjuliusbrussee/caveman
Requesting Code Reviewobra/superpowers
Receiving Code Reviewobra/superpowers
Request Refactor Planmattpocock/skills
Journey fit
Common Questions / FAQ
Is Migrate Oxlint safe to install?
skills.sh reports 2 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.
SKILL.md
READMESKILL.md - Migrate Oxlint
This skill guides you through migrating a JavaScript/TypeScript project from ESLint to [Oxlint](https://oxc.rs/docs/guide/usage/linter/). ## Overview Oxlint is a high-performance linter that implements many popular ESLint rules natively in Rust. It can be used alongside ESLint or as a full replacement. An official migration tool is available, and will be used by this skill: [`@oxlint/migrate`](https://github.com/oxc-project/oxlint-migrate) ## Step 1: Run Automated Migration Run the migration tool in the project root: ```bash npx @oxlint/migrate ``` This reads your ESLint flat config (`eslint.config.js` for example) and generates a `.oxlintrc.json` file from it. It will find your ESLint config file automatically in most cases. See options below for more info. ### Key Options | Option | Description | | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------- | | `--type-aware` | Include type-aware rules from `@typescript-eslint` (will require the `oxlint-tsgolint` package to be installed after migrating) | | `--with-nursery` | Include experimental rules still under development, may not be fully stable or consistent with ESLint equivalents | | `--js-plugins [bool]` | Enable/disable ESLint plugin migration via `jsPlugins` (default: enabled) | | `--details` | List rules that could not be migrated | | `--replace-eslint-comments` | Convert all `// eslint-disable` comments to `// oxlint-disable` | | `--output-file <file>` | Specify a different output path (default: `.oxlintrc.json`) | If your ESLint config is not at the default location, pass the path explicitly: ```bash npx @oxlint/migrate ./path/to/eslint.config.js ``` ## Step 2: Review Generated Config After migration, review the generated `.oxlintrc.json`. ### Plugin Mapping The migration tool automatically maps ESLint plugins to oxlint's built-in equivalents. The following table is for reference when reviewing the generated config: | ESLint Plugin | Oxlint Plugin Name | | ----------------------------------------------------- | ------------------ | | `@typescript-eslint/eslint-plugin` | `typescript` | | `eslint-plugin-react` / `eslint-plugin-react-hooks` | `react` | | `eslint-plugin-import` / `eslint-plugin-import-x` | `import` | | `eslint-plugin-unicorn` | `unicorn` | | `eslint-plugin-jsx-a11y` / `eslint-plugin-jsx-a11y-x` | `jsx-a11y` | | `eslint-plugin-react-perf` | `react-perf` | | `eslint-plugin-promise` | `promise` | | `eslint-plugin-jest` | `jest` | | `@vitest/eslint-plugin` | `vitest` | | `eslint-plugin-jsdoc` | `jsdoc` | | `eslint-plugin-next` | `nextjs` | | `eslint-plugin-node` | `node` | | `eslint-plugin-vue` | `vue` | Default plugins (enabled when `plugins` field is omitted): `unicorn`, `typescript`, `oxc`. Setting t