Use a rig

Update a rig

rig hub update — pull a newer version while preserving your local state.

rig hub update            # update to latest from where you originally installed
rig hub update --check    # show available version without doing anything

rig hub update reads .rig/instance.toml (written at install time) to know where this rig came from, asks the source for the latest version, and applies the new files on top of your workspace.

What gets preserved

  • Anything in [local].dirs — your data, your outputs, your private notes.
  • Anything outside [package].include — never touched.
  • Your .env file (rig doesn't ship env values).
  • Your .claude/settings.local.json (machine-local Claude overrides).
  • Your .rig/instance.toml — updated with previous_version.

What gets replaced

  • Files inside [package].include, if they changed between versions.
  • The manifest itself (rig.toml).
  • The Claude skill files (.claude/skills/rig/**, .claude/CLAUDE.md).

When it refuses

For synced rigs, rig hub update refuses to run when the sync state is dirty:

  • Conflicts (rig status shows them).
  • Apply errors.
  • Offline / daemon not running.

rig hub update has no override — get sync clean first (resolve conflicts, rig resume if the daemon is down). Reason: updating files that the relay hasn't seen yet would create a conflict on the next sync.

For local-only rigs, rig hub update proceeds without that check.

Flags

FlagWhat
--checkShow the available version (latest) and do nothing else.
--interactiveConfirm each change before applying.
--yesApply without prompting.
--plainPlain output.
--jsonMachine-readable summary.

After updating

rig hub update runs rig doctor internally to spot any new gaps the version bump introduced (e.g. a new required env var). Anything red, fix it the same way you would for a fresh install — see Troubleshoot.

See also