
Ultracite
Hayden Bleasel · Coding
Ultracite is a free, zero-config linter and code formatter preset for JavaScript and TypeScript. It plugs into Biome, Oxlint, or ESLint and gives AI coding agents the same rules your team follows.

About Ultracite
What Is Ultracite
Ultracite is a preset for code quality tools. It doesn't lint or format code on its own. Instead, it sits on top of an engine you already know, like Biome, Oxlint, or ESLint, and hands it a curated set of rules that most JavaScript and TypeScript projects end up wanting anyway. Hayden Bleasel, the maintainer, ships it as an open-source project under the MIT license, so there's nothing to buy and nothing to license.
The problem it solves is setup. A fresh project usually means days of copying config from an old repo, arguing about quote styles, and wiring the same settings into every new app. Ultracite compresses that into npx ultracite init, which writes the config, connects your editor, and finishes in seconds. Type safety gets attention too: setup turns on strict null checks in tsconfig.json unless you already handle that yourself.
The main limit is its stance on convention. Ultracite is opinionated on purpose, so if you like tuning every single rule by hand, it can feel tight. The upside is that you stop maintaining a config file and start shipping code.
Getting Started
- Open a terminal in your project folder and run
npx ultracite init. The setup walks you through choosing a formatter and linter, your framework, editor, and AI agents. - Pick your toolchain when asked: Oxlint with Oxfmt for speed, Biome for an all-in-one binary, or ESLint with Prettier and Stylelint if you depend on specific plugins.
- Let the installer write the config files and update
package.json. It removes conflicting ESLint and Prettier configs automatically when they'd clash. - Run
ultracite checkto see issues without changing files, thenultracite fixto apply safe, automatic corrections. - Save a file in your editor to watch formatting and fixes run on the spot, then commit with confidence.
Product Information
A quick look at Ultracite's pricing, supported platforms, and performance.
Best for
The users, tasks, and scenarios where this tool fits best.
Users
- JavaScript and TypeScript developers
- Teams onboarding new hires
- Developers using AI coding assistants
Tasks
- Cleaning up a messy repo
- Keeping a monorepo consistent
- Enforcing style before commits
- Handing hard fixes to an AI agent
Scenarios
- Kicking off a brand new project and wanting solid defaults without reading ten config docs.
- Migrating from a legacy ESLint and Prettier setup and wanting a cleaner starting point.
- Running checks in CI on a large codebase where subsecond speed matters.
- Working on CSS and JSON files alongside TypeScript and wanting one toolchain to cover them.
Key features
Zero-Config Setup
A single command, npx ultracite init, wires up your chosen linter and formatter, editor settings, and AI agent rules. You answer a few prompts and the installer writes the files. It even strips out ESLint and Prettier configs that would conflict, so you don't debug duplicate rules later.
Three Toolchain Choices
Ultracite works with Oxlint plus Oxfmt, Biome, or ESLint plus Prettier and Stylelint. Oxlint is the fastest option, and it runs far quicker than ESLint according to the project. Biome bundles linting and formatting into one Rust binary. The ESLint route is there for teams that rely on its large plugin library.
AI Agent Rule Files
This is the feature that sets Ultracite apart from a plain linter. init generates context files for Claude Code, GitHub Copilot, Cursor, Gemini, and other agents, so their suggestions match your project's style. It also ships a reusable skill and hooks that reformat code right after an AI edit lands.
Safe Automatic Fixes
ultracite fix corrects formatting and many lint errors that are safe to change, like removing unused imports or switching == to ===. Riskier rewrites wait behind a --unsafe flag, and anything needing developer judgment gets flagged instead of silently changed.
Editor and CI Coverage
Formatting runs on save in VS Code, Cursor, and Windsurf, and init can also write Zed settings. Every toolchain runs from the command line through ultracite check and ultracite fix, which means the same checks work in any editor and in CI.
Monorepo and Git Hook Support
One configuration spans every package in a monorepo, doing away with the pile of duplicate config files that usually builds up. Ultracite also hooks into Husky, Lefthook, lint-staged, and pre-commit so staged files stay clean before they reach review.
Type Safety Defaults
Setup enables strict null checks in your tsconfig.json files unless they're already on or you've turned them off. The presets add lint rules that catch unsafe typing and suggest fixes, which cuts down on runtime errors early.
Pros and cons
Pros
- Free and open source under the MIT license, with no paid tier or seat limits.
- Cuts linting and formatting setup from hours to one command.
- Rust-backed engines like Biome and Oxlint keep checks fast on large projects.
- Generates matching rule files for AI coding agents, so humans and models share one style.
- Covers monorepos and CSS, JSON, Markdown, and other non-JavaScript files.
Cons
- Opinionated defaults mean turning off many rules leaves you with little benefit, per the project's own FAQ.
- You still need to learn the underlying tool, such as Biome or ESLint, when a rule does something unexpected.
- No hosted dashboard or GUI, so configuration and reporting stay in the terminal.
- CLI and editor setup is aimed at JavaScript and TypeScript, not other language stacks.
Frequently asked questions
Ultracite is a preset, not a linter. It's a curated bundle of rules and settings that runs on top of Biome, Oxlint, or ESLint, which do the actual formatting and linting. Think of it as the config layer that saves you from choosing and tuning every rule yourself.
Related content
Explore related tools, skills, and articles for Ultracite.
Ultracite Alternatives
Base Code
Base44 (Wix) · Coding · ProductivityBase Code is a shared cloud development environment from Base44. Teammates describe changes to an existing GitHub codebase in chat, preview them live and send them back as pull requests.
Google EmbeddingGemma 2
Google DeepMind · Writing · Image · CodingGoogle EmbeddingGemma 2 is a 740M-parameter open model that turns text, code, images, audio, and video frames into vectors in one 768-dimension space, running on phones and laptops.
GitGlow
GitGlow · Coding · ProductivityGitGlow is a local-first desktop Git client that lets independent developers review their own code and their AI agents' changes in one place before shipping.
