[官方] 完全卸载小龙虾 openclaw 的方法:清理 gateway 与 npm 残留配置
1. 为什么 openclaw 卸载后还有残留进程和端口占用很多人第一次卸载 openclaw小龙虾时以为敲一句npm uninstall -g openclaw就完事了。结果过几天发现~/.openclaw目录还在lsof -i :18789还能看到 gateway 进程在跑甚至开机后某个后台服务又自己起来了。这不是错觉而是 openclaw 的架构决定的它由三部分组成——npm 全局包CLI 本体、gateway 网关服务常驻进程 端口监听、状态与工作区目录配置、日志、workspace。这三者卸载路径互相独立只删其中一个另外两个就会变成幽灵残留。我实测过一台 macOS 机器npm ls -g --depth0里已经看不到 openclaw 了但ps aux | grep openclaw依然能抓到 gateway 子进程端口 18789 处于 LISTEN 状态。原因就是 gateway 被注册成了独立的后台服务launchd 或 systemdnpm 包删除并不会自动注销这个服务。所以完全卸载的核心不是删包而是先停服务、再注销服务、再删包、最后清目录顺序错了就会留下尾巴。这篇内容面向已经决定不再使用 openclaw、希望把本地痕迹清干净的开发者。我会给出可复制的卸载命令清单、gateway 进程与端口检查步骤、npm 全局包与缓存清理配置以及卸载后验证无残留的检查动作。如果你只是想临时停用那openclaw gateway stop就够了但如果你要彻底移除就按下面的顺序走。整个过程不需要重装系统也不需要手动翻注册表Windows 场景我会单独说明。先明确一个判断标准什么叫完全卸载干净我的定义是四条同时成立——which openclaw无输出、ps aux | grep openclaw无匹配进程、lsof -i :18789无监听、~/.openclaw目录不存在。四条里任何一条不满足就说明还有残留。下面所有步骤都是围绕这四条验收标准展开的。另外提醒一句卸载前先确认你没有正在跑的任务依赖它。openclaw 的 gateway 可能挂着定时任务或工作区数据直接rm -rf会丢数据。如果你还想保留 workspace 里的文件先把~/.openclaw/workspace备份到别处再执行删除。这个动作花不了两分钟但能避免后悔。2. 卸载前的环境确认与 TaoToken 配置留存在动手删之前有一件事值得先做确认你当前是否还在用 openclaw 对接某个模型服务。openclaw 这类工具通常需要配置 Base URL、API Key、Model ID 三件套才能调用模型。如果你之前是通过 TaoToken 这类聚合服务接入的卸载 openclaw 并不会影响你的账号和 Key但本地配置文件里的 Key 会随目录一起被删掉。所以建议先把配置里的关键信息记下来方便以后在别的工具里复用。TaoToken 的定位是模型 API 聚合与调用入口官网在 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 端点是 https://taotoken.net/api 。它的作用是让你用一套 Key 和统一的 Base URL 去调用不同模型省去每个工具单独配置的麻烦。openclaw 卸载后如果你后续换用 Claude Code、Cline 或其他编码工具这套配置依然能直接迁移过去不用重新申请。具体要留存的信息有三项建议复制到一个临时笔记里配置项典型值说明Base URLhttps://taotoken.net/api统一入口不要带多余路径API Keysk-xxxx你的实际 Key在控制台生成卸载不影响Model ID如 claude-sonnet-4-5 等按你实际调用的模型填如果你不确定 Key 存在哪openclaw 一般会放在~/.openclaw/config.json或环境变量里。可以先cat ~/.openclaw/config.json看一眼注意别把 Key 泄露到公开场合。确认记下后再进入卸载流程。这一步不是必须的但如果你以后还想用同一个 Key 接别的工具会省很多事。环境确认还包括检查 openclaw 的安装方式。它可能通过 npm、pnpm、bun 三种包管理器之一安装也可能是下载的独立二进制或 macOS App。你可以用下面几条命令快速判断# 查看命令来源 which openclaw # 查看 npm 全局包 npm ls -g --depth0 | grep openclaw # 查看 pnpm 全局包 pnpm ls -g --depth0 2/dev/null | grep openclaw # 查看 bun 全局包 bun pm ls -g 2/dev/null | grep openclaw哪条有输出就说明对应包管理器装了它。三种都查一遍避免漏删。macOS 用户还要额外检查/Applications/OpenClaw.app是否存在。Windows 用户则要检查%APPDATA%\openclaw和%LOCALAPPDATA%\openclaw两个目录。把这些前置信息摸清楚后面的删除才不会漏。3. 可复制的卸载命令清单与 gateway 服务注销这一节是核心操作区。我按先停服务、再注销、再删包、最后清目录的顺序给出完整命令你可以直接复制执行。注意命令里的$HOME在 Windows PowerShell 里要换成$env:USERPROFILE路径分隔符也要相应调整。第一步停止 gateway 网关。openclaw 内置了 stop 命令优先用它因为它会走正常的关闭流程释放端口和子进程openclaw gateway stop如果命令已经找不到比如包被误删了就直接杀进程。先找到 PID# macOS / Linux ps aux | grep -i openclaw | grep -v grep # 或者按端口找 lsof -i :18789拿到 PID 后kill -9 PID。Windows 用tasklist | findstr openclaw找进程再taskkill /F /PID PID。第二步注销 gateway 服务。这一步最容易被忽略也是残留的根源。openclaw 在安装时可能注册了开机自启服务# 先尝试内置卸载 openclaw gateway uninstall # macOS检查 launchd 服务 launchctl list | grep -i openclaw # 如果有输出用下面的命令卸载把 label 换成实际值 launchctl unload ~/Library/LaunchAgents/label.plist rm -f ~/Library/LaunchAgents/label.plist # Linux检查 systemd 用户服务 systemctl --user list-units | grep -i openclaw systemctl --user stop openclaw-gateway.service systemctl --user disable openclaw-gateway.service rm -f ~/.config/systemd/user/openclaw-gateway.service systemctl --user daemon-reload第三步删除 npm / pnpm / bun 全局包。三个都执行一遍没装的会报错忽略即可npm rm -g openclaw pnpm remove -g openclaw bun remove -g openclaw第四步删除状态目录和工作区。这一步会删掉配置和 workspace确认已备份再执行rm -rf ${OPENCLAW_STATE_DIR:-$HOME/.openclaw} rm -rf ~/.openclaw/workspace第五步删除 macOS App如果装过rm -rf /Applications/OpenClaw.app第六步清理 npm 缓存里的残留包。npm 缓存不会自动清时间久了会占空间也可能让重装时用到旧版本npm cache clean --force # 或者只清 openclaw 相关npm 不直接支持用 verify 查看 npm cache verify如果你用的是 pnpm缓存清理命令是pnpm store prune。bun 则是bun pm cache rm。关于配置文件的留存如果你之前用 openclaw 对接过 TaoToken配置大概长这样JSON 格式路径通常是~/.openclaw/config.json{ baseUrl: https://taotoken.net/api, apiKey: sk-你的实际Key, model: claude-sonnet-4-5, gateway: { port: 18789, host: 127.0.0.1 } }这个文件会随~/.openclaw一起被删。如果你想把这份配置迁移到别的工具现在就是复制它的最后时机。迁移时记住三件套Base URL 填https://taotoken.net/apiKey 填你自己的Model ID 按需选。这三项在大多数兼容 OpenAI 协议的工具里都能直接用。4. 验证卸载是否彻底进程、端口、目录三项检查命令跑完不代表干净了必须做验收。我给自己定的验收标准就是开头说的四条这里展开成可执行的检查动作。检查一命令是否还在。执行which openclaw正常应该没有任何输出。如果还输出路径说明某个包管理器里还有残留回到第 3 节重新删。which openclaw # 期望无输出检查二进程是否还在。用ps抓一遍ps aux | grep -i openclaw | grep -v grep # 期望无输出如果还有进程说明 gateway 服务没注销干净或者有子进程被别的父进程拉起。这时候用lsof -i :18789看端口占用找到 PID 再杀。检查三端口是否释放。openclaw gateway 默认监听 18789检查它lsof -i :18789 # 期望无输出 # 或者用 netstat netstat -an | grep 18789端口还处于 LISTEN 状态就说明有进程没死透。macOS 上可以用lsof -i :18789 -t | xargs kill -9强制清理。检查四目录是否删除。确认状态目录和工作区都没了ls -la ~/.openclaw 2/dev/null # 期望No such file or directory ls -la ~/.openclaw/workspace 2/dev/null # 期望No such file or directory四项全过才算真正卸载干净。我建议把这四条写成一个脚本以后卸载别的工具也能套用#!/bin/bash echo 检查命令 which openclaw || echo OK: 命令已移除 echo 检查进程 ps aux | grep -i openclaw | grep -v grep || echo OK: 无残留进程 echo 检查端口 lsof -i :18789 || echo OK: 端口已释放 echo 检查目录 ls ~/.openclaw 2/dev/null || echo OK: 目录已删除跑一遍四条都打印 OK就可以放心了。如果某条没 OK对照第 3 节对应步骤重做。这里有个小坑有时候ps抓不到进程但端口还被占着那可能是 TIME_WAIT 状态等几十秒会自己释放不用慌。另外Windows 用户的检查命令略有不同# 检查命令 Get-Command openclaw -ErrorAction SilentlyContinue # 检查进程 Get-Process | Where-Object {$_.ProcessName -like *openclaw*} # 检查端口 netstat -ano | findstr 18789 # 检查目录 Test-Path $env:USERPROFILE\.openclaw逻辑一样四项都为空/False 才算干净。5. 卸载 openclaw 常见报错排查401、local proxy failed 与 OAuth 残留卸载过程中或卸载后你可能会撞上几类典型报错。我把它们和真实场景对应起来方便你对号入座。第一类401 Unauthorized。这个报错通常出现在你卸载后想用别的工具复用旧配置时。原因是你复制了旧的 API Key但那个 Key 可能已经失效或者 Base URL 填错了。排查顺序先确认 Base URL 是https://taotoken.net/api不要多加/v1或斜杠再确认 Key 没有多余空格。如果还报 401去控制台重新生成一个 Key。注意卸载 openclaw 本身不会导致 401401 是配置问题不是卸载问题。第二类local proxy failed或connect ECONNREFUSED 127.0.0.1:18789。这个报错说明你的某个工具还在尝试连 openclaw 的本地 gateway但 gateway 已经被你卸载了。典型场景是你之前把别的编辑器或 CLI 的 Base URL 指向了http://127.0.0.1:18789卸载后这个地址没人监听了。解决办法是把那个工具的 Base URL 改成直连地址比如https://taotoken.net/api。检查一下你的 Claude Code、Cline、Codex 配置里有没有残留的 localhost 指向。第三类reading choices或Cannot read properties of undefined (reading choices)。这是 OpenAI 兼容接口的经典报错通常发生在响应体不是标准格式时。如果你卸载 openclaw 后换了新工具但新工具的请求格式和返回解析不匹配就会报这个。排查方法是先用 curl 直接打一次接口确认返回结构curl https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer sk-你的Key \ -H Content-Type: application/json \ -d { model: claude-sonnet-4-5, messages: [{role: user, content: hi}] }如果 curl 能正常返回带choices的 JSON说明服务端没问题是客户端解析的锅。如果 curl 也报错那就是 Key 或模型 ID 的问题。第四类OAuth 相关残留。有些工具比如 Codex 类会用 OAuth 登录卸载 openclaw 后本地可能还留着 token 缓存。典型路径是~/.codex/auth.json或~/.config/openclaw/oauth.json。如果你遇到已登录但请求失败的怪现象检查这些文件并清理rm -f ~/.codex/auth.json rm -rf ~/.config/openclaw清理后重新走一遍登录流程即可。这里要强调三件套的完整性无论你用哪个工具Base URL、API Key、Model ID 三项必须同时正确缺一个都会报错。Base URL 用https://taotoken.net/apiKey 用你自己的Model ID 按工具支持的填。第五类EACCES权限错误。删除/Applications/OpenClaw.app或系统级目录时可能遇到加sudo即可但要注意别误删系统文件。npm 全局包删除报EACCES通常是 npm 全局目录权限问题可以用npm config get prefix看路径必要时用sudo npm rm -g openclaw。排查的核心思路是先分清报错是卸载没干净还是新配置没填对。前者看第 4 节的四项检查后者看三件套是否齐全。大部分 401 和 local proxy failed 都是配置迁移问题不是卸载残留。6. 卸载后的工具迁移与长期使用建议把 openclaw 清干净之后你大概率会换一个工具继续用。这时候前面留存的 TaoToken 配置就派上用场了。不管你换 Claude Code、Cline 还是别的编码助手接入逻辑都是填三件套Base URL 填https://taotoken.net/apiAPI Key 填你自己的Model ID 按需选。这套配置的好处是统一入口换工具不用重新申请 Key也不用记多个地址。如果你打算长期做编码或跑 Agent 任务可以考虑用 Coding Plan 这类按量或包月方案比每次单独调用更划算。具体入口在 https://taotoken.net/api 对应的控制台里能找到。如果你只是想先验证某个模型能不能用直接用模型对话页面测一下最快不用装任何工具。控制台里可以管理 API Keys地址是 https://taotoken.net/api 下的 console 路径。迁移时有个细节要注意不同工具对 Base URL 的拼接方式不一样。有的工具会自动加/v1/chat/completions有的需要你手动补全。TaoToken 的 API 端点是https://taotoken.net/api如果工具要求填完整的 chat 端点就填https://taotoken.net/api/v1/chat/completions。填错会导致 404 或 401这是迁移时最常见的坑。最后给一个实用建议卸载工具时养成停服务→注销服务→删包→清目录→验收的固定流程把它变成一个习惯。我见过太多人只删包不注销服务结果几个月后某个端口还被占着排查半天才想起来是旧工具。你可以把第 4 节的检查脚本存成~/bin/check-uninstall.sh每次卸载完跑一遍四条全 OK 再收工。这样既省心也不会给系统留垃圾。如果你后续还想用 openclaw 但只是换台机器那不用卸载直接在新机器上重新配置三件套即可。卸载只针对确定不再用的场景。清干净之后你的机器会少一个常驻进程、少一个监听端口、少一份配置目录启动速度和排查干扰都会好一些。
上一篇/下一篇内容由系统自动关联
返回资讯列表 →