Skip to main content
The CLI is a thin shell over the SDK — same implementation, different ergonomics, so the two have capability parity.
Setting the device up is the wizard’s job, not the CLI’s. Installing, updating, uninstalling, signing in, switching accounts, turning capture or tracking on or off, and importing existing work all have a screen in the wizard that shows you the current state before it changes anything.The commands below are the scriptable half of those screens. Throughout these docs a Wizard / Command toggle marks a feature that has both — use whichever suits where you are.

Grammar

Connection flags are global and go before the command:
probe login also accepts them directly.

Addressing an entity

A bare ref is the slug. An id is written id:<uuid>.
Nothing is ever tried two ways, so a ref cannot mean two things. A bare UUID is refused as an unknown slug rather than resolved as an id.
The rule exists because the clever version was worse. With a resolver that tried a UUID first, a project whose slug happened to be another project’s id meant probe project delete <that string> deleted the wrong project — exit 0, a deleted line echoing the ref, nothing to restore. Refusing an ambiguous question is a good answer; not being able to ask one is better.

Async by default

Some writes queue locally and return immediately. Some do not. The split is deliberate. PROBE_ASYNC=0 turns queueing off for the three that have it. --async on run end skips the barrier. Both flags are also accepted after the subcommand, where they win.
Queued writes are fsynced and atomic, and survive a crash. probe flush (an alias of probe outbox drain) delivers everything and waits. See the outbox.

Scoping

Most commands default to the active workspace and project of the current context:
Override per call with --workspace-id, --workspace, or --project.

Reading output

Every read command prints JSON, so jq works everywhere:

Exit codes

Those two commands use exit 2 as an answer, not an error, so they compose into scripts:

Every command

All 40 command groups, with what each one is for.

Authentication

Device flow, tokens, contexts, and the read-only MCP credential.