Skip to content

Uninstall

Two paths:

  • Easy path if openclaw is still installed.
  • Manual service removal if the CLI is gone but the service is still running.

Recommended: use the built-in uninstaller:

Terminal window
openclaw uninstall

Non-interactive (automation / npx):

Terminal window
openclaw uninstall --all --yes --non-interactive
npx -y openclaw uninstall --all --yes --non-interactive

Manual steps (same result):

  1. Stop the gateway service:
Terminal window
openclaw gateway stop
  1. Uninstall the gateway service (launchd/systemd/schtasks):
Terminal window
openclaw gateway uninstall
  1. Delete state + config:
Terminal window
rm -rf "${OPENCLAW_STATE_DIR:-$HOME/.openclaw}"

If you set OPENCLAW_CONFIG_PATH to a custom location outside the state dir, delete that file too.

  1. Delete your workspace (optional, removes agent files):
Terminal window
rm -rf ~/.openclaw/workspace
  1. Remove the CLI install (pick the one you used):
Terminal window
npm rm -g openclaw
pnpm remove -g openclaw
bun remove -g openclaw
  1. If you installed the macOS app:
Terminal window
rm -rf /Applications/OpenClaw.app

Notes:

  • If you used profiles (--profile / OPENCLAW_PROFILE), repeat step 3 for each state dir (defaults are ~/.openclaw-<profile>).
  • In remote mode, the state dir lives on the gateway host, so run steps 1-4 there too.

Manual service removal (CLI not installed)

Section titled “Manual service removal (CLI not installed)”

Use this if the gateway service keeps running but openclaw is missing.

Default label is ai.openclaw.gateway (or ai.openclaw.<profile>; legacy com.openclaw.* may still exist):

Terminal window
launchctl bootout gui/$UID/ai.openclaw.gateway
rm -f ~/Library/LaunchAgents/ai.openclaw.gateway.plist

If you used a profile, replace the label and plist name with ai.openclaw.<profile>. Remove any legacy com.openclaw.* plists if present.

Default unit name is openclaw-gateway.service (or openclaw-gateway-<profile>.service):

Terminal window
systemctl --user disable --now openclaw-gateway.service
rm -f ~/.config/systemd/user/openclaw-gateway.service
systemctl --user daemon-reload

Default task name is OpenClaw Gateway (or OpenClaw Gateway (<profile>)). The task script lives under your state dir.

Terminal window
schtasks /Delete /F /TN "OpenClaw Gateway"
Remove-Item -Force "$env:USERPROFILE\.openclaw\gateway.cmd"

If you used a profile, delete the matching task name and ~\.openclaw-<profile>\gateway.cmd.

Normal install (install.sh / npm / pnpm / bun)

Section titled “Normal install (install.sh / npm / pnpm / bun)”

If you used https://openclaw.ai/install.sh or install.ps1, the CLI was installed with npm install -g openclaw@latest. Remove it with npm rm -g openclaw (or pnpm remove -g / bun remove -g if you installed that way).

If you run from a repo checkout (git clone + openclaw ... / bun run openclaw ...):

  1. Uninstall the gateway service before deleting the repo (use the easy path above or manual service removal).
  2. Delete the repo directory.
  3. Remove state + workspace as shown above.