| --- |
| summary: "Uninstall OpenClaw completely (CLI, service, state, workspace)" |
| read_when: |
| - You want to remove OpenClaw from a machine |
| - The gateway service is still running after uninstall |
| title: "Uninstall" |
| --- |
| |
| # Uninstall |
|
|
| Two paths: |
|
|
| - **Easy path** if `openclaw` is still installed. |
| - **Manual service removal** if the CLI is gone but the service is still running. |
|
|
| ## Easy path (CLI still installed) |
|
|
| Recommended: use the built-in uninstaller: |
|
|
| ```bash |
| openclaw uninstall |
| ``` |
|
|
| Non-interactive (automation / npx): |
|
|
| ```bash |
| openclaw uninstall --all --yes --non-interactive |
| npx -y openclaw uninstall --all --yes --non-interactive |
| ``` |
|
|
| Manual steps (same result): |
|
|
| 1. Stop the gateway service: |
|
|
| ```bash |
| openclaw gateway stop |
| ``` |
|
|
| 2. Uninstall the gateway service (launchd/systemd/schtasks): |
|
|
| ```bash |
| openclaw gateway uninstall |
| ``` |
|
|
| 3. Delete state + config: |
|
|
| ```bash |
| 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. |
|
|
| 4. Delete your workspace (optional, removes agent files): |
|
|
| ```bash |
| rm -rf ~/.openclaw/workspace |
| ``` |
|
|
| 5. Remove the CLI install (pick the one you used): |
|
|
| ```bash |
| npm rm -g openclaw |
| pnpm remove -g openclaw |
| bun remove -g openclaw |
| ``` |
|
|
| 6. If you installed the macOS app: |
|
|
| ```bash |
| 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) |
|
|
| Use this if the gateway service keeps running but `openclaw` is missing. |
|
|
| ### macOS (launchd) |
|
|
| Default label is `ai.openclaw.gateway` (or `ai.openclaw.<profile>`; legacy `com.openclaw.*` may still exist): |
|
|
| ```bash |
| 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. |
|
|
| ### Linux (systemd user unit) |
|
|
| Default unit name is `openclaw-gateway.service` (or `openclaw-gateway-<profile>.service`): |
|
|
| ```bash |
| systemctl --user disable --now openclaw-gateway.service |
| rm -f ~/.config/systemd/user/openclaw-gateway.service |
| systemctl --user daemon-reload |
| ``` |
|
|
| ### Windows (Scheduled Task) |
|
|
| Default task name is `OpenClaw Gateway` (or `OpenClaw Gateway (<profile>)`). |
| The task script lives under your state dir. |
|
|
| ```powershell |
| 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 vs source checkout |
|
|
| ### 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) |
|
|
| 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. |
|
|