Lifecycle: a rig you can grow and shrink while it runs
Documented against OpenRig 0.5.14. Help text uses "node" where these pages say seat, for a seat's position in the running rig.
What it is for
A rig is a describable thing: one spec, booted as one unit, changed while it runs, stopped and brought back by name. You do not tear a rig down to add a seat, and you rarely start from nothing. The library ships starters you can boot by name; a working topology can be exported to a spec later; sessions you started by hand can be discovered and adopted into a rig without restarting them.
The three verbs you will use first
Boot a starter, or your own spec. The source is a library name, a path to a rig.yaml, or a .rigbundle. --plan previews without executing.
rig up first-project
rig up ./rig.yaml --plan
rig up secrets-manager
Grow it while it runs. rig grow adds one or more seats by name to an existing pod, or a new pod with --new-pod; --runtime defaults to claude-code and --cwd defaults to the current directory. rig add does the same from a member fragment file.
rig grow my-rig reviewer-2 --pod review
rig grow my-rig indexer --new-pod index --runtime codex
Stop it, or one seat of it. rig down tears the rig down. A running rig attempts a snapshot before teardown on its own; --snapshot states that intent explicitly, and a failed snapshot is reported without stopping the teardown. Help uses "node" where this page says seat, for a seat's position in the running rig. rig launch <rig> [seat] starts or restarts one seat without disturbing the rest. rig remove takes one seat out; if it holds active work, --fallback <live-seat> reroutes the rows first, and without a valid fallback the command refuses rather than strand them.
rig down my-rig --snapshot
rig launch my-rig dev.impl
rig remove my-rig dev.qa --fallback dev.impl
Identifiers, in one place
Three spellings appear in help and they name different things. A seat's session address is pod-member@rig, for example dev-impl@my-rig; it is what rig send, rig capture and rig transcript take. A seat's logical id inside a rig is pod.member, for example dev.impl; it is what rig launch, rig remove and rig bind --node take, and help calls it a node ref. When you adopt sessions you started by hand, --bind pairs the two: --bind dev.impl=my-tmux-session maps a logical id to the tmux session or discovery id that will occupy it.
The rest of the family
rig discover scans for tmux sessions OpenRig is not managing; --draft writes a candidate spec from them. rig adopt <spec> --bind <logicalId=session> materializes a topology and binds those live sessions into it in one step; rig bind wires one discovered session to one node. rig attach puts the shell or agent you are running in under management, so it has an address. rig fork <session> copies a live seat's context into a new seat, one-shot by default, --keep-image to keep a durable image. rig expand and rig shrink add or remove a whole pod. rig archive hides a finished rig from the default view and keeps all its data; rig unarchive reverses it. rig release and rig unclaim stop managing adopted sessions without killing the process or the agent inside it. rig reconcile-session makes the daemon see a seat you resumed by hand.
| Command | What it does (from help) | Help source |
|---|---|---|
rig add |
Add a member to an existing pod in a running rig | add.txt |
rig adopt |
Materialize topology and bind discovered live sessions | adopt.txt |
rig archive |
Archive a rig (soft + reversible: hides it from the default view, retains all data). NOT a delete; reverse with 'rig unarchive'. | archive.txt |
rig attach |
Attach the current shell or agent into a rig node | attach.txt |
rig bind |
Bind a discovered session to a rig node (existing or new) | bind.txt |
rig create |
Create a one-seat rig without writing a spec | create.txt |
rig discover |
Scan for unmanaged tmux sessions | discover.txt |
rig down |
Tear down a rig | down.txt |
rig expand |
Add a pod to a running rig | expand.txt |
rig fork |
Fork a live seat's context into a new seat (composes the shipped agent-image fork path) | fork.txt |
rig grow |
Add one or more seats to a running rig | grow.txt |
rig launch |
Launch or relaunch a node in a running rig | launch.txt |
rig reconcile-session |
Adopt a live, hand-resumed session back into its persisted node (no launch, no input) | reconcile-session.txt |
rig release |
Release claimed sessions from a rig without killing tmux sessions | release.txt |
rig remove |
Remove a node from a running rig | remove.txt |
rig shrink |
Remove an entire pod from a running rig | shrink.txt |
rig unarchive |
Unarchive a rig (reverse of 'rig archive'): returns it to the default view. Always safe. | unarchive.txt |
rig unclaim |
Release an adopted session without killing the tmux session | unclaim.txt |
rig up |
Launch a rig or managed app from a spec, library entry, or bundle | up.txt |
What it does not do
rig downkills the tmux sessions OpenRig launched. A daemon-only restart preserves them; do not reach fordownto tidy up.unclaimandreleasehere stop managing a live session. The queue has verbs with the same names that put a work row down. Same word, different blast radius.- A boot does not verify that the agents know anything when they arrive.
rig spec auditasks that question before launch (see the Specs pages). - Discovery reads names and working directories; it does not infer roles beyond what
--draftwrites into the candidate spec for you to edit.
Where it goes next
- Continuity: snapshots, restore, handover and compaction for what you just booted.
- Specs: the
rig.yamlbehind the starter, and how to write your own. - Hosts: the same verbs on another registered machine with
--host.