Skip to content

RigBundle ​

Copy Markdown

Published April 2026

File: .rigbundle · Manifest: bundle.yaml · Schema: v2 (pod-aware)

The canonical OpenRig archive format for shipping a topology as a single file. A.rigbundle packages a RigSpec, all referenced AgentSpecs, their resources, optional docs and culture files, plus integrity metadata.

This page mirrors the shipped reference and bootstrap behavior in the `openrig` repo, including the current install semantics for `rig bundle install` and `rig up <bundle>`.

Archive layout ​

A `.rigbundle` is a deterministic gzip-compressed tar archive. Inside the archive, all refs are rewritten to safe bundle-relative paths and every vendored file can be checked against the manifest.

my-team.rigbundletar.gz archive

bundle.yamlmanifest - vendored agents, refs, integrity

rig.yamlrewritten RigSpec with bundle-relative local: refs

CULTURE.mdoptional rig-wide culture file

SETUP.mdoptional docs file declared by the rig

agents

pm-lead

agent.yamlvendored AgentSpec

skills

openrig-user

SKILL.md

guidance

role.md

startup

context.md

researcher

agent.yamlvendored AgentSpec

guidance

research-standards.md

startup

briefing.md

rig.yaml

Rewritten RigSpec with vendored `agent_ref` paths and any rig-level startup/docs references.

agents/

Vendored AgentSpecs plus their referenced resources: skills, guidance, startup files, hooks, and runtime resources.

bundle.yaml

Manifest with schema version, vendored agent entries, original refs, and per-file integrity data.

.rigbundle.sha256

Sibling archive digest for transfer-corruption detection. This file sits next to the archive, not inside it.

Manifest shape ​

bash
schema_version: 2
name: my-bundle
version: "0.1.0"
created_at: "2026-04-11T22:32:48.570Z"
rig_spec: rig.yaml
agents:
  - name: pm-lead
    version: "1.0"
    path: agents/pm-lead
    original_ref: "local:agents/pm-lead"
    hash: "ed4cff20..."
    import_entries: []
  - name: researcher
    version: "1.0"
    path: agents/researcher
    original_ref: "local:agents/researcher"
    hash: "11f8a077..."
    import_entries:
      - name: shared
        version: "1.0"
        path: agents/shared
        original_ref: "local:../../shared"
        hash: "abc123..."
culture_file: CULTURE.md
integrity:
  algorithm: sha256
  files:
    rig.yaml: "b80c0674..."
    CULTURE.md: "9354361b..."
    agents/pm-lead/agent.yaml: "ed4cff20..."

Version 2 is the current pod-aware manifest shape. Legacy version 1 bundles still load for compatibility, but new bundles should use `schema_version: 2`.

What the integrity model does and does not do ​

Sibling digest

The `.rigbundle.sha256` file detects corruption during transfer.

Per-file integrity

The manifest hashes detect tampering or mismatch inside the extracted archive.

Not author signing

These checks prove self-consistency, not authenticity. You still have to trust the source you got the bundle from.

CLI surface ​

Create ​

bash
rig bundle create rig.yaml \
  -o my-team.rigbundle \
  --rig-root . \
  --name my-team \
  --bundle-version 1.0.0

Optional flags include --notes, --min-daemon-version, --min-cli-version and --allow-drift. Create validates the rig, vendors the referenced agents and imports, rewrites refs to bundle-relative `local:` paths, writes `bundle.yaml`, then emits the archive and sibling digest.

Inspect ​

bash
rig bundle inspect my-team.rigbundle

# optional
rig bundle inspect my-team.rigbundle --json

Inspect extracts to a temporary directory for safe validation, reports digest validity and integrity results, then cleans the temp directory up. It does not install.

Install ​

bash
rig bundle install my-team.rigbundle --target ~/projects/my-project

# plan-only
rig bundle install my-team.rigbundle --plan

`rig bundle install` requires `--target` in apply mode. The only exception is plan mode, where the daemon can validate and preview without an install root.

Launch directly ​

bash
cd ~/projects/my-project
rig up /path/to/my-team.rigbundle

# explicit target
rig up /path/to/my-team.rigbundle --target ~/projects/my-project

# separate runtime cwd override
rig up /path/to/my-team.rigbundle --target ~/projects/my-project --cwd ~/src/app

For `.rigbundle` sources, `rig up` defaults the install target to the current working directory if `--target` is omitted. `--cwd` is separate: it changes the launched members' working directory for that run, not where packaged files are installed.

Safety and validation highlights ​

Unpack safety ​

No symlinks or hardlinks in the archive.

No absolute paths.

No `..` traversal segments.

Archive digest must match the sibling `.sha256` file.

Per-file hashes must match the manifest integrity section after extraction.

Validation rules ​

`schema_version` must be `2` for new pod-aware bundles.

`rig_spec` and vendored agent `path` values must be safe relative paths.

Each vendored agent entry must have `name`, `path`, and `hash`.

Integrity `algorithm` must be `sha256`.

Declared rig docs are strict: missing docs fail bundle assembly.

Culture and startup files are collected best-effort: missing files are skipped, not fatal.

`builtin:terminal` members are not vendored into the bundle.

Assembly behavior ​

Bundle assembly walks the rig from the top down: it validates the RigSpec, collects rig-level files, vendors each member's referenced AgentSpec, resolves and vendors imports, rewrites refs to bundle-relative `local:` paths, computes file hashes, and finally packs the result deterministically.

If multiple members resolve to the same agent spec directory, that agent is vendored once and reused. Terminal members using `agent_ref: "builtin:terminal"` are the special case: they stay bundle-native and are not vendored.

Legacy note ​

Version 1 bundles used the older flat-node shape and a `packages` array in the manifest. They remain supported for backward compatibility, but the website and current OpenRig reference treat pod-aware version 2 as the canonical format.

Independent format versions: RigSpec 0.2 · AgentSpec 1.0 · RigBundle schema 2

Previous\ \ Edge Types Next\ \ Overview

Self-contained SOP. No outbound links. OpenRig 0.5.14.