migration

Migrating from ESLint to Biome

Licence and terms

ESLint
MIT, Open source
Biome
Apache-2.0, Open source
Fit
Partial Covers a subset of ESLint and typescript-eslint rules.

Compatibility

Many Biome lint rules are inspired by or identical to ESLint rules, and Biome covers some ESLint plugins: TypeScript ESLint, ESLint JSX A11y, ESLint React and ESLint Unicorn. Rules are renamed: Biome uses camelCaseRuleName where ESLint uses kebab-case-rule-name, and often picks a different name altogether (eqeqeq becomes noDoubleEquals). The rules sources page maps each ESLint or plugin rule to its Biome equivalent.

The Biome team is explicit that you are unlikely to get exactly the same behaviour as ESLint: Biome chose not to implement some rule options, and some rules deviate slightly from the original.

Before you switch

  1. Port the configuration. Run biome migrate eslint --write, or for example npx @biomejs/biome migrate eslint --write. The subcommand handles both legacy and flat configuration files, loads shared and plugin configurations from extends, and migrates .eslintignore. It needs Node.js to resolve plugins and configurations.
  2. Decide on inspired rules. By default the subcommand skips rules Biome only marks as inspired by an ESLint rule. Add --include-inspired to migrate them too.
  3. Enable Biome’s VCS integration. ESLint takes VCS ignore files into account, so the guide recommends turning this on.
  4. Review the result. The subcommand overwrites your existing Biome linter configuration, and in the guide’s example it turns off recommended.

Pitfalls

Official guide

Biome's migration guide ↗

Reviewed on 2026-09-29.

Sources

Other alternatives to ESLint →