Agent Skills: Biome Tooling

|

UncategorizedID: laurigates/claude-plugins/biome-tooling

Install this agent skill to your local

pnpm dlx add-skill https://github.com/laurigates/claude-plugins/tree/HEAD/typescript-plugin/skills/biome-tooling

Skill Files

Browse the full folder contents for biome-tooling.

Download Skill

Loading file tree…

typescript-plugin/skills/biome-tooling/SKILL.md

Skill Metadata

Name
biome-tooling
Description
|

Biome Tooling

Biome is a modern, performant toolchain for JavaScript, TypeScript, and related web languages. It combines formatting, linting, and import organization into a single tool that's 15-20x faster than ESLint/Prettier.

When to Use This Skill

| Use this skill when... | Use another approach when... | |------------------------|------------------------------| | Starting a new JS/TS project | Need specific ESLint plugins (React hooks, a11y) | | Want zero-config formatting/linting | Have complex custom ESLint rules | | Need fast CI/CD pipelines | Need framework-specific rules (Next.js, Nuxt) | | Migrating from ESLint+Prettier | Legacy codebase with heavy ESLint customization |

Hybrid approach: Use Biome for formatting, ESLint for specialized linting.

Core Expertise

What is Biome?

  • All-in-one toolchain: Linter + formatter + import sorter
  • Zero-config: Works out of the box with sensible defaults
  • Fast: Written in Rust, processes files in parallel
  • Compatible: Matches Prettier formatting 97%+
  • Supports: JavaScript, TypeScript, JSX, TSX, JSON, CSS

Installation

# Project-local (recommended)
bun add --dev @biomejs/biome

# Verify installation
bunx biome --version

# Initialize configuration
bunx biome init

Essential Commands

# Format files
bunx biome format --write src/

# Lint with fixes
bunx biome lint --write src/

# Check everything (format + lint + organize imports)
bunx biome check --write src/

# Check without changes (CI mode)
bunx biome check src/

# CI mode (exits with error on issues)
bunx biome ci src/

# Migrate from ESLint/Prettier
bunx biome migrate eslint --write
bunx biome migrate prettier --write

# Explain a rule
bunx biome explain noUnusedVariables

Configuration (biome.json)

Minimal Setup (Zero Config)

Biome works without configuration. For basic customization:

{
  "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json",
  "vcs": {
    "enabled": true,
    "clientKind": "git",
    "useIgnoreFile": true
  },
  "files": {
    "ignoreUnknown": false,
    "ignore": ["dist", "build", "node_modules", ".next", "coverage"]
  },
  "formatter": {
    "enabled": true,
    "indentStyle": "space",
    "indentWidth": 2,
    "lineWidth": 100
  },
  "linter": {
    "enabled": true,
    "rules": {
      "recommended": true
    }
  },
  "organizeImports": {
    "enabled": true
  }
}

Rule Categories

| Category | Purpose | Example Rules | |----------|---------|---------------| | recommended | Essential rules everyone should enable | Most rules marked "recommended" | | correctness | Prevent bugs and logic errors | noUnusedVariables, noUnreachable | | suspicious | Detect code that might be wrong | noExplicitAny, noDoubleEquals | | style | Enforce consistent style | useConst, noVar | | complexity | Reduce code complexity | noForEach, useFlatMap | | performance | Optimize performance | noAccumulatingSpread | | a11y | Accessibility best practices | noSvgWithoutTitle, useAltText | | security | Security vulnerabilities | noDangerouslySetInnerHtml |

Common Patterns

Ignore Files and Directories

Via biome.json:

{
  "files": {
    "ignore": [
      "dist",
      "build",
      "node_modules",
      "**/*.config.js",
      "scripts/legacy/**"
    ]
  }
}

Via .gitignore (automatic):

{
  "vcs": {
    "enabled": true,
    "useIgnoreFile": true
  }
}

Performance Comparison

| Tool | Time (1000 files) | Notes | |------|-------------------|-------| | Biome | 0.5s | Rust, parallel processing | | ESLint | 8-10s | Node.js, single-threaded | | Prettier | 3-5s | Node.js, formatting only | | ESLint + Prettier | 11-15s | Sequential execution |

Agentic Optimizations

| Context | Command | |---------|---------| | Quick check | bunx biome check src/ | | Fix all | bunx biome check --write src/ | | Format only | bunx biome format --write src/ | | Lint only | bunx biome lint --write src/ | | CI mode | bunx biome ci src/ | | Errors only | bunx biome check --diagnostic-level=error src/ | | Limited output | bunx biome check --max-diagnostics=10 src/ | | GitHub reporter | bunx biome check --reporter=github src/ | | JSON output | bunx biome check --reporter=json src/ | | Migrate ESLint | bunx biome migrate eslint --write | | Migrate Prettier | bunx biome migrate prettier --write |

Quick Reference

| Flag | Description | |------|-------------| | --write | Apply fixes/formatting | | --reporter=github | GitHub annotations format | | --reporter=json | JSON output | | --diagnostic-level=error | Errors only | | --max-diagnostics=N | Limit output count | | --verbose | Show detailed diagnostics | | --no-errors-on-unmatched | Ignore unmatched files | | ci | CI mode (check + exit code) |

For detailed examples, advanced patterns, and best practices, see REFERENCE.md.

References

  • Official docs: https://biomejs.dev
  • Configuration: https://biomejs.dev/reference/configuration/
  • Rules: https://biomejs.dev/linter/
  • Migration guide: https://biomejs.dev/guides/migrate-eslint-prettier/
  • Editor integration: https://biomejs.dev/