Claude Code for Biome — Workflow Guide (2026)
The Setup
You are replacing ESLint and Prettier with Biome, the fast all-in-one linter and formatter written in Rust. Claude Code can configure Biome rules, fix linting errors, and format code, but it keeps generating ESLint and Prettier configurations alongside Biome or uses ESLint rule names that do not exist in Biome.
What Claude Code Gets Wrong By Default
-
Creates
.eslintrcand.prettierrcfiles. Claude generates ESLint and Prettier configs when you ask for linting setup. With Biome, everything goes in a singlebiome.jsonfile — no other config files needed. -
Uses ESLint rule names in Biome config. Claude writes
"no-unused-vars": "error"inbiome.json. Biome uses its own rule naming:"noUnusedVariables"under"linter": { "rules": { "correctness": { ... } } }. -
Runs
npx eslint --fixfor auto-fixes. Claude defaults to ESLint CLI commands. Biome usesnpx @biomejs/biome check --fixfor combined linting and formatting, orbiome format --writefor formatting only. -
Installs multiple dev dependencies. Claude adds
eslint,prettier,eslint-config-*, and dozens of plugins. Biome is a single dependency:@biomejs/biome. No plugins, no config inheritance chains.
The CLAUDE.md Configuration
# Biome Linter/Formatter Project
## Tooling
- Linter + Formatter: Biome (@biomejs/biome)
- Config: biome.json at project root
- NO ESLint, NO Prettier — Biome replaces both
## Biome Rules
- Format: npx @biomejs/biome format --write .
- Lint: npx @biomejs/biome lint .
- Both: npx @biomejs/biome check --fix .
- Config uses camelCase rule names, not ESLint kebab-case
- Rules organized by category: correctness, suspicious, style, complexity
- Use "recommended": true for sensible defaults
- Override per-file with biome.json "overrides" array
## Conventions
- Run biome check before commits (pre-commit hook)
- Indent: tabs (Biome default, do not change to spaces)
- Line width: 100 characters
- Quote style: double quotes
- Semicolons: always
- Never add ESLint or Prettier — Biome handles everything
- Ignore generated files in biome.json "files.ignore"
Workflow Example
You want to migrate from ESLint + Prettier to Biome. Prompt Claude Code:
“Migrate this project from ESLint and Prettier to Biome. Remove the old config files and dependencies, create a biome.json with equivalent rules, and update the package.json scripts.”
Claude Code should delete .eslintrc.*, .prettierrc, remove ESLint/Prettier packages from package.json, install @biomejs/biome, create biome.json with "recommended": true, and update scripts to use biome check --fix instead of eslint --fix && prettier --write.
Common Pitfalls
-
Import sorting conflicts. Claude configures Biome’s import sorting but keeps the
eslint-plugin-importsort order. Biome sorts imports differently by default. Remove any other import sorting tools and let Biome handle it exclusively. -
VS Code extension conflicts. Claude does not update VS Code settings. If you have the ESLint and Prettier extensions active alongside the Biome extension, you get duplicate formatting and conflicting fixes. Disable the ESLint and Prettier extensions for the workspace.
-
Biome does not support all ESLint rules. Claude migrates every ESLint rule one-to-one. Some ESLint ecosystem rules (like React-specific or TypeScript-ESLint rules) may not have Biome equivalents yet. Check Biome’s rule list before assuming a migration is complete.
Related Guides
Configure permissions → Build your settings with our Permission Configurator.
Try it: Paste your error into our Error Diagnostic for an instant fix.
- Best Way to Use Claude Code with TypeScript Projects
- Claude Code CI/CD Pipeline Optimization Guide
- Best Way to Validate Claude Code Output Before Committing
Frequently Asked Questions
What is the minimum setup required?
You need Claude Code installed (Node.js 18+), a project with a CLAUDE.md file, and the relevant toolchain for your project type (e.g., npm for JavaScript, pip for Python). The CLAUDE.md file should describe your project structure, conventions, and common commands so Claude Code can work effectively.
How long does the initial setup take?
For a typical project, initial setup takes 10-20 minutes. This includes creating the CLAUDE.md file, configuring .claude/settings.json for permissions, and running a test task to verify everything works. Subsequent sessions start immediately because the configuration persists.
Can I use this with a team?
Yes. Commit your .claude/ directory and CLAUDE.md to version control so the entire team uses the same configuration. Each developer can add personal preferences in ~/.claude/settings.json (user-level) without affecting the project configuration. Review CLAUDE.md changes in pull requests like any other configuration file.
What if Claude Code produces incorrect output?
First check that your CLAUDE.md accurately describes your project conventions. Incorrect or outdated context is the most common cause of wrong output. If the output is still wrong, provide feedback in the same session — Claude Code learns from corrections within a conversation. For persistent issues, add explicit rules to CLAUDE.md (e.g., “Always use single quotes” or “Never modify files in the config/ directory”).