Uninstall
Two paths:
- Easy path if
openclawis still installed. - Manual service removal if the CLI is gone but the service is still running.
Easy path (CLI still installed)
Section titled “Easy path (CLI still installed)”Recommended: use the built-in uninstaller:
openclaw uninstallWhen using the CLI, state removal preserves configured workspace directories unless you also select --workspace.
Preview what will be removed (safe):
openclaw uninstall --dry-run --allNon-interactive (automation / npx). Use with caution and only after confirming scopes:
openclaw uninstall --all --yes --non-interactivenpx -y openclaw uninstall --all --yes --non-interactiveManual steps (same result):
- Stop the gateway service:
openclaw gateway stop- Uninstall the gateway service (launchd/systemd/schtasks):
openclaw gateway uninstall- Delete state + config:
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.
If you want to keep a workspace inside the state dir, such as ~/.openclaw/workspace, move it aside before running rm -rf or delete state contents selectively.
- Delete your workspace (optional, removes agent files):
rm -rf ~/.openclaw/workspace- Remove the CLI install (pick the one you used):
npm rm -g openclawpnpm remove -g openclawbun remove -g openclaw- If you installed the macOS app:
rm -rf /Applications/OpenClaw.appNotes:
- 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.
macOS (launchd)
Section titled “macOS (launchd)”Default label is ai.openclaw.gateway (or ai.openclaw.<profile>; legacy com.openclaw.* may still exist):
launchctl bootout gui/$UID/ai.openclaw.gatewayrm -f ~/Library/LaunchAgents/ai.openclaw.gateway.plistIf you used a profile, replace the label and plist name with ai.openclaw.<profile>. Remove any legacy com.openclaw.* plists if present.
Linux (systemd user unit)
Section titled “Linux (systemd user unit)”Default unit name is openclaw-gateway.service (or openclaw-gateway-<profile>.service):
systemctl --user disable --now openclaw-gateway.servicerm -f ~/.config/systemd/user/openclaw-gateway.servicesystemctl --user daemon-reloadWindows (Scheduled Task)
Section titled “Windows (Scheduled Task)”Default task name is OpenClaw Gateway (or OpenClaw Gateway (<profile>)).
The task script lives under your state dir as gateway.cmd; current installs may
also create a windowless gateway.vbs launcher that Task Scheduler runs instead
of opening gateway.cmd directly.
schtasks /Delete /F /TN "OpenClaw Gateway"Remove-Item -Force "$env:USERPROFILE\.openclaw\gateway.cmd" -ErrorAction SilentlyContinueRemove-Item -Force "$env:USERPROFILE\.openclaw\gateway.vbs" -ErrorAction SilentlyContinueIf you used a profile, delete the matching task name and the gateway.cmd /
gateway.vbs files under ~\.openclaw-<profile>.
Normal install vs source checkout
Section titled “Normal install vs source checkout”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).
Source checkout (git clone)
Section titled “Source checkout (git clone)”If you run from a repo checkout (git clone + openclaw ... / bun run openclaw ...):
- Uninstall the gateway service before deleting the repo (use the easy path above or manual service removal).
- Delete the repo directory.
- Remove state + workspace as shown above.