From biome
Configures Biome for JavaScript/TypeScript projects including biome.json setup, schema versions, VCS integration, file ignores, and formatter/linter rules. Use for new projects or config migrations.
npx claudepluginhub thebushidocollective/han --plugin biomeThis skill is limited to using the following tools:
Master Biome configuration including biome.json setup, schema versions, VCS integration, and project organization for optimal JavaScript/TypeScript tooling.
Configures Biome linting and formatting via biome.json or biome.jsonc, troubleshoots diagnostics, sets ignores and overrides, and replaces ESLint/Prettier in JS/TS projects.
Provides BiomeJS configuration patterns for extending shared configs, monorepo inheritance, file includes, and overrides for tests, generated files, and imports.
Provides Biome commands for formatting, linting, and organizing imports in JavaScript, TypeScript, JSX/TSX, JSON, CSS projects. Use for zero-config setup, fast CI checks, or ESLint/Prettier migration.
Share bugs, ideas, or general feedback.
Master Biome configuration including biome.json setup, schema versions, VCS integration, and project organization for optimal JavaScript/TypeScript tooling.
Biome is a fast, modern toolchain for JavaScript and TypeScript projects that combines linting and formatting in a single tool. It's designed as a performant alternative to ESLint and Prettier, written in Rust for maximum speed.
Install Biome in your project:
npm install --save-dev @biomejs/biome
# or
pnpm add -D @biomejs/biome
# or
yarn add -D @biomejs/biome
Create a basic biome.json configuration:
npx biome init
This creates a biome.json file in your project root.
{
"$schema": "https://biomejs.dev/schemas/1.9.4/schema.json",
"vcs": {
"enabled": true,
"clientKind": "git",
"useIgnoreFile": true
},
"files": {
"ignoreUnknown": false,
"ignore": []
},
"formatter": {
"enabled": true,
"indentStyle": "space",
"indentWidth": 2,
"lineWidth": 80
},
"linter": {
"enabled": true,
"rules": {
"recommended": true
}
},
"javascript": {
"formatter": {
"quoteStyle": "single",
"trailingCommas": "es5"
}
}
}
Always use the correct schema version matching your Biome installation:
# Check Biome version
npx biome --version
# Migrate configuration to current version
npx biome migrate --write
The $schema field enables IDE autocomplete and validation:
{
"$schema": "https://biomejs.dev/schemas/2.3.6/schema.json"
}
Configure version control integration to respect .gitignore:
{
"vcs": {
"enabled": true,
"clientKind": "git",
"useIgnoreFile": true,
"defaultBranch": "main"
}
}
Options:
enabled: Enable VCS integrationclientKind: "git" for Git repositoriesuseIgnoreFile: Respect .gitignore patternsdefaultBranch: Default branch name for operationsControl which files Biome processes:
{
"files": {
"ignoreUnknown": false,
"ignore": [
"**/node_modules/**",
"**/dist/**",
"**/.next/**",
"**/build/**",
"**/.cache/**"
],
"include": ["src/**/*.ts", "src/**/*.tsx"]
}
}
{
"files": {
"ignore": [
"**/node_modules/",
"**/dist/",
"**/build/",
"**/.next/",
"**/.cache/",
"**/coverage/",
"**/*.min.js",
"**/*.log"
]
}
}
{
"formatter": {
"enabled": true,
"formatWithErrors": false,
"indentStyle": "space",
"indentWidth": 2,
"lineEnding": "lf",
"lineWidth": 80
}
}
Options:
enabled: Enable/disable formatterformatWithErrors: Format even with syntax errorsindentStyle: "space" or "tab"indentWidth: Number of spaces (2 or 4 recommended)lineEnding: "lf", "crlf", or "cr"lineWidth: Maximum line length{
"javascript": {
"formatter": {
"quoteStyle": "single",
"quoteProperties": "asNeeded",
"trailingCommas": "all",
"semicolons": "always",
"arrowParentheses": "always",
"bracketSpacing": true,
"bracketSameLine": false
}
}
}
{
"json": {
"formatter": {
"enabled": true,
"indentStyle": "space",
"indentWidth": 2,
"lineWidth": 80,
"trailingCommas": "none"
}
}
}
{
"linter": {
"enabled": true,
"rules": {
"recommended": true
}
}
}
Configure specific rule groups:
{
"linter": {
"enabled": true,
"rules": {
"recommended": true,
"a11y": {
"recommended": true
},
"complexity": {
"recommended": true
},
"correctness": {
"recommended": true
},
"performance": {
"recommended": true
},
"security": {
"recommended": true
},
"style": {
"recommended": true
},
"suspicious": {
"recommended": true
}
}
}
}
Enable or disable specific rules:
{
"linter": {
"rules": {
"recommended": true,
"suspicious": {
"noExplicitAny": "error",
"noConsoleLog": "warn"
},
"style": {
"useConst": "error",
"noVar": "error"
}
}
}
}
Rule levels:
"off": Disable rule"warn": Show warning"error": Fail check{
"$schema": "https://biomejs.dev/schemas/2.3.6/schema.json",
"extends": [],
"files": {
"ignore": ["**/node_modules/", "**/dist/"]
},
"formatter": {
"enabled": true,
"indentWidth": 2
},
"linter": {
"enabled": true,
"rules": {
"recommended": true
}
}
}
Each package can have its own biome.json:
{
"$schema": "https://biomejs.dev/schemas/2.3.6/schema.json",
"extends": ["../../biome.json"],
"linter": {
"rules": {
"suspicious": {
"noConsoleLog": "off"
}
}
}
}
$schema for IDE supportbiome migrate after updatesbiome ci in continuous integration{
"overrides": [
{
"include": ["scripts/**/*.js"],
"linter": {
"rules": {
"suspicious": {
"noConsoleLog": "off"
}
}
}
},
{
"include": ["**/*.test.ts"],
"linter": {
"rules": {
"suspicious": {
"noExplicitAny": "off"
}
}
}
}
]
}
Add to package.json:
{
"scripts": {
"lint": "biome check .",
"lint:fix": "biome check --write .",
"format": "biome format --write .",
"ci": "biome ci ."
}
}
# CI mode (fails on warnings)
biome ci .
# Check without fixing
biome check .
# Fix automatically
biome check --write .
# Format only
biome format --write .
# Error: Schema version doesn't match CLI version
npx biome migrate --write
Check:
files.ignore patternsfiles.include if specifiedVerify:
linter.enabled is trueOptimize:
files.ignore for large directories