CLI reference

July 11, 2026 ยท View on GitHub

The installed help output is authoritative:

mco --help
mco run --help
mco review --help

Commands

CommandPurpose
mco runGeneral multi-Agent invocation
mco reviewThin read-only raw-answer preset over the same invocation runtime
mco doctorProvider presence, auth, version, risk, and Skill checks
mco agentList, inspect, and discover provider models
mco skillsRead, inspect, and sync the bundled Skill
mco sessionPersistent multi-turn provider sessions
mco serveRun the MCP server

The old findings command and findings-oriented memory commands were removed. Calling them returns migration guidance and does not start a provider.

Invocation selection

OptionPurpose
--agent [alias=]provider:modelRepeatable explicit invocation declaration
--providers provider,...Invocation-native shorthand: one configured/default model per provider
--provider-models-jsonModel mapping used by the provider shorthand
--target-pathsComma-separated task scope paths
--task-idSafe stable task/artifact identifier
--prompt / --fileInline prompt, prompt file, or stdin with --file -

Aliases must be unique. Repeating the same provider/model without distinct aliases is rejected. Configuration and provider/model validation happen before any Agent invocation starts.

Runtime and access options

OptionDefaultPurpose
--execution-moderun: write; review: read_onlyProvider permission profile
--allow-paths.Fail-closed MCO scope boundary
--enforcement-modestrictReject unsupported provider policy or use best_effort
--provider-permissions-jsonunsetProvider-specific permission overrides
--provider-context-jsonunsetProvider context policy
--provider-timeoutsunsetProvider-specific invocation hard-timeout overrides
--invocation-hard-timeout180Per-invocation wall-clock deadline; 0 disables
--stall-timeout900Maximum time without Provider output progress
--review-hard-timeout1800Global task deadline; 0 disables
--max-provider-parallelism0Parallelism policy for configured execution

Output options

OptionPurpose
--result-mode stdoutStream/return answers and clean up temporary artifacts
--result-mode artifactPersist artifacts and return the operational result
--result-mode bothPersist artifacts and stream/return answers
--save-artifactsUpgrade the default stdout mode to both
--jsonPrint one final machine-readable envelope
--stream jsonlPrint machine-readable event lines as invocations progress
--stream liveHuman live mode; non-TTY output falls back to JSONL
--include-token-usagePreserve reliable provider usage metadata when available

--json, --quiet, and --stream are mutually exclusive. In JSON/JSONL modes stdout contains only the selected protocol. Provider diagnostics and progress warnings go to stderr.

Multi-stage options

OptionBehavior
--chainRun invocations sequentially and pass complete prior Markdown through a manifest
--debateAdd a read-only stage over prior raw answers
--synthesizeAdd a read-only synthesis stage over the available run/debate raw records
--synth-providerSelect the provider invocation used for synthesis
--perspectives-jsonAdd an explicit per-provider prompt perspective
--divide files|dimensionsAssign non-overlapping scope files, or declaration-ordered rotating review lenses, without interpreting answers

Chain, debate, and division are mutually exclusive. Perspectives and division are explicit prompt/scope coordination only: --perspectives-json prepends a Provider-specific Review Perspective; --divide files sorts repository files in the selected scope, excludes ignored/local/build directories, and assigns the remaining files round-robin in declaration order; --divide dimensions rotates the fixed review lenses in that order without changing target_paths. Dry-run shows the complete resolved invocation prompts and target paths. These options preserve raw invocation answers and never derive semantic findings or consensus. Debate and synthesis mark earlier answer files as untrusted reference material. A valid earlier answer allows later stages to continue after a partial failure; no valid input produces an explicit dependent-stage failure.

mco review uses the same runtime. Its default prompt is a short natural-language review request, and an explicit --prompt is passed unchanged. It never injects a findings schema.

Artifacts

With persistent result mode, <artifact-base>/<task-id>/ contains:

result.md
run.json
stages/<stage>/invocations/<invocation-id>.md
stages/<stage>/context/manifest.json
stages/<stage>/result.md
stages/<stage>/run.json
provider-runs/                 # internal transport/provider evidence

Each stage is deterministic in declaration order. Root result.md groups the stages that actually ran; synthesis comes first when present, while every raw answer and explicit failure record remains below it. Per-invocation Markdown preserves the decoded Agent answer body. Temporary execution removes its task directory and reports artifact_root: null.

Exit codes and task status

CodeMeaning
0All invocations completed successfully (complete)
1At least one invocation succeeded and at least one did not (partial)
2No invocation completed successfully, or input/configuration failed (failed)

Invocation-level status remains explicit: success, failed, timeout, or cancelled. The task status is only complete, partial, or failed.

Removed surfaces and migration

The findings command/schema, semantic normalization, deduplication, confidence, consensus, passive lifecycle, findings-driven memory, Markdown-PR, SARIF, and content-based INCONCLUSIVE surfaces are gone. The old --format, --strict-contract, --memory, --space, --diff, --staged, --unstaged, and --diff-base flags return migration errors. Use --target-paths and a raw prompt for scope, then select text, JSON, JSONL, or file-backed artifacts.