Free to browse, every day. Go Pro for unlimited installs and Airsc MCP.

See Pro
MCP serverCautionAgent workflow & memoryAdvanced

claw-orchestrator

Enderfga · Enderfga/claw-orchestrator

Run multiple coding agents behind one API and automatically verify their work using your own custom test checks.

Run Claude Code, Codex, Antigravity, Grok Build and OpenCode behind one runtime, and a run only counts as done when checks it didn't write pass. Cross-engine fan-out, councils, session handoff, spend caps, MCP server, ACP agent.

597 stars103License: MITUpdated 3 days ago0 opens

Preview

▍

What you can do with it

  • Run a task across Claude and Grok simultaneously to compare solutions.
  • Force agents to pass a local test suite before marking a task as done.
  • Track costs and token usage across different coding engines in one place.

Safety check

Caution

Usable, but read the notes first.

  • ●Installer downloads a remote script and pipes it to the shell.install.sh

Automated scan of the repo files. Always review code you run.

From the README

Claw Orchestrator

Run Claude Code, Codex, Antigravity, Grok Build and OpenCode behind one runtime, and a run only counts as done when checks it didn't write pass.

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. Real runs, recorded locally — 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

Coding agents grade their own work: "All tests pass ✓". Claw Orchestrator runs them as persistent sessions behind one API and keeps the verdict out of their hands. You declare the checks, the runtime executes them and reads the exit codes, and the evidence stays on disk.

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

What you get

You want to…Claw Orchestrator gives you
Stop trusting "All tests pass ✓"Acceptance contracts — commands, HTTP probes, screenshots, diff policy, file assertions — that the runtime runs itself. A run with a contract ends verified, refuted or unverified, never "the agent said so". Editing the tests a contract runs refutes the run. → verification
Use more than one vendorPersistent sessions for Claude Code, Codex, Antigravity, Grok Build, OpenCode and custom CLIs behind one interface. clawo fanout asks several of them the same question at once. → multi-engine
Switch engines mid-tasksession_handoff replays a live conversation onto another engine in the same workspace. → sessions
Know what it costA durable per-turn ledger across engines (clawo runs) and a maxBudgetUsd cap the runtime enforces on every engine. → observability
Runs that survive a crashDurable workflows: every transition is checkpointed; resume, retry, timeout, cancel and steer come from the kernel. → workflow
Call it from your own toolsAn MCP server (clawo-mcp), an ACP agent (clawo acp) for Zed, JetBrains and other ACP editors, an OpenAI-compatible endpoint, a TypeScript SDK, and the CLI. → integrations

How it relates to other tools. 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: 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   # dashboard at http://127.0.0.1:18796/dash

The server writes an access token to ~/.openclaw/server-token; the CLI reads it from there. Open http://127.0.0.1:18796/login?token=<token>&redirect=/dash once to sign in the browser.

From a terminal:

clawo solve "Fix the failing tests" --engine claude --check "npm test" --wait
clawo fanout "How would you speed up this test suite?" --engines claude,codex,grok --synthesize --wait
clawo workflow list

From Claude Code, or any MCP host:

claude mcp add clawo -- clawo-mcp

Then ask for workflow_start with template solve, a task, and a contract such as {"checks":[{"type":"command","cmd":"npm","args":["test"]}]}.

From TypeScript:

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');

All features

| Capability | What it does

View source on GitHub