Ultracite
A zero-config linter and formatter for JavaScript and TypeScript, with ready presets for dozens of AI agents and editors
Medium risk
We rate an entry medium when the tool runs code, makes network calls or reads project files. Check what exactly it does before installing.
Why this level
- Modifies project files during autofix and can hand edits to an external CLI agent
Install
Manual install
npx ultracite initInteractive setup: pick your linter, package manager, editors and AI agents.
This is third-party code. Review the repository files before installing.
What it does
Ultracite installs and wires up one of three code-quality toolchains: Biome, ESLint with Prettier and Stylelint, or Oxlint with Oxfmt. The ultracite init command interactively asks for your package manager, editor and framework, then writes the configuration and the rule files for the AI agents you picked, such as AGENTS.md or CLAUDE.md. The check and fix commands lint or repair code, and fix can hand any remaining unfixable issues to Claude Code or Codex, re-linting each file after the repair. A separate doctor command diagnoses version and configuration drift.
Who it is for. For JavaScript and TypeScript teams who want one consistent code style shared by people and AI agents, without hand-tuning a linter.
Good fit when
- You're starting a new project or monorepo and don't want to assemble a linter config from scratch
- Several developers use different AI agents and their code style drifts apart
- You want the agent to finish cleaning up lint issues an autofix couldn't resolve
Not a fit when
- The project isn't JavaScript or TypeScript
- You already have a tuned Biome, ESLint or Oxlint config and don't need to change it
Example request
Set up Ultracite in this project with Biome, and wire up the rules for Claude Code tooLimitations
Ultracite doesn't write code itself, only lints and formats it: handing fixes to an agent needs the --claude or --codex flag and access to that CLI. It runs on top of Node tooling, so the project needs a working JavaScript package manager.
How to disable. Remove the ultracite package from dependencies and the config files (biome.json, eslint.config or oxlint.config) that ultracite init created.
Security check
- Modifies project files during autofix and can hand edits to an external CLI agent
README in short
The README calls Ultracite a linter for agentic development: one command configures Biome, ESLint or Oxlint for the chosen editor and AI agents and generates context files like AGENTS.md. The check, fix, doctor and upgrade commands cover day-to-day work, and fix with --claude or --codex hands unfixable issues to the agent for an autonomous, per-file-verified repair. The presets are also published separately for manual use in your own config.
SKILL.md
--- name: ultracite description: "Ultracite is a zero-config linting and formatting preset for JavaScript/TypeScript projects. Use when: (1) Setting up or initializing Ultracite in a project (ultracite init), (2) Running linting or formatting commands (check, fix, doctor), (3) Writing or reviewing JS/TS code in a project that uses Ultracite — to follow its code standards, (4) Troubleshooting linting/formatting issues, (5) User mentions 'ultracite', 'lint', 'format', 'code quality', or 'biome/eslint/oxlint' in a project with Ultracite installed." --- # Ultracite Zero-config linting and formatting for JS/TS projects. Supports three linter backends: Oxlint + Oxfmt (recommended), Biome, and ESLint + Prettier + Stylelint. ## Detecting Ultracite Check if ultracite is in package.json dependencies or devDependencies. Detect the active linter by looking for (searching upward from the current directory): - biome.json / biome.jsonc -> Biome - eslint.config.* (.mjs, .js, .cjs, .ts, .mts, .cts) -> ESLint (with Prettier for formatting) - oxlint.config.ts -> Oxlint (with oxfmt.config.ts for formatting) ## CLI Commands bunx ultracite check # Check for issues (read-only) bunx ultracite fix # Auto-fix issues bunx ultracite doctor # Diagnose setup problems bunx ultracite init # Initialize in a new project Replace bunx with npx, pnpx, or yarn dlx depending on the package manager.
FAQ
Can it run without interactive prompts?
Yes, init accepts flags like --linter, --pm, --editors and --agents for non-interactive setup in CI.
What does the --install-skill flag do?
It adds a reusable Ultracite skill to the project that an agent loads when working with JavaScript and TypeScript code.
Related
A skills library that gives coding agents a development process: brainstorming, planning, TDD, subagents and code review
Skills for real engineers by Matt Pocock
Skills For Real Engineers
Small composable skills for engineering with agents: plan grilling, TDD, bug diagnosis, code review and architecture
GitHub toolkit for spec-driven development: the specify CLI adds agent commands and skills to a project, from principles to implementation
Reference MCP servers
Model Context Protocol servers
Official reference MCP servers: Filesystem, Fetch, Git, Memory, Sequential Thinking, Time and Everything