biome

Deep Knowledge: Use mcp__documentation__fetch_docs with technology: biome for comprehensive documentation.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "biome" with this command: npx skills add claude-dev-suite/claude-dev-suite/claude-dev-suite-claude-dev-suite-biome

Biome Configuration

Deep Knowledge: Use mcp__documentation__fetch_docs with technology: biome for comprehensive documentation.

When NOT to Use This Skill

This skill is specific to Biome tooling. Do NOT use for:

  • ESLint configuration - Biome replaces ESLint; migrate or use ESLint skills

  • Prettier configuration - Biome replaces Prettier; migrate or use Prettier docs

  • TypeScript type checking - Use tsc , not Biome (Biome doesn't type check)

  • Build process - Use bundler skills (Vite, Webpack, etc.)

  • Testing setup - Use testing framework skills (Vitest, Jest, etc.)

  • Code quality principles - Use clean-code skill for what to fix, not how to configure

Anti-Patterns

Anti-Pattern Why It's Bad Biome Best Practice

Disabling recommended rules Misses important issues Keep recommended, customize only what's needed

Ignoring all warnings Warnings indicate real issues Fix warnings or suppress with reason

No CI integration Issues slip through Use biome ci in CI pipeline

Manual formatting Inconsistent, waste time Use format on save + pre-commit hooks

Mixing ESLint + Biome Conflicting rules, confusion Fully migrate to Biome or stay with ESLint

No VS Code integration Manual CLI runs Install Biome extension, enable format on save

Ignoring complexity rules Allows unmaintainable code Set cognitive complexity limits

Committing formatting issues Messy diffs Use pre-commit hooks with lint-staged

Quick Troubleshooting

Issue Check Solution

Biome not formatting VS Code extension installed? Install biomejs.biome , set as default formatter

Format on save not working Settings.json configured? Add "editor.formatOnSave": true

Rules not applying biome.json syntax valid? Run biome check to validate config

Too many warnings Rules too strict? Adjust severity levels or disable specific rules

CI failing Different results locally? Ensure same Biome version, check ignore patterns

Conflicts with Prettier Both running? Remove Prettier, Biome replaces it

Slow on large codebase Checking too many files? Add ignore patterns in biome.json

Can't migrate from ESLint Complex config? Use biome migrate eslint , review output

Installation

npm install --save-dev @biomejs/biome

Initialize configuration

npx @biomejs/biome init

biome.json Configuration

{ "$schema": "https://biomejs.dev/schemas/1.9.0/schema.json", "organizeImports": { "enabled": true }, "linter": { "enabled": true, "rules": { "recommended": true, "complexity": { "noExcessiveCognitiveComplexity": { "level": "warn", "options": { "maxAllowedComplexity": 15 } } }, "correctness": { "noUnusedVariables": "warn", "noUnusedImports": "warn", "useExhaustiveDependencies": "warn" }, "style": { "noNonNullAssertion": "off", "useImportType": "warn" }, "suspicious": { "noExplicitAny": "warn" } } }, "formatter": { "enabled": true, "formatWithErrors": false, "indentStyle": "space", "indentWidth": 2, "lineWidth": 100 }, "javascript": { "formatter": { "quoteStyle": "single", "trailingCommas": "es5", "semicolons": "always" } }, "files": { "ignore": [ "node_modules", "dist", "build", ".next", "coverage", "*.gen.ts" ] } }

Package.json Scripts

{ "scripts": { "lint": "biome check .", "lint:fix": "biome check --write .", "format": "biome format --write .", "check": "biome check --write --unsafe ." } }

Common Rules

Rule Level Description

noUnusedVariables

warn Flag unused variables

noUnusedImports

warn Flag unused imports

noExplicitAny

warn Discourage any type

useExhaustiveDependencies

warn Check React hook deps

noNonNullAssertion

off Allow ! operator

useImportType

warn Prefer import type

VS Code Integration

// .vscode/settings.json { "editor.defaultFormatter": "biomejs.biome", "editor.formatOnSave": true, "[javascript]": { "editor.defaultFormatter": "biomejs.biome" }, "[typescript]": { "editor.defaultFormatter": "biomejs.biome" }, "[typescriptreact]": { "editor.defaultFormatter": "biomejs.biome" } }

Pre-commit Hook

Install husky

npm install --save-dev husky lint-staged

package.json

{ "lint-staged": { "*.{js,jsx,ts,tsx}": [ "biome check --write --no-errors-on-unmatched" ] } }

Migration from ESLint/Prettier

Biome can migrate your config

npx @biomejs/biome migrate eslint --write npx @biomejs/biome migrate prettier --write

CLI Commands

Check all files

biome check .

Fix issues

biome check --write .

Format only

biome format --write .

Lint only

biome lint .

Check specific files

biome check src/components/**/*.tsx

CI mode (exit with error)

biome ci .

Ignoring Code

// Ignore next line // biome-ignore lint/suspicious/noExplicitAny: needed for legacy API const data: any = await fetch('/api');

// Ignore whole file (at top) // biome-ignore-all lint/style/useImportType

Production Readiness

Recommended Configuration

{ "$schema": "https://biomejs.dev/schemas/1.9.0/schema.json", "organizeImports": { "enabled": true }, "linter": { "enabled": true, "rules": { "recommended": true, "a11y": { "recommended": true }, "complexity": { "noExcessiveCognitiveComplexity": { "level": "error", "options": { "maxAllowedComplexity": 15 } }, "noExcessiveNestedTestSuites": "warn" }, "correctness": { "noUnusedVariables": "error", "noUnusedImports": "error", "useExhaustiveDependencies": "error" }, "performance": { "noAccumulatingSpread": "warn", "noDelete": "warn" }, "security": { "noDangerouslySetInnerHtml": "error", "noGlobalEval": "error" }, "suspicious": { "noExplicitAny": "warn", "noConsoleLog": "warn" } } }, "formatter": { "enabled": true, "indentStyle": "space", "indentWidth": 2, "lineWidth": 100 }, "javascript": { "formatter": { "quoteStyle": "single", "trailingCommas": "es5", "semicolons": "always" } }, "vcs": { "enabled": true, "clientKind": "git", "useIgnoreFile": true } }

CI Integration

.github/workflows/lint.yml

name: Lint

on: [push, pull_request]

jobs: lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4

  - uses: actions/setup-node@v4
    with:
      node-version: '20'
      cache: 'npm'

  - run: npm ci

  - name: Biome CI
    run: npx @biomejs/biome ci .

  # Or with caching
  - name: Cache Biome
    uses: actions/cache@v4
    with:
      path: ~/.cache/biome
      key: ${{ runner.os }}-biome-${{ hashFiles('biome.json') }}

  - name: Check
    run: npx @biomejs/biome check --diagnostic-level=error .

Git Hooks

// package.json { "scripts": { "prepare": "husky install", "lint": "biome check .", "lint:fix": "biome check --write .", "lint:ci": "biome ci ." }, "lint-staged": { "*.{js,jsx,ts,tsx,json}": [ "biome check --write --no-errors-on-unmatched --files-ignore-unknown=true" ] } }

.husky/pre-commit

#!/usr/bin/env sh . "$(dirname -- "$0")/_/husky.sh"

npx lint-staged

Error Handling

// biome.json - Configure severity levels { "linter": { "rules": { // Block CI on these "correctness": { "noUnusedVariables": "error", "useExhaustiveDependencies": "error" }, // Allow in development, fail in CI "suspicious": { "noConsoleLog": { "level": "warn", "options": {} } } } } }

// Stricter CI check // package.json { "scripts": { "lint:dev": "biome check .", "lint:ci": "biome check --diagnostic-level=error --max-diagnostics=50 ." } }

Testing Integration

// vitest.config.ts - Run biome before tests import { defineConfig } from 'vitest/config';

export default defineConfig({ test: { globalSetup: './src/test/global-setup.ts', }, });

// src/test/global-setup.ts import { execSync } from 'child_process';

export default function setup() { try { execSync('npx @biomejs/biome check .', { stdio: 'pipe' }); } catch (error) { console.error('Biome check failed. Fix linting issues before running tests.'); process.exit(1); } }

Monitoring Metrics

Metric Target

Lint errors 0

Warnings < 10

Format issues 0

Cognitive complexity < 15

Checklist

  • Recommended rules enabled

  • Security rules enabled

  • a11y rules enabled

  • Cognitive complexity limit

  • CI integration with biome ci

  • Pre-commit hooks with lint-staged

  • VS Code extension configured

  • Console.log warnings

  • Unused variables as errors

  • VCS integration enabled

Reference Documentation

  • Rules Reference

  • VS Code Setup

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

biome-developer

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

parser-development

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

testing-codegen

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

formatter-development

No summary provided by upstream source.

Repository SourceNeeds Review