Awesome-omni-skill biome
Configure BiomeJS for projects - linting, formatting, and code style setup. Use when the user asks to set up biome, configure linting or formatting, migrate from eslint or prettier, enforce code style, or add biome to a project.
git clone https://github.com/diegosouzapw/awesome-omni-skill
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/backend/biome" ~/.claude/skills/diegosouzapw-awesome-omni-skill-biome && rm -rf "$T"
skills/backend/biome/SKILL.mdBiomeJS Configuration
Set up and configure BiomeJS for linting, formatting, and code style enforcement.
Version Discovery
Always discover the latest version before doing anything. Never hardcode a biome version.
npm view @biomejs/biome version
Use the discovered version for:
- Installing:
npm install --save-dev --save-exact @biomejs/biome@<version> - Schema URL:
https://biomejs.dev/schemas/<version>/schema.json
New Project Setup
- Discover the latest version (see above)
- Install biome:
npm install --save-dev --save-exact @biomejs/biome@<version> - Create
at the project root using the baseline configuration belowbiome.json - Add package.json scripts (see Scripts section)
- Verify with
npx biome check .
Migration / Upgrade
When a project already has biome configured:
- Discover the latest version
- Update the dependency:
npm install --save-dev --save-exact @biomejs/biome@<version> - Update the
URL in$schema
to match the new versionbiome.json - Run
to verify nothing breaksnpx biome check . - Review and modernize the config — only override what differs from biome's defaults
Baseline Configuration
Use this as the starting point for all projects. Adapt based on project context (see Adaptive Rules below).
{ "$schema": "https://biomejs.dev/schemas/<version>/schema.json", "vcs": { "enabled": true, "clientKind": "git", "useIgnoreFile": true }, "formatter": { "enabled": true, "indentStyle": "space", "indentWidth": 2, "lineWidth": 100 }, "javascript": { "formatter": { "quoteStyle": "single", "semicolons": "always" } }, "linter": { "enabled": true, "rules": { "recommended": true, "complexity": { "noExcessiveCognitiveComplexity": "warn" }, "correctness": { "noUnusedImports": "error", "noUnusedVariables": "warn", "useArrayLiterals": "error" }, "style": { "noDefaultExport": "error", "noCommonJs": "error", "noNamespaceImport": "warn", "useFilenamingConvention": { "level": "error", "options": { "strictCase": true, "filenameCases": ["camelCase", "kebab-case"] } } }, "suspicious": { "noConsole": "warn" } } }, "css": { "linter": { "enabled": true }, "formatter": { "enabled": true, "quoteStyle": "single" } }, "organizeImports": { "enabled": true } }
Adaptive Rules
Adjust the baseline based on what you detect in the project:
No CSS in project
If there are no CSS, SCSS, or similar files, remove the
css section entirely.
Next.js / Remix / Astro / SvelteKit
These frameworks require default exports for pages and routes. Disable the rule or scope it:
"style": { "noDefaultExport": "off" }
Or use
overrides to allow default exports only in route files:
"overrides": [ { "includes": ["src/app/**", "src/pages/**", "app/**", "pages/**"], "linter": { "rules": { "style": { "noDefaultExport": "off" } } } } ]
CommonJS projects
If the project uses
"type": "commonjs" or lacks "type": "module" in package.json and uses require():
"style": { "noCommonJs": "off" }
Tailwind CSS
No special biome config needed — Tailwind works with biome out of the box. Just ensure CSS linting is enabled if the project has CSS files.
Monorepo
Place
biome.json at the workspace root. Use overrides for package-specific rules if needed.
Test files
Allow
noConsole in test files:
"overrides": [ { "includes": ["**/*.test.*", "**/*.spec.*", "**/__tests__/**"], "linter": { "rules": { "suspicious": { "noConsole": "off" } } } } ]
Package.json Scripts
Add these scripts to the project's
package.json:
{ "scripts": { "lint": "biome check .", "lint:fix": "biome check --write .", "format": "biome format --write ." } }
Verification
After setup, always verify:
npx biome check .
If there are many existing violations, consider using
--write to auto-fix what biome can:
npx biome check --write .
For remaining issues that can't be auto-fixed, either fix them or adjust rules as appropriate for the project.