macOS 卸载 Claude Code CLI:多份安装的清理与验证记录
AI 参与说明(Agent:Codex):Codex 于 2026-10-27 协助执行本机 CLI 卸载、核对官方文档并整理操作记录。执行入口为 Codex Desktop;完整模型标识与 reasoning effort 未取得任务级运行记录。本文仅公开程序安装位置的通用形式、版本与验证结果,不包含配置内容、凭据或会话历史。
本次在 macOS 上移除了四份 Claude Code CLI 安装:一份原生安装、两份不同 Node.js 版本下的 npm 全局安装,以及一份位于 /opt/homebrew 前缀下的 npm 全局安装。卸载后,新启动的交互式 Zsh 返回 claude not found;~/.claude 和 ~/.claude.json 保留。
关键是先查出全部安装来源。只删除当前优先执行的那一份,Shell 仍可能找到排在后面的旧版本。本文记录的是 2026-10-27 的一次实际操作,版本号用于复核当时状态,不代表当前最新版。
| 英文术语 | 中文名称 | 简要解释 |
|---|---|---|
| CLI | 命令行界面 | 本文指终端中的 claude 命令 |
| PATH | 命令搜索路径 | Shell 按其中的目录查找可执行文件 |
| npm prefix | npm 安装前缀 | 不同 Node.js 环境可以有各自的全局包和命令入口 |
| Homebrew Cask | Homebrew 应用包 | 需要由 Homebrew 管理;不能仅凭文件位于 /opt/homebrew 就认定来源 |
卸载前:确认入口和实际安装来源
先在 Zsh 中查看当前版本及所有可找到的入口:
claude --version
which -a claude
ls -l ~/.local/bin/claude /opt/homebrew/bin/claude
ls -l ~/.nvm/versions/node/*/bin/claude
npm list -g @anthropic-ai/claude-code --depth=0
brew list --cask --versions claude-code
which -a 只反映当前 PATH;不在当前 PATH 中的旧 Node.js 环境,需要另查其 bin/claude 和 lib/node_modules/@anthropic-ai/claude-code/package.json。本次通过符号链接和包元数据确认了以下安装:
| 安装来源 | 程序或安装前缀 | 卸载前 Claude Code 版本 |
|---|---|---|
| 原生安装 | ~/.local/bin/claude → ~/.local/share/claude/versions/2.1.263 | 当前执行版本 2.1.263;版本目录另有 2.1.260、2.1.261 |
| npm 全局安装 | ~/.nvm/versions/node/v20.12.1 | 2.0.25 |
| npm 全局安装 | ~/.nvm/versions/node/v24.16.0 | 2.1.252 |
| npm 全局安装 | /opt/homebrew | 1.0.120 |
/opt/homebrew/bin/claude 指向该前缀下的 npm 包,Homebrew Cask 查询没有列出 claude-code,本次也未发现 claude-code 或 claude-code@latest 的 Caskroom 目录。因此这里按 npm 全局包卸载,没有执行 brew uninstall。
实际执行:逐一移除四份安装
先对已经核实的三个 npm prefix 分别卸载同一个包。以下是本次实际执行的命令;其他机器应替换为自己查到的前缀,不要照抄 Node.js 版本目录:
npm uninstall -g --prefix "$HOME/.nvm/versions/node/v20.12.1" @anthropic-ai/claude-code
npm uninstall -g --prefix "$HOME/.nvm/versions/node/v24.16.0" @anthropic-ai/claude-code
npm uninstall -g --prefix /opt/homebrew @anthropic-ai/claude-code
三条命令均成功退出,输出依次为 removed 3 packages、removed 2 packages、removed 3 packages。这些数量包含随包移除的依赖,不是 Claude Code 的安装份数。
随后移除原生安装。确认版本目录只有下面三个已列出的程序文件后,逐个删除文件,再用 rmdir 移除空目录;如果还有其他文件,rmdir 会报错,需重新检查目录:
rm "$HOME/.local/bin/claude" \
"$HOME/.local/share/claude/versions/2.1.260" \
"$HOME/.local/share/claude/versions/2.1.261" \
"$HOME/.local/share/claude/versions/2.1.263"
rmdir "$HOME/.local/share/claude/versions" "$HOME/.local/share/claude"
Native and npm installations require separate removal. 官方卸载说明分别给出了原生安装文件和 npm 包的移除方法;上面的原生删除步骤把目标收窄到本次已核实的文件。官方卸载说明
卸载后:同时验证 Shell 与安装文件
在新的登录式交互 Zsh 中刷新命令缓存并查询:
zsh -lic 'rehash; command -v claude; type -a claude'
本次结果为:
claude not found
该检查的退出码为 1,对应命令查找失败,是本次预期结果。另对文件系统逐项核验:
| 检查对象 | 实际结果 |
|---|---|
三个 npm prefix 的 bin/claude | 均不存在,也没有残留符号链接 |
三个 npm prefix 的 lib/node_modules/@anthropic-ai/claude-code | 均不存在 |
~/.local/bin/claude | 不存在,也没有残留符号链接 |
~/.local/share/claude | 不存在 |
~/.claude 与 ~/.claude.json | 均仍存在 |
验证范围是当前账户中已识别的安装位置和新 Zsh 的命令解析结果,没有扫描整块磁盘或其他账户。若卸载后仍能执行 claude,应继续核对其他安装、Shell alias 或 function;官方也将重复安装列为这种现象的排查方向。安装冲突排查
保留的数据与操作边界
本次保留 ~/.claude、~/.claude.json 及项目级配置,没有执行退出登录、删除钥匙串凭据、取消订阅或卸载编辑器扩展、桌面应用等操作。后续需要恢复 CLI 时,这些数据仍可供相应工具使用;本次未验证重新安装后的恢复效果。
Removing configuration files also removes session history. 官方把配置清理列为独立步骤,并说明编辑器扩展和桌面应用也会写入 ~/.claude。因此,“终端已找不到 CLI”与“所有 Claude 相关数据已删除”是两个不同的验收范围。配置清理说明
关联阅读
- CLI Overview:本栏目其他 Agent CLI 文档的入口。
参考资料
- Claude Code:Advanced setup:按安装方式卸载、配置清理边界。
- Claude Code:Troubleshoot installation and login:安装冲突与命令搜索路径排查。