docs/install/uninstall.md
Two paths:
openclaw is still installed.Recommended: use the built-in uninstaller:
openclaw uninstall
Non-interactive (automation / npx):
openclaw uninstall --all --yes --non-interactive
npx -y openclaw uninstall --all --yes --non-interactive
Manual steps (same result):
openclaw gateway stop
openclaw gateway uninstall
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.
rm -rf ~/.openclaw/workspace
npm rm -g openclaw
pnpm remove -g openclaw
bun remove -g openclaw
rm -rf /Applications/OpenClaw.app
Notes:
--profile / OPENCLAW_PROFILE), repeat step 3 for each state dir (defaults are ~/.openclaw-<profile>).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):
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):
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.
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.
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 ...):