# opensoul update
Safely update OpenSoul and switch between stable/beta/dev channels.
If you installed via npm/pnpm (global install, no git metadata), updates happen via the package manager flow in Updating.
# Usage
opensoul update
opensoul update status
opensoul update wizard
opensoul update --channel beta
opensoul update --channel dev
opensoul update --tag beta
opensoul update --no-restart
opensoul update --json
opensoul --update# Options
--no-restart: skip restarting the Gateway service after a successful update.--channel <stable|beta|dev>: set the update channel (git + npm; persisted in config).--tag <dist-tag|version>: override the npm dist-tag or version for this update only.--json: print machine-readableUpdateRunResultJSON.--timeout <seconds>: per-step timeout (default is 1200s).
Note: downgrades require confirmation because older versions can break configuration.
# update status
Show the active update channel + git tag/branch/SHA (for source checkouts), plus update availability.
opensoul update status
opensoul update status --json
opensoul update status --timeout 10Options:
--json: print machine-readable status JSON.--timeout <seconds>: timeout for checks (default is 3s).
# update wizard
Interactive flow to pick an update channel and confirm whether to restart the Gateway after updating (default is to restart). If you select dev without a git checkout, it offers to create one.
# What it does
When you switch channels explicitly (--channel ...), OpenSoul also keeps the install method aligned:
dev→ ensures a git checkout (default:~/opensoul, override withOPENSOUL_GIT_DIR), updates it, and installs the global CLI from that checkout.stable/beta→ installs from npm using the matching dist-tag.
# Git checkout flow
Channels:
stable: checkout the latest non-beta tag, then build + doctor.beta: checkout the latest-betatag, then build + doctor.dev: checkoutmain, then fetch + rebase.
High-level:
- Requires a clean worktree (no uncommitted changes).
- Switches to the selected channel (tag or branch).
- Fetches upstream (dev only).
- Dev only: preflight lint + TypeScript build in a temp worktree; if the tip fails, walks back up to 10 commits to find the newest clean build.
- Rebases onto the selected commit (dev only).
- Installs deps (pnpm preferred; npm fallback).
- Builds + builds the Control UI.
- Runs
opensoul doctoras the final “safe update” check. - Syncs plugins to the active channel (dev uses bundled extensions; stable/beta uses npm) and updates npm-installed plugins.
# --update shorthand
opensoul --update rewrites to opensoul update (useful for shells and launcher scripts).
# See also
opensoul doctor(offers to run update first on git checkouts)- Development channels
- Updating
- CLI reference