1. 卸载完还有进程?先看清 OpenClaw 残留到底藏在哪
OpenClaw 卸载残留怎么清,是很多装过 OpenClaw 的开发者都会碰到的问题:控制面板里明明点了卸载,任务管理器里还能看到 claw 相关进程;安装目录删了,全盘搜索还能翻出.openclaw文件夹;系统一启动就弹「找不到 OpenClaw 服务」。这些现象说明卸载程序只删了主程序,服务注册、配置目录、缓存数据这三块基本都留在原地。
这篇面向已经装过 OpenClaw 的开发者,按「服务 → 配置 → 缓存」三层顺序给一套 3 分钟能跑完的清理流程,命令可以直接复制。清理完之后,我会顺带把 TaoToken 的配置骨架补上——因为很多人清完 OpenClaw 是为了换一个统一的 Key/API 通道,与其下次再手动填一堆 base_url,不如一次性把config.toml和settings.json的骨架立好,后面接模型、接编码工具都省事。
需要先明确一点:残留清理的核心不是「删文件」,而是「先停服务再删文件」。服务没停就删目录,进程会重新拉起配置,甚至写回注册项,你会觉得怎么删都删不干净。所以顺序不能乱。
2. 清理前先把 TaoToken 通道准备好
清 OpenClaw 和配 TaoToken 看起来是两件事,实际经常连着做:旧工具卸掉,新通道要能立刻顶上,否则中间空窗期没法调模型。TaoToken 在这里的角色是统一 Key 和 API 通道——你不用为每个工具单独记一套地址和密钥,一个 Key 走同一个入口,模型对话、编码计划、控制台都在同一套体系里。
它的入口分几块,按用途记:
- 模型对话入口:https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=model_chat
- Coding Plan(长期编码/Agent 场景):https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=coding_plan
- 控制台:https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=console
- API Keys 管理:https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=api_keys
- 接入文档:https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=doc
- ClaudeCodeAnthropic 接入:https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=claudecode
API 基础地址是https://taotoken.net/api,这个不带跟踪参数,写进配置文件时用这个。官网首页是 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,第一次了解可以先看首页再进控制台。
注意:配置文件里的 base_url 只写
https://taotoken.net/api,不要把带 utm 的推广链接填进去,否则请求路径会带上无关参数。
3. 可复制配置:服务停止、目录清理、TaoToken 骨架
3.1 第一分钟:停服务、删服务注册
Windows 用管理员 PowerShell:
# 查看 claw 相关服务 Get-Service | Where-Object {$_.Name -like "*claw*"} # 逐个停止(存在才停,报错可忽略) net stop OpenClaw 2>$null net stop OpenClawAgent 2>$null net stop ClawScheduler 2>$null # 删除服务注册 sc.exe delete OpenClaw sc.exe delete OpenClawAgent sc.exe delete ClawScheduler # 复查,应该没有输出 Get-Service | Where-Object {$_.Name -like "*claw*"}macOS 走 launchctl:
sudo launchctl list | grep claw sudo launchctl unload /Library/LaunchDaemons/com.openclaw.daemon.plist 2>/dev/null sudo launchctl unload /Library/LaunchAgents/com.openclaw.agent.plist 2>/dev/null sudo rm -f /Library/LaunchDaemons/com.openclaw.* sudo rm -f /Library/LaunchAgents/com.openclaw.* launchctl list | grep clawLinux 走 systemd:
systemctl list-units | grep claw sudo systemctl stop openclaw 2>/dev/null sudo systemctl disable openclaw 2>/dev/null sudo rm -f /etc/systemd/system/openclaw* sudo rm -f /usr/lib/systemd/system/openclaw* sudo systemctl daemon-reload systemctl list-units | grep claw3.2 第二分钟:清配置目录
配置分系统级和用户级两层,Windows 系统级在C:\ProgramData\OpenClaw,用户级在%USERPROFILE%\.openclaw;macOS/Linux 系统级在/etc/openclaw,用户级在~/.openclaw。
Windows PowerShell:
Remove-Item -Recurse -Force "C:\ProgramData\OpenClaw" -ErrorAction SilentlyContinue Remove-Item -Recurse -Force "$env:USERPROFILE\.openclaw" -ErrorAction SilentlyContinue Remove-Item -Recurse -Force "$env:LOCALAPPDATA\OpenClaw" -ErrorAction SilentlyContinue Remove-Item -Recurse -Force "$env:APPDATA\OpenClaw" -ErrorAction SilentlyContinuemacOS/Linux:
sudo rm -rf /etc/openclaw rm -rf ~/.openclaw rm -rf ~/.config/openclaw # macOS 额外 rm -rf ~/Library/Application\ Support/OpenClaw rm -f ~/Library/Preferences/com.openclaw.plist3.3 第三分钟:清缓存与日志
# Linux rm -rf ~/.cache/openclaw sudo rm -rf /var/cache/openclaw sudo rm -rf /var/log/openclaw rm -rf /tmp/openclaw* # macOS rm -rf ~/Library/Caches/com.openclaw sudo rm -rf /Library/Caches/OpenClawWindows 对应%LOCALAPPDATA%\OpenClaw\Cache、%TEMP%\OpenClaw、C:\Windows\Temp\OpenClaw,用Remove-Item -Recurse -Force逐个删即可。
3.4 TaoToken 配置骨架:config.toml
清完残留,把统一通道的骨架立好。config.toml适合放通用参数:
# ~/.config/taotoken/config.toml [api] base_url = "https://taotoken.net/api" api_key = "sk-你的Key" timeout = 60 [defaults] model = "claude-sonnet" max_tokens = 4096 [logging] level = "info"3.5 TaoToken 配置骨架:settings.json
settings.json适合放工具侧覆盖项,比如编码工具读取的字段:
{ "apiBase": "https://taotoken.net/api", "apiKeyEnv": "TAOTOKEN_API_KEY", "model": "claude-sonnet", "timeoutMs": 60000, "retry": { "maxAttempts": 3, "backoffMs": 800 } }Key 建议走环境变量,不要硬编码进 json:
export TAOTOKEN_API_KEY="sk-你的Key"4. 验证请求与清理结果
4.1 验证 TaoToken 通道是否通
配置写好后,先用一条最小请求确认通道可用:
curl -s https://taotoken.net/api/v1/messages \ -H "Authorization: Bearer $TAOTOKEN_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "claude-sonnet", "max_tokens": 64, "messages": [{"role": "user", "content": "ping"}] }'返回里能看到content字段和正常usage,说明 Key、base_url、模型名三者对上了。如果返回 401,先查 Key;返回 404,先查 base_url 是不是多写了路径。
4.2 验证 OpenClaw 是否清干净
# 进程 ps aux | grep -i claw | grep -v grep # 文件 find / -name "*openclaw*" -type f 2>/dev/null find / -name "*openclaw*" -type d 2>/dev/null # 端口 netstat -tulpn 2>/dev/null | grep -i claw三条命令都没输出,说明服务、配置、缓存三层都清掉了。Windows 上再补一条注册表检查:
Get-ChildItem "HKLM:\SOFTWARE" -ErrorAction SilentlyContinue | Where-Object {$_.Name -like "*claw*"} Get-ChildItem "HKCU:\SOFTWARE" -ErrorAction SilentlyContinue | Where-Object {$_.Name -like "*claw*"}5. 本篇常见错排查
服务删不掉,提示「指定的服务未安装」:说明服务名不对,先用Get-Service | Where-Object {$_.Name -like "*claw*"}拿到真实名称再删,别照抄示例名。
删完目录重启又出现:几乎都是服务没停干净,进程在退出前把配置写回了。回到 3.1 重新停服务,确认Get-Service无输出后再删目录。
macOS 上launchctl unload报找不到 plist:路径可能不是com.openclaw.*,先sudo launchctl list | grep claw看真实 label,再按 label 反推 plist 文件名。
TaoToken 请求 401:Key 没读到。检查TAOTOKEN_API_KEY是否在当前 shell 生效,echo $TAOTOKEN_API_KEY看有没有值;写进settings.json的apiKeyEnv只是引用变量名,不是变量本身。
请求超时:timeout或timeoutMs设太小,长上下文场景调到 60 秒以上;同时确认base_url是https://taotoken.net/api,没有多余斜杠或路径。
模型名报错:model字段要和通道支持的名称一致,不确定就先用文档里的示例名跑通,再换成目标模型。
6. 清完残留之后,把通道固定下来
残留清理是一次性动作,通道配置是长期动作。我的做法是:清完 OpenClaw 后立刻把config.toml和settings.json两份骨架落到固定路径,Key 只放环境变量,之后不管换哪个工具,只改工具侧的引用,不动 Key 本身。
如果你主要做模型验证和日常对话,从模型对话入口进最直接:https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=model_chat 。如果是长期编码或 Agent 场景,走 Coding Plan:https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=coding_plan 。Key 的创建和管理在 API Keys 页面:https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=api_keys ,字段含义和接入细节看文档:https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=doc 。用 ClaudeCode 的话,Anthropic 接入页有对应说明:https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=claudecode 。
最后留一个我踩过的坑:清理脚本里rm -rf和Remove-Item -Recurse -Force都别带通配符乱扫,先把路径echo出来确认一遍再删,尤其是/etc和C:\ProgramData这种系统目录,路径写错一个字符就是另一个故事了。