- 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)
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:--workspace.
Preview what will be removed (safe):
--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.
- Stop the gateway service:
- Uninstall the gateway service (launchd/systemd/schtasks):
- 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.
- Delete state + config:
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.
- Delete a workspace stored outside the state directory only if you want to remove its agent files too:
- Remove the CLI install (pick the one you used):
- If you installed the macOS app:
- 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 butopenclaw is missing.
macOS (launchd)
Default label isai.openclaw.gateway (or ai.openclaw.<profile> with a profile):
ai.openclaw.<profile>.
Linux (systemd user unit)
Default unit name isopenclaw-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.
Windows (Scheduled Task)
Default task name isOpenClaw 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.
gateway.cmd /
gateway.vbs files under ~\.openclaw-<profile>.
Normal install vs source checkout
Normal install (install.sh / npm / pnpm / bun)
If you usedhttps://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 ...):
- 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.