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 anythingrig 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
.envfile (rig doesn't ship env values). - Your
.claude/settings.local.json(machine-local Claude overrides). - Your
.rig/instance.toml— updated withprevious_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 statusshows 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
| Flag | What |
|---|---|
--check | Show the available version (latest) and do nothing else. |
--interactive | Confirm each change before applying. |
--yes | Apply without prompting. |
--plain | Plain output. |
--json | Machine-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
- Versioning — how rig authors should version.
.rig/instance.toml— what gets recorded at install.