Updating
WednesdayAI is moving fast before 1.0. Treat updates like shipping infrastructure: update, run checks, restart, then verify. Theopenclaw
command remains a compatibility alias for the wednesdayai binary.
Recommended: re-run the website installer (upgrade in place)
The preferred update path is to re-run the installer from the website. It detects existing installs, upgrades in place, and runswednesdayai doctor when
needed.
-
Add
--no-onboardif you don’t want the onboarding wizard to run again. -
For source installs, use:
The installer will
git pull --rebaseonly if the repo is clean. -
For global installs, the script installs the
wednesdayainpm package from the stablelatestdist-tag under the hood.openclawremains a binary alias, not a separate package rail. -
Legacy note:
clawdbotremains available as a compatibility shim.
Before you update
- Know how you installed: global (npm/pnpm) vs from source (git clone).
- Know how your Gateway is running: foreground terminal vs supervised service (launchd/systemd).
- Snapshot your tailoring:
- Config:
~/.openclaw/openclaw.json - Credentials:
~/.openclaw/credentials/ - Workspace:
~/.openclaw/workspace
- Config:
Update (global install)
Global install (pick one):wednesdayai. The openclaw command remains available as a compatibility alias after install. Release channels map to npm dist-tags for stable package installs: stable uses latest, and beta uses beta. The dev channel switches to a source checkout so it can rebase and reinstall from main.
To switch update channels (git + npm installs):
--tag <dist-tag|version> for a one-off install tag/version.
See Release channels for channel semantics,
promotion checks, and support expectations.
Note: on npm installs, the gateway logs an update hint on startup (checks the current channel tag). Disable via update.checkOnStart: false.
Core auto-updater (optional)
Auto-updater is off by default and is a core Gateway feature (not a plugin).stable: when a new version is seen, WednesdayAI waitsstableDelayHoursand then applies a deterministic per-install jitter instableJitterHours(spread rollout).beta: checks onbetaCheckIntervalHourscadence (default: hourly) and applies when an update is available.dev: no automatic apply; use manualwednesdayai update.
wednesdayai update --dry-run to preview update actions before enabling automation.
Then:
- If your Gateway runs as a service,
wednesdayai gateway restartis preferred over killing PIDs. - If you’re pinned to a specific version, see “Rollback / pinning” below.
Update (wednesdayai update)
For source installs (git checkout), prefer:
- Requires a clean worktree.
- Switches to the selected channel (tag or branch).
- Fetches + rebases against the configured upstream (dev channel).
- Installs deps, builds, builds the Control UI, and runs
wednesdayai doctor. - Restarts the gateway by default (use
--no-restartto skip).
wednesdayai update will try to update via your package manager. If it can’t detect the install, use “Update (global install)” instead.
Update (Control UI / RPC)
The Control UI has Update & Restart (RPC:update.run). It:
- Runs the same source-update flow as
wednesdayai update(git checkout only). - Writes a restart sentinel with a structured report (stdout/stderr tail).
- Restarts the gateway and pings the last active session with the report.
Update (from source)
From the repo checkout: Preferred:pnpm buildmatters when you run the packagedwednesdayaibinary or use Node to rundist/.- If you run from a repo checkout without a global install, use
pnpm openclaw ...orpnpm wednesdayai ...for CLI commands. - If you run directly from TypeScript (
pnpm openclaw ...orpnpm wednesdayai ...), a rebuild is usually unnecessary, but config migrations still apply → run doctor. - Switching between global and git installs is easy: install the other flavor, then run
wednesdayai doctorso the gateway service entrypoint is rewritten to the current install.
Always run: wednesdayai doctor
Doctor is the “safe update” command. It’s intentionally boring: repair + migrate + warn.
Note: if you’re on a source install (git checkout), wednesdayai doctor will offer to run wednesdayai update first.
Typical things it does:
- Migrate deprecated config keys / legacy config file locations.
- Audit DM policies and warn on risky “open” settings.
- Check Gateway health and can offer to restart.
- Detect and migrate older gateway services (launchd/systemd; legacy schtasks) to current WednesdayAI services.
- On Linux, ensure systemd user lingering (so the Gateway survives logout).
Start / stop / restart the Gateway
CLI (works regardless of OS):- macOS launchd (app-bundled LaunchAgent):
launchctl kickstart -k gui/$UID/ai.openclaw.gateway(useai.openclaw.<profile>; legacycom.openclaw.*still works) - Linux systemd user service:
systemctl --user restart openclaw-gateway[-<profile>].service - Windows (WSL2):
systemctl --user restart openclaw-gateway[-<profile>].servicelaunchctl/systemctlonly work if the service is installed; otherwise runwednesdayai gateway install.
Rollback / pinning (when something breaks)
Pin (global install)
Install a known-good version (replace<version> with the last working one):
npm view wednesdayai version.
Then restart + re-run doctor:
Pin (source) by date
Pick a commit from a date (example: “state of main as of 2026-01-01”):End users never publish packages. A WednesdayAI install only consumes published releases (stable, beta, or dev channels); npm publishing is a maintainer-side, OIDC-trusted workflow. See RELEASING.
If you’re stuck
- Run
wednesdayai doctoragain and read the output carefully (it often tells you the fix). - Check: Troubleshooting
- Ask in Discord: https://discord.gg/clawd