Skip to content
Back to skills

419 Biome 7c46c8b2

ASecurity

**Research Date**: 2026-02-23 **Source URL**: <https://biomejs.dev> **GitHub Repository**: <https://github.com/biomejs/biome> **Version at Research**: v2.4.3 **License**: MIT OR Apache 2.0 ---

  • 9 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 11, 2026
developmentjavascripttypescriptrustgojavabashvuenodegitsecurity

Works with

  • claude code
  • cli

Security analysis

A92/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro shows the line behind each finding and how to fix it

Scanned October 11, 2026

npx -y skills add tools-only/X-Skills --skill 419-biome_7c46c8b2 --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 419 Biome 7c46c8b2?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for 419 Biome 7c46c8b2
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tools-only-419-biome-7c46c8b2/badge)](https://www.skillsdirectory.com/skills/tools-only-419-biome-7c46c8b2)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

SKILL.md
# Biome

**Research Date**: 2026-02-23
**Source URL**: <https://biomejs.dev>
**GitHub Repository**: <https://github.com/biomejs/biome>
**Version at Research**: v2.4.3
**License**: MIT OR Apache 2.0

---

## Overview

Biome is a high-performance, all-in-one toolchain for web projects built in Rust that combines formatting (97% Prettier compatibility), linting (450+ rules from ESLint/typescript-eslint), and import organization into a single binary. It runs ~35× faster than Prettier, requires zero configuration to get started, provides first-class LSP support for editor integration, and in v2 introduced type-aware linting without requiring the TypeScript compiler — making it a drop-in replacement for the ESLint + Prettier toolchain.

---

## Problem Addressed

| Problem | Solution |
|---------|----------|
| Maintaining separate ESLint and Prettier configs with frequent version conflicts | Single `biome check` command runs formatting, linting, and import organization together with a unified `biome.json` config |
| Slow CI times from running ESLint and Prettier over large codebases | Rust-based parallel processing runs ~35× faster than Prettier and significantly faster than ESLint |
| Type-aware linting requires slow TypeScript compiler invocation | v2 type inference engine works independently of the TypeScript compiler, providing type-aware rules without `tsc` overhead |
| ESLint + Prettier produce obscure, hard-to-act-on errors | Biome outputs detailed, contextualized diagnostics with exact source locations and safe-fix suggestions |
| Different tooling for different JS/TS languages (JSX, TSX, CSS, GraphQL) | First-class support for JS, TS, JSX, TSX, JSON, HTML, CSS, GraphQL in a single tool |
| Configuring and maintaining lint rules across a monorepo | Nested `biome.json` configuration files are fully supported with per-package overrides in v2 |

---

## Key Statistics

| Metric | Value | Date Gathered |
|--------|-------|---------------|
| GitHub Stars | ~23.8K | 2026-02-23 |
| Contributors | 18 core + active community | 2026-02-23 |
| Latest Release | v2.4.3 | 2026-02-23 |
| Formatting Speed | ~35× faster than Prettier (171K LOC, 2104 files) | 2026-02-23 |
| Prettier Compatibility | 97% | 2026-02-23 |
| Lint Rules | 450+ (from ESLint, typescript-eslint, and others) | 2026-02-23 |
| Supported Languages | JS, TS, JSX, TSX, JSON, HTML, CSS, GraphQL | 2026-02-23 |

---

## Key Features

### Formatting

- 97% compatibility with Prettier for JS, TS, JSX, TSX, JSON, CSS, GraphQL, HTML
- Formats malformed code during editing via LSP
- ~35× faster than Prettier on large codebases
- Configurable indent style (space/tab), indent width, line width, quote style, trailing commas, semicolons

### Linting

- 450+ rules sourced from ESLint, typescript-eslint, and additional sources
- Rule categories: correctness, complexity, style, suspicious, performance, accessibility, security, nursery
- Safe and unsafe fix suggestions with one-command auto-apply
- Detailed diagnostic output showing exact problem location and remediation

### Type-Aware Linting (v2)

- New type inference engine independent of the TypeScript compiler
- Multi-file analysis: scans project and `node_modules` to build type graph
- ~75% detection coverage vs `typescript-eslint` for rules like `noFloatingPromises` with no `tsc` overhead
- Opt-in via `project` domain rules; does not affect performance for non-type-aware linting
- Full monorepo support: uses the correct `package.json` per package

### Import Organization

- Automatic import sorting and deduplication via `assist.actions.source.organizeImports`
- Controlled via `biome check --write` or as part of CI via `biome ci`

### Editor Integration

- First-party extensions for VS Code, IntelliJ, and Zed
- Community extensions for Vim, Neovim, Sublime Text
- LSP server with full error recovery and format-on-save support
- Formats and lints malformed code as you type

### Zero-Config & Standalone

- Works out of the box with `npx @biomejs/biome check --write ./src`
- Optional `biome.json` for project-level configuration (`npx @biomejs/biome init`)
- Standalone binary available without Node.js
- Git VCS integration: respects `.gitignore` patterns via `vcs.useIgnoreFile`

### CI Integration

- `biome ci` command enforces code quality in CI pipelines (equivalent to `biome check` without writes)
- GitHub Actions and GitLab CI recipes provided in official documentation
- Exits with non-zero status on any violation for gate enforcement

---

## Technical Architecture

### Core Design

Biome is built in Rust with an architecture inspired by `rust-analyzer`, providing:

- **Shared parser**: A single parser produces a full-fidelity syntax tree (including trivia like whitespace and comments) used by both the formatter and linter — no double-parsing overhead
- **Error recovery**: Parser continues after syntax errors, enabling formatting and linting of malformed code
- **Parallel execution**: Files are processed in parallel using Rayon-based work-stealing
- **Single binary**: All tools ship in one executable, eliminating version coordination between tools

### v2 File Scanner

```text
biome check --write ./src
    ↓
File Scanner (opt-in for project domain rules)
    ↓ discovers all .js/.ts/.jsx/.tsx files
Parallel parser farm (one thread per CPU core)
    ↓ produces full-fidelity CSTs
Formatter pass → emit formatted text
    ↓
Linter pass (per-file rules) → collect diagnostics
    ↓
Type Inference Engine (project domain rules only)
    ↓ queries multi-file type graph
Type-aware lint rules → additional diagnostics
    ↓
Write fixes + report summary
```

### Configuration Hierarchy

```text
biome.json (project root)
    ↓ overridden by
packages/pkg-a/biome.json (nested config, v2+)
    ↓ overridden by
CLI flags
    ↓ overridden by
BIOME_* environment variables
```

---

## Installation & Usage

### Installation

```bash
# As a dev dependency (recommended)
npm i -D -E @biomejs/biome

# pnpm
pnpm add -D -E @biomejs/biome

# Standalone binary (no Node.js required)
# See: https://biomejs.dev/guides/manual-installation/
```

### Quick Start

```bash
# Initialize biome.json
npx @biomejs/biome init

# Format all files
npx @biomejs/biome format --write ./src

# Lint with safe auto-fixes
npx @biomejs/biome lint --write ./src

# Format + lint + organize imports (recommended)
npx @biomejs/biome check --write ./src

# CI enforcement (no writes, exits non-zero on violations)
npx @biomejs/biome ci ./src
```

### Example biome.json

```json
{
  "$schema": "https://biomejs.dev/schemas/2.4.3/schema.json",
  "vcs": { "enabled": true, "clientKind": "git", "useIgnoreFile": true },
  "formatter": {
    "enabled": true,
    "indentStyle": "space",
    "indentWidth": 2,
    "lineWidth": 100
  },
  "linter": {
    "enabled": true,
    "rules": { "recommended": true }
  },
  "javascript": {
    "formatter": { "quoteStyle": "single", "semicolons": "always" }
  },
  "assist": {
    "enabled": true,
    "actions": { "source": { "organizeImports": "on" } }
  }
}
```

### Migrate from ESLint + Prettier

```bash
# Automated migration command
npx @biomejs/biome migrate eslint --write
npx @biomejs/biome migrate prettier --write
```

---

## Relevance to Claude Code Development

### Applications

**This repository already uses Biome** (`biome.json` at repo root) for JS/TS linting and formatting via CI (`.github/workflows/code-quality.yml`) and pre-commit hooks (`.pre-commit-config.yaml`). The current config uses v2.3.13 schema with recommended rules and single-quote JS formatting.

**Enforcing Code Quality in Hook Scripts**:
- Claude Code hooks (`.claude/hooks/*.cjs`, `plugins/*/hooks/*.cjs`) are CommonJS Node.js files that benefit from Biome's linting and formatting
- `biome check --write` can be added to the pre-commit hook pipeline for hook script quality

**CI Quality Gate Integration**:
- `npx @biomejs/biome ci` already runs in CI and can be extended with project-domain type-aware rules
- Exit-code-based gate pattern directly supports Claude Code's pre-push quality enforcement

### Patterns Worth Adopting

**Single-Tool Simplicity over Toolchain Composition**:
- Biome's single-binary approach (formatter + linter + import organizer) eliminates the "N tools, N config files, N version conflicts" problem
- Skills and plugins can document "use `biome check --write` for JS/TS" as the single authoritative command

**Zero-Config First, Config When Needed**:
- Biome works with zero configuration — a pattern worth applying to Claude Code plugin defaults
- Optional `biome.json` only when project-level overrides are necessary

**Opt-In Performance Cost**:
- v2 type inference is opt-in, not default — isolating expensive multi-file scans to rules that need them
- Pattern: define expensive analysis as opt-in with explicit user consent (analogous to `--all-files` vs targeted pre-commit runs)

**Unified CLI Verbs**:
- `format`, `lint`, `check` (all), `ci` (CI-only no-write) provide clear semantic separation
- Pattern for skill CLI design: discrete verbs for distinct phases of a workflow

### Integration Opportunities

**Upgrade biome.json to v2.4.3 Schema**:
- Current repo config references schema `2.3.13`; upgrading to `2.4.3` enables access to new v2 rules and HTML support
- Run `npx @biomejs/biome migrate --write` to auto-apply breaking config changes

**Enable Type-Aware Rules**:
- Add `project` domain rules to `biome.json` to detect floating promises, undefined type access, and other type errors in hook scripts
- Provides ESLint `@typescript-eslint/no-floating-promises` equivalent without TypeScript compiler dependency

**Claude Code Plugin for Biome Diagnostics**:
- A skill that runs `biome check --json ./src` and parses the structured JSON output to present lint findings in a structured agent-readable format
- Integration point: `plugins/holistic-linting/skills/biome-diagnostics/`

**Pre-commit Hook for Hook Scripts**:
- Add `npx @biomejs/biome check --write` as a pre-commit stage specifically for `.cjs` hook files
- Ensures all Claude Code hooks maintain consistent style without separate ESLint config

---

## References

- [Biome Official Website](https://biomejs.dev) (accessed 2026-02-23)
- [biomejs/biome GitHub Repository](https://github.com/biomejs/biome) (accessed 2026-02-23)
- [Biome Getting Started Guide](https://biomejs.dev/guides/getting-started/) (accessed 2026-02-23)
- [Biome v2 Release Announcement](https://biomejs.dev/blog/biome-v2/) (accessed 2026-02-23)
- [Biome v2.3 Release - Vue/Svelte/Astro Support](https://biomejs.dev/blog/biome-v2-3/) (accessed 2026-02-23)
- [Biome Roadmap 2025](https://biomejs.dev/blog/roadmap-2025/) (accessed 2026-02-23)
- [Biome Linter Rules Reference](https://biomejs.dev/linter/) (accessed 2026-02-23)
- [Biome Configuration Reference](https://biomejs.dev/reference/configuration) (accessed 2026-02-23)

---

## Freshness Tracking

| Field | Value |
|-------|-------|
| Last Verified | 2026-02-23 |
| Version at Verification | v2.4.3 |
| Next Review Recommended | 2026-05-23 |

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.