> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getunbound.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Direct Install

> Install a tool without the CLI, or onto a custom Unbound domain

`unbound setup <tool>` is the normal path. Use the direct installer when the Unbound CLI isn't on the machine, or when your organization runs Unbound on its own hosts.

**macOS and Linux**

```bash theme={null}
python3 <(curl -fsSL https://getunbound.ai/setup/claude-code/gateway/install) --domain gateway.getunbound.ai
```

**Windows** — PowerShell has no process substitution, so download the installer first and run it:

```powershell theme={null}
$installer = Join-Path $env:TEMP 'unbound-install.py'
Invoke-WebRequest -Uri 'https://getunbound.ai/setup/claude-code/gateway/install' -OutFile $installer -UseBasicParsing
python $installer --domain gateway.getunbound.ai
Remove-Item $installer -Force
```

If `python` isn't on your `PATH`, use `py -3` in its place.

Replace `gateway.getunbound.ai` with your organization's Unbound dashboard host, and the route with the one for your tool from the table below.

## Routes

| Tool                            | Route                                |
| ------------------------------- | ------------------------------------ |
| Claude Code (API key)           | `/setup/claude-code/gateway/install` |
| Claude Code (Anthropic account) | `/setup/claude-code/hooks/install`   |
| Cursor                          | `/setup/cursor/install`              |
| Codex (API key)                 | `/setup/codex/gateway/install`       |
| Codex (OpenAI account)          | `/setup/codex/hooks/install`         |
| GitHub Copilot                  | `/setup/copilot/hooks/install`       |
| Augment Code                    | `/setup/augment/hooks/install`       |
| Gemini CLI                      | `/setup/gemini-cli/gateway/install`  |

Run these **without** `sudo` — they configure the account you run them as. For fleet-wide deployment see [Deploy AI Tools via MDM](/mdm-integrations/deploy-ai-tools).

## Flags

| Flag                  | Purpose                                                                                                                                                                                                                                                                                            | Default                                |
| --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------- |
| `--domain <host>`     | Your Unbound **dashboard** host. The installer opens it in a browser to fetch your API key. Required unless you pass `--api-key`                                                                                                                                                                   | —                                      |
| `--api-key <key>`     | Use a key you already have and skip the browser step                                                                                                                                                                                                                                               | —                                      |
| `--backend-url <url>` | Your Unbound backend, if your organization runs its own                                                                                                                                                                                                                                            | `https://backend.getunbound.ai`        |
| `--gateway-url <url>` | The AI gateway your tool is pointed at, if your organization runs its own                                                                                                                                                                                                                          | `https://api.getunbound.ai`            |
| `--clear`             | Remove this tool's Unbound configuration. Needs no key and no URLs                                                                                                                                                                                                                                 | —                                      |
| `--backfill`          | Send recent local session history on install, so the dashboard isn't empty on day one. Backfills for **Claude Code hooks, Codex hooks and Copilot**. Cursor and Augment accept the flag and print *backfill is not supported* — they keep no transcripts on disk. The gateway installers ignore it | off                                    |
| `--debug`             | Verbose output                                                                                                                                                                                                                                                                                     | off                                    |
| `--config-dir <path>` | Claude Code only: the Claude config directory. Must match `CLAUDE_CONFIG_DIR` in your environment, or Claude Code won't read the install                                                                                                                                                           | `$CLAUDE_CONFIG_DIR`, else `~/.claude` |

<Warning>
  `--domain` only controls **where the browser goes to authenticate**. It does not move your model traffic.

  If your organization runs its own Unbound backend or gateway, pass `--backend-url` and `--gateway-url` as well. Passing `--domain` alone leaves the tool pointed at Unbound's default hosts, and everything appears to install correctly.
</Warning>

<Note>
  Pass values in the `--flag value` form, with a space. The **hooks** installers — Claude Code hooks, Codex hooks, Cursor, Copilot, Augment — scan the argument list for exact flag names, so `--domain=value`, `--api-key=value` and the rest are read as unknown arguments and silently ignored. On its own that stops the run with `Missing required argument: --domain or --api-key` even though you passed it, and alongside `--api-key` it installs successfully but records no dashboard host. `--config-dir` is the one exception there and accepts either form. The **gateway** installers parse arguments properly and take either form — but use the space form everywhere and you never have to remember which is which.

  These installers have no `--help` — the table above is the flag list.
</Note>

## On a managed device

On an MDM-managed device the Claude Code, Codex, Cursor and Augment installers stop and change nothing, naming the tool — `Skipped — Claude Code is managed by your organization (MDM)`, and likewise for the other three. They exit with status 3. The Copilot installer has no such guard and will install over an MDM deployment. That's expected: your MDM deployment is already in place and a per-user install can't override it.

## If the browser step doesn't finish

The installer waits for a callback from the dashboard you named in `--domain`. If it hangs, or ends with `No api_key found in callback. Exiting.`, the host you passed isn't the dashboard that can mint a key for your organization — check it against the URL you use to sign in.
