Open source local control plane for coding-agent topologies.
Define your agent team in YAML. Boot it with one command. Claude Code and Codex in the same topology, managed as one system.
# Install
npm install -g @openrig/cli
# Prepare the machine (attempts tmux, cmux, Claude Code, Codex, tmux defaults — reports what worked)
rig setup
# Boot the demo rig (3 pods, 8 nodes, mixed runtimes)
rig up demo
# Open the UI
rig ui openAfter the demo boots, open the UI and click orch1.lead in the topology graph. Use Open CMUX to jump into a terminal for that node. If cmux is not available, use the tmux attach command shown in the node detail panel instead.
OpenRig manages the topology that coding agents form when you run them together. Not the agents themselves. The system they create: which sessions are running, how they relate, how to recover after a reboot, and how to stop it from becoming terminal sprawl.
- Define topologies in YAML (RigSpec) with pods, edges, and continuity policies
- Boot everything with
rig up— tmux sessions, harnesses, startup files, readiness checks - See the topology in a live graph with explorer, node detail, and system log
- Discover existing Claude Code and Codex sessions in tmux and adopt them into a managed rig
- Snapshot the full topology on
rig down, restore by name withrig up <name> - Communicate across agents with
rig send,rig broadcast, andrig chatroom - Evolve running topologies with
rig expand,rig shrink,rig launch,rig remove
Every agent runs in a tmux session you can attach to, inspect, and work with directly.
OpenRig ships with a demo rig you can boot in seconds:
rig specs preview demodemo (rig, pod_aware)
Launch-grade starter: a stable full product squad with two
orchestrators, implementation, QA, design, and two independent
reviewers.
Pod: orch1 (2 members)
lead — claude-code
peer — codex
Pod: dev1 (3 members)
impl — claude-code
qa — codex
design — claude-code
Pod: rev1 (2 members)
r1 — claude-code
r2 — codex
Also ships: implementation-pair, adversarial-review, research-team, product-team, and secrets-manager (HashiCorp Vault managed by a specialist agent).
Browse the library: rig specs ls
OpenRig is a local daemon + CLI + MCP server + React UI, built on tmux.
CLI / UI / MCP
|
Hono HTTP daemon
|
Domain services (52)
|
SQLite + tmux + runtime adapters
- CLI: 40+ commands designed for both humans and agents. Every mutating command ends with what happened, current state, and next action.
- UI: Explorer sidebar, topology graph with pod grouping, node detail panel, system log, chatroom.
- MCP: 17 tools so agents can manage their own topology (
rig_up,rig_ps,rig_send,rig_chatroom_send, etc.) - Runtimes: Claude Code, Codex, and terminal nodes. Adapters for Pi and OpenHands in development.
- RigSpec: Declarative multi-agent topology in YAML. Pods, members, edges, continuity policies, culture file.
- AgentSpec: Reusable agent blueprint with skills, guidance, hooks, profiles, and startup contracts.
- Pod: Bounded context group. Agents in a pod share memory and can maintain each other's context.
- Discovery:
rig discoverfingerprints existing tmux sessions.rig adoptbrings them under management. - Snapshot/Restore:
rig down --snapshotcaptures full state.rig up <name>restores from latest snapshot. Restore reports per-node outcomes (resumed, fresh, or failed). - RigBundle: Portable archive with vendored AgentSpecs and SHA-256 integrity. Share topologies across machines.
- Culture: CULTURE.md sets coordination norms for the group. Research rigs get exploratory culture. Implementation rigs get conservative, trust-but-verify culture.
A rig can package actual software alongside the agents that manage it. The shipped example is secrets-manager: a HashiCorp Vault instance operated by a specialist agent.
rig up secrets-manager
rig env status secrets-manager
rig send vault-specialist@secrets-manager "Check Vault health and report status." --verifyRequires Docker for service-backed rigs.
- Node.js 20+
- tmux
Optional:
- cmux for
Open CMUXnode surface controls - Docker for service-backed rigs and managed apps
rig setupattempts core machine preparation: tmux, cmux, Claude Code, Codex, and tmux defaults. It reports what it tried and what actually succeeded. If something fails, it gives the local agent enough context to finish the job.rig setup --fullattempts a broader operator workstation setup (jq, gh) on top of core.rig doctorinspects current system health and helps diagnose problems after setup. Use it when something stops working or after machine changes.
Both commands support --json for agent-driven workflows.
Managed runtime boot (during rig up) may modify runtime config to reduce permission and MCP friction. rig setup discloses these paths so agents know what was changed:
- global Claude:
~/.claude/settings.jsonfor OpenRig command allowlisting - global Claude state:
~/.claude.jsonfor managed workspace trust and onboarding completion - project Claude:
.claude/settings.local.jsonfor managed-session permissions - project Claude MCP:
.mcp.jsonfor OpenRig-managed MCP servers - global Codex:
~/.codex/config.tomlfor workspace trust and MCP servers
Already-running adopted sessions may need restart before they pick up newly written runtime config.
For agents: Ask the user whether they want core setup (rig setup) or the fuller workstation path (rig setup --full) before choosing the invocation. Inspect the result with --json and use rig doctor to finish any remaining machine-specific issues.
Anthropic shipped Claude Managed Agents — a cloud-hosted, Claude-only runtime at $0.08/session-hour. OpenRig is the local side: open source, cross-harness, runs on your machine, costs nothing.
- Website: openrig.dev
- Blog: Why I Built OpenRig
- Docs: openrig.dev/docs
- Open Specification: openrig.dev/specs
- Twitter: @_feralmachine
Apache 2.0
