CodeVetter · Repo Unpack · Feature catalog
biomejs/biome
User-facing surfaces are the biome CLI, the LSP used by editors, the migrate/eslint path, the daemon, and the npm/WASM JS API. Analysis features are lint rules, assists, and syntax rules registered per language. Format, check, lint, ci, and search are the everyday commands. Plugins (Grit) and HTML/Vue/Svelte/Tailwind are first-class language frontends.
- biome init writes a starter configuration. biome migrate rewrites Biome, ESLint, Prettier, and related configs. biome explain prints rule documentation. biome search runs structured search (GritQL-backed).
- JavaScript and TypeScript lint rules are split into groups (a11y, complexity, correctness, nursery, performance, security, style, suspicious, and others) under crates/biome_js_analyze/src/lint.
- CSS, JSON, GraphQL, HTML, and GraphQL-adjacent analyzers have their own crates (biome_css_analyze, biome_json_analyze, biome_graphql_analyze, biome_html_analyze) registered through the service feature set.
- Formatters exist per language: biome_js_formatter, biome_json_formatter, biome_css_formatter, biome_graphql_formatter, biome_html_formatter, plus embedded Tailwind and YAML handling.
- ESLint migration preserves selected rule options through source-option models, not only severity. The eslint-migrate skill and migrate command implement that path.
- The JS API package exposes WASM and a JSON-RPC backend that talks to the daemon. @biomejs/backend-jsonrpc is the client for that socket.