乐于分享
好东西不私藏

彻底卸载 Claude Code:macOS 残留数据完整清理指南

彻底卸载 Claude Code:macOS 残留数据完整清理指南

brew uninstall 之后,Claude Code 就删干净了吗?大概率没有。我在这台 Mac 上做了一次完整清理,翻出的残留比预想的多得多。这篇指南把清理路径和判断依据写清楚,供同样想彻底卸载的人参考。

先搞清楚:卸载不等于清干净

brew cask 只负责主程序本体。原生安装残留、配置目录、缓存、钥匙串、登录项,它一概不管,全都原地不动。

判断依据:卸载的目标是"这台机器上不再有 Claude 的任何数据和凭据",不是"命令行里找不到 claude"。

第一步:摸底,Claude 到底留了多少东西

动手之前先侦查,结论比预想的多:

  • brew cask 装的 claude-code@latest,/opt/homebrew/bin/claude 指向它
  • 一套独立的原生安装:~/.local/share/claude 下躺着多个历史版本,~/.local/bin/claude 是符号链接
  • ~/Applications/Claude Code URL Handler.app(深度链接处理程序)
  • 主配置 ~/.claude.json、整个 ~/.claude/ 目录
  • 桌面端一整套:~/Library/Application Support/Claude/、缓存、日志、偏好设置
  • VS Code 扩展、Obsidian 插件(如果装过)

判断依据:一个工具摊开能有这么多落点,靠"想起来才删"一定漏。先全面列出,再逐项处理。

第二步:卸载本体

  • 正规渠道:brew uninstall --cask claude-code@latest
  • 原生安装没有包管理器接管,只能手动清:~/.local/share/claude、~/.local/state/claude、~/.local/bin/claude

第三步:清理配置与数据(核心)

~/.claude.json 和 ~/.claude/

这是配置重灾区。~/.claude.json 里存着两个重要的持久标识:machineID 和 userID。

这两个标识是什么? 它们是纯随机生成的 64 位十六进制串(crypto.randomBytes(32) 生成),第一次运行写进配置文件,之后一直复用。它们不绑定任何硬件信息,但会被上报到服务端,服务端靠它把同一台机器的请求串起来。

判断依据:不删配置文件,等于把标识原样留给下次运行——卸载只删了程序,标识还在原地。

钥匙串

Claude 的 OAuth 登录态凭据存在钥匙串里,用 security delete-generic-password 删除:

security delete⁠-⁠generic⁠-⁠password -⁠s "Claude Safe Storage"security delete⁠-⁠generic⁠-⁠password -⁠s "Claude Code⁠-⁠credentials"

判断依据:登录凭据不删,登录状态就还活着;下次安装甚至不需要重新登录。

桌面端残留

凡是以 claude/anthropic 命名的缓存、日志、偏好设置、HTTPStorages,全部删除:

  • ~/Library/Application Support/Claude/
  • ~/Library/Caches/claude-cli-nodejs、com.anthropic.claudefordesktop*
  • ~/Library/Logs/Claude/
  • ~/Library/Preferences/com.anthropic.claudefordesktop.plist
  • ~/Library/HTTPStorages/com.anthropic.claudefordesktop
  • ~/Library/Preferences/ByHost/com.anthropic.claudefordesktop.ShipIt.*.plist

判断依据:这些是纯可再生缓存,删了没有副作用,属于"宁可多删"的范畴。

备份文件容易漏

~/.claude.json.backup 这类带 .backup 后缀的文件里可能还躺着 userID,全盘扫的时候单独留意。

第四步:周边集成

  • VS Code 扩展
    :code --uninstall-extension anthropic.claude-code,再删 ~/.vscode/extensions/anthropic.claude-code* 残留
  • Obsidian 插件
    :如果有 claudian 之类的插件,删除插件目录,并从 community-plugins.json 移除
  • shell 配置
    :检查 ~/.zshrc 里有没有指向 claude 的函数、别名、环境变量,一并清掉(留意里面可能带着明文 token)

第五步:验证

全部清完后过一遍:

  • which claude 找不到
  • 钥匙串里搜不到 claude/anthropic
  • VS Code 扩展列表干净
  • Obsidian 插件列表干净
  • Homebrew 缓存里没有 claude 残留

两条底线

  1. 不用 rm -rf
    。每条路径显式写出 rm -r,重要的文件先备份再删。暴力删除一时爽,删错追不回。
  2. 内容文件与配置文件分清
    。Claude 相关的文档、笔记、设计资源是资产不是配置,保留。清理的目标是"数据和凭据",不是"所有提到 Claude 的东西"。

一个要知道的前提:标识会重生

下次再运行 claude,它会静默重建 ~/.claude.json,生成一套全新的 machineID 和 userID。清理保证的是"本地不再复用旧标识",这一点是确定的。