Press Win + R, type cmd, and press Enter. Or search for PowerShell in the Start menu.
If the openclaw command still works, run:
openclaw uninstall --all --yesuninstall — tells the program you want to remove it.--all — removes everything: gateway service, local database, config files.--yes — auto-confirms all prompts.For fully non-interactive use (scripts, CI, npx):
openclaw uninstall --all --yes --non-interactive
npx -y openclaw uninstall --all --yes --non-interactiveAfter the uninstall command finishes, only the CLI shell remains. Remove it with whichever package manager you originally used:
npm rm -g openclaw
# or
pnpm remove -g openclaw
# or
bun remove -g openclawIf the openclaw command is missing but the gateway scheduled task is still running:
Command Prompt:
schtasks /Delete /F /TN "OpenClaw Gateway"PowerShell:
Remove-Item -Force "$env:USERPROFILE\.openclaw\gateway.cmd"If you used profiles, delete the matching task name and script:
schtasks /Delete /F /TN "OpenClaw Gateway (<profile>)"
Remove-Item -Force "$env:USERPROFILE\.openclaw-<profile>\gateway.cmd"PowerShell:
Remove-Item -Recurse -Force "$env:USERPROFILE\.openclaw"Command Prompt:
rmdir /s /q "%USERPROFILE%\.openclaw"If you set OPENCLAW_CONFIG_PATH to a custom location, delete that file too. If you used profiles, repeat for each state dir (e.g. %USERPROFILE%\.openclaw-<profile>).
| Category | Places to check |
|---|---|
| Roaming data | %AppData%\openclaw |
| Local data | %LocalAppData%\openclaw |
| ProgramData | C:\ProgramData\openclaw |
| Temp and caches | %TEMP% (search for openclaw-related folders) |
| Project config | Workspaces where OpenClaw stored config or state |
Review and clean up:
taskschd.msc and search for OpenClaw entries.shell:startup for OpenClaw shortcuts.services.msc and look for OpenClaw services.If OpenClaw modified your environment:
PATH for OpenClaw entries (System Properties → Environment Variables).$PROFILE).OPENCLAW_* environment variables.where.exe openclaw
Get-ScheduledTask | Where-Object { $_.TaskName -like '*OpenClaw*' }Both should return empty results.