5.2 KiB
summary, read_when, title
| summary | read_when | title | ||
|---|---|---|---|---|
| Updating OpenClaw safely (global install or source), plus rollback strategy |
|
Updating |
Keep OpenClaw up to date.
Recommended: openclaw update
The fastest way to update. It detects your install type (npm or git), fetches the latest version, runs openclaw doctor, and restarts the gateway.
openclaw update
To switch channels or target a specific version:
openclaw update --channel beta
openclaw update --tag main
openclaw update --dry-run # preview without applying
--channel beta prefers beta, but the runtime falls back to stable/latest when
the beta tag is missing or older than the latest stable release. Use --tag beta
if you want the raw npm beta dist-tag for a one-off package update.
See Development channels for channel semantics.
Alternative: re-run the installer
curl -fsSL https://openclaw.ai/install.sh | bash
Add --no-onboard to skip onboarding. For source installs, pass --install-method git --no-onboard.
Alternative: manual npm, pnpm, or bun
npm i -g openclaw@latest
pnpm add -g openclaw@latest
bun add -g openclaw@latest
Global npm installs and runtime dependencies
OpenClaw treats packaged global installs as read-only at runtime, even when the
global package directory is writable by the current user. Bundled plugin runtime
dependencies are staged into a writable runtime directory instead of mutating the
package tree. This keeps openclaw update from racing with a running gateway or
local agent that is repairing plugin dependencies during the same install.
Some Linux npm setups install global packages under root-owned directories such
as /usr/lib/node_modules/openclaw. OpenClaw supports that layout through the
same external staging path.
For hardened systemd units, set a writable stage directory that is included in
ReadWritePaths:
Environment=OPENCLAW_PLUGIN_STAGE_DIR=/var/lib/openclaw/plugin-runtime-deps
ReadWritePaths=/var/lib/openclaw /home/openclaw/.openclaw /tmp
If OPENCLAW_PLUGIN_STAGE_DIR is not set, OpenClaw uses $STATE_DIRECTORY when
systemd provides it, then falls back to ~/.openclaw/plugin-runtime-deps.
Bundled plugin runtime dependencies
Packaged installs keep bundled plugin runtime dependencies out of the read-only
package tree. On startup and during openclaw doctor --fix, OpenClaw repairs
runtime dependencies only for bundled plugins that are active in config, active
through legacy channel config, or enabled by their bundled manifest default.
Explicit disablement wins. A disabled plugin or channel does not get its
runtime dependencies repaired just because it exists in the package. External
plugins and custom load paths still use openclaw plugins install or
openclaw plugins update.
Auto-updater
The auto-updater is off by default. Enable it in ~/.openclaw/openclaw.json:
{
update: {
channel: "stable",
auto: {
enabled: true,
stableDelayHours: 6,
stableJitterHours: 12,
betaCheckIntervalHours: 1,
},
},
}
| Channel | Behavior |
|---|---|
stable |
Waits stableDelayHours, then applies with deterministic jitter across stableJitterHours (spread rollout). |
beta |
Checks every betaCheckIntervalHours (default: hourly) and applies immediately. |
dev |
No automatic apply. Use openclaw update manually. |
The gateway also logs an update hint on startup (disable with update.checkOnStart: false).
After updating
Run doctor
openclaw doctor
Migrates config, audits DM policies, and checks gateway health. Details: Doctor
Restart the gateway
openclaw gateway restart
Verify
openclaw health
Rollback
Pin a version (npm)
npm i -g openclaw@<version>
openclaw doctor
openclaw gateway restart
Tip: npm view openclaw version shows the current published version.
Pin a commit (source)
git fetch origin
git checkout "$(git rev-list -n 1 --before=\"2026-01-01\" origin/main)"
pnpm install && pnpm build
openclaw gateway restart
To return to latest: git checkout main && git pull.
If you are stuck
- Run
openclaw doctoragain and read the output carefully. - For
openclaw update --channel devon source checkouts, the updater auto-bootstrapspnpmwhen needed. If you see a pnpm/corepack bootstrap error, installpnpmmanually (or re-enablecorepack) and rerun the update. - Check: Troubleshooting
- Ask in Discord: https://discord.gg/clawd
Related
- Install Overview — all installation methods
- Doctor — health checks after updates
- Migrating — major version migration guides