SKILL.md
Ultracite
Zero-config linting and formatting for JS/TS projects. Supports three linter backends: Biome (recommended), ESLint + Prettier, and Oxlint + Oxfmt.
Detecting Ultracite
Check if ultracite is in package.json devDependencies. Detect the active linter by looking for:
biome.jsonc→ Biome
eslint.config.mjs→ ESLint
oxlint.config.ts→ Oxlint
CLI Commands
# Check for issues (read-only)
bunx ultracite check
Auto-fix issues
bunx ultracite fix
Diagnose setup problems
bunx ultracite doctor
Initialize in a new project
bunx ultracite init
Replace `bunx` with `npx`, `pnpx`, or `yarn dlx` depending on the package manager.
`check` and `fix` accept optional file paths: `bunx ultracite check src/index.ts`.
## Initialization
`bunx ultracite init` runs an interactive setup. For non-interactive (CI) use, pass flags:
bunx ultracite init \
--pm bun \
--linter biome \
--editors universal \
--agents claude copilot \
--frameworks react next \
--integrations husky lint-staged \
--quiet
**Flags:**
- `--pm` — `npm` | `yarn` | `pnpm` | `bun`
- `--linter` — `biome` (recommended) | `eslint` | `oxlint`
- `--editors` — `universal` (writes `.vscode/settings.json` for every VS Code-based editor) | `vscode` | `zed` | `cursor` | `windsurf` | `antigravity` | `kiro` | `trae` | `void` | `bob` | `codebuddy`
- `--agents` — `claude` | `codex` | `copilot` | `cline` | `amp` | `gemini` | `cursor-cli` + 19 more
- `--frameworks` — `react` | `next` | `solid` | `vue` | `svelte` | `qwik` | `remix` | `angular` | `astro` | `nestjs`
- `--integrations` — `husky` | `lefthook` | `lint-staged` | `pre-commit`
- `--hooks` — Enable auto-fix hooks for supported agents/editors
- `--type-aware` — Enable type-aware linting (oxlint only)
- `--skip-install` — Skip dependency installation
- `--quiet` — Suppress prompts (auto-detected when `CI=true`)
Init creates config that extends Ultracite presets:
// biome.jsonc
{ "extends": ["ultracite/biome/core", "ultracite/biome/react"] }