Guide for migrating a project from ESLint to Oxlint. Use when asked to migrate, convert, or switch a JavaScript/TypeScript project's linter from ESLint to Oxlint.
The migrate-oxlint skill provides a guided approach for developers looking to transition their JavaScript or TypeScript projects from ESLint to Oxlint. It addresses the common challenges encountered when switching linters, such as configuration compatibility, plugin mapping, and rule migration. By automating much of the migration process, it helps teams save time and reduce errors that can occur when manually converting configurations and rules between two distinct linting systems.
Key features of this skill include the use of an official migration tool, `@oxlint/migrate`, which reads existing ESLint configurations and generates a corresponding `.oxlintrc.json` file. The tool offers several options, such as including type-aware rules from `@typescript-eslint`, enabling experimental or nursery rules, converting ESLint plugin configurations, and updating ESLint disable comments to Oxlint equivalents. It also provides a detailed report of rules that could not be migrated automatically, giving developers insight into manual adjustments that may be necessary. Additionally, the skill outlines the automatic mapping of popular ESLint plugins to Oxlint's native equivalents, simplifying the review process after migration.
This skill is particularly useful for development teams or individual developers who want to leverage Oxlint's high-performance Rust-based linting engine either alongside or as a replacement for ESLint. Typical use cases include modernizing a project's linting setup, improving build performance, or consolidating rule enforcement with a single linter. It is targeted at JavaScript and TypeScript developers familiar with ESLint, who are looking for an efficient, structured, and reliable way to migrate their projects with minimal disruption and maximum compatibility.
You can run the migration tool in your project root using the command `npx @oxlint/migrate`. If your ESLint configuration is in a non-standard location, provide the path explicitly, e.g., `npx @oxlint/migrate ./path/to/eslint.config.js`.
Yes, by using the `--type-aware` option, the migration will include rules from `@typescript-eslint`. After migration, you will need to install the `oxlint-tsgolint` package for these rules to work.
The migration tool automatically maps ESLint plugins to Oxlint's built-in equivalents. Popular plugins like `@typescript-eslint`, `eslint-plugin-react`, and `eslint-plugin-import` are converted to corresponding Oxlint plugins.
Yes, you can enable experimental or nursery rules using the `--with-nursery` option. These rules are still under development and may not be fully stable or consistent with ESLint equivalents.
Yes, using the `--replace-eslint-comments` option, the tool converts `// eslint-disable` comments to `// oxlint-disable` in your code.
Quick Setup:
.claude/skills/Repository
oxc-project/oxc