Skip to main content
continuum is the terminal client. It speaks the same wire protocol as the Mac, iPhone, and web apps, so a session you start from a shell shows up on your phone, and a session your Mac started is one continuum sessions away. Everything it prints as a human table also prints as machine JSON with --json, which is the point: this is the client you script against.
The CLI is in beta. It is newer than the Mac and iPhone apps and still moving; expect the occasional rough edge.

Install

The installers are user-local — no sudo, no system directories touched. They resolve the newest CLI release, verify the archive against the checksums published with it, and atomically replace any existing binary.
Prefer to read the script before running it, or pin a version:
Neither installer edits your PATH. Both tell you to add the install directory if it is not already there. Six archives ship per release, covering macOS, Linux, and Windows on both x64 and arm64. Windows gets a .zip; macOS and Linux get a .tar.gz so the executable bit survives.
CLI archives are not code-signed — the release pipeline has no cross-platform signing certificate, and manifest.json says so explicitly. The SHA-256 checks detect accidental corruption; they do not authenticate the origin, because anyone who can replace the archive can replace its checksum too. GitHub’s keyless build provenance is attached to the release artifacts on a best-effort basis. Verify the release origin yourself until Continuum ships a real release-signing trust root.

Updating

Automatic updates are deliberately off for the same reason. Updating is an explicit opt-in:
A read-only or system-installed binary is never replaced — use the user-local installer instead. If you have your own signing setup, CONTINUUM_UPDATE_MINISIGN_PUBLIC_KEY makes the updater require a minisign signature, and --require-signature makes it fail closed.

Connecting to a daemon

Every command resolves a daemon the same way. Direct HTTP defaults to 127.0.0.1:21731 — the canonical port for the Mac app’s daemon and for a headless continuum-agent. A missing token gives you a clear unauthorized error rather than a silent failure.
~/.clawdmeter is where a standalone daemon keeps its state. The desktop app bundles its own daemon, which keeps state inside the app’s data directory and binds a loopback port assigned at launch rather than the default 21731. To drive it, set CLAWDMETER_DATA_DIR to that folder (or point --token at the agent-token inside it) and pass the port it actually bound with --port.

Named profiles

Profiles hold non-secret connection metadata and new-session defaults, stored in your OS config directory (~/Library/Application Support/continuum/config.json on macOS, ~/.config/continuum/config.json on Linux, %AppData%\continuum\config.json on Windows). The file never accepts or stores bearer tokens. Explicit flags always beat a profile’s defaults.

Reaching a host that isn’t directly routable

--relay carries every request over the encrypted relay instead of direct HTTP — the same ChaCha20-Poly1305 channel the web app and iPhone use. The credential is the daemon’s own relay-pairing.json: on the daemon’s own box, bare --relay finds it; from another machine, copy it over and point at it with --relay-pairing <path> (which implies --relay). Guard that file like a credential — it is one. One limit worth knowing: a relay request must fit a single 32 KiB frame, so a very large prompt body should go over the direct path.

Commands

Sessions

session is the canonical group; the older top-level verbs remain as aliases.
Session creation is transport-only — the daemon does every process, repository, and worktree operation. If a provider has more than one account and you name none, creation fails rather than quietly billing the wrong subscription.

Review and status

Because every one of these takes --json, they compose:

Approvals and questions

Destructive permission choices require --confirm-destructive. questions handles the structured AskUser forms an agent raises mid-run.

Frontier groups

Run the same prompt across two or three provider/model/effort slots and keep the best answer:
pick-winner continues from one child and archives the others, so it requires --yes. turn-winner records a per-turn preference without destroying anything.

Cross-provider memory

continuum memory stores durable learnings — conventions, decisions, debugging workflows — per repo or globally on the daemon, then materializes them into every new session’s CLAUDE.md / AGENTS.md so every provider reads them natively. No single underlying CLI can do that.
It is off by default and asks for consent on first use, because memory captured from one provider is deliberately shared with all of them, and flush sends transcript text to an LLM for summarization. Storage is daemon-private (<dataDir>/memory/, mode 0600) and bounded so materialization never blows the agent’s context. A repo you never add memory to is never written to.

The TUI

A full terminal workbench: session list on the left, transcript and composer in the middle, a review pane on the right. The transcript renders markdown, reasoning, bounded tool calls and results, plans, todos, sources, artifacts, and structured question forms. Pending permissions arrive as a first-class option card; a destructive choice needs a second Enter. /remember and /flush route to memory rather than to the provider. Narrow terminals hide the sidebar and keep the transcript usable.

Shell completions

The daemon behind it

The CLI ships out of the same Go codebase as continuum-agent, the headless daemon that hosts sessions on a box. They are two separate executables with different jobs:
  • continuum is the client — it drives a daemon over HTTP or the relay, and runs everywhere.
  • continuum-agent is the daemon — it owns the processes, the repos, and the worktrees.
The Windows and Linux desktop app bundles both, which is why the CLI is already on any machine where you installed the desktop app. On a headless Linux VPS you install continuum-agent on its own and it becomes an execution host your other clients can target — see Remote devices.