CLI
The ovld CLI is the terminal-first interface for Overlord. Use it to configure your setup, install agent connectors, create and launch missions, run the local runner, and review delivered work.
Install
# Install the CLI globally via npm
npm install -g --no-fund overlord-cli
The published package is client-only: it ships command parsing, config and auth onboarding, connector setup, an HTTP backend client, and the local runner/launcher. It does not bundle a database — persistence lives behind the backend you point it at (the desktop/local backend or a hosted one).
First run
Run the guided setup to point the CLI at a backend, log in, install connectors, and choose the terminal used for launched agents:
ovld setup
Then confirm the connection:
ovld doctor # verify backend reachability, connectors, and credentials
ovld config list # show the resolved backend target
Authentication
# Configure the backend (interactive if unset), then log in with email/password
ovld auth login
# Log in with a long-lived USER_TOKEN (headless / CI)
ovld auth login --token out_xxxxxxxxxxxxxxxxxxxx
# Show backend URL and login status
ovld auth status
Account creation happens in the desktop app. In headless environments, set OVERLORD_USER_TOKEN (or OVLD_USER_TOKEN / USER_TOKEN) instead of logging in interactively — it is read directly and takes precedence over stored credentials. Mint tokens with ovld user-token create --label ci --expires-in 90d.
Point the CLI at a backend
Configuration lives in overlord.toml (per-instance, uncommitted; generate it with ovld init).
# Local backend (defaults to http://127.0.0.1:4310)
ovld config set local
ovld config set local http://127.0.0.1:4310
# Hosted backend
ovld config set cloud https://overlord.example.com
Install agent connectors
Connectors let a coding agent speak the Overlord protocol and receive mission context in its native harness.
# List installable connectors
ovld agent-setup
# Install or repair one connector (claude, codex, or cursor)
ovld agent-setup claude
# Install every supported connector at once
ovld agent-setup all
Common options: --dry-run to preview, --home <dir> to target a specific OVLD_HOME, and --json for machine-readable output. Re-run ovld agent-setup <agent> after an update to keep the connector in sync.
Create and launch missions
# Create a draft mission (prints a mission id like 1:1042)
ovld create "Add a user-facing error when the upload fails"
# Create a multi-objective mission
ovld create "Refactor the auth middleware" \
--objectives-json '[
{"objective": "Draft a plan for the refactor"},
{"objective": "Implement the refactor per the plan"}
]'
# List missions
ovld missions list --status next-up,execute
# Launch an agent on a mission locally (opens a terminal with context pre-loaded)
ovld launch claude --mission-id 1:1042
# Queue an agent without spawning it here (a runner claims and launches it)
ovld prompt "Investigate the memory leak" --agent codex
Launch flags include --model, --thinking, --working-directory, --branch, --no-worktree, --pre-command, --terminal, and a repeatable --flag passthrough. If no project resolves from the current directory, register it first with ovld add-cwd or pass --project-id.
Terminal runner
When the web or desktop app enqueues an execution request (Run or auto-advance), a local runner claims the row and launches the agent for you. The backend never opens terminals itself.
# Poll continuously and launch queued requests (polls every 3s by default)
ovld runner start
# Claim and launch at most one queued request, then exit
ovld runner once
# Show this machine's runner identity and visible queue
ovld runner status
# Clear one active queue row by objective id
ovld runner clear <objective-uuid>
# Clear every active queue row visible to the runner
ovld runner clear-all
Common options: --poll-interval-ms, --project-id, --branch, --no-worktree.
See Agent Execution & Runner for architecture diagrams and the full request lifecycle.
Review delivered work
# Read the delivery summary for a mission
ovld mission deliveries 1:1042
# See every file change with its rationale
ovld changes rationales --mission-id 1:1042
# Full assembled mission context (history, shared state, artifacts)
ovld mission context 1:1042
When to use the CLI
- Configuring the CLI and installing agent connectors on a new machine
- Creating and launching missions from the terminal without the desktop app
- Running
ovld runner startso Run / auto-advance opens agents automatically - Reviewing deliveries and change rationales
- Headless or CI environments where the desktop app is unavailable
Tips
- Run
ovld helporovld <command> --helpto see available options. - Use
ovld doctorafter upgrades to confirm connectors and the CLI are in sync. ovld updateupgrades the globaloverlord-cliinstall;ovld update --checkonly compares versions.- On a local backend, the desktop app and CLI share
~/.ovld/auth.json— log in once and both work.