Skip to content

CLI reference

collie <command> [options]. Bare collie opens the default chat surface and runs first-time onboarding when nothing is configured. Full help for any command: collie <command> --help.

Everyday

Command What it does
collie Terminal chat (TUI). First run picks a provider.
collie -p "<task>" / collie run "<task>" Run one task headlessly.
collie web Serve the browser GUI — streams the verification gate live. First run offers a companion display name; rename later under Settings → My Collie.
collie web --name Rowan Serve explicitly as kennel dog Rowan. This selection outranks the editable companion display setting and appears read-only for that server; it does not rename the Slack app or mail address.
collie web --lan Same, but also listen on this machine's network address so the iOS app (CollieIOS) can pair. Network clients get nothing until they pair: the token is handed to loopback only, and /pair shows a one-shot code the phone trades for it at /api/pair (HMAC challenge/response — the secret never crosses the wire). Add --qr for a QR fallback of the same one-shot secret.
collie app Open the native desktop window (Windows).
collie tui Rich terminal chat with a live tool/gate/diff timeline.
collie repl Interactive REPL that keeps the conversation thread.

Running work

Command What it does
collie run "<task>" --json Final result object (tokens, cost, verified).
collie run "<task>" --stream-json Live NDJSON: tool · edit · repro-gate · receipt.
collie loop --goal "<g>" --until "<shell>" Iterate toward a goal; stop when the check exits 0.
collie pack "<task>" -n 3 --check "<shell>" --apply Best-of-N; keep only what passes.
collie run "<task>" --runner codex-exec Hand the task to an external coding harness as the worker. Collie still owns budget, approval, verification, the receipt, and cancellation.
collie runners What this machine can use as a worker: install state, version, login route, billing class, capabilities.
collie selftest $0 deterministic end-to-end (mock model, real tools).

Choosing the worker (--runner)

--provider/--model choose the brain — who thinks. --runner chooses the worker — who actually carries the task out: whose tool loop, whose sandbox, whose login. The default is collie, Collie's own harness, and it is also the only worker with the browser, desktop, MCP, and per-action approval tools.

collie run "add a regression test for the parser" --runner codex-exec
collie run "tidy the docstrings in harness/ops.py" --runner claude-code
collie run "…" --runner auto        # choose per task, but only inside RUNNER_POOL
Value Worker
collie Collie's own harness. Default; also the fallback for every other value.
auto Choose per task from the members listed in RUNNER_POOL, and never from outside it.
codex-exec OpenAI Codex CLI (codex exec --json), under your existing codex login.
codex-sdk Official OpenAI Codex Python SDK in a sanitized background sidecar; optional collie-harness[codex].
codex-app-server OpenAI Codex App Server (experimental local stdio JSON-RPC), with approval round-trips, steer, and interrupt.
claude-code Claude Code (claude -p), under your existing claude login.
pi-rpc Pi RPC with file tools only, native steer/follow-up/fork/compact, and no shell.

What does not change when you pick an external worker: the budget ceiling, the approval policy, the verification gate, the receipt, session persistence, and cancellation are all still Collie's. The worker saying it is done is not a completion signal — verified is written only by a host check that actually ran. What does change: the worker runs its own tools inside its own sandbox and its work is billed to its login. Only App Server currently has a tool-approval round-trip; other external routes deny approvals or omit shell.

Persist a choice with collie config RUNNER codex-exec, and set the pool auto may draw from with collie config RUNNER_POOL "collie,codex-exec". Listing an external worker in RUNNER_POOL is the consent to use its login and billing route; a worker that is not in the pool is never picked automatically, even when it is installed and logged in. An explicit --runner overrides both — and if the worker you named cannot run, the command exits with the reason instead of quietly using a different one. --persona and --goal are not supported with an external worker.

Inspecting workers (collie runners)

Command What it does
collie runners Table of every known worker: key, phase, installed, version, login, billing class, last compatibility result, caveats.
collie runners probe <key> One worker in detail. Read-only metadata: shutil.which, --version, whether a login file exists and when it expires. No network, no credential is read.
collie runners probe <key> --live Additionally ask the vendor CLI's own status command (claude auth status --json, codex login status) so the billing class is attested rather than guessed.
collie runners compat [--runners a,b] [--live] [--report PATH] Run the conformance matrix and write a dated JSON + Markdown report.
Any of the above --json Machine-readable output.

compat checks each worker on the same terms: probe shape, child-environment hygiene, CLI handshake and minimum version, frame parsing under malformed output, that the worker's own goal/scheduler control plane is disabled, and that its billing class is one Collie recognises. --live adds the columns that cost tokens — a real one-turn edit, a resume, a cancel, and a usage readback. Capabilities the latest report could not verify on this host are downgraded to unavailable rather than assumed, which is why the table describes your machine and not the design intent.

Later-phase Prime and Hermes rows run only a read-only admission fingerprint against their documented programmatic CLI surface. A PASS there means “candidate binary/protocol recognized,” not “adapter enabled”; normal isolation, billing, framing, cancel, and live-turn columns remain gated. Pi is phase 2 and runs the normal offline conformance columns.

See Workers for the per-worker capability and boundary tables.

Setup & configuration

Command What it does
collie setup Install optional deps, pick a provider, pre-download the memory model.
collie setup --check Diagnose only; install nothing.
collie init Warm the memory model + validate the codemap for this repo.
collie init --rules Additionally have the model write an AGENTS.md.
collie config List every setting and its effective value.
collie config KEY Print one setting.
collie config KEY VALUE Set one setting (e.g. collie config LANG zh-tw).
collie mcp list \| login \| logout \| tools Manage MCP servers.
collie google connect Connect Gmail (read your mail, write drafts) and Google Calendar (read your events) for the morning report. Opens Google's sign-in page in your browser and prints the link too; --no-browser only prints it. Collie never sends mail.
collie google status Check the connection with Google and show what it allows: connected, some access not allowed, needs you to connect again, not connected, or not set up. Exits non-zero unless Collie can use it.
collie google disconnect Revoke Collie's access at Google and delete the connection from this computer (also in Settings → Connections).
collie library scaffold \| list \| show \| validate \| plan Create a safe starter, inspect installed extensions, or review a local package and its exact digest/scopes.
collie library install \| enable \| disable \| rollback \| uninstall Operate the trusted extension lifecycle; activation and removal have explicit review boundaries.
collie library revoke <id> --digest <sha256> --reason "…" --yes Revoke one exact installed digest; active matching code is disabled fail-closed.
collie library connections \| audit List active data-only connection descriptors or inspect lifecycle audit records.
collie library publisher-payload \| publishers \| publisher-trust \| publisher-untrust Produce externally signable package bytes and manage exact local Ed25519 publisher-key trust. Publisher trust never approves authority scopes.
collie doctor [--no-probe] Diagnose version drift, durable recovery, credentials, services, and notification delivery without changing state.
collie resilience matrix [--report PATH] Run isolated network/restart/corruption/disk/tamper/process-kill fault injections without a model or network.
collie resilience soak --duration 12h --interval 5m --report PATH Repeat the fault matrix with an atomic, restartable checkpoint.

Desktop (Windows)

Command What it does
collie wallpaper --install Live desktop (clock, weather, apps) behind your icons; starts at logon.
collie wallpaper --stop / --uninstall Stop it / remove the autostart.
collie browser-bridge Run the bridge the browser extension polls (the browser_* tools).
collie browser-bridge --install Start the bridge at logon.

See The desktop app for what these do and how they fit together.

Benchmark lab & delegation

Command What it does
collie compare / collie harnesses Run and compare harnesses on the same task.
collie dashboard Open the results dashboard.
collie prefix Measure the real prefix token cost on a provider.
collie mem Inspect / manage the memory store.
collie jobs ls \| inbox \| run \| confirm \| receipts Delegated work.
collie mission start "<goal>" Persist a durable campaign and return its ID immediately.
collie mission start "<goal>" --domains x.com,*.y.com --actions-per-hour 6 Start with the saved Mission autonomy mode and named, paced boundaries. --review asks before irreversible actions; legacy --auto explicitly selects Hands-off. Also supports --max-actions and --max-steps.
collie mission start "<goal>" --code --workspace PATH --overnight --provider claude-agent-sdk --model claude-opus-4-8 --no-paid-overage --verify-command "python -m pytest -q" Start Collie's bounded native Opus route through the official Claude Agent SDK. Startup first runs an isolated SDK inference probe and fails closed if the subscription route is unavailable.
collie mission ls \| status \| run \| pause \| resume \| cancel \| confirm \| continue \| accept \| check \| reconcile Inspect, gate, and control durable campaigns.
collie jobs daemon Foreground wake loop for Jobs/Missions; catches up after sleep. collie supervisor install keeps it available after sign-in/reboot.
collie activity [--health] One durable view of foreground runs, Missions, specialists, automations, recovery, and worker health.
collie recovery ls \| show \| reconcile Inspect crash-uncertain tool boundaries; reconciliation always requires an explicit resolution and --yes.
collie hooks status \| check \| trust \| untrust Review deterministic hooks and trust only the exact configuration hash.
collie supervisor install \| status \| uninstall Manage the per-user Windows 24×7 worker supervisor.
collie automations upsert \| list \| status \| tick \| daemon Manage durable timer/file/page/webhook automation execution.
collie acp Run as an ACP agent over stdio (Zed / JetBrains / neovim).

Overnight code always requires an existing workspace. --verify-command can be omitted only when Collie detects a project check; startup fails if no check is available or the baseline snapshot is incomplete. Per-Mission --provider and --model freeze the SDK route without changing global Settings. Native overnight currently requires claude-agent-sdk and an explicit model such as claude-opus-4-8; Codex OAuth is not an overnight route. --no-paid-overage records the user's provider-side attestation. Collie invokes Anthropic's official Claude Agent SDK directly—not claude -p and not a raw OAuth Messages call—with Collie's custom replacement system prompt. setting_sources=[]; SDK built-in tools, skills, plugins, agents, slash commands, MCP servers, and fallback model are disabled. The worker environment excludes API keys and routing/proxy overrides, and there is no API-key, paid-credit, provider, or model fallback. Hitting a plan limit waits or asks for the user; it never buys, reloads, or switches to metered billing automatically.

The route accepts an eligible signed-in Pro/Max plan (live-tested on Max) and remains subject to its limits. Current validation is a short end-to-end test, not a 12-hour soak. The 12-active-hour Mission leash is a maximum authority envelope, not a promise of unlimited use, a completed overnight endurance result, or a guarantee that future provider policy will remain unchanged.

Configuration precedence

COLLIE_<KEY> environment variable → ~/.collie/settings.json (the Settings panel / collie config) → built-in default. A hard-set env var always wins. A token/cost budget (COLLIE_MAX_COST / COLLIE_MAX_TOTAL_TOKENS) stops a run at a ceiling.

For first-party identity, explicit collie web --name → hard-set COLLIE_COMPANION_NAME → saved COMPANION_NAME → a single kennel dog → generic Collie. The saved name is display-only across Home, Mobile, Remote, and Ambient; Slack apps, @ handles, and dog-mail addresses keep their own external identities until renamed through those systems' workflows.