Skip to main content
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
Windows — PowerShell has no process substitution, so download the installer first and run it:
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

Run these without sudo — they configure the account you run them as. For fleet-wide deployment see Deploy AI Tools via MDM.

Flags

--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.
Pass every value in the --flag value form, with a space — not --flag=value. A run that is missing a value it needs stops with Missing required argument: --domain or --api-key. --config-dir is the one exception and accepts either form.These installers have no --help — the table above is the flag list.

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: on a managed device it installs anyway, into ~/.copilot. It does not displace your MDM deployment — Copilot’s managed settings file takes precedence over anything a per-user install writes.

In a dev container

A dev container has its own filesystem, so the hooks the installer wrote into your home directory on the host are not there. Add the Unbound Feature to your devcontainer.json and Claude Code and Cursor inside the container enforce your policies too — prompts, tool calls and shell commands are all covered:
Supply your credentials at run time, either as UNBOUND_CLAUDE_API_KEY (Claude Code) or UNBOUND_CURSOR_API_KEY (Cursor) in the container’s environment or by mounting ~/.unbound/config.json — nothing is baked into the image. The container needs python3 and curl; the Feature installs them where it can. If either is missing, the build log says so — unbound-hooks: WARNING — and no policy is enforced inside that container: every call is allowed. A discovery scan that runs inside a container is listed in AI Tools Discovery with a Container badge rather than Device.
Early access. It covers Claude Code and Cursor inside the container, and no other tool. Email support@unboundsecurity.ai before relying on it for a fleet.

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 received. Exiting. or Failed to receive 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.