OpenRig explained: coordinate coding agents without losing the operator
Reading OpenRig source: `up`, `send` and the work queue
Use three CLI entry points to separate launch, communication and task ownership
What you will learn
- Read the launch path
- Follow one message
- Review setup effects
Before you start
- Node 22 or 24 and tmux on a supported host
- One working provider account and a disposable repository
Turn the first owner/checker run into evidence for a safe rollout decision
Key takeaways
- CLI acceptance is not seat readiness.
- Messages and queue records serve different purposes.
- Setup and up have different side-effect scopes.
Read the launch path
`packages/cli/src/commands/up.ts` parses the source, offers `--plan`, selects local or remote operation and handles restore previews. It rejects a host-topology file where a rig source is expected.
The CLI path explains user-visible decisions and errors. To prove that a seat launched, follow the daemon result and inspect live node state; a successful parser branch is not a runtime guarantee.
Follow one message
`send.ts` parses a destination, calls the daemon and reports delivery or an error. A seat address is explicit, which makes a request auditable against a particular rig and role.
Delivery is not task completion. The README explicitly says a send does not create a queue item. Read `queue.ts` separately for owner, status and retrieval behavior instead of conflating chat with a work ledger.
Review setup effects
`setup.ts` orchestrates machine preparation, whereas `up.ts` starts a rig. Those are different mutation scopes. Compare the command implementation with the README change table before running either on a primary workstation.
This source review reads fixed files, not a running daemon or provider SDK. It has not checked every branch of a large CLI package or simulated a provider login failure.
Decision guide
| Criterion | Option A | Option B |
|---|---|---|
| Best when | You need predictable behavior and easy auditing | You need adaptive optimization and have reliable telemetry |
| Main risk | May leave performance on the table | Can become difficult to explain or debug |
Implementation steps
- 1
Trace one `up --plan` response to its daemon call.
- 2
Compare `send` delivery with queue ownership.
- 3
Map setup writes before executing a live launch.
Copy-ready example
up.ts -> launch plan -> daemon -> seat state
send.ts -> destination -> message delivery
queue.ts -> owner -> tracked taskFrequently asked questions
Does `rig send` create a task ID?
No. The receiving owner is expected to record the task in the queue.
Did this article execute the source paths?
No. It inspected pinned CLI files and documentation only.
Sources
- OpenRig / packages/cli/src/commands/up.tsSource checked 2026-10-04
- OpenRig / packages/cli/src/commands/send.tsSource checked 2026-10-04
- OpenRig / packages/cli/src/commands/queue.tsSource checked 2026-10-04
- OpenRig / packages/cli/src/commands/setup.tsSource checked 2026-10-04
- OpenRig / README.mdSource checked 2026-10-04