OpenClaw彻底卸载指南:macOS/Windows/Linux清理方法
许多用户在卸载 OpenClaw 时都会遇到一个共性难题:明明执行了 npm uninstall -g openclaw,后台守护进程却仍在运行,重装时频频报端口冲突或文件格式错误,磁盘空间也并未释放。这其实就是“卸载不干净”的典型表现。一套完整的清理流程并不复杂,但必须严格遵循顺序:先终止守护进程,再删除服务注册文件,接着卸载 npm 全局包,然后清空数据与配置目录,最后执行验证。五步缺一不可。
为什么 OpenClaw 容易残留卸载痕迹
根源在于 OpenClaw 的安装机制。当执行 openclaw onboard --install-daemon 时,它会在操作系统层面注册一个长期活跃的守护服务:
- macOS:在
~/Library/LaunchAgents/目录写入com.openclaw.gateway.plist,由 launchd 管理,系统启动时自动加载 - Linux:在
~/.config/systemd/user/目录写入openclaw-gateway.service,由 systemd 管理 - Windows(WSL2):通过 WSL2 的 systemd 管理服务
此外,OpenClaw 运行期间还会在多个目录写入配置文件、技能缓存、会话历史记录和日志。仅靠 npm uninstall 根本无法触及守护进程注册和数据目录这两块区域。
残留文件完整清单
| 路径 | 内容 | 必须清理 |
|---|---|---|
~/.openclaw/ | 配置文件、会话历史、技能缓存、密钥 | ✅ 是 |
~/Library/LaunchAgents/com.openclaw.gateway.plist | macOS 守护进程注册文件 | ✅ 是 |
~/Library/Application Support/OpenClaw/ | macOS 应用支持数据 | ✅ 是 |
~/Library/Caches/OpenClaw/ | macOS 缓存文件 | 建议清理 |
~/Library/Preferences/com.openclaw.*.plist | macOS 偏好设置 | 建议清理 |
/Applications/OpenClaw.app | macOS GUI 桌面客户端(若已安装) | ✅ 是 |
~/.config/systemd/user/openclaw-gateway.service | Linux systemd 服务单元文件 | ✅ 是 |
| npm 全局包目录 | OpenClaw 可执行文件 | ✅ 是 |
%APPDATA%OpenClaw | Windows AppData 数据目录 | ✅ 是 |
%LOCALAPPDATA%OpenClaw | Windows 本地缓存 | 建议清理 |
macOS 彻底卸载步骤
第一步:停止并删除守护进程
# 停止 launchd 守护进程
launchctl unload ~/Library/LaunchAgents/com.openclaw.gateway.plist
# 删除 plist 注册文件
rm ~/Library/LaunchAgents/com.openclaw.gateway.plist
验证进程已停止:
launchctl list | grep openclaw
# 无输出表示进程已清除
第二步:卸载 npm 全局包
# npm 安装的用户
npm uninstall -g openclaw
# pnpm 安装的用户
pnpm remove -g openclaw
# bun 安装的用户
bun remove -g openclaw
第三步:删除桌面应用(若已安装图形客户端)
# 删除 Applications 目录中的 OpenClaw.app
rm -rf /Applications/OpenClaw.app
第四步:清理数据与配置目录
# 主数据目录(含配置、会话历史、技能、密钥)
rm -rf ~/.openclaw
# macOS 应用支持目录
rm -rf ~/Library/Application Support/OpenClaw
# 缓存目录
rm -rf ~/Library/Caches/OpenClaw
# 偏好设置(批量删除所有 com.openclaw 相关文件)
rm -f ~/Library/Preferences/com.openclaw*.plist
第五步:验证清理是否彻底
# 检查可执行文件是否残留
which openclaw
# 无输出 = 已清理
# 检查守护进程是否仍在运行
pgrep -l openclaw
# 无输出 = 已停止
# 检查数据目录是否存在
ls ~/.openclaw 2>/dev/null && echo "仍有残留" || echo "已清理"
Windows 彻底卸载步骤
Windows 用户通常通过 WSL2 运行 OpenClaw,因此清理需从 WSL2 内部和 Windows 原生两侧同时进行。
方式一:通过 WSL2 内部清理
在 WSL2 终端(Ubuntu/Debian)中执行:
# 停止 systemd 服务
systemctl --user stop openclaw-gateway
systemctl --user disable openclaw-gateway
# 删除 systemd 服务文件
rm ~/.config/systemd/user/openclaw-gateway.service
systemctl --user daemon-reload
# 卸载 npm 包
npm uninstall -g openclaw
# 清理数据目录
rm -rf ~/.openclaw
方式二:清理 Windows 侧残留(WSL2 文件系统之外)
在 Windows 文件资源管理器或 PowerShell 中执行:
# 删除 AppData 数据目录
Remove-Item -Recurse -Force "$env:APPDATAOpenClaw"
Remove-Item -Recurse -Force "$env:LOCALAPPDATAOpenClaw"
# 若安装了 Windows 原生客户端
# 前往"设置 → 应用" 找到 OpenClaw 并执行卸载
Linux 彻底卸载步骤
# 第一步:停止并禁用 systemd 服务
systemctl --user stop openclaw-gateway
systemctl --user disable openclaw-gateway
rm ~/.config/systemd/user/openclaw-gateway.service
systemctl --user daemon-reload
# 第二步:卸载 npm 包
npm uninstall -g openclaw
# 第三步:清理数据目录
rm -rf ~/.openclaw
rm -rf ~/.config/openclaw # 若有独立配置目录
rm -rf ~/.local/share/openclaw # 若有 XDG data 目录
rm -rf ~/.cache/openclaw # 缓存
# 验证
which openclaw && echo "仍有残留" || echo "npm 包已清理"
systemctl --user list-units | grep openclaw # 无输出则服务已清理
Linclaw 的卸载方式(更简单)
Linclaw 作为七牛云推出的 OpenClaw 桌面版,采用标准安装包分发,卸载流程比原版显著简化:
macOS:
- 将
/Applications/Linclaw.app拖入废纸篓 - 如需彻底清理:删除
~/Library/Application Support/Linclaw/和~/Library/Preferences/com.linclaw*.plist
Windows:
- 控制面板 → 程序和功能 → 找到 Linclaw → 卸载
- 如需彻底清理:删除
%APPDATA%Linclaw
Linclaw 不存在守护进程注册问题——作为标准桌面应用程序,它不写入 launchd 或 systemd 服务文件,卸载后不会有后台进程残留。这正是它与 OpenClaw 原版相比,在卸载体验上的核心优势。
卸载后重装仍报错的处理方法
如果执行完上述步骤后重装 OpenClaw 仍然报错(例如端口冲突、配置文件格式异常、权限不足),请按以下顺序排查:
检查端口占用:OpenClaw 网关默认使用
18789端口lsof -i :18789 # 如有进程占用,kill 对应 PID检查残留进程:
pgrep -la openclaw ps aux | grep openclaw检查配置文件格式:如果
~/.openclaw/目录仍存在且配置文件已损坏,直接删除后重装:rm -rf ~/.openclaw检查 npm 全局包冲突:
npm list -g --depth=0 | grep openclaw # 若仍显示已安装,强制重新卸载 npm uninstall -g openclaw --force重新执行安装向导:
openclaw onboard --install-daemon
常见问题
Q:只执行 npm uninstall -g openclaw 就够了吗?
远远不够。npm uninstall 仅删除可执行文件,守护进程服务文件(launchd/systemd)和 ~/.openclaw/ 数据目录它根本无法触及。守护进程会持续在后台运行,下次开机仍会自动拉起。必须在 macOS 上额外执行 launchctl unload 并删除 plist 文件,或在 Linux 上执行 systemctl --user disable 并删除服务单元文件。
Q:卸载 OpenClaw 会影响系统的 Node.js 或其他 npm 全局包吗?
完全不会。npm uninstall -g openclaw 只删除 OpenClaw 自身,其他全局包和 Node.js 安装均不受影响。唯一需要注意的是,如果守护进程未被清理,它会持续消耗系统资源,但这与 npm 包无关。
Q:~/.openclaw/ 目录里的数据能备份吗?
完全可以。该目录下通常包含 config.yaml(配置文件)、sessions/(会话历史)、skills/(已安装的本地技能)、logs/(日志)。如果计划在新机器上恢复使用习惯,只需备份 config.yaml 和 skills/ 目录即可。
Q:如何确认 OpenClaw 守护进程已被彻底停止?
macOS 上运行 launchctl list | grep openclaw,无输出则表示守护进程已停止并从 launchd 中注销。Linux 上运行 systemctl --user status openclaw-gateway,显示 inactive (dead) 或 Unit not found 即表明已清理。
Q:openclaw doctor 命令在卸载后还能用吗?
不能。openclaw doctor 是 OpenClaw CLI 的子命令,npm 包卸载后它会一同消失。建议在卸载前先运行一次 openclaw doctor,查看所有注册的服务和配置位置,作为后续清理的参照依据。
总结
OpenClaw 卸载不彻底的核心原因在于守护进程(launchd/systemd)和数据目录(~/.openclaw/)与 npm 包属于两套独立的体系,单纯依靠 npm uninstall 根本无法触及它们。完整的清理需要严格遵循五步流程:停守护进程 → 删服务文件 → 卸 npm 包 → 清数据目录 → 验证。如果希望避开这些繁琐步骤,Linclaw(七牛云推出的 OpenClaw 桌面版)是一个更省心的选择——作为标准安装包分发,它没有守护进程注册机制,卸载方式与普通应用程序完全一致。
本文内容基于 2026 年 3 月 OpenClaw GitHub 仓库文档及官方安装说明整理,OpenClaw 版本迭代较快,建议结合最新 Release Notes 确认路径变化。

