Biome 2.6: One Rust binary to replace Prettier and ESLint
A toolchain for web projects, aimed to provide functionalities to maintain them. Biome offers formatter and linter, usable via CLI and LSP.
At a glance
- What is it?
- Biome is a Rust-based formatter and linter for JavaScript, TypeScript, JSX, JSON, CSS, and GraphQL, offering a single CLI and LSP. It claims 97% Prettier compatibility and over 500 lint rules, but you must weigh its configuration model and migration effort.
- Who is it for?
- Adopt Biome if you manage a JavaScript or TypeScript project and want a single, fast formatter and linter with editor integration, and you are willing to accept its default configuration and rule set. Avoid it if you depend on a large ESLint plugin ecosystem or need Prettier's exact output for every edge case.
- Can I use it commercially?
- Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository received new commits within the last day.
- What is it written in?
- Mainly Rust, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on November 13, 2026, and from our analysis. They are not legal advice.
Star history
- biomejs/biome26,100 ★ · +675
| Repository | 2026-07-28 | 2026-11-13 |
|---|---|---|
| biomejs/biome | 25.4k | 26.1k |
675 Stars in the last 108 days, measured from the daily GitHub snapshot. Compare with other projects
Editorial analysis
What Biome solves and who it targets
Biome addresses a familiar pain: web projects that need both formatting and linting but have to install, configure, and run two separate tools. Prettier handles formatting, ESLint handles rules, and each has its own config file, CLI flags, and editor plugin. Biome replaces that pair with one binary that does both. The README positions it as a toolchain for web projects, aimed at maintaining project health. The target user is a developer or team working with JavaScript, TypeScript, JSX, JSON, CSS, or GraphQL who wants a single tool with sane defaults and no mandatory configuration. The pitch is performance, but the deeper value is unification: one shared base for parsing, diagnostics, caching, and parallelization. That is a real architectural difference, not just a speed claim.
The mechanism: full-fidelity parser and shared core
Biome's design centers on a sophisticated parser that represents source text in full fidelity and has top-notch error recovery. Full fidelity means the parser preserves every token and comment, which is essential for a formatter that must round-trip code without losing information. Error recovery lets it format and lint malformed code, which is why the editor experience works on partially written files. The README says Biome is designed from the start to be used interactively within an editor, with first-class LSP support. The shared base matters: formatting, linting, and diagnostics all run on the same parse tree, so there is no duplicated work. Caching and parallelization are also built into that shared core. That is a different approach from running Prettier and ESLint separately, where each tool parses the file independently.
Getting it running: install and basic commands
Installation is a single npm command: npm install --save-dev --save-exact @biomejs/biome. The latest release is v2.6.4. The --save-exact flag is notable: Biome recommends pinning the exact version, which is common for tools that change behavior between releases. After install, you run it via npx. The README gives four commands. Format files with npx @biomejs/biome format --write. Lint and apply safe fixes with npx @biomejs/biome lint --write. Run both and apply safe fixes with npx @biomejs/biome check --write. For CI, use npx @biomejs/biome ci, which the README describes as checking all files against format, lint, etc. without writing changes. There is also an online playground compiled to WebAssembly, so you can try it without installing anything.
Compatibility claims: Prettier and ESLint coverage
Biome makes two concrete compatibility claims. First, it scores 97% compatibility with Prettier, according to a benchmark linked in the README. That is a high number, but it also means 3% of formatting cases will differ. For a team that has existing Prettier-formatted code, that 3% can cause noisy diffs on migration. Second, it features more than 500 lint rules sourced from ESLint, typescript-eslint, and other sources. The README does not say all ESLint rules are included, only that it has more than 500 from those sources. That is a useful baseline, but custom ESLint plugins or rules that you wrote yourself will not be available unless they are ported. The rule count is a feature, but it is not a guarantee of parity. You need to check the actual rule list against your project's ESLint config.
A real limitation: configuration and rule gaps
The README states that Biome has sane defaults and does not require configuration. That is a strength for new projects, but it is also a limitation. Prettier and ESLint are highly configurable; teams often have specific formatting rules or custom lint rules. Biome's defaults are opinionated. If your project relies on a non-default Prettier setting, such as a different print width or semicolon style, you will need to find the corresponding Biome configuration option, and it may not exist. Consult the official documentation to see what is tunable. Another limitation is the rule source. With 500+ rules from ESLint and typescript-eslint, you may find that a niche rule you depend on is missing. You will have to map your ESLint config to Biome's rules. For a large codebase, that is a real cost.
Alternatives: Prettier plus ESLint, or other Rust tools
The obvious alternative is to stick with Prettier for formatting and ESLint for linting. That combination is mature, has a huge plugin ecosystem, and is what most web projects use today. The difference in approach is that Prettier and ESLint are separate tools, each with its own parser, config, and editor integration. Biome unifies them, which reduces toolchain complexity and duplicate parsing. Another alternative is oxc, another Rust-based toolchain. In the web space, you could also use deno lint or deno fmt, which also combine formatting and linting, but those are tied to the Deno runtime. Biome stands out because it is runtime-agnostic and does not require Node.js, as the README notes. The trade-off is that you trade the flexibility of separate tools for the speed and cohesion of a single binary.
Maintenance, licensing, and upgrade cost
The project is dual licensed MIT OR Apache-2.0, with LICENSE-MIT and LICENSE-APACHE files at the repository root. That is permissive, so you can adopt it without legal friction, but you should read the license files to confirm which applies to your use. The project is actively maintained, with frequent releases: 2.6.2 on October 21, 2.6.3 on October 24, and 2.6.4 on October 28, 2026. That cadence means you will need to track updates and test your codebase against new versions. The --save-exact recommendation in the install command suggests that upgrades can introduce breaking changes. Plan for configuration mapping and a formatting diff review. The LSP support means your editor will need to be reconfigured to use Biome instead of the existing extensions.
Editorial conclusion
Adopt Biome if you manage a JavaScript or TypeScript project and want a single, fast formatter and linter with editor integration, and you are willing to accept its default configuration and rule set. Avoid it if you depend on a large ESLint plugin ecosystem or need Prettier's exact output for every edge case. Before switching, verify that Biome's formatting matches your codebase's expectations and that its lint rules cover the specific checks you rely on, especially if you use custom ESLint rules or plugins not ported to Biome.
Frequently asked questions
biome vs eslint and prettier
Biome is not a drop-in for either tool and does not claim to be. Its linter has more than 500 rules taken from ESLint, from typescript-eslint and from other sources, so coverage is a subset of ESLint including its plugins, and those rules are reimplementations on a shared Rust parser. Its formatter scores 97% compatibility with Prettier rather than parity, and the project recommends installing with an exact version because a formatter output change is a diff in your repository.
biome vscode
Biome publishes its own editor extensions to both the Visual Studio Marketplace and the Open VSX registry, rather than relying on community ones. The project describes first-class language server support as central, with a parser built to recover from malformed code so that it can format and lint while you are still typing rather than only on saved files.
biome alternative
The project's positioning is unification rather than replacement, since it folds formatting, linting, parsing and configuration into one tool on a shared base. It does not require Node.js at runtime, offers a WebAssembly playground for trying it without installing, and is dual licensed MIT or Apache 2.0.
Does biome actually work?
It is a released tool rather than a prototype: the published versions are 2.6.4, 2.6.3 and 2.6.2, with continuous integration, a snapshot test configuration for output, a fuzzing directory for the parser, and a first-party language server. The honest qualification is the project's own number, 97% Prettier compatibility, plus the fact that a rule you depend on may not be among the 500 it has.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/biomejs-biome)Star history chart for your README
[](https://hysenlabs.com/projects/biomejs-biome)Was this useful?