§04 · Connect & work

The exo CLI

Run cluster agents and tools, manage dashboard resources, and sync skills from the terminal.

The exo CLI is one static binary, no runtime dependencies. It talks to two places: the Exo dashboard API (tenant resources like deployments, roles, and skills) and your cluster's Exo Operator (the in-cluster Agent and Tool custom resources). It caches your session to disk, so you stay logged in across commands. Reach for it during incidents, when the UI is too slow.

Install

The installer grabs the prebuilt binary for your platform, drops it at ~/.exo/bin, and adds it to PATH. Builds ship for macOS (Intel and Apple Silicon), Linux (amd64 and arm64), and Windows.

terminal· bash
curl -fsSL https://exo.assets.adaptive.live/install.sh | bash
exo version

Login

exo login opens a browser at your Exo endpoint, runs the tenant's sign-in flow (password, OAuth, or SSO), and writes the token to ~/.config/exo/credentials.json (mode 0600). Later commands pick up the cached session on their own.

terminal· bash
exo login --endpoint https://exo.example.com

A single binary with two command surfaces

Commands fall into two families. Knowing which is which tells you where to look when a call fails.

  • Agentic commands (agent, tool) describe things living in a workload cluster and route through the platform: the backend relays to the in-cluster manager and records the session, no kubeconfig needed.
  • Platform commands (deployment, skill, role, team, idp, and the other resource verbs) call the Exo API directly with your bearer token from exo login.

Command reference

exo help· text
1# Session
2exo login Authenticate (browser, or --email/--password for CI)
3exo logout Delete cached credentials
4exo whoami Show the authenticated user (alias: exo me identity)
5exo me Show identity; "exo me permissions" shows effective perms
6exo version Print the CLI version
7
8# Cluster resources — platform-routed
9exo agent list | get | run (alias: invoke) | connect | mount
10exo tool list | get | create -f | delete | connect | exec |
11 pause | status | test | context [collect]
12exo fs list | ls | create | cp | resize | delete
13
14# Dashboard resources (via Exo API, requires exo login)
15exo deployment list | get | delete | rotate-token
16exo skill list | get | create | update | delete | sync
17exo sync Mirror tenant skills + policies onto this machine
18exo mcp list | get | tools | proxy | create | update | delete
19exo role list | get | create | update | delete
20exo team list | get | create | update | delete | add-user |
21 remove-user
22exo permission list | create | update | delete
23exo runtime-policy list | get | create | update | delete
24
25# Add --json to any command for machine-readable output.
26# -v / -vv / -vvv turn on tracing: lifecycle, +bodies, +headers.

exo run is a top-level shortcut for exo agent run. Resource nouns not listed above (guardrail, integration, sandbox, oauth-app, mcp-server) share the same generic CRUD surface.

Common workflows

Each has a full chapter behind it: attach to an agent, run an agent, connect to a tool, sessions & replay, skills, MCP servers, file systems, and policies.

attach to an agent· bash
exo agent run prod/checkout-bot --reason "investigating stuck order"
exo agent connect prod/default/checkout-bot
open a database tool· bash
exo tool connect prod/orders-db
exo tool exec prod/orders-db -- psql -c 'select count(*) from orders'
fire a run· bash
exo agent run prod/adaptive/triage-bot --reason "nightly triage"
exo agent list
exo agent get triage-bot -n adaptive
sync skills to disk· bash
exo skill sync --runtime claude --local --prune
exo sync
MCP servers and file systems· bash
exo mcp tools linear
claude mcp add linear -- exo mcp proxy linear
exo fs cp ./dataset.parquet build-cache:/data/dataset.parquet
exo fs ls build-cache:/data
exo agent mount ./src:/workspace/src --name triage-bot

Environment & config

environment· text
1EXO_ENDPOINT Dashboard API base URL (else credentials.json, else default)
2EXO_TOKEN Raw bearer token — highest precedence
3EXO_CLIENT_ID OAuth client credentials, exchanged at /api/v1/oauth/token
4EXO_CLIENT_SECRET (used when no EXO_TOKEN / credentials.json is present)
5EXO_CREDENTIALS Override path to credentials.json (default ~/.config/exo/)
6EXO_MANAGER_URL Direct autonomic-manager URL (bypass the kube-apiserver proxy)
7NO_COLOR Disable ANSI colour (https://no-color.org)