# Quickstart



Get from zero to your first AI-assisted edit in a couple of minutes.

## 1. Install [#1-install]

```bash
curl -fsSL https://assets.cluster.app/serve/cstatic-assets/releases/cli/install.sh | sh
```

This installs the `cluster` binary to a user-writable directory on your `PATH`
(typically `~/.local/bin`) so it can keep itself up to date; set `INSTALL_DIR` to
choose another location. Confirm it's on your `PATH`:

```bash
cluster --version
```

<Callout type="info">
  The `grep` tool shells out to [ripgrep](https://github.com/BurntSushi/ripgrep)
  (`rg`). Install it (`brew install ripgrep`, `apt install ripgrep`, …) so the
  assistant can search your code.
</Callout>

## 2. Log in [#2-log-in]

```bash
cluster login
```

This signs you in with your Cluster account. On a desktop machine it opens your
browser; on an SSH/remote shell — or a Linux/BSD session with no graphical
display — it automatically uses the device flow instead, and it also falls back
to the device flow if the browser can't be opened.

Force a specific flow when the automatic choice is wrong:

```bash
cluster login --device    # device-code flow for headless/remote machines
cluster login --browser   # browser flow with a localhost callback
```

Check who you're signed in as with `cluster whoami`.

## 3. Start chatting [#3-start-chatting]

From inside your project, run `cluster` with no arguments to open an interactive
session:

```bash
cluster
```

Describe what you want done — &#x2A;"find where rate limiting is configured and add a
5-second timeout"* — and the assistant works in your current directory: reading
files, running commands, and proposing edits. The first time you use a directory,
Cluster asks you to trust it — accept once and it's remembered for next time.
Press `Ctrl-C` to stop a turn in progress, and type `/quit` to exit.

## 4. Run a one-shot prompt [#4-run-a-one-shot-prompt]

For scripts and quick questions, `cluster exec` runs a single prompt without
entering the interactive UI:

```bash
cluster exec "summarize what this service does"
```

It reads from stdin too, so you can pipe context in:

```bash
echo "fix the failing test in api_test.go" | cluster exec
```

## Next steps [#next-steps]

* **[Interactive sessions](/docs/build/interactive)** — tools, workspace trust, plan mode,
  keybindings, and the full slash-command reference.
* **[Exec & sessions](/docs/build/exec)** — scripting and resuming saved sessions.
* **[Config basics](/docs/build/config/basic)** — switch models and tune
  settings.
