Skip to content

CLI

exo is the authoritative interface to Exosuit state. Canonical project state lives in SQLite (RFC 10180); the CLI is how you read and mutate it. Files on disk are configuration or documents, not a back door into state.

You do not need to memorize the surface. exo map is the agent-first entry point for “what should I do next?” (RFC 0080):

  • exo map — show the active phase, its goals and tasks, and suggested actions.
  • exo map --next — emit a single best next action, preferring repairs when the repository is unhealthy.
  • exo map --why <command> — explain a command’s preconditions and effects before you run it.

Commands divide into steering commands, which explain what to do next and why, and action commands, which mutate state.

Every command supports a shared output protocol:

  • --format human (default) — agent-first text, including a steering block that reports what happened, what is next, and any perception items (Steering and perception).
  • --format json — machine-readable output with the same steering data as a structured steering block, used by the VS Code extension over the machine channel.

The surface is organized into namespaces. The groups below map onto the SOAR loop and the planning layer.

CommandPurpose
exo statusSnapshot: active phase, goals, tasks, git state.
exo mapSteering: next actions for the active phase.
exo contextFull context dump for recovery.
exo project resolveReport project identity, workspace root, state root, database path, and runtime paths (RFC 10184).
CommandOperations
exo epochlist, status, start, finish, add, remove — the thematic level above phases.
exo phasestart, status, finish, add, remove, update, history — the active unit of work.
exo goaladd, list, reorder, complete, remove — outcomes inside a phase, sized as PER cycles.
exo taskadd, list, start, log, update, complete — concrete actions under a goal.

exo strike start opens a singleton high-priority goal in the active phase (kind = "strike"). The legacy exo impl namespace was consolidated into goal and task (RFC 00223).

CommandOperations
exo rfccreate, list, show, status, promote — the RFC lifecycle (RFCs).
exo ideaadd, show, list — backlog items awaiting triage.
exo inboxadd, list, resolve — the steering channel for entity-scoped feedback (RFC 10181).
exo axiomadd, list, remove — codified principles, canonical in SQLite.
CommandOperations
exo verifyRun the project’s verification checks (Verify and close).
exo sidecarinit, link, status, unlink, plus repo {status, commit, push} — bind a repository to portable personal state (sidecars reference).
exo runRun a task defined in exosuit.toml.

docs/rfcs/ is a managed directory: RFC files have schemas, IDs, and cross-references. Create RFCs and ideas through the CLI (exo rfc create, exo idea add), never by hand-writing files, so that ID generation and indexing stay correct.