复制安装命令
用 Codex 或 Claude 安装复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它先审查 Skill 页面再帮你安装。
复制前请先查看来源、License 和安全提示。
npm version npm downloads License: Apache 2.0 GitHub stars
用 Codex 或 Claude 安装复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它先审查 Skill 页面再帮你安装。
复制前请先查看来源、License 和安全提示。
来源文件:README.md
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 is open-source software for building and running your own network of agents. It turns AI coding agents from a pile of terminal sessions into a persistent, organized team. Talk to a lead agent about the outcome you want; it can coordinate specialists across teams and bring you results and decisions that need your attention. Start with a repository and one useful change, then keep the team's work and context at the same addresses.
It's the open-source system behind my AI civilization experiments.
Guide: Getting started · Stuck? Help · Questions: Q&A · Updates and demos: @_feralmachine on X

Start here: the guided first-use path: install, launch a two-agent team in your repository, and get one reviewed change.
Not setting this up today? Get the next walkthrough and occasional OpenRig updates → https://openrig.dev/follow
Requires Node.js 22 or 24 and tmux, on macOS or Linux. On a Mac with Apple silicon, use Node.js 22 (compatibility history). Native Windows is not supported yet, and WSL2 has not been tested. Launching a rig writes provider hooks and workspace trust settings. Before running the commands below, read what OpenRig changes on your machine and back up the relevant files.
npm install -g @openrig/cli
rig setup --dry-run
To install with Bun instead, run bun add -g @openrig/cli. OpenRig still runs on Node.js, so install Node.js 22 as well. Bun may block this package's postinstall script, in which case the Node.js and SQLite check described under what OpenRig changes on your machine does not run at install time.
Choose the working account you already have: Claude Code, Codex, or both. Reuse an explicit choice; no second subscription is required. rig setup --dry-run previews the broader setup, but applying rig setup checks both harnesses and cmux. It is optional for the selected-provider path.
Before launching, your agent asks once: “Allow your agents to run OpenRig commands without repeated permission prompts?” Yes — recommended / No — keep prompts. This covers every rig command, including starting/stopping agents and configuration, at personal project scope unless you explicitly choose user-wide sessions. It is not global YOLO or permission to invent work. On Yes, the agent adds and verifies native rules; No or no answer leaves settings unchanged. An existing explicit choice is reused. Say “Undo the OpenRig command allowances added by this setup” to remove only its additions.
Check tmux -V and only your selected CLI/login: claude --version plus
claude auth status, or codex --version plus codex login status. If needed,
sign in once with claude auth login or codex login; do not install or log in
to an unused provider.
| Team | Starter | Models |
|---|---|---|
| Two Codex agents | first-project | Both gpt-6-astra (unchanged) |
| Two Claude agents | first-project-claude | Configured native Claude default |
| Claude owner + Codex checker | first-project-mixed | Claude default + gpt-6-astra |
All three use the same owner/checker roles and task. Show the selected runtime, configured model and command before launch; confirm the account supports the model instead of silently falling back. The kernel starts automatically and selects from available authenticated providers independently of these two project agents. A missing unused provider is not a setup requirement.
cd /path/to/your/repository
starter=first-project # or first-project-claude or first-project-mixed
rig specs preview "$starter" --kind rig
rig up "$starter" --cwd . --plan
rig up "$starter" --cwd .
rig tui --shared
The kernel provides separate operational support and the shared dashboard. To detach without stopping the dashboard, press Ctrl-b then d; rig tui --shared returns to that view. Plain rig tui opens an independent view. Closing a viewing terminal does not mean you should relaunch the team.
Check project-seat readiness with rig ps --nodes --rig "$starter" and resolve any authentication, trust or permission prompt before assigning work. Then give the owner one bounded outcome from your repository:
rig send "dev-owner@$starter" 'Implement <one useful change>. Track the task in the queue and return its ID. Keep it local, verify the behavior, ask dev-check in this rig to check the exact candidate, and record the result and how I can try it.'
rig queue list --destination "dev-owner@$starter" --limit 1000
Sending a message does not itself create a queue item; the owner records the task. Read the final artifact and the review of its exact candidate, then return to the same owner for the next change. The guided first-use path covers readiness, a useful task, a reviewed result, Herdr/cmux terminals and recovery.
Not setting this up today? Get the next walkthrough and occasional OpenRig updates → https://openrig.dev/follow
@openrig/cliWe aim to acknowledge issues and pull requests within one day; see CONTRIBUTING.md for review targets.
OpenRig writes instance state, provider integration and workspace files as part
of setup and operation. These include trust settings and executable hooks.
The summary below follows this source revision; check rig --version when
using a published package, since repository guidance can be ahead of npm.
| When | What changes and why |
|---|---|
| npm installation | Installs the CLI, bundled components and dependencies under your npm prefix (with Bun, under Bun's global directory). OpenRig's postinstall checks the Node.js version and that the SQLite module loads; Bun may block this script. It does not run daemon or provider setup. |
rig setup | Attempts missing tools and writes an OpenRig block in ~/.tmux.conf for mouse support and scrollback. On macOS it can install cmux and enable its automation socket control in ~/.config/cmux/settings.json. --full adds workstation tools. --dry-run shows setup's plan without applying it. |
| Daemon startup | Creates/updates instance state under OPENRIG_HOME (normally ~/.openrig), including its database and managed plugin resources. Seeds the openrig-skills discovery skill in ~/.claude/skills and ~/.agents/skills, subject to existing version ownership. With runtime.codex.hooks_enabled enabled (the default), writes Codex hook configuration and trust records as described below—even before a rig launches. |
| Rig/seat launch and attachment | Creates tmux sessions, supplies seat identity and daemon connection environment, and projects selected guidance, skills, plugins and runtime resources into the workspace. Managed startup pre-trusts the workspace. Claude context collection can also be provisioned for attached sessions and refreshed during monitoring. |
| Explicit permission configuration | The built-in bootstrap does not add rig command allow rules. Agent-guided setup recommends Yes and requires your actual answer before the agent adds rules at your chosen scope. No/no answer preserves settings; existing choices and stricter rules remain relevant. Broader access is separate. |
The provider files are separate from instance state. Here ~ means the daemon
user's home; changing OPENRIG_HOME alone does not isolate provider configuration.
~/.claude.json. In the workspace, .claude/settings.local.json receives
the context collector's statusLine command and selected activity hooks;
helper scripts live under .openrig/. Selected settings/MCP resources can also
change that settings file and .mcp.json. The shared settings resource sets
permissions.defaultMode to acceptEdits and enables Exa/Context7 MCP entries;
selected MCP resources configure those external services. Built-in bootstrap
no longer writes a command allowlist to ~/.claude/settings.json or removes
older allowances. The trust writer uses the daemon home, so a custom
CLAUDE_CONFIG_DIR is not a general relocation of these writes.CODEX_HOME/config.toml (normally
~/.codex/config.toml). Startup enables hooks, adds the OpenRig activity relay
commands and pre-writes trust hashes for those commands. Seat startup adds
trust_level = "trusted" for the workspace; selected config resources can
add MCP settings. Recognized update notices can be skipped during launch,
recording the skipped version in Codex's cache; this is not an update install.Activity relays send event type/subtype, seat/runtime identity, timestamps and
native session identity to the configured OpenRig daemon's /api/activity/hooks
endpoint, using its activity token. That payload excludes prompt text and tool
arguments. Claude's collector writes context/token usage, session/transcript-path
metadata and available rate-limit data to the instance's state/context-usage
and state/provider-usage. Provider and selected MCP connections have their own
data flows. Daemon plugin initialization also checks the OpenRig plugin release
endpoint on GitHub.
Managed launches supply HOME, CODEX_HOME and OPENRIG_* identity/connection
variables. Claude uses --permission-mode acceptEdits and defaults to the classic
renderer for terminal scrollback. Codex uses -s workspace-write unless a named
profile governs its sandbox; the default does not force an approval-policy flag.
Fresh Codex launches also add writable access to the workspace's .git and the
pod's shared queue-state directory with --add-dir; the shared root comes from
OPENRIG_SHARED_DOCS_ROOT or ~/.openrig/shared-docs.
YOLO is off by default. An explicitly selected full-bypass policy selects
Claude's --dangerously-skip-permissions or Codex's
-s danger-full-access -a never. The legacy environment-only OPENRIG_YOLO=1
path still selects only Codex's sandbox; a resolved policy overrides that
environment setting.
Permission mode controls native execution permissions; work posture is separate
project guidance. Use rig policy permissions list|show|current|apply for rig
policy configuration (the four rig policy aliases remain compatible). Use
rig seat set-permissions <seat> --mode <mode> --reason <text> for an audited
future-launch choice: floor, full_bypass, or inherit to clear the seat
override. Additional Claude modes such as auto require support from the exact
managed Claude executable at the seat's working directory; selection and launch
each check it. Unsupported or changed contexts refuse without a fallback.
This does not relaunch the seat
or change its current native process, history, rules or hooks. rig seat status
separates the desired selection from the last launch arguments; neither proves
native enforcement. See the permission guide.
Managed hook blocks target OpenRig's entries and retain unrelated hooks, but
trust entries, selected resource keys and Claude's existing status-line command
can be replaced. Some writers recover unreadable settings as empty objects;
this is not a complete preservation or rollback guarantee. Back up relevant
files before first use. Daemon/bootstrap writes are automatic and do not each
have an interactive preview; rig setup --dry-run does not preview every later
startup effect.
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.
rig up — tmux sessions, harnesses, startup files, readiness checksrig down --snapshot, restore by name with rig up <name>rig send, rig broadcast, and rig chatroomrig seat set-typing-guard <seat> --enabled true --reason <text> holds automatic messages and wakes instead of typing them into that seat (off by default; see rig seat set-typing-guard --help)rig slack manifest prints that app's manifest (setup guide)rig grow, rig shrink, rig launch, rig removeEvery agent runs in a tmux session you can attach to, inspect, and work with directly.
Use first-project, first-project-claude, or first-project-mixed for the
same focused first-use path on your selected providers. product-team is an optional
larger product-development example:
rig specs preview product-team --kind rig
rig up product-team
Use it when you want a larger product squad: two orchestrators, implementation, QA, design, and two independent reviewers.
For a smaller starter, use conveyor:
rig specs preview conveyor --kind rig
rig up conveyor
conveyor is a four-seat starter mixing Claude Code and Codex. It shows a handoff path through intake, planning, build, and review; first-project remains the smaller two-seat starting point.
Also ships: implementation-pair, adversarial-review, research-team, and secrets-manager (HashiCorp Vault managed by a specialist agent).
Browse the library:
rig specs ls
OpenRig is a local daemon + CLI + terminal UI + MCP server, built on tmux. The older React web UI remains in maintenance mode with best-effort support.
CLI / TUI / MCP
|
Hono HTTP daemon
|
Domain services
|
SQLite + tmux + runtime adapters
rig_up, rig_ps, rig_send, rig_chatroom_send, etc.)The TUI shows the team's coordination state; herdr and cmux show the actual agent terminals alongside it. Use rig tui commands to list the TUI's command-bar navigation, or try the interactive TUI tour.

Captured from the interactive TUI demo using fictional project data.
With herdr installed and connected, open the starter's terminals together:
rig terminal open first-project --provider herdr
For cmux, use --provider cmux. In the TUI, a rig's detail view has a term ▸ rig <name> link that opens every running seat of that rig in the default terminal provider; with herdr that is up to 16 seats per tab, in a workspace named after the rig. The underlying sessions remain accessible through tmux. See the terminal workspace guide for setup and returning to an existing view.
dev-owner@first-project. The conversation occupying it can change while its identity and authored context remain.rig discover fingerprints existing tmux sessions. rig adopt brings them under management.rig down --snapshot captures full state. rig up <name> restores from latest snapshot. Restore reports per-node outcomes (resumed, fresh, or failed).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.
For an existing installation, follow the upgrade procedure and the 0.5.14 release notes. Preserve live seats during the upgrade; rig down is not an upgrade step. Upgrading to 0.6.0 also requires Node.js 22 or 24: see Moving off Node 20 and the 0.6.0 release notes.
OpenRig 0.6.0 supports Node.js 22 and 24 only. Its SQLite binding (better-sqlite3 13) requires Node 22 or newer. Node 20 is no longer supported; the install check refuses it with an explanation.
If you run OpenRig on Node 20, switch Node first, then reinstall the CLI under the new Node (a version manager keeps a separate global package set for each Node):
nvm install 22 # or 24; fnm or your package manager work the same way
npm install -g @openrig/cli
rig --version
Your existing OpenRig data stays where it is. The daemon reopens the same database under the new binding and applies any pending migrations in place. Restart the daemon under the new Node by following the upgrade procedure above.
The migration below still applies when upgrading from a pre-0.5.9 instance.
0.5.9 makes $OPENRIG_HOME/context the addressable context library, writes
Claude telemetry to state/context-usage (and provider telemetry to
state/provider-usage), and installs the default System World at
context/system/system-world.yaml. Existing instances cross this boundary by
an Agent-Operated Migration from the shipped openrig-upgrade skill. The
target runtime reads canonical-first with legacy-fallback while new writes use
the canonical roots; a custom context-library root stays stable during
activation. This is not a directory rename to do while an old collector writes.
# SKILL_DIR is the installed openrig-upgrade skill directory.
node "$SKILL_DIR/scripts/migrate-telemetry-state-0.5.9.mjs" --help
node "$SKILL_DIR/scripts/migrate-telemetry-state-0.5.9.mjs" --home "$OPENRIG_HOME"
node "$SKILL_DIR/scripts/migrate-telemetry-state-0.5.9.mjs" --home "$OPENRIG_HOME" --apply-state --preimage /safe/path/layout-0.5.9-before
# Activate the exact target runtime separately. After every bounded legacy tail is followed by newer paired samples at both new state roots:
node "$SKILL_DIR/scripts/migrate-telemetry-state-0.5.9.mjs" --home "$OPENRIG_HOME" --verify --preimage /safe/path/layout-0.5.9-before > /safe/path/layout-0.5.9-verify.json
# Run the separately invoked non-destructive finalizer only with that exact receipt:
node "$SKILL_DIR/scripts/migrate-telemetry-state-0.5.9.mjs" --home "$OPENRIG_HOME" --apply-library --preimage /safe/path/layout-0.5.9-before --verification /safe/path/layout-0.5.9-verify.json
# Restore only helper-owned preparation/finalizer effects if the observed upgrade must be reversed:
node "$SKILL_DIR/scripts/migrate-telemetry-state-0.5.9.mjs" --home "$OPENRIG_HOME" --rollback /safe/path/layout-0.5.9-before
--help prints the phase grammar without inventorying the instance. No phase
flag intentionally runs the read-only plan; unknown options fail nonzero before
plan or mutation.
Every phase emits JSON. Stop on any issue or incomplete receipt and follow its
next action; do not continue from copied legacy telemetry or retry a partial
mutation blindly. Preparation leaves legacy state and collector settings in
place. Verification accepts exact tail bytes only when that same seat has newer
paired context and provider samples under state/; finalization revalidates the
accepted tails, copies the library without overwrite, and switches config last.
The helper never removes the legacy telemetry or library. Retirement follows
separate stable runtime, writer, reader, and recovery proof. Daemon, database,
seat, plugin, and release lifecycle actions remain agent-owned.
Optional:
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.
Before setup or managed launch, review what OpenRig changes on your machine, including provider trust, hooks and selected runtime resources.
Already-running adopted sessions may need restart before they pick up newly written runtime config.
For agents: First ask which available provider(s) the user wants, reusing an explicit choice. Recommend the working account they already have and follow the selected-provider guide above. Offer core setup (rig setup) or the fuller workstation path (rig setup --full) only when they want those additional tools. Inspect the result with --json and use rig doctor to finish any remaining machine-specific issues. When OpenRig itself misbehaves, read docs/reference/help.md (installed agents can run rig context get help; the same text is at openrig.dev/help/agents): it covers the next step, known problems, and how to reach the team if you're still stuck.
OpenRig is open source and self-hosted, with Claude Code and Codex in the same team. You operate it on your own infrastructure; the selected providers' model usage costs still apply.
Apache 2.0
name: openrig-software-factory
description: >-
Use when a user wants a continuing software team for a real repository, or has a
first OpenRig team and needs a repeatable path for reviewed work and later tasks.
metadata:
cli_surfaces_referenced:
- context get
- context list
- context show
- grow
- queue create
- queue handoff
- workflow compile
- workflow instantiate-lifecycle
openrig:
stage: WIP
transfer_test: pendingStart with a useful repository outcome and add coordination when it earns its cost. A beginner can complete reviewed work without Workflow. These are choices using existing capabilities, not stages everyone must graduate through.
| Need | Start here | Add more when… |
|---|---|---|
| One change, close human guidance | Manual/team work: give an owner the outcome, use repository instructions, implement and obtain the chosen independent check. | Work must survive turns or move between seats. |
| Continuing work with visible ownership | Queue-supported orchestration: use rig queue create, claim work, then rig queue handoff with the candidate/evidence to the next owner. Record real blockers and the continuation. No Workflow instance is needed. | Repeated steps need an explicit dependency graph and permitted exits. |
| An explicit execution contract | Workflow: inspect rig workflow compile, then deliberately use rig workflow instantiate-lifecycle. Advance its packets through the workflow projection mechanism. | The actual project needs reusable profiles, additional roles or gates. |
For the concrete queue loop, wake behavior and optional two-slice Workflow,
read references/worked-example.md. Installed copy:
rig context get skills/core/openrig-software-factory/references/worked-example.md.
A roadmap, YAML file or wake does not execute work or authorize a new outcome.
Ask which working account(s) the user wants: Claude Code, Codex, or both. Reuse
an explicit choice and recommend the account they already have working. Use
first-project-claude (two Claude), first-project (two Codex), or
first-project-mixed (Claude owner, Codex checker). All share the same task and
owner/checker culture. Check only selected CLIs/logins; request claude auth login
or codex login once when that selected login is missing. No credential copying,
unused provider prerequisite or silent model/provider fallback.
Read the compatible getting-started guide's Choose your providers and Kernel startup stays automatic sections before launch. The choice selects the two project agents. Kernel auto-boot independently uses available authenticated accounts, so it may use both even when the project uses one. Do not add an unused-provider login gate or manual kernel setup to this path. An instance-wide provider restriction is a separate request. Preserve an existing kernel and working user rigs.
Show the chosen recipe, resolved runtimes/models and exact
rig up <starter> --cwd . --plan / rig up <starter> --cwd . commands. Codex seats
retain gpt-6-astra; Claude seats use the configured native default without an
OpenRig model override. Confirm that model with the user and its availability;
verify the native session's actual model before consequential work. Use the
chosen rig name in owner/checker addresses throughout the same task and return.
Read the repository instructions, current work and desired user-visible result. Verify the intended instance, code/work roots, real seat addresses and native readiness. Reuse a suitable small team; an existing agent can bootstrap it. A kernel operator is optional and is not automatically the project owner.
Agree the work boundary, time/spend limit, who answers unresolved choices, and when to stop: checked result, no authorized next work, exhausted budget, or a real user/permission/provider blocker. Background daemon checks are not themselves model turns, but delivered wakes and resumed work can spend tokens. Prefer an event-driven wait to frequent empty reminders. Wakes cannot answer a user question, clear a permission prompt or guarantee progress.
Ask once before launching or assigning work: “Allow your agents to run
OpenRig commands without repeated permission prompts?” Yes — recommended /
No — keep prompts. Reuse an existing explicit choice for this scope. Explain
that this covers all rig verbs, including starting/stopping agents and changing
configuration, at personal project scope unless the user explicitly chooses
user-wide sessions. It is not global YOLO or permission to invent work.
On an actual Yes, follow Applying a permission policy
to add existing native rules, preserve stricter/unrelated settings, and verify
the target conversation. No or no answer leaves settings alone and continues
with existing prompts. Remember the explicit choice and exact additions in the
existing onboarding context; “Undo the OpenRig command allowances added by this
setup” removes only those additions. Broader access remains a separate opt-in.
Keep purpose, acceptance, decisions and evidence in existing project files. Deliver selected context and obtain each seat's scope reaction; retrieval alone is not peer delivery. The owner carries the candidate through the chosen check and bounded repairs, reports how to try it, and retains the next authorized task or explicitly reports none. Preserve work and custody before a supported stop.
Choose the team size separately from the coordination method above:
rig grow commands, readiness/context/work
assignment, and saving the expanded topology. Existing sessions need no
rebuild or down/up cycle solely to add capacity.rig context get skills/core/openrig-architect/SKILL.md. Request:
“Design a user-owned rig for [outcome] using the compatible RigSpec/AgentSpec
guidance. Reuse suitable agents, define responsibilities and context, and
validate the files. Preserve the existing rig and agree any new launch.”As independent work grows, the original owner can concentrate on orchestration, multiple builders can implement separate outcomes, and the checker can retain independent review capacity. Record that division explicitly; adding seats does not assign work, change permissions or create parallelism. Agree file/worktree boundaries and integration ownership, follow the project's existing review policy, and keep active concurrency within the user's time/spend budget. Two seats are an entry point, not a finished factory or a maximum.
Before installation, use this file and companion at the same published tag or commit as the selected package. After installation:
rig --version
rig context list --json
rig context show skills/core/openrig-software-factory --json
rig context get skills/core/openrig-software-factory/SKILL.md
Compare build identity as well as version. Preserve missing, unreadable or older recipe results; do not silently substitute newer main or skip a missing companion.
Retrieve the maintained procedure with
rig context get skills/applying-a-permission-policy/SKILL.md.
For source or archive readers, locate it below; the companion getting-started
guide contains optional broader launch-mode recipes under Opt-in permissive
operation. These paths are relative to the named root, not this skill:
| Reading from | Procedure and guide, at the same version as this recipe |
|---|---|
Source checkout, including skills/_canonical | Below the repository root: packages/daemon/assets/plugins/openrig-core/skills/applying-a-permission-policy/SKILL.md and docs/reference/getting-started.md. |
| npm installation | Below the matching npm root -g or local npm root: @openrig/cli/daemon/assets/plugins/openrig-core/skills/applying-a-permission-policy/SKILL.md and @openrig/cli/daemon/docs/reference/getting-started.md. |
| Unpacked npm archive | Below the extraction directory: package/daemon/assets/plugins/openrig-core/skills/applying-a-permission-policy/SKILL.md and package/daemon/docs/reference/getting-started.md. |
For installed guidance, use the npm installation that supplies the selected
rig executable; another prefix or local project can contain a different version.
If the matching guide or section is missing, report the gap before proceeding;
do not substitute current main or guidance from another installation.
Help me achieve [observable change] in this repository. Read the compatible Software Factory recipe, choose the lightest useful team/queue/Workflow path, and keep the next owner visible. Preserve existing files and permissions. Agree time/spend limits, perform the authorized work and chosen independent check, and ask only about unresolved decisions or effects outside that scope. Keep publication and destructive changes out of this task.
When commands, defaults or permission semantics change, check this source and companion together and regenerate their existing projections. Website guidance should link to the same versioned recipe, not maintain another procedure.
评论 (0)
暂无评论,成为第一个评论者吧!