Skip to main content

Updating

WednesdayAI is moving fast before 1.0. Treat updates like shipping infrastructure: update, run checks, restart, then verify. The openclaw command remains a compatibility alias for the wednesdayai binary. The preferred update path is to re-run the installer from the website. It detects existing installs, upgrades in place, and runs wednesdayai doctor when needed.
Notes:
  • Add --no-onboard if you don’t want the onboarding wizard to run again.
  • For source installs, use:
    The installer will git pull --rebase only if the repo is clean.
  • For global installs, the script installs the wednesdayai npm package from the stable latest dist-tag under the hood. openclaw remains a binary alias, not a separate package rail.
  • Legacy note: clawdbot remains 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

Update (global install)

Global install (pick one):
We do not recommend Bun for the Gateway runtime (WhatsApp/Telegram bugs). The supported core npm package is 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):
Use --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).
Behavior:
  • stable: when a new version is seen, WednesdayAI waits stableDelayHours and then applies a deterministic per-install jitter in stableJitterHours (spread rollout).
  • beta: checks on betaCheckIntervalHours cadence (default: hourly) and applies when an update is available.
  • dev: no automatic apply; use manual wednesdayai update.
Use wednesdayai update --dry-run to preview update actions before enabling automation. Then:
Notes:
  • If your Gateway runs as a service, wednesdayai gateway restart is 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:
It runs a safe-ish update flow:
  • 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-restart to skip).
If you installed via npm/pnpm (no git metadata), 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:
  1. Runs the same source-update flow as wednesdayai update (git checkout only).
  2. Writes a restart sentinel with a structured report (stdout/stderr tail).
  3. Restarts the gateway and pings the last active session with the report.
If the rebase fails, the gateway aborts and restarts without applying the update.

Update (from source)

From the repo checkout: Preferred:
Manual (equivalent-ish):
Notes:
  • pnpm build matters when you run the packaged wednesdayai binary or use Node to run dist/.
  • If you run from a repo checkout without a global install, use pnpm openclaw ... or pnpm wednesdayai ... for CLI commands.
  • If you run directly from TypeScript (pnpm openclaw ... or pnpm 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 doctor so 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).
Details: Doctor

Start / stop / restart the Gateway

CLI (works regardless of OS):
If you’re supervised:
  • macOS launchd (app-bundled LaunchAgent): launchctl kickstart -k gui/$UID/ai.openclaw.gateway (use ai.openclaw.<profile>; legacy com.openclaw.* still works)
  • Linux systemd user service: systemctl --user restart openclaw-gateway[-<profile>].service
  • Windows (WSL2): systemctl --user restart openclaw-gateway[-<profile>].service
    • launchctl/systemctl only work if the service is installed; otherwise run wednesdayai gateway install.
Runbook + exact service labels: Gateway runbook

Rollback / pinning (when something breaks)

Pin (global install)

Install a known-good version (replace <version> with the last working one):
Tip: to see the current published version, run 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”):
Then reinstall deps + restart:
If you want to go back to latest later:
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