Setup
Install Ultracite with your preferred package manager, choose the right presets, and generate editor and agent config for your project.
Ultracite can be installed with all major package managers. You’ll need Node.js 20.19+ (or 22.13+ on Node 22) and a project with a package.json file. If you’re new to Ultracite, the introduction covers what it is and which toolchains it supports.
Installation
The easiest way to get started is to run Ultracite’s init script, which will install the necessary packages and set up the config files for you. In your project directory, run:
npx ultracite initpnpm dlx ultracite inityarn dlx ultracite initbunx ultracite initnubx ultracite initaube dlx ultracite initYou can optionally pass the following flags to the init command:
| Flag | Description | Options |
|---|---|---|
--linter |
The linting toolchain to use. When omitted and prompts are skipped, init keeps the linter the project already uses, or picks oxlint for a project without one. |
oxlint, biome, eslint |
--pm |
The package manager to use. | pnpm, bun, yarn, npm, deno, nub, aube |
--frameworks |
The frameworks to configure. | Space-separated: react, next, solid, vue, svelte, qwik, remix, tanstack, angular, astro, nestjs, jest, vitest |
--editors |
The editors to configure. | Space-separated: universal, vscode, cursor, windsurf, antigravity, kiro, trae, void, bob, codebuddy, zed. Use universal to write .vscode/settings.json for every VS Code-based editor. |
--agents |
The AI agents to configure. | Space-separated: universal, claude, codex, jules, replit, devin, lovable, zencoder, ona, openclaw, continue, snowflake-cortex, deepagents, qoder, kimi-cli, mcpjam, mux, pi, adal, copilot, cline, amp, aider, firebase-studio, open-hands, gemini, junie, augmentcode, bob, kilo-code, goose, roo-code, warp, droid, opencode, crush, qwen, amazon-q-cli, firebender, cursor-cli, mistral-vibe, vercel |
--hooks |
The agent hooks to configure. | Space-separated: cursor, windsurf, codebuddy, claude, copilot |
--integrations |
Additional integrations to set up. | Space-separated: husky, lefthook, lint-staged, pre-commit |
--install-skill |
Install the reusable Ultracite skill after setup. | (no value needed) |
--js-plugins |
Optional Oxlint JS plugins to enable. | Space-separated: @shadcn/lint, anti-slop, eslint-plugin-github, eslint-plugin-sonarjs, oxlint-plugin-react-doctor |
--type-aware |
Enable type-aware linting. Adds project/scanner rules for Biome, installs oxlint-tsgolint for Oxlint. |
(no value needed) |
--skip-install |
Skip installing dependencies. | (no value needed) |
--quiet |
Suppress interactive prompts and progress output. | (no value needed, automatically enabled in CI) |
Prompts are skipped when you pass --quiet or any of --pm, --editors, --agents, --hooks, --integrations, or --frameworks, so you can re-run init with just --hooks or --agents to add those to a project without changing its linter. In the interactive prompt, the linter the project already uses is preselected.
init checks every flag value before it changes anything. An unknown value (for example, --linter eslnt) stops it with a list of the valid values.
Programmatic Usage
For tools that need to call Ultracite programmatically (like scaffolding CLIs), you can use the --quiet flag to suppress interactive prompts and progress output:
npx ultracite init --quiet --pm npm
The --quiet flag is automatically enabled when the CI environment variable is set to true or 1, making it suitable for CI/CD pipelines:
CI=true npx ultracite init --pm npm
In quiet mode, Ultracite will:
- Skip all interactive prompts
- Keep the project’s current linter, or use Oxlint + Oxfmt for a project without one
- Suppress the intro banner, spinners, and progress messages (warnings, such as a config file it couldn’t update, and errors still print)
- Only set up editors, agents, hooks, Git hooks, and the skill when you pass their flags
- Exit with code 0 on success or 1 on failure
You can combine --quiet with --linter to specify a toolchain:
npx ultracite init --quiet --linter eslint --pm npm
Usage with Tailwind CSS
If you use Tailwind CSS, it’s recommended to install the Tailwind CSS IntelliSense extension for class sorting and hints:
code --install-extension bradlc.vscode-tailwindcss