← Back to archive

Repo of the Day

mvschwarz/openrig: Multi-agent harness that runs Claude Code and Codex together as one system

Published: Oct 1, 2026

Open repository ↗

Multi-agent harness that runs Claude Code and Codex together as one system - mvschwarz/openrig

Summary

OpenRig is a TypeScript orchestration harness that turns individual AI coding agents (Claude Code, Codex, Pi) into a managed, persistent team. Engineers define multi-agent topologies in YAML "rig specs," then boot the team with one command. Each agent runs in its own tmux session, and the whole network is visible through a terminal UI backed by a local daemon.

What it is useful for

OpenRig addresses terminal sprawl when running multiple AI coding agents. Concrete uses documented in the README:

  • Running Claude Code and Codex together as one managed system instead of juggling separate terminal sessions per provider.
  • Owner/checker workflows where one agent implements a change and another reviews the exact same candidate. The first-project starter ships exactly this pattern.
  • Larger product squads with orchestrators, implementation, QA, design, and independent reviewers via the product-team starter.
  • Discovering and adopting existing tmux sessions into a managed rig with rig discover and rig adopt.
  • Snapshotting a full topology with rig down --snapshot and restoring it by name with rig up <name>.
  • Service-backed rigs: the shipped secrets-manager example runs a HashiCorp Vault instance managed by a specialist agent, accessible via rig send ... --verify.
  • Coordinating across agents with rig send, rig broadcast, and rig chatroom, plus an experimental Slack integration (rig slack manifest).
  • Protecting a seat you type into manually with rig seat set-typing-guard so the system holds automatic messages instead of typing over your work.

How engineers can use it

Requirements: Node.js 22 or 24 (Node 20 is no longer supported; on Apple silicon use Node 22), tmux, macOS or Linux. Native Windows is not supported and WSL2 has not been tested.

Install:

npm install -g @openrig/cli
rig setup --dry-run

Preview and launch a starter in your repository:

cd /path/to/your/repository
starter=first-project
rig specs preview "$starter" --kind rig
rig up "$starter" --cwd . --plan
rig up "$starter" --cwd .
rig tui --shared

Then give the owner one bounded outcome:

rig send "dev-owner@$starter" 'Implement <one useful change>. Track the task in the queue and return its ID.'

Other documented starters: first-project-claude, first-project-mixed, conveyor, implementation-pair, adversarial-review, research-team, secrets-manager. Browse the library with rig specs ls.

Important limitations called out in the README: OpenRig writes provider hooks, trust records, and workspace files (Claude's .claude/settings.local.json, Codex's ~/.codex/config.toml, an OpenRig block in ~/.tmux.conf). Some writers recover unreadable settings as empty objects, which is not a complete preservation guarantee, so back up relevant configs before first use. Activity relays exclude prompt text and tool arguments. See the README's "What OpenRig changes on your machine" section for full detail.