A highly opinionated, zero-configuration linter and formatter
Ultracite is a highly opinionated preset for Biome, designed to help you and your AI models write consistent and type-safe code without the hassle of configuration.

$ ultracite fix
Ultracite v6.3.11 fixFound 121 errors.✓ Finished in 121ms on 196 files.
Here are the issues we couldn't fix automatically:
apps/docs/app/og/[...slug]/route.tsx:39:8 suppressions/unusedSuppression comment has no effect. Remove the suppression or make sure you are suppressing the correct rule.
38 │ <div style={{ fontFamily: "Geist" }} tw="flex h-full w-full bg-black"> > 39 │ {/** biome-ignore lint/performance/noImgElement: "Required for Satori" */} │ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 40 │ <img 41 │ alt="Vercel OpenGraph Background"
────────────────────────────────────────────────────────────
apps/registry/app/[component]/route.ts:226:76 lint/complexity/noExcessiveCognitiveComplexityExcessive complexity of 95 detected (max: 15).
225 │ > 226 │ export const GET = async (_request: NextRequest, { params }: RequestProps) => { │ ^^ 227 │ const { component } = await params; 228 │ const parsedComponent = component.replace(".json", "");
i Please refactor this function to reduce its complexity score from 95 to the max allowed complexity 15.
────────────────────────────────────────────────────────────
packages/elements/__tests__/chain-of-thought.test.tsx:23:69 lint/suspicious/noEmptyBlockStatementsUnexpected empty block.
22 │ // Suppress console.error for this test > 23 │ const spy = vi.spyOn(console, "error").mockImplementation(() => {}); │ ^^ 24 │ 25 │ expect(() =>
i Empty blocks are usually the result of an incomplete refactoring. Remove the empty block or add a comment inside it if it is intentional.Used by these organizations and thousands of open source projects.
Why choose Ultracite?
Ultracite is specifically designed to be easy to setup and use. Here's how it compares to other toolchains.
Zero-config by design
Hundreds of rules for your framework to optimize your JavaScript / TypeScript code, while still allowing you to customize when needed.
Designed for humans and AI
Ensure consistent code style and quality across all team members and AI models, eliminating debates over formatting and reducing code review friction.
Agent Integration
Add formatting rules for AI agents and run Ultracite in agent loops.
Editor configuration
Automatically generate editor-specific rule files to work with Ultracite.
Configurable spec
Zero configuration Biome configuration out of the box.
MCP Support
Lint and format code without needing to run Ultracite locally.
Output panel
Biome uses the VS Code output panel to show problems.
Works with all your favourite agents
Ultracite can generate rules files for all these popular IDEs and agents, so you can get the most of out of your AI integrations.
See how to migrate to Ultracite
Watch some popular YouTubers use Ultracite to lint and format their code.
What the community is saying
Here's what some of the most in the most forward-thinking developers in the React ecosystem have to say about Ultracite.
Install in seconds. Run in milliseconds.
Install Ultracite and start shipping code faster.