| name | biome-to-oxc |
| description | Migrate JavaScript/TypeScript projects from Biome to oxlint + oxfmt with Prettier fallback. Use when user asks to "migrate to oxlint", "switch from biome to oxc", "use oxfmt", or wants to adopt the oxc toolchain for linting and formatting. |
Biome to Oxc Migration
Migrate from Biome to oxlint (linting) + oxfmt (formatting) with Prettier for unsupported file types.
File Type Strategy
| File Type | Lint | Format |
|---|
.ts, .tsx, .js, .jsx | oxlint | oxfmt |
.json, .jsonc, .css | - | oxfmt |
.md, .mdx, .astro, .yaml, .yml | - | Prettier |
Migration Checklist
- Remove Biome packages -
@biomejs/biome, ultracite, or similar presets
- Add new packages -
oxlint, oxfmt, prettier, framework-specific prettier plugins if needed
- Delete
biome.json or biome.jsonc
- Create
.oxlintrc.json
- Create
.prettierrc.json and .prettierignore
- Update build scripts - Replace biome commands with oxlint/oxfmt/prettier
- Update VSCode settings - Switch formatter to
oxc.oxc-vscode
- Run format and lint - Verify everything works
Configuration Templates
.oxlintrc.json
{
"$schema": "./node_modules/oxlint/configuration_schema.json",
"plugins": ["typescript", "import", "unicorn", "oxc", "jsdoc", "promise", "node"],
"rules": {}
}
Available plugins: eslint, react, unicorn, typescript, oxc, import, jsdoc, jest, vitest, jsx-a11y, nextjs, react-perf, promise, node, vue
Enable plugins relevant to your project. For library projects, exclude framework-specific plugins (react, vue, nextjs, jest, vitest).
.prettierrc.json
{
"printWidth": 120,
"plugins": ["prettier-plugin-astro"]
}
Add plugins as needed: prettier-plugin-astro, prettier-plugin-svelte, prettier-plugin-tailwindcss
.prettierignore
dist/
node_modules/
**/*.ts
**/*.tsx
**/*.js
**/*.jsx
**/*.json
**/*.css
Exclude files handled by oxfmt.
VSCode Settings
{
"editor.defaultFormatter": "esbenp.prettier-vscode",
"[javascript][typescript][javascriptreact][typescriptreact][json][jsonc][css]": {
"editor.defaultFormatter": "oxc.oxc-vscode"
},
"editor.codeActionsOnSave": {
"source.fixAll.oxc": "always"
}
}
Rule Migration
Common Biome to oxlint rule mappings:
| Biome Rule | oxlint Equivalent |
|---|
noBarrelFile | no-barrel-file |
useConsistentTypeDefinitions | Not directly available |
noUnusedVariables | no-unused-vars |
noConsole | no-console |
oxlint uses ESLint-compatible rule names with kebab-case.
CLI Commands
oxlint --fix
oxfmt --write --ignore-path=.gitignore .
prettier --write --no-error-on-unmatched-pattern "**/*.{md,mdx,astro,yaml,yml}"
Note: oxfmt reads .prettierignore by default. Use --ignore-path=.gitignore to use gitignore instead.