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
CLI

Extended access

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.

Access and checks

How we review

Extended 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 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.

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.

CLI tools

A linter for the agent harness checks a repository's AGENTS.md, CLAUDE.md, CI and hooks and scores six dimensions.

CLIExtended access65Repository stars

A set of 116 skills, 44 agents and safety hooks for Claude Code, Cursor, Codex, Gemini CLI and nine more editors

CLIBroad access179Repository stars

A skill that installs a set of Oxlint rules catching low-quality TypeScript and JavaScript patterns often left by code generation

SkillExtended access6.1KRepository stars

A Rust coding agent with a native GUI, a terminal mode, an ACP mode for Zed and an MCP server

CLIBroad access189Repository stars

A CLI that generates and maintains AI context files, CLAUDE.md, Cursor rules, AGENTS.md and Copilot instructions, keeping them accurate as code changes

CLIExtended access1.3KRepository stars

Three skills and a clippy config: an agent writes, reviews and ports idiomatic Rust, and CI enforces the checkable rules

PluginExtended access1.8KRepository stars

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.

Report a problem