
Claw Orchestrator: A Unified Runtime for Coding Agent CLIs
📦 npm • 📖 Documentation • 🎬 Demo film • 📝 Changelog • 📚 Citation
Claw Orchestrator runs Claude Code, Codex, Antigravity, Grok Build, OpenCode and any Agent Client Protocol agent (Kimi Code, dsh) as persistent sessions behind one API. A run counts as done only when checks the agent did not write pass: you declare the checks, the runtime runs them and reads the exit codes, and the evidence stays on disk. Runs are checkpointed workflows that survive a crash, and every turn on every engine is recorded with its model, tokens and cost.
One bug, one acceptance contract, five engines, three runs each, first attempt only. The runtime ran the checks itself: 9 verified, 4 refuted, 2 errored (Grok Build hit its free-tier usage limit). One task, not a benchmark. How the film was made, and how to re-run it.
The 40-second film, with sound
https://github.com/user-attachments/assets/5bf9bea8-e5ac-4632-a292-a80a45831dff
News
- [2026-10] v7.16.0:
clawo goal --engine clauderuns a goal on Claude Code's/goal, with the same checkpointing, resume and verification as a Codex goal. - [2026-10] ResearchBoost-Agent, an autonomous agent that profiles, optimizes and validates AI training code, now runs its goal mode on Claw Orchestrator.
- [2026-10] v7.14.0: any Agent Client Protocol agent runs as a session (
engine: 'acp'), with presets for Kimi Code and dsh. - [2026-10] v7.13.0:
clawo goalkeeps a Codex/goalrunning for hours on one thread, reattaches it after a crash, and judges the result with your checks. - [2026-09] Declare, Compile, Look, built on Claw Orchestrator, was presented as a talk at the ECCV 2026 Workshop on Multimodal Digital Agents.
- [2026-08] v6.0.0: the durable run kernel and the verification plane. A run survives its own process dying, and a run with an acceptance contract is judged by the runtime, not by the agent.
Highlights
- ✅ Verdicts the agent cannot write: acceptance contracts (commands, HTTP probes, screenshots, diff policy, file
assertions) run by the runtime. A run ends
verified,refutedorunverified, and editing the tests its contract runs refutes it (guide). - 🔀 Many vendors, one API: Claude Code, Codex, Antigravity, Grok Build, OpenCode, any ACP agent and custom CLIs.
clawo fanoutasks several at once;session_handoffmoves a live conversation to another engine in the same workspace (guide). - 💾 Survives a crash: every state transition is checkpointed; resume, retry, timeout, cancel and steer come from the kernel (guide).
- 🎯 Long goals:
clawo goalruns a Codex/goalunattended on one thread, resumes it after usage limits within a bound, optionally inside your own sandbox (guide). - 💰 Known cost: one per-turn ledger across engines (
clawo runs) and amaxBudgetUsdcap the runtime enforces on every engine (guide). - 🔌 Fits your tools: a CLI, an MCP server, an ACP agent for editors, an OpenAI-compatible endpoint, a TypeScript SDK and an OpenClaw plugin (ways to run).
claude-squad, Conductor and Vibe Kanban are interfaces for running agents side by side in worktrees; Claude Code subagents and Codex's parallel attempts stay within one vendor. Claw Orchestrator is a headless runtime underneath: several vendors behind one API, durable workflows, and a verification step the agents cannot edit. They can be used together.
Quick Start
Requires Node 22+ and at least one engine CLI installed and logged in (claude, codex, agy, grok or opencode).
npm install -g @enderfga/claw-orchestrator
clawo serve & # local runtime + dashboard on 127.0.0.1:18796
clawo solve "The test fails. Fix price.js." --engine codex \
--check "npm test" --check "node ../holdout/price.spec.mjs" --wait
clawo verify <runId> # each check, why it failed, the files that changed
clawo runs --since 1h # every turn on every engine: model, tokens, cost, verdict
clawo fanout "How would you speed up this test suite?" --engines claude,codex,grok --synthesize --wait
clawo goal --objective-file GOAL.md --check "npm run bench:check" --check-timeout 120 --wait
The server writes an access token to ~/.openclaw/server-token and the CLI reads it from there. To sign in the
browser once, open http://127.0.0.1:18796/login?token=<token>&redirect=/dash.
- 🧪 Acceptance contracts and evidence bundles (guide)
- 🔁 Workflows, resume and the goal node (guide)
- 🖥️ Every CLI command (guide)
- 🧰 All 78 tools (guide)
Ways to run
| For | Start here | |
|---|---|---|
| CLI and dashboard | Terminals and scripts | clawo serve, then cli.md |
| MCP server | Claude Code, Claude Desktop, Cursor, Cline, Continue, Zed, Windsurf, Goose, Hermes Agent | claude mcp add clawo -- clawo-mcp, then mcp.md |
| ACP agent | Zed, JetBrains, Neovim, Emacs, the VS Code ACP extension, dsh | clawo acp, then acp.md |
| OpenAI-compatible endpoint | Any OpenAI SDK client or webchat, without changing call sites | POST /v1/chat/completions (openai-compat.md) |
| TypeScript SDK | Embedding the runtime in your own service | import { SessionManager } from '@enderfga/claw-orchestrator' (below) |
| OpenClaw plugin | Every OpenClaw agent gets all 78 tools | curl -fsSL https://raw.githubusercontent.com/Enderfga/claw-orchestrator/main/install.sh | bash |
import { SessionManager } from '@enderfga/claw-orchestrator';
const manager = new SessionManager();
await manager.startSession({ name: 'fix-tests', engine: 'claude', cwd: '/project' });
const result = await manager.sendMessage('fix-tests', 'Fix the failing tests');
From an MCP host, ask for workflow_start with template solve, a task, and a contract such as
{"checks":[{"type":"command","cmd":"npm","args":["test"]}]}. In an ACP editor, the model selector is grouped by
engine, so one dropdown switches between Claude, Codex, Antigravity and Grok models mid-session.
Engine compatibility
| Engine | CLI | Tested version |
|---|---|---|
| Claude Code | claude |
2.1.310 |
| Codex | codex |
0.164.0 |
| Antigravity | agy |
1.4.6 |
| Grok Build | grok |
1.0.70 |
| OpenCode | opencode |
1.19.4 |
| ACP agent | any | Kimi Code 2.3.1, dsh 0.2.1-rc.2 |
| Custom CLI | any | — |
An agent that serves the Agent Client Protocol on stdio runs as
engine: 'acp'; any other coding CLI that runs as a
subprocess can be wired up as a custom engine.
How the table stays current
The versions above are what the weekly sweep last ran. scripts/sweep.ts measures each core engine's installed,
pinned and upstream version, diffs the flags the wrapper passes against the binary's --help, runs one live turn
through the real wrapper class, smokes the ACP and MCP entry points, and checks src/models.ts against the
OpenAI, Anthropic and xAI published price tables. It contains no model call, so the check that reports a wrapper as broken does not
share the wrapper's failure modes.
scripts/sweep-workflow.json wraps the same script as a durable run on this project's own kernel: verifier → router
→ an agent that drafts the alignment on a sweep/<date> branch → a human gate. A person reviews and merges; the
orchestrator does not edit its own code unattended.
All features
| Capability | What it does | Reference |
|---|---|---|
| Persistent sessions | Long-lived agents kept alive across requests, with context, tool, model and worktree control. | sessions.md |
| Multi-engine runtime | One interface over the engines above, any ACP agent, and custom CLIs. | multi-engine.md |
| Session handoff | Moves a live conversation to another engine or model in the same workspace; the old session keeps running. | sessions.md |
| Verification plane | Acceptance contracts the runtime runs itself, with an evidence bundle on disk; a run without a contract ends unverified. |
verification.md |
| Durable run kernel | Declarative workflows over agent, goal, fanout, council, verifier, human_gate, router and more, checkpointed. |
workflow.md |
| Fan-out | One task across N engine/model agents in parallel, with an optional synthesis pass. | tools.md |
| Council | Parallel agents in isolated git worktrees, voting until they reach consensus. | council.md |
| Autoloop | A Planner, Coder and Reviewer iterating on a workspace, each with its own engine and model; you chat with the Planner. | autoloop.md |
| Ultraapp | A short structured interview turned into a deployed web app at localhost:19000/forge/<slug>/. |
ultraapp.md |
| ultracode | session_start({ ultracode: true }) lets Claude orchestrate a dynamic workflow of subagents. |
tools.md |
| Run ledger, spend caps | Every turn on every engine in one JSONL ledger (clawo runs), and a maxBudgetUsd cap enforced on every engine. |
observability.md |
| OpenAI-compatible proxy | POST /v1/chat/completions routed to persistent sessions on the engine the model name selects, streamed back in OpenAI shape. |
openai-compat.md |
| Dashboard | Autoloop, Council and Forge tabs with lifecycle controls and live event streams, and a Runs tab of durable workflow runs. | dashboard.md |
Built on Claw Orchestrator
- ResearchBoost-Agent: an autonomous agent that profiles,
optimizes and validates AI training code; its long goal-mode runs use
clawo goal(blog). - Declare, Compile, Look: coordinate-free layout generation with vision-in-the-loop repair, ECCV 2026 Workshop on Multimodal Digital Agents (talk).
Using Claw Orchestrator in a project or paper? Open a pull request to add it here.
Citation
If Claw Orchestrator helps your research, please cite it:
@misc{fang2026claworchestrator,
title = {Claw Orchestrator: A Unified Runtime for Coding Agent CLIs},
author = {Fang, Guian},
year = {2026},
howpublished = {\url{https://github.com/Enderfga/claw-orchestrator}}
}
Research built on Claw Orchestrator:
@misc{researchboost2026infra,
author = {{ResearchBoost Team}},
title = {{ResearchBoost}: {RSI} starts with Infra},
year = {2026},
url = {https://ydove0324.github.io/hx_resume/blog/researchboost/}
}
@inproceedings{fang2026declare,
title = {Declare, Compile, Look: Coordinate-Free Layout Generation with Vision-in-the-Loop Repair},
author = {Fang, Guian and Liu, Mengsha and Shou, Mike Zheng},
booktitle = {ECCV 2026 Multimodal Digital Agents Workshop},
year = {2026},
url = {https://openreview.net/forum?id=Romd50Ce0w}
}
Contributing
See CONTRIBUTING.md. Run npm run build && npm run lint && npm run format:check && npm run test
before submitting.
License
MIT, see LICENSE.