Releases: mco-org/mco
v0.8.0
What's New
Chain Mode (--chain)
Run providers sequentially — each provider's output is fed as context to the next, enabling "challenge and supplement" workflows where later agents critically review earlier agents' findings.
Per-Provider Perspectives (--perspectives-json)
Assign different review focus areas to each provider. For example, Claude focuses on security while Codex focuses on performance. Configurable via CLI flag or .mcorc.json.
Consensus Badges
Findings now show cross-agent agreement indicators:
- Parallel mode:
[2/3 agree]/[1 agent only] - Chain mode:
[confirmed by 2/3]/[unconfirmed]
Session Bug Fixes
- Critical: Fixed
--no-waitdata loss — daemon no longer writes to closed socket; results stored for later retrieval via newsession resultcommand - Broader exception handling:
adapter.cancel()catches all exceptions, preventing worker thread death - Provider validation:
resume_session()validates provider matches
Session Retry with Error Classification
Session dispatch now uses the orchestrator's RetryPolicy with exponential backoff. Errors are classified (timeout, rate limit, network → retryable; auth, invalid input → non-retryable). Partial output preserved on timeout.
New CLI Commands
mco session result <name> <request_id>— retrieve results of async (--no-wait) requests
Strict --perspectives-json Validation
Invalid JSON, non-object root, or non-string values now raise clear errors instead of being silently ignored.
558 tests passing.
v0.7.0
What's New
9 new features closing competitive feature gaps:
CLI UX (P0)
--file path/--file -/ piped stdin — flexible prompt input--agent NAME "command"— register custom ACP agents--quiet— pipe-friendly output (mutual exclusion with--json/--stream)- Config files —
.mcorc.json(project) +~/.mco/config.json(global) with deep merge
Sessions (P1)
session ensure— idempotent create-or-return--no-wait— async send, returns after queue ack- Ctrl+C graceful cancel during
session send
ACP Protocol (P2)
ContentAccumulator— structured rendering (thinking, tool_call, diff blocks)- Bidirectional JSON-RPC handlers —
fs/read_text_file,fs/write_text_file,terminal/*
Security & Correctness
- Terminal handlers disabled by default, require explicit
provider_permissionsopt-in allow_pathsenforced end-to-end through ACP transport- Per-provider permission keys inherited from shim adapters and applied to ACP launch commands
- Empty stdin/file prompts rejected with proper error routing (including
--stream jsonl) - Thread-safety hardening:
_pending_lock,shlex.split, guarded assertions
506 tests pass.
v0.6.0
What's New
Stateful Multi-Turn Sessions (#67)
mco session start/send/broadcast/stop/resume/history/list— persistent agent sessions with unix socket daemon- Conversation history injected into each turn (max 20 turns, 50k chars)
Session Prompt Queue & Cancellation (#68)
- Request queue (max depth 10, FIFO) with worker + handler thread model
mco session cancel NAME— interrupt running prompt + drain queuemco session queue NAME— show running request ID and queue depth- Two-phase send protocol (queued ack → final result)
ACP Transport Layer (#69)
- Agent Client Protocol support — structured JSON-RPC over stdio
--transport acpflag onrun/reviewcommandsruntime/acp/package: transport, client, adapter (zero dependencies)- Known ACP commands for claude, codex, gemini; others fall back to shim
ACP Protocol Conformance Tests (#70)
- Data-driven test framework: 8 scenarios defined in JSON
- 3 fake agent behaviors (standard, reverse notification order, error handling)
- New scenarios added by editing
scenarios.json— no Python changes needed
v0.5.0
Highlights
- Diff-only review:
--diff,--staged,--unstagedflags to review only changed code. Supports--diff-basefor custom comparison refs. Findings taggedin_diff/relatedvia local post-processing. - MCP server mode:
mco servestarts a stdio MCP server with 5 tools (mco_review,mco_run,mco_doctor,mco_findings_list,mco_memory_status). Uniform{"ok": true/false}response envelope. - Structured streaming:
--stream jsonloutputs real-time JSONL events to stdout. 9 event types with thread-safe emitter, closed provider state machine, and pure stdout protocol (no stderr leakage).
Packaging
- npm package version:
0.5.0 - PyPI package version:
0.5.0
v0.4.0
Highlights
- Cross-session memory (opt-in):
--memoryflag persists findings and agent reliability scores across runs via evermemos-mcp. - Finding lifecycle management: open → passive_fix_candidate → fixed, with two-strike passive confirmation.
- Agent reliability scoring with cross-validation, cold-start weight mixing, and confidence grading.
- New subcommands:
mco findings(list/confirm findings) andmco memory(agent-stats/priors/status). - Fully opt-in: without
--memory, MCO behaves identically to v0.3.x.
Packaging
- npm package version:
0.4.0 - PyPI package version:
0.4.0
v0.3.5
Highlights
- Default providers list now includes all 5 supported providers (claude, codex, gemini, opencode, qwen).
- Claude adapter:
plan→bypassPermissionsfor full tool execution. - Codex adapter:
workspace-write→danger-full-accessfor full filesystem and network access. - Gemini adapter: added
-y(YOLO mode) for automatic tool approval in non-interactive mode. - Qwen adapter: added
-y(YOLO mode) for automatic tool approval in non-interactive mode.
Packaging
- npm package version:
0.3.5 - PyPI package version:
0.3.5
v0.3.3
Highlights
- Added
mco doctorwith human-readable and--jsonprovider readiness checks. - Added review output formats:
--format markdown-prand--format sarif. - Added opt-in token usage reporting via
--include-token-usage. - Added deterministic cross-provider finding deduplication with
detected_byprovenance. - Added opt-in synthesis pass via
--synthesizeand--synth-provider.
Packaging
- npm package version:
0.3.3 - PyPI package version:
0.3.3
v0.3.2
[0.3.2] - 2026-02-27
Changed
- Added run-mode answer extraction fields per provider:
final_text,response_ok, andresponse_reason, while keepingoutput_textas raw output for debugging. - Improved
final_textextraction quality for event-stream outputs by preferring high-signal answer candidates over trailing low-signal tokens.
v0.3.1
Changed
- Made stdout mode truly non-persistent by default: no artifact files are written unless
--save-artifactsor--result-mode artifact/bothis used. - In stdout mode without artifact writes,
artifact_rootand provideroutput_pathnow returnnull. - Unified adapter detect/probe binary resolution and environment handling with runtime execution (
shutil.which+ sanitized env) and refined auth probe reason classification (auth_check_failed,probe_config_error,probe_unknown_error).
v0.1.2
v0.1.2 - Distribution and Installation
Date: 2026-02-26
Highlights
- Added Python packaging metadata (
pyproject.toml) andmcoconsole entrypoint. - Added npm wrapper package (
@multi-cli-orchestrator/cli) for Node-based environments. - Added release workflows for PyPI and npm publishing.
- Updated README with installation instructions (
pipx, source install, npm wrapper).
Install
Recommended:
pipx install multi-cli-orchestratorFrom source:
python3 -m pip install -e .Node wrapper:
npm i -g @multi-cli-orchestrator/cliNotes
- npm wrapper requires
python3available onPATH. - YAML config still requires optional dependency:
pip install pyyaml.