Ultracite CLI
A zero-config linter and formatter for JavaScript and TypeScript, with ready presets for dozens of AI agents and editors
- 3,370 ★ on the repository
- Last commit
- MIT
Extended access
Why this level
- Modifies project files during autofix and can hand edits to an external CLI agent
Install
- Works in
Manual install
npx ultracite initInteractive setup: pick your linter, package manager, editors and AI agents.
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- Modifies project files during autofix and can hand edits to an external CLI agent
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.
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.
Discussion
No questions or reviews yet.
Related
CLI toolsA linter for the agent harness checks a repository's AGENTS.md, CLAUDE.md, CI and hooks and scores six dimensions.
A set of 116 skills, 44 agents and safety hooks for Claude Code, Cursor, Codex, Gemini CLI and nine more editors
A skill that installs a set of Oxlint rules catching low-quality TypeScript and JavaScript patterns often left by code generation
A Rust coding agent with a native GUI, a terminal mode, an ACP mode for Zed and an MCP server
A CLI that generates and maintains AI context files, CLAUDE.md, Cursor rules, AGENTS.md and Copilot instructions, keeping them accurate as code changes
Three skills and a clippy config: an agent writes, reviews and ports idiomatic Rust, and CI enforces the checkable rules
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.
README badge
Original 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.