---
title: Setup
description: 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+ and a project with a `package.json` file.

## 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:

```package-install
npx ultracite init
```

You can optionally pass the following flags to the `init` command:

| Flag              | Description                                                                                             | Options                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| ----------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `--linter`        | The linting toolchain to use.                                                                           | `biome`, `eslint`, `oxlint`                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| `--pm`            | The package manager to use.                                                                             | `pnpm`, `bun`, `yarn`, `npm`                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `--frameworks`    | The frameworks to configure.                                                                            | Space-separated: `react`, `next`, `solid`, `vue`, `svelte`, `qwik`, `remix`, `tanstack`, `angular`, `astro`, `nestjs`                                                                                                                                                                                                                                                                                                                                                                |
| `--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`, `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`                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `--integrations`  | Additional integrations to setup.                                                                       | Space-separated: `husky`, `lefthook`, `lint-staged`, `pre-commit`                                                                                                                                                                                                                                                                                                                                                                                                                    |
| `--install-skill` | Install the reusable Ultracite skill after setup.                                                       | (no value needed)                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| `--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 visual output.                                                         | (no value needed, automatically enabled in CI)                                                                                                                                                                                                                                                                                                                                                                                                                                       |

### Programmatic Usage

For tools that need to call Ultracite programmatically (like scaffolding CLIs), you can use the `--quiet` flag to suppress all interactive prompts and visual output:

```bash title="Terminal"
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:

```bash title="Terminal"
CI=true npx ultracite init --pm npm
```

In quiet mode, Ultracite will:

- Skip all interactive prompts
- Use sensible defaults for all options (Biome by default)
- Suppress ASCII art, spinners, and log messages
- Only create the core linter configuration
- Exit cleanly with code 0 on success or 1 on failure

You can combine `--quiet` with `--linter` to specify a toolchain:

```bash title="Terminal"
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](https://marketplace.visualstudio.com/items?itemName=bradlc.vscode-tailwindcss) extension for class sorting and hints:

```bash title="Terminal"
code --install-extension bradlc.vscode-tailwindcss
```
