Claw Orchestrator
A runtime for coding agents. Wrap Claude Code, Codex, Antigravity, Grok Build, OpenCode, or any custom CLI as persistent programmable sessions; coordinate them in multi-agent councils; run autonomous Planner / Coder / Reviewer loops; or hand a five-question interview to an Opus council that ships a deployed web app at
localhost:19000/forge/<slug>/.
Coding CLIs are designed for humans at terminals. Claw Orchestrator turns them into headless engines and stacks an agent platform on top: a 77-tool API that scales from a single session call up to a fully generated, deployed web app — reachable through the CLI, the OpenClaw gateway, the Model Context Protocol, or directly from TypeScript, and visible through an embedded three-tab dashboard.
https://github.com/user-attachments/assets/fbd2b0ea-28d8-4387-9894-c29cf15ba030
Control · Council · Autoloop · Ultraapp — the four movements in 35s
Features
| Capability | What it does | Reference |
|---|---|---|
| Persistent Sessions | Long-lived coding agents kept alive across requests, with full context, tool, model, and worktree control. | sessions.md |
| Multi-Engine Runtime | One interface over Claude Code, Codex, Antigravity (agy), Grok Build, OpenCode, and arbitrary custom CLIs. | multi-engine.md |
| Multi-Agent Council | Parallel agents in isolated git worktrees, voting on consensus until they agree. | council.md |
| Fan-out | Run one task across N engine/model agents in parallel and collect their answers, with an optional synthesis pass — the cross-engine best-of-N / diverse-perspective primitive (no rounds or worktrees). | tools.md |
| ultracode | session_start({ ultracode: true }) lets Claude orchestrate a dynamic JS workflow and fan out to subagents per task (Claude engine). | tools.md |
| Autoloop | Three-agent autonomous workspace iteration with independent engine/model selection for Planner, Coder, and Reviewer. Chat with the Planner; it spawns Coder + Reviewer into a self-iterating subloop and pushes you on regression, target-hit, or decision points. | autoloop.md |
| Ultraapp | A three-agent Opus council turns a five-question interview into a deployed web app — Tailwind UI, BYOK, file-queue runtime, smoke test, all live at localhost:19000/forge/<slug>/. | ultraapp.md |
| Embedded Dashboard | Three-tab UI for Autoloop, Council, and Forge with sidebar lifecycle controls, per-run live event streaming, and cookie-based auth via a /login redirect. | dashboard.md |
| OpenAI-Compatible Proxy | POST /v1/chat/completions translates OpenAI requests into native Anthropic, OpenAI, and Google calls and streams responses back in OpenAI shape. Point any OpenAI-SDK client at the orchestrator without changing call sites. | openai-compat.md |
| Durable Run Kernel | Declarative workflows over agent / fanout / council / verifier / human_gate / router / subflow / autoloop / ultraapp_* nodes. Every state transition is checkpointed, so a run survives a process restart and resumes at the node boundary. Retry, per-node timeout, cancel, steer, and bounded loops come from the kernel instead of from five hand-rolled state machines. | workflow.md |
| Verification Plane | Acceptance contracts the runtime executes itself — commands, HTTP probes, screenshots, diff policy, file assertions — producing an evidence bundle on disk. A run carrying a contract cannot reach completed unless it passes, and one without a contract completes as unverified rather than claiming success. | verification.md |
| Run Ledger & Spend Caps | Every turn on every engine is appended to a durable JSONL ledger — engine, model, tokens, cost, duration, and the council/fanout/autoloop it belonged to — queryable with clawo runs after a restart. Rows carry both the engine's self-report (ok) and the runtime's own measurement (verified), kept apart. maxBudgetUsd is enforced by the runtime, so a cap holds on Codex, Grok, agy and OpenCode too, not just Claude Code. | observability.md |
The full 77-tool surface is enumerated in tools.md.
Quick Start
npm install -g @enderfga/claw-orchestrator
clawo serve # dashboard at http://127.0.0.1:18796/dash
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');
Integrations
Standalone CLI
clawo serve # dashboard + HTTP server on :18796
clawo session-start fix-tests --engine claude --cwd . # start a session
clawo session-send fix-tests "Fix the failing tests" # send into it
Every command is documented in cli.md.
OpenClaw Plugin
curl -fsSL https://raw.githubusercontent.com/Enderfga/claw-orchestrator/main/install.sh | bash
Installs via npm, registers the plugin in ~/.openclaw/openclaw.json, restarts the gateway. All 77 tools become available to every OpenClaw agent.
Model Context Protocol Server
npm install -g @enderfga/claw-orchestrator # clawo-mcp is now on PATH
Register clawo-mcp with any MCP-compatible host: Hermes Agent, Claude Desktop, Cursor, Cline, Continue, Zed, Windsurf, Goose, and others. Per-host stdio-config snippets and the CLAWO_MCP_TOOLS allowlist for tight tool budgets are in mcp.md.
Agent Client Protocol Agent
clawo acp # or the dedicated binary: clawo-acp
MCP gives tools to an agent; ACP makes you be the agent. clawo acp speaks
Agent Client Protocol over stdio, so Zed, JetBrains,
Neovim, Emacs, the VS Code ACP extension — or dsh via its subagent-acp provider —
can drive Claw Orchestrator as their coding agent.
Every other agent in that ecosystem is a single agent. This one is a fleet: the model
selector is grouped by engine, so one dropdown holds Claude, Codex and Grok models at
once and switching it switches engine mid-session, and /council, /ultraplan and
/ultrareview run multi-agent orchestrations from the chat box. Setup, the dsh YAML
block, and the cancellation and permission limitations are in
acp.md.
Engine Compatibility
| Engine | CLI | Tested Version |
|---|---|---|
| Claude Code | claude | 2.1.237 |
| Codex | codex | 0.148.0 |
| Antigravity | agy | 1.1.15 |
| Grok Build | grok | 1.0.5 |
| OpenCode | opencode | 1.18.18 |
| Custom CLI | any | — |
Any coding CLI that runs as a subprocess can be wired up as a custom engine — see multi-engine.md.
Contributing
See CONTRIBUTING.md. Run npm run build && npm run lint && npm run format:check && npm run test before submitting.
License
MIT — see LICENSE.