
What's up, fellow tinkerers who installed OpenClaw, poked around for a week, and now want it completely gone — this one's for you.
I've been running OpenClaw across three machines since the Clawdbot days (yes, before the January 2026 rebrands). And the number one question I see in the Discord and community forums isn't "how do I set it up" — it's "why is this thing still running after I deleted it?"
I'm Hanks. I test AI tools in real workflows and write up what actually happens. This is the full uninstall guide I wish had existed when I first tried to remove it and found the process way less obvious than it should be.
The core problem: OpenClaw installs itself as a persistent background service — a LaunchAgent on macOS, a systemd user unit on Linux, a Scheduled Task on Windows. Dragging the app to Trash (or running npm uninstall) doesn't touch those. The service keeps running after reboot, quietly waiting in the background. That's the part most guides miss.
Here's how to actually get it out.

If you've built any custom skills or workflows you want to keep, export them before removing anything. From the dashboard:
# Export your current skill list
openclaw skills export --output ~/openclaw-skills-backup.json
# Or back up the entire state directory manually
cp -r ~/.openclaw ~/openclaw-backup-$(date +%Y%m%d)
The state directory (~/.openclaw on macOS/Linux, %USERPROFILE%\.openclaw on Windows) holds your agent memory, installed skills, and session logs. Once you delete it, it's gone.
One thing worth knowing: even removing keys through the OpenClaw Web UI isn't enough to fully revoke access — credentials can still remain locally afterward. So if you granted OpenClaw access to Google, Slack, Telegram, or other services, plan to revoke those OAuth tokens separately after uninstalling (more on this in the FAQ).
If you ran OpenClaw via Docker Compose, your .env file contains API keys and config you'll want to save:
cp ~/openclaw/.env ~/openclaw-env-backup.txt
For standard npm installs, your config lives in ~/.openclaw/config.json. Back that up if you want to restore settings later.

This is the step most people skip. The background service has to die before you can cleanly remove anything.
The default LaunchAgent label is bot.molt.gateway — legacy installs may also have com.openclaw.gateway. Run both to be safe:
# Stop and remove the LaunchAgent (current label)
launchctl bootout gui/$UID/bot.molt.gateway 2>/dev/null
# Remove legacy label if present
launchctl bootout gui/$UID/com.openclaw.gateway 2>/dev/null
# Kill any remaining process
pkill -f openclaw || true
Confirm it's dead:
launchctl list | grep -i "claw\|molt"
# Should return nothing
If the openclaw CLI is still working, the easiest path is the built-in uninstaller:
openclaw uninstall
For non-interactive removal (automation or scripting):
openclaw uninstall --all --yes --non-interactive
If the CLI is already gone but the service was still running (common after a botched partial uninstall), do it manually:
# Remove LaunchAgent plist files
rm -f ~/Library/LaunchAgents/bot.molt.gateway.plist
rm -f ~/Library/LaunchAgents/com.openclaw.gateway.plist
rm -f ~/Library/LaunchAgents/com.clawdbot.gateway.plist # legacy
# Remove the app bundle
rm -rf /Applications/OpenClaw.app
# Remove config and state directories
rm -rf ~/.openclaw
rm -rf ~/.clawdbot # legacy name
rm -rf ~/.moltbot # legacy name
# Remove npm global package
npm uninstall -g openclaw
If you set OPENCLAW_CONFIG_PATH to a custom location, delete that file manually as well.
For Docker-based installs:
cd ~/openclaw # or wherever your docker-compose.yml lives
# Stop and remove containers
docker compose down
# Remove volumes (this deletes all agent data)
docker compose down --volumes
# Remove the pulled image
docker rmi openclaw/openclaw:latest
# Verify nothing remains
docker ps -a | grep -i claw
docker volume ls | grep -i claw
On Windows, OpenClaw installs as a Scheduled Task named "OpenClaw Gateway". Open PowerShell as Administrator:
# Delete the scheduled task
schtasks /Delete /F /TN "OpenClaw Gateway"
# Also remove the gateway script it points to
Remove-Item -Force "$env:USERPROFILE\.openclaw\gateway.cmd"
# If you used a named profile, replace with the profile task name:
# schtasks /Delete /F /TN "OpenClaw Gateway (profilename)"
Kill any lingering process:
Get-Process -Name "openclaw*" -ErrorAction SilentlyContinue | Stop-Process -Force
If you installed via the .exe installer (rather than npm), go to Settings → Apps → Installed Apps, search for "OpenClaw", and click Uninstall.
For npm installs, run in PowerShell:
npm uninstall -g openclaw
# or if you used pnpm:
pnpm remove -g openclaw
# or bun:
bun remove -g openclaw
The uninstaller doesn't always clear everything. Check and remove:
# Primary state directory
Remove-Item -Recurse -Force "$env:USERPROFILE\.openclaw" -ErrorAction SilentlyContinue
# Legacy directories from the rebrands
Remove-Item -Recurse -Force "$env:USERPROFILE\.clawdbot" -ErrorAction SilentlyContinue
Remove-Item -Recurse -Force "$env:USERPROFILE\.moltbot" -ErrorAction SilentlyContinue
# Molthub skills cache
Remove-Item -Recurse -Force "$env:USERPROFILE\.molthub" -ErrorAction SilentlyContinue
# AppData locations
Remove-Item -Recurse -Force "$env:APPDATA\OpenClaw" -ErrorAction SilentlyContinue
Remove-Item -Recurse -Force "$env:LOCALAPPDATA\OpenClaw" -ErrorAction SilentlyContinue
Verify nothing is left in %APPDATA% or %LOCALAPPDATA% by searching for "openclaw", "clawdbot", or "moltbot".
On Linux, OpenClaw runs as a systemd user unit named openclaw-gateway.service.
# Stop and disable the service
systemctl --user stop openclaw-gateway.service
systemctl --user disable openclaw-gateway.service
# Remove the unit file
rm -f ~/.config/systemd/user/openclaw-gateway.service
# Reload systemd so it forgets the unit
systemctl --user daemon-reload
# If you used PM2 instead:
pm2 delete openclaw
pm2 save
Kill any remaining process just to be sure:
pkill -f openclaw || true
pkill -f moltbot || true
pkill -f clawdbot || true
If the CLI is still installed, use the built-in uninstaller first:
openclaw uninstall --all --yes --non-interactive
Then clean up manually:
# Remove npm global package
npm uninstall -g openclaw
# Remove state and config directories
rm -rf ~/.openclaw
rm -rf ~/.clawdbot
rm -rf ~/.moltbot
rm -rf ~/.molthub
# Remove any PATH exports you added to your shell profile
# Edit ~/.bashrc, ~/.zshrc, or ~/.bash_profile and remove openclaw-related lines
Verify no directories remain:
ls ~/.openclaw ~/.clawdbot ~/.moltbot 2>&1
# Should show "No such file or directory" for all three
For Docker-based installs (common on VPS or headless servers):
cd ~/openclaw
# Full teardown including volumes
docker compose down --volumes --remove-orphans
# Remove the image
docker rmi openclaw/openclaw:latest 2>/dev/null || true
# Nuclear option — stop and remove ALL openclaw-related containers
docker ps -a --filter "name=openclaw" --format "{{.ID}}" | xargs -r docker rm -f
# Prune dangling volumes
docker volume prune -f
# Confirm clean
docker ps -a | grep -i claw # should return nothing
docker images | grep -i claw # should return nothing

OpenClaw's gateway binds to port 18789 by default. If anything is still listening there, the service didn't fully stop.
macOS/Linux:
lsof -i :18789
# Should return nothing. If it doesn't:
kill -9 $(lsof -ti :18789)
Windows (PowerShell):
netstat -ano | findstr :18789
# Should return nothing
Also check for the process by name:
# macOS/Linux
pgrep -la openclaw || echo "Clean"
# Windows
Get-Process | Where-Object { $_.Name -like "*openclaw*" }
A full OpenClaw install with active skills and agent memory can occupy 500 MB–2 GB, depending on Docker images and skill caches. Here's what you're recovering:
Run df -h ~ before and after to confirm. On macOS, du -sh ~/.openclaw gives you the directory size before deletion.
Changed your mind after uninstalling? Fair enough — it's a legitimately useful tool when it's configured right.
Before reinstalling, make sure the old service is completely dead (run the port check above) and the state directories are cleared. Starting a fresh install on top of leftover config files is the most common cause of "it won't start" errors on reinstall.
For a clean reinstall, our OpenClaw Install Guide covers the full process for macOS, Windows, and Linux, including the Node.js version requirements, onboarding wizard steps, and the verification checks that confirm everything is actually running.
Q: I deleted the app but the process keeps restarting on login. Why?
That's the background service — LaunchAgent on macOS, systemd on Linux, Scheduled Task on Windows. The service is separate from the app binary, and standard uninstallers often don't touch it. Go back to the "Stopping Running Processes" section for your platform and run those commands first.
Q: Do I need to revoke OAuth tokens after uninstalling?
Yes, if you connected any third-party services. Because OpenClaw uses long-lived OAuth tokens, your accounts remain accessible even after the software is removed — those tokens live on Google's, Slack's, and Discord's servers, not your computer. After uninstalling, go to each service's security settings and remove OpenClaw from the list of authorized apps: Google Account → Security → Third-party apps, Slack → Workspace Settings → Authorized Apps, etc.
Q: What are the .clawdbot and .moltbot directories?
OpenClaw was renamed twice in late January 2026 due to trademark pressure — from Clawdbot to Moltbot, then to OpenClaw. If you installed it during any of those phases, you likely have leftover directories from each name. All three (~/.openclaw, ~/.clawdbot, ~/.moltbot) should be removed. Check ls -la ~ | grep -E "claw|molt" to see what's present.
Q: Is openclaw uninstall enough, or do I need to do all the manual steps?
The built-in openclaw uninstall --all command handles the service, state directory, and CLI package in one go — it lists exactly what will be removed and prompts for confirmation before doing anything destructive. The manual steps in this guide are for when the CLI is already gone (broken partial uninstall) or when you want to verify nothing was missed. For most people, openclaw uninstall --all --yes is sufficient.
Q: I used Docker. Do I need to prune volumes separately?
Yes. docker compose down stops and removes the containers, but volumes persist by default. Run docker compose down --volumes to delete them as well. If you've been running OpenClaw for a while, the volumes can hold significant data (agent memory, downloaded skills). Prune Docker's dangling volumes with docker volume prune -f after removal.
Q: How do I know if any skills are still running after uninstall?
Agent skills are third-party scripts downloaded via Molthub, and some can contain auto-updating code that persists after uninstalling the main application. Delete ~/.molthub along with the main OpenClaw directories to make sure no skill caches remain.