Reference

CLI reference

SOBA launch modes, top-level flags, provider subcommands, and check commands.

This page lists the SOBA Agent v0.6.x CLI surface available from the console.


1. Launch modes

CommandPurpose
soba "prompt"One-shot task with session persistence
sobaInteractive TUI when the process is running in a TTY
soba -iExplicit interactive TUI
soba -cContinue the latest session
soba -rPick a session with the interactive selector
soba -s <id> "prompt"Continue a specific session
soba --no-session "prompt"Run without saving session history

2. Top-level flags

Session and modes

FlagShortDescription
--interactive-iStart the TUI
--continue-cContinue the latest session
--resume-rPick a session
--session <id>-sOpen a specific session
--no-sessionβ€”Do not save history to disk

Provider and model

FlagShortDescription
--model <id>-mOverride the model for one run; use provider/model to select a provider explicitly
--api-key <key>-kOverride the API key for one run
--base-url <url>β€”Override the OpenAI-compatible base URL

An unqualified model ID stays on the configured default provider. A qualified value such as openrouter/deepseek/deepseek-v4-flash selects openrouter and sends deepseek/deepseek-v4-flash as its model ID.

Limits

FlagDescription
--budget <n>Limit the task token budget
--max-output-tokens <n>Limit response output tokens
--max-tokens <n>Deprecated alias for --max-output-tokens
--max-completion-tokens <n>Limit reasoning/completion tokens
--context-window <n>Override the model context window
--max-agent-iterations <n>Emergency limit for model/tool loop iterations
--max-stalled-iterations <n>Iterations without progress before stall recovery
--max-run-minutes <n>Maximum duration of one task
--bash-max-timeout-seconds <n>Maximum timeout for one bash tool call in seconds; default is 300

Interface and behavior

FlagDescription
--lang <en|ru|zh>Interface language
--theme <name>TUI theme
--no-colorDisable ANSI colors
--no-streamDisable streaming
--streamExplicitly enable streaming
--debugWrite loop decisions to the session JSONL
--no-auto-compactDisable proactive compaction

Sound

FlagDescription
--sound-enabledEnable sound notifications
--no-soundDisable sound notifications
--sound-volume <0..1>Volume
--sound-repeatRepeat the sound until the next event or state change

Info

FlagShortDescription
--help-hShow help
--version-vShow version

3. Proof commands

Proof bundles are persisted in .soba/evidence/*.soba-proof.json after accepted agent finishes. Current proof bundles include a compact evidence index, finish claims, changed files, checks, commands, permission receipts, risks, and review actions. Permission receipts record each executed tool call's trust level, approval kind, approval value, decision, reason, and safer alternatives when SOBA can suggest a least-privilege rewrite; auto means SOBA's trust policy allowed the call without prompting. New receipts also contain proofId, runId, and a SHA-256 integrity.digest. soba verify validates schema and content integrity, supported claim references, command outcomes, mutation ordering, diff completeness, permissions, and secret redaction.

CommandPurpose
soba proveShow the latest proof bundle for the current project
soba prove --lastExplicitly show the latest proof bundle
soba prove --format markdownRender the latest proof as Markdown
soba prove --format jsonPrint the latest proof as JSON with proofPath
soba prove <path>Show a specific .soba-proof.json file
soba verifyValidate the latest proof bundle structure and internal references
soba verify --format jsonPrint verification issues as JSON
soba verify <path>Validate a specific .soba-proof.json file
soba explain-claim <claim>Explain one claim from the latest proof with expanded evidence references
soba explain-claim <claim> --proof <path>Explain one claim from a specific .soba-proof.json file

soba prove, soba verify, and soba explain-claim do not start the agent runtime and do not require provider credentials.

soba verify uses stable policy exits: 0 verified, 1 invalid, 2 partially verified, 3 unverified, and 4 blocked. JSON output includes accepted, outcome, reason, and exitCode. Legacy receipts without integrity metadata remain readable, but are downgraded to partially_verified with reason legacy_unsealed_proof and exit code 2.


4. Project Memory commands

Project Memory lives in .soba/memory/. soba memory doctor inspects the persisted knowledge files and memory capsules without starting the agent runtime. It reports knowledge file counts, estimated token usage, capsule source provenance, stale capsules, missing sources, outside-project source references, and corrupt capsule files.

CommandPurpose
soba memory doctorInspect Project Memory health for the current project
soba memory doctor --format jsonPrint the report as JSON for CI or scripts
soba memory doctor --format markdownRender the report as Markdown
soba memory staleShow only stale or broken memory capsules and related issues
soba memory stale --format jsonPrint stale/broken memory receipts as JSON for CI or scripts
soba memory verifyVerify Project Memory health with a compact CI-friendly report
soba memory explain <query>Explain relevant memory capsules, source receipts, and doctor issues
soba memory explain <query> --format jsonPrint the explanation as JSON for scripts

Exit code is 0 only when memory is healthy. Stale or broken memory returns 1 and writes the report to stderr. For soba memory stale, exit code is 0 only when there are no stale or broken capsules and no memory doctor issues. For soba memory verify, exit code is 0 only when the verification report is verified: true. For soba memory explain, exit code is 0 only when at least one matching capsule is safe to use; stale, broken, or missing matches return 1.

soba memory doctor, soba memory stale, soba memory verify, and soba memory explain do not start the agent runtime and do not require provider credentials.


5. Provider subcommands

The provider registry is managed through the soba provider sub-route.

CommandPurpose
soba provider helpProvider CLI help
soba provider listList built-in and custom providers
soba provider show <id>Show provider definition
soba provider use <id>Make a provider active
soba provider add <id> ...Add a custom provider
soba provider remove <id>Remove a custom provider

soba provider add

Supported flags:

FlagDescription
--name <name>Human-readable name
--base-url <url>OpenAI-compatible base URL
--api-key-env <VAR>Env var with the API key; empty value means a keyless provider
--adapter <openai|anthropic>Adapter id; runtime path is oriented around OpenAI-compatible APIs
--default-model <id>Default model
--model <spec>Model spec; the flag can be repeated
--from-file <path>Load provider definition from JSON
--set-activeSwitch to the added provider immediately

--model format:

id=name,contextWindow,maxOutput[,supportsStreaming[,supportsThinking]]

Example keyless local provider:

soba provider add ollama \
  --base-url http://localhost:11434/v1 \
  --model llama3.1="Llama 3.1",8192,2048 \
  --set-active

8192,2048 is a gentle starting point for a local model: context window first, max output tokens second. Larger values such as 128000,8192 can put a lot of pressure on memory and make a laptop feel painfully slow.


5. Practical check commands

soba --version
soba --help
soba prove --last
soba verify --last
soba explain-claim claim_1 --last
soba provider list
soba --no-session --max-agent-iterations 1 "Answer with one word: ok"

For development in the repository:

soba -i --lang en --theme graphite

6. Direct shell in the TUI

In interactive mode, shell commands can be run directly:

!git status --short
!bun test
!!bun run build

! runs the command immediately. !! runs it without adding output to the transcript. If you want the agent to see and analyze the output, ask it to run the command through a normal prompt, which uses the bash tool.

Next

On this page