OpenClaw Series

这篇文章属于 OpenClaw 维护与清理实战篇

如果你准备重装、换机器,或者想把本机上的 OpenClaw 痕迹彻底清掉,这篇就按“先备份、再停服务、再删残留、最后验收”的顺序带你做。

本文按 2026 年 3 月 28 日可查到的 OpenClaw 官方 Uninstall、CLI uninstallbackup、Environment、FAQ 与 Windows 文档整理。为了避免“命令执行了但机器上还残留服务、状态目录、工作区或 CLI”的情况,本文把“普通卸载”和“真正完全卸载干净”分开讲。

先说结论:真正“卸载干净”不是只跑一条命令

很多人以为:

1
openclaw uninstall

执行完就算彻底卸载了。

但截至 2026 年 3 月 28 日,官方文档需要连起来看才完整:

  • CLI uninstall 命令页把它定义为“卸载 Gateway 服务 + 本地数据”,并明确说明 CLI remains
  • 安装维护页的“Uninstall”又把完整离场拆成服务、状态目录、工作区、CLI 安装、macOS App 这几层

也就是说,如果你的目标只是“把当前 Gateway 和本地数据清掉”,openclaw uninstall 很有用。
但如果你的目标是“以后这台机器上基本不再留 OpenClaw 痕迹”,你至少要清理 4 层:

  • Gateway 服务和后台进程
  • 状态目录、配置文件、.env、登录态、会话、插件和渠道残留
  • 工作区里的 agent 文件,例如 MEMORY.mdUSER.md、skills 笔记等
  • CLI 本体、macOS App,或者你自己 git clone 下来的源码目录

如果这 4 层你只清了前 1 层,后面经常会出现:

  • 重装后还是读到旧配置
  • 端口又被旧服务占住
  • 浏览器里还是连到旧 Gateway
  • Telegram / Discord / WhatsApp 登录态没真正清掉
  • 命令行里还可以执行 openclaw

所以这篇文章的目标不是“告诉你一条命令”,而是让你做完以后,真的能确认这台电脑已经卸干净。


卸载前先做 2 件事:备份和找路径

如果你只是想重装,不想丢掉历史配置、聊天上下文、渠道登录和工作区内容,先备份。

1. 先备份,别把可恢复的数据一起删了

官方当前提供了内置备份命令,最稳的是:

1
openclaw backup create --verify

如果你只想备份配置,不想把工作区一并打包:

1
openclaw backup create --only-config

如果你的配置已经坏了,但你还想先把状态和凭据保住:

1
openclaw backup create --no-include-workspace

这一步尤其适合这几类人:

  • 你后面还要重新安装 OpenClaw
  • 你配过 API key、provider、channel
  • 你不想丢聊天记录或 agent 记忆
  • 你准备换电脑

2. 先确认 OpenClaw 实际把东西放在哪里

默认情况下,官方多数文档都按下面这套路径讲:

  • 状态目录:~/.openclaw
  • 配置文件:~/.openclaw/openclaw.json
  • 默认工作区:~/.openclaw/workspace

但真正容易漏删的地方恰恰在这里:

  • 你用了 --profile <name>
  • 你设置过 OPENCLAW_STATE_DIR
  • 你设置过 OPENCLAW_CONFIG_PATH
  • 你设置过 OPENCLAW_HOME
  • 你的工作区不是默认路径

先跑下面这组检查最稳:

1
2
3
4
5
6
7
openclaw status
openclaw config file
openclaw config get agents.defaults.workspace
echo "$OPENCLAW_HOME"
echo "$OPENCLAW_STATE_DIR"
echo "$OPENCLAW_CONFIG_PATH"
find "$HOME" -type d -name '.openclaw*' -prune 2>/dev/null

这里要特别注意一个实用细节:

  • 如果你用了 --profile demo,状态目录通常会变成 ~/.openclaw-demo
  • 如果你设置了 OPENCLAW_CONFIG_PATH,配置文件可能根本不在 ~/.openclaw/openclaw.json
  • 按官方环境变量规则推断,如果你设置过 OPENCLAW_HOME,OpenClaw 的内部默认路径会跟着那个“替代 home”走,而不一定还是当前用户的 ~/.openclaw

如果你连真实路径都没确认,后面很容易“以为删完了”,其实只是删掉了默认目录。


方案 A:CLI 还在,这是最快也最稳的卸载路线

如果你现在终端里还能执行:

1
openclaw --version

那就优先走官方推荐路径。

第 1 步:先看一遍即将删除什么

先不要直接删,建议先 dry-run:

1
openclaw uninstall --dry-run

这样你能先确认:

  • 会不会删服务
  • 会不会删状态目录
  • 会不会删工作区
  • 有没有 app scope

第 2 步:执行内置卸载

如果你就是要彻底清本地数据,最省事的是:

1
openclaw uninstall --all --yes --non-interactive

这一步的意义是先把 OpenClaw 自己认识的本地内容清掉,尤其是:

  • Gateway service
  • state
  • workspace
  • app scope

但为了“完全卸载干净”,你还不能在这里停下。

第 3 步:把 CLI 本体也删掉

如果你当时是用 npm 全局安装的:

1
npm rm -g openclaw

如果你当时用的是 pnpm:

1
pnpm remove -g openclaw

如果你当时用的是 bun:

1
bun remove -g openclaw

很多人会漏这一步,结果服务虽然没了,但终端里 openclaw 还在,这就不算真正卸干净。

第 4 步:如果装过 macOS App,把 App 也删掉

如果你在 Mac 上还装过官方 App,再补一步:

1
rm -rf /Applications/OpenClaw.app

第 5 步:如果你是从源码跑的,再删源码目录

如果你不是普通全局安装,而是自己:

  • git clone 了 OpenClaw 仓库
  • 然后用 openclaw ...pnpm openclaw ...bun run ... 在源码目录里跑

那你还要再做两件事:

  1. 先确认 Gateway 服务已经卸掉
  2. 再删除 OpenClaw 的源码目录

否则你虽然删了状态目录,但本地还是保留一整套源码和构建产物。


Mac 用户最省心的完整命令顺序

如果你是 Mac,且 CLI 还在,照这个顺序做最不容易漏:

1
2
3
4
5
6
7
8
openclaw backup create --verify
openclaw uninstall --dry-run
openclaw uninstall --all --yes --non-interactive
npm rm -g openclaw
rm -rf /Applications/OpenClaw.app
rehash
which openclaw
find "$HOME" -type d -name '.openclaw*' -prune 2>/dev/null

说明一下:

  • rehash 是为了刷新 zsh 的命令缓存
  • 如果你不是 npm 装的,就把 npm rm -g openclaw 换成 pnpm 或 bun 对应命令
  • which openclaw 最好应该没有输出,或者明确提示找不到
  • 如果你本机有多个 profile,~/.openclaw-demo 这种目录也要一起检查

Windows 用户要分清 2 种情况

OpenClaw 官方当前仍然优先推荐 Windows 走 WSL2
所以 Windows 的“彻底卸载”最常见其实有两条路线。

情况 1:你是按官方推荐,用 WSL2 里的 Ubuntu 装的

这种情况下,真正运行 CLI 和 Gateway 的地方是 WSL2 里的 Linux 环境,而不是 Windows 原生 PowerShell。

所以正确做法是:

  1. 打开你的 Ubuntu / WSL2 终端
  2. 在 WSL2 里执行卸载
  3. 最后再决定要不要删除 Windows 侧保存的源码目录或快捷方式

WSL2 里可以直接这样做:

1
2
3
4
5
6
openclaw backup create --verify
openclaw uninstall --dry-run
openclaw uninstall --all --yes --non-interactive
npm rm -g openclaw
which openclaw
find "$HOME" -type d -name '.openclaw*' -prune 2>/dev/null

如果你当初是在某个 Git 仓库目录里用源码方式跑的,记得最后把那个仓库目录也删掉。

情况 2:CLI 已经不见了,但 Windows 计划任务还在

官方卸载文档给了原生 Windows 残留服务的处理方法。
如果你遇到的是“命令已经没了,但开机后好像还在跑 Gateway”,可以在 PowerShell 里执行:

1
2
schtasks /Delete /F /TN "OpenClaw Gateway"
Remove-Item -Force "${env:USERPROFILE}\.openclaw\gateway.cmd"

如果你当初用了 profile,比如 demo,那计划任务名通常会变成:

1
OpenClaw Gateway (demo)

这时你要删掉匹配的任务名,以及对应的:

1
${env:USERPROFILE}\.openclaw-demo\gateway.cmd

方案 B:CLI 已经没了,但后台服务还在自启

这是最容易把人搞烦的一种情况:

  • 你把 CLI 删了
  • 甚至把目录也手动删了一部分
  • 但开机后还有服务自启
  • 或者端口还是被占着

这时候不要急着重装,先把服务层彻底拆掉。

1. macOS:手动清 launchd

官方当前给出的默认 label 是:

  • ai.openclaw.gateway
  • 或者 ai.openclaw.<profile>

Mac 上可以这样处理:

1
2
launchctl bootout gui/$UID/ai.openclaw.gateway
rm -f ~/Library/LaunchAgents/ai.openclaw.gateway.plist

如果你用过 profile,把 gateway 替换成对应 profile 名即可。

另外,官方还特别提醒了一个很实用的兼容点:

  • 老版本残留里,可能还存在 com.openclaw.*

所以你最好再检查一遍:

1
2
ls ~/Library/LaunchAgents | grep -i openclaw
launchctl list | grep -i openclaw

如果还能看到旧 plist 或旧 label,就继续删。

2. Linux / WSL2:手动清 systemd user unit

如果你的 OpenClaw 是跑在 Linux 或 WSL2 里,默认最常见的是 user unit:

1
2
3
systemctl --user disable --now openclaw-gateway.service
rm -f ~/.config/systemd/user/openclaw-gateway.service
systemctl --user daemon-reload

如果你用过 profile,就把 service 名换成:

1
openclaw-gateway-<profile>.service

然后再检查一次:

1
2
systemctl --user list-units | grep -i openclaw
systemctl --user list-unit-files | grep -i openclaw

3. Windows:手动清计划任务

如果你走的是 Windows 原生计划任务路线,就按官方文档删:

1
2
schtasks /Delete /F /TN "OpenClaw Gateway"
Remove-Item -Force "${env:USERPROFILE}\.openclaw\gateway.cmd"

删完之后最好再查一次:

1
2
schtasks /Query /TN "OpenClaw Gateway"
Test-Path "${env:USERPROFILE}\.openclaw\gateway.cmd"

如果任务查询不到、脚本文件也不存在,服务层基本就干净了。


这几个残留,最容易被漏掉

真正让人“明明卸载过,怎么还像没卸”的,通常不是主命令,而是下面这些细节。

1. 你用了多个 profile

官方 Gateway 文档明确提到,多 profile 的状态目录常常会变成:

  • ~/.openclaw
  • ~/.openclaw-<profile>

所以你不能只删默认目录,还要把所有 profile 都检查一遍:

1
find "$HOME" -type d -name '.openclaw*' -prune 2>/dev/null

2. 你把配置文件放到了状态目录外面

这是最经典的“看起来删干净了,实际没删完”。

如果你设置过:

1
echo "$OPENCLAW_CONFIG_PATH"

而它指向的不是默认 ~/.openclaw/openclaw.json,那你必须单独删除那个配置文件。
因为官方卸载说明已经明确提到:自定义 OPENCLAW_CONFIG_PATH 在状态目录之外时,要手动清掉。

3. 你设置过 OPENCLAW_HOME

这个点特别容易漏。

按官方环境变量文档的路径优先级来理解,如果你设置了 OPENCLAW_HOME,OpenClaw 的内部路径会先跟着它走。
所以你以为默认目录在当前用户 ~/.openclaw,但真正的数据可能其实落在另一个 home 根下。

如果你曾经把 OpenClaw 跑成某个专门服务账号,这一步一定要检查。

4. 你还有默认工作区以外的 agent 文件

很多人以为删掉 ~/.openclaw 就结束了,但你的工作区未必在那里。

先看:

1
openclaw config get agents.defaults.workspace

如果这个工作区是你自己指定的项目目录,那就别无脑 rm -rf
先确认里面是不是还有你要保留的内容,例如:

  • MEMORY.md
  • USER.md
  • 自己写的 prompt
  • skills 笔记
  • 自动化脚本

如果你要的是“完全清干净”,那这个工作区也要处理。
如果你只是想重装 OpenClaw,但还想保留这些文件,就先备份。

5. 你在远程模式里只删了本机,没有删网关主机

官方 FAQ 和会话管理文档都强调了一点:

  • 远程模式下,真正的状态存储在 Gateway host 上,不在你本地笔记本上

所以如果你以前是:

  • 本地浏览器 / Mac App 连接远程 Gateway
  • 或者把 OpenClaw 主实例跑在另一台 VPS / mini PC / NAS 上

那你在当前电脑上删完以后,还要去真正的 Gateway 主机上再做一次服务、状态目录和工作区清理。
否则只是把“客户端入口”删了,不是把 OpenClaw 真卸载了。


怎么确认已经“卸载干净”

做完以后,不要靠感觉,直接验收。

Mac / Linux / WSL2 验收清单

1
2
3
4
which openclaw
find "$HOME" -type d -name '.openclaw*' -prune 2>/dev/null
lsof -iTCP:18789 -sTCP:LISTEN
pgrep -fal openclaw

理想结果应该是:

  • which openclaw 没有可执行路径
  • ~/.openclaw~/.openclaw-<profile> 不再存在
  • 默认 Gateway 端口没有监听
  • 进程列表里没有还在跑的 OpenClaw 后台进程

如果你是 Mac,再补一眼:

1
launchctl list | grep -i openclaw

如果你是 Linux / WSL2,再补一眼:

1
systemctl --user list-units | grep -i openclaw

Windows 验收清单

1
2
3
Get-Command openclaw -ErrorAction SilentlyContinue
schtasks /Query /TN "OpenClaw Gateway"
Test-Path "${env:USERPROFILE}\.openclaw"

理想结果是:

  • Get-Command openclaw 没有返回有效命令
  • OpenClaw Gateway 计划任务查询不到
  • ~\.openclaw 或对应 profile 目录已经不存在

还有一个很实用的小提示

如果你刚执行完全局卸载,当前终端有时还会因为命令缓存,看起来像是 openclaw 还在。
这时可以:

  • zsh 运行 rehash
  • bash 运行 hash -r
  • 或者直接关掉终端重新打开

不要因为缓存没刷新,就误判成“卸载失败”。


一套最适合新手照抄的完整流程

如果你不想自己组合命令,直接按下面逻辑走:

  1. 先备份:openclaw backup create --verify
  2. 找路径:openclaw config fileopenclaw config get agents.defaults.workspaceecho "$OPENCLAW_STATE_DIR"
  3. 预演:openclaw uninstall --dry-run
  4. 正式删:openclaw uninstall --all --yes --non-interactive
  5. 删除 CLI:npm rm -g openclaw 或对应包管理器命令
  6. 删除 App 或源码目录
  7. 删除额外 profile、自定义 config、额外 workspace
  8. 做最终验收:命令不存在、服务不存在、端口没监听、目录没残留

你只要按这个顺序做,基本不会出现“服务删了但 CLI 还在”或者“CLI 删了但后台还在跑”的半吊子状态。


最后给你一句最实用的判断标准

如果你做完以后,终端里找不到 openclaw、系统里没有 OpenClaw 自启服务、~/.openclaw 及 profile 目录都不存在、默认端口也没有监听,这才叫真正卸载干净。

只做到其中一半,通常都不算。

尤其是想重新安装的人,越是把旧状态清理彻底,后面重装越不容易继续吃旧配置和旧残留的亏。


OpenClaw 系列文章推荐


参考资料(2026-03-28 核对)