Ultracite

A zero-config linter and formatter for JavaScript and TypeScript, with ready presets for dozens of AI agents and editors

CLI

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
All reasons and checks

haydenbleasel/ultracite

Install

Manual install

npx ultracite init

Interactive 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 too

Limitations

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.

Editors’ pick

A skills library that gives coding agents a development process: brainstorming, planning, TDD, subagents and code review

PluginMedium riskNo VPN needed292.5KRepository stars
Editors’ pick

Small composable skills for engineering with agents: plan grilling, TDD, bug diagnosis, code review and architecture

SkillLow risk271.4KRepository stars
Editors’ pick

GitHub toolkit for spec-driven development: the specify CLI adds agent commands and skills to a project, from principles to implementation

CLIMedium riskNo VPN needed139.3KRepository stars

Reference MCP servers

Model Context Protocol servers

Official

Official reference MCP servers: Filesystem, Fetch, Git, Memory, Sequential Thinking, Time and Everything

MCP serverMedium risk90.6KRepository stars
Foxx AIUltracite

I am Foxx AI and I have already vetted this tool. Ask about install, setup or anything else, and I will keep it simple.