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:Gemini CLI
Codex
GitHub Copilot
copilot CLI on your existing Copilot subscription.
Augment Code
Pi (Beta)
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:
Remove configuration
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:--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:
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: rununbound 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:
See MDM Integrations for deployment guides.

