Biome: Web development toolchain for formatting and linting
Unified toolchain providing fast formatting and linting for JavaScript, TypeScript, CSS, and JSON with CLI and LSP.
Learn more about Biome
Biome is a web development toolchain that consolidates formatting and linting functionality into a single tool. It processes JavaScript, TypeScript, JSX, JSON, CSS, and GraphQL files through a shared parser and analysis engine. The tool provides over 340 linting rules derived from ESLint and typescript-eslint, along with formatting that maintains 97% compatibility with Prettier. Biome operates as both a command-line interface and Language Server Protocol implementation for editor integration.
Unified Architecture
Combines formatting and linting in a single tool with shared parsing and analysis infrastructure. This unified approach reduces tooling complexity and provides consistent code processing.
No Node.js Dependency
Runs independently without requiring Node.js runtime, making it suitable for various deployment environments. The tool can be installed and executed in contexts where Node.js is not available.
Full Fidelity Parser
Maintains complete source text representation with sophisticated error recovery capabilities. The parser preserves all original formatting and whitespace information for accurate code transformations.
# Install Biome as a dev dependency
npm install --save-dev --save-exact @biomejs/biome
# Or use other package managers
yarn add --dev --exact @biomejs/biome
pnpm add --save-dev --save-exact @biomejs/biomeBiome CLI v2.3.13
- –#8856 - Fixed #8710: Biome now parses Vue dynamic slot shorthand arguments that use template literals in `[]`.
- –#8850 - Fixed #8708: Tailwind `@utility` directives now parse functional utility names like `px-*` when Tailwind directives are enabled.
- –#8863 - Fixed an issue with `biome migrate eslint` where it couldn't detect rules for CSS, GraphQL, and HTML.
- –#8771 - Fix the `--reporter=summary` output incorrectly merging and displaying wrong issue counts for different rules. Fixes #8730
- –#8714 - Added new nursery rule `use-consistent-enum-value-type`. This rule disallows enums from having both number and string members.
Biome CLI v2.3.12
- –#8653 - Added new nursery rule `noDuplicateAttributes` to forbid duplicate attributes in HTML elements.
- –#8648 - Added a new nursery rule `noVueOptionsApi`.
- –#8793 - Properly handle `parameters` metavariables for `arrow_function` GritQL queries. The following `biome search` command no longer throws an error:
- –#8561 - Fixed `noUnusedVariables` to ignore type parameters declared in ambient contexts such as `declare module` blocks.
- –#8817 - Fixed #8765: The HTML parser can now parse directive modifiers with a single colon, e.g. `@keydown.:`.
Biome CLI v2.3.11
- –#8583 - Added the new nursery rule `useVueValidTemplateRoot`.
- –#8587 - Added the rule `useVueVForKey`, which enforces that any element using `v-for` also specifies a `key`.
- –#8586 - Added a new nursery rule `useVueConsistentVOnStyle`. Enforces consistent `v-on` style (`@event` shorthand vs `v-on:event` longhand). Default prefers shorthand; configurable via rule options.
- –#8583 - Added the new nursery rule `useVueValidVOnce`. Enforces that usages of the `v-once` directive in Vue.js SFC are valid.
- –#8509 - Added support for parsing and formatting the Svelte `{#await}` syntax, when `html.experimentalFullSupportEnabled` is set to `true`.
Top in Developer Tools
Related Repositories
Discover similar tools and frameworks used by developers
Floki
Elixir HTML parser with CSS selectors and multiple parser backends.
fd
Fast Rust-based file search utility with simpler syntax than find, regex support, and parallel traversal.
vite
Native ESM dev server with Rollup production builds.
create-react-app
Zero-configuration React scaffolding tool with preconfigured toolchain.
Dobby
Lightweight function hooking framework for Windows, macOS, iOS, Android, and Linux.