Skip to main content
The unbound setup command configures AI coding tools to route through Unbound. It handles authentication, environment variables, and tool-specific config files automatically. If you are not logged in and --api-key is not provided, the browser opens automatically to authenticate before setup begins. Under sudo there is no browser step — setup stops with —api-key is required to set up tools (or run unbound login first). Do one of those two things.

Interactive setup

Run with no arguments to select tools from an interactive menu:

Default bundle

Install Cursor, Claude Code (hooks), Codex (hooks), Copilot (hooks), and Augment (hooks) in one command:

Individual tools

Cursor

Claude Code

Claude Code supports two modes:
Run without a flag for interactive mode selection.
The bare unbound setup claude-code (no flag) and unbound setup codex (no flag) commands open an interactive prompt to pick a mode. In a non-interactive shell (CI, SSH with < /dev/null, MDM bootstrap) the prompt has no input source and the command exits immediately without writing any config. Always pass --gateway or --subscription explicitly in headless environments.

Gemini CLI

Codex

GitHub Copilot

Hooks-based — works with both the VS Code extension and the copilot CLI on your existing Copilot subscription.

Augment Code

Hooks-based — works with both the Augment VS Code extension and the Auggie CLI.

Pi (Beta)

Extension-based — installs into pi’s extensions folder. Pi is not part of unbound setup --all. unbound onboard sets it up when pi is already on the device; otherwise install it on its own. unbound setup --all --clear does remove it. See Pi.

Instruction-only tools

These tools require manual configuration. The CLI prints the values to enter in each tool’s settings. Roo Code and Kilo Code need only their API provider set to Unbound plus your API key. Cline needs its API provider set to OpenAI Compatible, the gateway host with /v1 appended as its base URL, and your API key. Custom Access needs that same base URL and your API key.

One-step login + setup

Combine authentication and setup in a single command with --api-key:
When specifying multiple tools in one command, use the explicit form names:

Remove configuration

Remove every tool’s configuration in one command:

Uninstall everything

unbound nuke (alias unbound uninstall) removes Unbound entirely and returns the CLI to a fresh state. When it finishes, run unbound login (or unbound onboard) to set things up again. What it removes. Per-tool configuration and hook scripts; the export UNBOUND_*_API_KEY and export ANTHROPIC_BASE_URL lines Unbound added to your shell profiles (or the equivalent user environment variables on Windows); the scheduled discovery scan and the API key it runs with; and ~/.unbound/config.json. Run as root it also removes a binary install — /opt/unbound, its scanner job, its log-rotation entry, and /var/log/unbound.

Failure reporting

When a setup step fails, your organization’s admins see it — this device’s hostname, the step that failed and its exit code — so a broken enrollment does not vanish on the device. Nothing else is sent — no hardware identifiers — and the error you see on the device is unchanged. The scope follows your privileges — no flag to pick:
Add --yes to skip the confirmation prompt.

Setup flags


One-step onboarding

unbound onboard runs setup --all followed by device discovery in a single command. Useful for new user enrollment:
Pi is the one tool onboarding adds only where it is already in use. From CLI 1.16.20, unbound onboard also sets up Pi when it detects pi on the device, and skips it otherwise. Detected means the pi command is installed, or pi has been signed in to or run (~/.pi/agent/auth.json, ~/.pi/agent/sessions). With sudo, pi is looked for across every user on the device. Every other tool in the bundle is set up whether or not it is installed.

MDM setup (admin, requires root)

Scope is automatic: run unbound setup / unbound onboard with sudo to configure every user on the device (MDM/org scope), or without sudo to set up just the current user:
For device-wide onboarding in one step:
See MDM Integrations for deployment guides.