mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-26 04:15:48 -06:00
7bc994aee8
* fix(install): make lifecycle mutations transactional Standalone installers now apply npm-version-aware lifecycle approval. Updates verify and repair the installation before reporting success and preserve the prior install owner during method switches. Uninstall now exits nonzero when requested cleanup is only partially completed. Plugin update behavior is unchanged. Closes #125925 * test(uninstall): assert aggregated live-owner failure * fix(install): satisfy standalone shell checks * fix(update): scan PATH for prior Git wrapper * test(hooks): await Gmail watcher descendant exit * fix(install): verify Windows npm candidate * fix(ci): normalize package acceptance version * fix(update): preserve staged local package links * test(update): fold staged symlink coverage * fix(update): retire every legacy Git wrapper * test(docs): align consolidated ownership checks
161 lines
5.2 KiB
Markdown
161 lines
5.2 KiB
Markdown
---
|
|
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"
|
|
---
|
|
|
|
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)
|
|
|
|
The command attempts independent requested cleanup scopes and returns a nonzero status if any scope fails or is blocked. Service teardown remains the safety gate for state and workspace deletion; if that gate fails, those data scopes are preserved while app cleanup is still attempted. Partial cleanup is reported explicitly and is never followed by an unconditional completion result.
|
|
|
|
Recommended: use the built-in uninstaller:
|
|
|
|
```bash
|
|
openclaw uninstall
|
|
```
|
|
|
|
State removal preserves configured workspace directories unless you also select `--workspace`.
|
|
|
|
Preview what will be removed (safe):
|
|
|
|
```bash
|
|
openclaw uninstall --dry-run --all
|
|
```
|
|
|
|
Non-interactive (automation / npx). Use with caution and only after confirming scopes:
|
|
|
|
```bash
|
|
openclaw uninstall --all --yes --non-interactive
|
|
npx -y openclaw uninstall --all --yes --non-interactive
|
|
```
|
|
|
|
Flags: `--service`, `--state`, `--workspace`, `--app` select individual scopes; `--all` selects all four.
|
|
|
|
Manual steps provide a complete removal path, but a raw state-directory deletion
|
|
does not have the built-in uninstaller's workspace-preservation behavior. If
|
|
you want the equivalent of `openclaw uninstall --state`, preserve every
|
|
configured workspace before deleting state.
|
|
|
|
1. Stop the gateway service:
|
|
|
|
```bash
|
|
openclaw gateway stop
|
|
```
|
|
|
|
2. Uninstall the gateway service (launchd/systemd/schtasks):
|
|
|
|
```bash
|
|
openclaw gateway uninstall
|
|
```
|
|
|
|
3. Decide whether to preserve the workspace.
|
|
|
|
`openclaw uninstall --state` deliberately preserves configured workspace
|
|
directories, including the default `~/.openclaw/workspace`. Before using the
|
|
manual `rm -rf` below, move any workspace you want to keep outside the state
|
|
directory. If you want to remove it too, no separate deletion is needed when it
|
|
lives inside the state directory.
|
|
|
|
4. 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.
|
|
Restore any preserved workspace to its configured path after recreating the
|
|
parent directory, or update the workspace path in your next installation.
|
|
|
|
5. Delete a workspace stored outside the state directory only if you want to
|
|
remove its agent files too:
|
|
|
|
```bash
|
|
rm -rf /path/to/external/workspace
|
|
```
|
|
|
|
6. Remove the CLI install (pick the one you used):
|
|
|
|
```bash
|
|
npm rm -g openclaw
|
|
pnpm remove -g openclaw
|
|
bun remove -g openclaw
|
|
```
|
|
|
|
7. If you installed the macOS app:
|
|
|
|
```bash
|
|
rm -rf /Applications/OpenClaw.app
|
|
```
|
|
|
|
Notes:
|
|
|
|
- If you used profiles (`--profile` / `OPENCLAW_PROFILE`), repeat steps 3-4 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>` with a profile):
|
|
|
|
```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>`.
|
|
|
|
### Linux (systemd user unit)
|
|
|
|
Default unit name is `openclaw-gateway.service` (or `openclaw-gateway-<profile>.service`). A pre-rename `clawdbot-gateway.service` unit may still exist on machines upgraded from very old installs; `openclaw uninstall` / `openclaw gateway uninstall` detects and removes it automatically.
|
|
|
|
```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 launches a windowless `gateway.vbs` script under your state dir, which in turn
|
|
runs `gateway.cmd`; remove both.
|
|
|
|
```powershell
|
|
schtasks /Delete /F /TN "OpenClaw Gateway"
|
|
Remove-Item -Force "$env:USERPROFILE\.openclaw\gateway.cmd" -ErrorAction SilentlyContinue
|
|
Remove-Item -Force "$env:USERPROFILE\.openclaw\gateway.vbs" -ErrorAction SilentlyContinue
|
|
```
|
|
|
|
If you used a profile, delete the matching task name and the `gateway.cmd` /
|
|
`gateway.vbs` files under `~\.openclaw-<profile>`.
|
|
|
|
## 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.
|
|
|
|
## Related
|
|
|
|
- [Install overview](/install)
|
|
- [Migration guide](/install/migrating)
|