mvschwarz 20991e3cc1 Release 0.5.0
Mission control in the terminal, context library, permission
guarantee test-pinned, provider usage observability, plan amendment
done right, honest CLI output, build discipline.

Mission control in the terminal. Typing `rig` (or `rig tui`) opens
the TUI: file-tree navigator, dense agent detail (cwd, runtime as
text, context %), topology graph with the whole fleet on one screen,
honest status/activity language, motion design, working scrolling,
and honest width-clip/scope indicators throughout.

0.5.0 contains 0.4.8 in full. One lineage, no divergence, no
dual maintenance: 0.5.0 = 0.4.8 (the permission-policy release) +
the slices below. The 0.4.8 code + shipped skills all reside on the
0.5.0 lineage via the back-merge that reconciles the 0.4.8 release-
artifact history with the 0.5.0 working lineage.

Permission guarantee, now test-pinned. 0.5.0 upholds the 0.4.8
promise — OpenRig never writes permission entries into your Claude
`settings.json` — and pins it with a permanent guard test plus an
empty-writer sweep. The one sanctioned exception is the
project-local `acceptEdits` floor that 0.4.8 itself defines. Warning
ordering in permission-policy-discovery emits pre-existing
main-floor warnings first, then the permission-policy attachment
warning; presentation-only, semantic fence unchanged.

Context library. `rig context` stores and composes context; `rig
walk` delivers it paced; `--context` / `--body-context` ride
send/broadcast/queue-create with snapshot + provenance. Grammar is
strict: nouns store and compose (`rig context` never delivers);
verbs deliver (`rig send`/`broadcast`/`walk`/`queue` via `--context`
/ `--body-context`). The 0.4.x context-window usage viewer is
removed; the `rig context` name belongs to the library.

BEHAVIOR CHANGE (0.4.8 → 0.5.0). `rig.yaml` startup `context_pack`
entries are no longer delivered at instantiation. They are rejected
with a teaching error pointing at compose + delivery verbs. Users
who adopted them on 0.4.8 (shipped days ago; tiny exposure) should
compose the pack via `rig context compose` and deliver via a
dedicated delivery verb (`rig send --context`, `rig broadcast
--context`, `rig walk`, or `--context` / `--body-context` on queue
create). The bundle router populates the library store without
delivering (delivery-free-noun ruling applied at the startup
surface).

Provider usage observability. The daemon tracks account-level usage
per host — the "am I about to hit a usage limit" question — exposed
via `GET /api/provider/usage` and `rig provider status`. Honest
explicit-unknown and conflict-shows-both-facts; Codex account-switch
flows preserved.

Plan amendment done right. `rig scope slice approve --re-approve
--reason` re-stamps a locked plan with an append-only audit trail,
killing the old already_approved Status-note workaround.

Honest CLI output. `rig ps` says when it is showing one rig of many;
`rig send --json` returns structured errors as `{fact, consequence,
action}`; the activity-hook fix ends the fleet-wide "producer link
stale" advisories (operator-facing quality improvement worth
naming).

Build discipline. Contributor gates/lanes SSOT lives at
`docs/reference/developing.md` (encoded by the slice-12 gates
policy). The web UI formally in maintenance mode — CLI/TUI primary,
never "deprecated".

Two new bundled skills join the shipped set alongside the 0.4.8
skills: `applying-a-permission-policy` (Tier-A: the agent-driven
translation invoked at `rig setup --policy` for Locked/Standard/Open
policies) and `delegating-work` (Tier-A: every-agent distribution).
The `openrig-user` SKILL.md is updated with the 0.5.0
context-library + paced-delivery + `--context` / `--body-context`
awareness. Two additional 0.5.2-lane maturation-gated skills
(`retiring-and-inheriting-a-seat` and `oversight-team`) sit in the
oracle at draft stage and are correctly deferred to a later release
per the maturation-gate contract.

Formal CHANGELOG entries for 0.4.7, 0.4.8, and 0.5.0 plus
`docs/releases/v0.4.7.md` + `docs/releases/v0.4.8.md` +
`docs/releases/v0.5.0.md` follow as a combined post-cut docs pass.
2026-08-05 03:25:45 -07:00
2026-07-06 01:20:09 -07:00
2026-08-05 03:25:45 -07:00
2026-07-06 01:20:09 -07:00
2026-04-09 17:08:40 -07:00
2026-08-05 03:25:45 -07:00
2026-08-05 03:25:45 -07:00

OpenRig

A harness wraps a model. A rig wraps your harnesses. Define your agent team in YAML, boot it with one command. Claude Code and Codex in the same rig, managed as one system.

OpenRig turns AI coding agents from a pile of terminal sessions into a persistent, organized team. A rig is the team that doesn't go away. If you've got tabs full of agents you're afraid to close, this is the layer you're missing: it's open source, it's local, and you're four commands away.

The OpenRig UI is experimental and in maintenance mode. It is not under active development; support is best-effort. The CLI is the primary supported interface. Contributions welcome.

npm install -g @openrig/cli
rig setup
rig up product-team
rig ui open

OpenRig UI

It runs locally: a daemon, a SQLite database, a CLI, and a dashboard. The agents are ordinary Claude Code and Codex sessions in tmux. product-team is the fuller starter, 7 seats, 4 Claude and 3 Codex, with an orchestration HA pair plus development and review pods.

Because 4 Claude seats run at once, single-plan users should expect provider throttling. For the light-footprint path, use conveyor, a 4-seat starter with 2 Claude and 2 Codex.

# Preview the smaller starter
rig specs preview conveyor

# Boot the light-footprint path
rig up conveyor

First Run

After product-team boots, rig ps shows the fleet map and rig ps --nodes --rig product-team shows the running pods and seats. When you're ready to shut the team down and bring it back, use the same rig name:

rig ps
rig down product-team
rig up product-team

rig ps is a fleet glance. rig down product-team snapshots the team and stops it. rig up product-team brings it back by name from that snapshot.

What It Does

OpenRig is a multi-agent harness — it manages the system that coding agents form when you run them together. Not the agents themselves, but the team 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 with rig up <name>
  • Communicate across agents with rig send, rig broadcast, and rig 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.

Starter Rigs

OpenRig's hero starter is product-team, the fuller product-development rig:

rig specs preview product-team
rig up product-team

Use it when you want the week-one experience OpenRig is built around: an orchestrator HA pair, development work, review work, and enough moving pieces for the coordination layer to matter.

For a smaller starter, use conveyor:

rig specs preview conveyor
rig up conveyor

conveyor is the smallest shippable software factory, one command. It keeps the footprint lower for single-plan users while still showing a real handoff path through intake, planning, build, and review.

Also ships: implementation-pair, adversarial-review, research-team, and secrets-manager (HashiCorp Vault managed by a specialist agent).

Browse the library:

rig specs ls

How It Works

OpenRig is a local daemon + CLI + MCP server + React UI, built on tmux.

CLI / UI / MCP
      |
Hono HTTP daemon
      |
  Domain services
      |
  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 OpenCode in development.

Key Concepts

  • RigSpec: Declarative multi-agent harness definition 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 discover fingerprints existing tmux sessions. rig adopt brings them under management.
  • Snapshot/Restore: rig down --snapshot captures 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.

Agent-Managed Software

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." --verify

Requires Docker for service-backed rigs.

Requirements

  • Node.js 20, 22, or 24 (even-numbered LTS releases; odd releases like 25 lack native addon prebuilds)
  • tmux

Optional:

  • cmux for Open CMUX node surface controls
  • Docker for service-backed rigs and managed apps

Setup and Troubleshooting

  • rig setup attempts 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 --full attempts a broader operator workstation setup (jq, gh) on top of core.
  • rig doctor inspects 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 for core bootstrap and spec-selected runtime resources. rig setup discloses these paths so agents know what may be changed:

  • global Claude: ~/.claude/settings.json for minimal OpenRig command allowlisting
  • global Claude state: ~/.claude.json for managed workspace trust and onboarding completion
  • project Claude: .claude/settings.local.json for context collector/activity hooks and selected claude_settings_fragment resources
  • project Claude MCP: .mcp.json for selected claude_mcp_fragment resources
  • global Codex: ~/.codex/config.toml for workspace trust and selected codex_config_fragment resources

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.

Comparison with Claude Managed Agents

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.

Full comparison

License

Apache 2.0

S
Description
Build your own network of agents from Claude Code, Codex and Pi: persistent teams with roles, shared context and owned work.
Readme
80 MiB
0 Stars 1 Watchers 0 Forks
OpenRig 0.7.9
Latest
2026-11-07 05:53:33 -10:00
Languages
TypeScript 97.3%
JavaScript 2.2%
Shell 0.2%
Python 0.2%
CSS 0.1%