Skip to content
Back to skills

Biome To Oxc

ASecurity

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.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 27, 2026
developmentjavascripttypescriptjavabashreactvuenextjsnodegit

Works with

  • vscode
  • cli

Security analysis

A100/100

Scanned September 27, 2026

npx -y skills add David-Li0406/meta-skill-evloving --skill biome-to-oxc --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Biome To Oxc?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Biome To Oxc
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/david-li0406-biome-to-oxc/badge)](https://www.skillsdirectory.com/skills/david-li0406-biome-to-oxc)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
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

1. **Remove Biome packages** - `@biomejs/biome`, `ultracite`, or similar presets
2. **Add new packages** - `oxlint`, `oxfmt`, `prettier`, framework-specific prettier plugins if needed
3. **Delete** `biome.json` or `biome.jsonc`
4. **Create `.oxlintrc.json`**
5. **Create `.prettierrc.json`** and **`.prettierignore`**
6. **Update build scripts** - Replace biome commands with oxlint/oxfmt/prettier
7. **Update VSCode settings** - Switch formatter to `oxc.oxc-vscode`
8. **Run format and lint** - Verify everything works

## Configuration Templates

### .oxlintrc.json

```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

```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

```json
{
  "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

```bash
# Lint with auto-fix
oxlint --fix

# Format with oxfmt (use .gitignore for ignoring)
oxfmt --write --ignore-path=.gitignore .

# Format remaining files with Prettier
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.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…