
1. 先别急着重装command not found 到底卡在哪一环claude敲下去终端回你一句zsh: command not found: claude这是 macOS/Linux 上装 Claude CLI 最典型的翻车现场。它的意思很直白shell 在它认识的那串目录里挨个找没找到叫claude的可执行文件。注意这句话不代表 npm 一定没装成功很多时候包已经躺在磁盘上了只是 shell 不知道去哪找它。Claude CLI 是什么它是 Anthropic 官方出的命令行编码助手能在终端里读你的项目、改代码、跑命令适合习惯键盘流、不想在编辑器和网页之间来回切的人。它通过 npm 分发包名是anthropic-ai/claude-code。适合谁前端、后端、运维、数据脚本党只要你在终端里干活它就能派上用场。问题在于npm 全局安装的落点和 shell 的搜索路径PATH经常对不上。macOS 上系统自带 Node 或 Homebrew 装的 Node全局 bin 可能在/usr/local/bin用 nvm 装的 Node全局 bin 在~/.nvm/versions/node/vXX/bin如果你手动改过 npm prefix又可能落到~/.npm-global/bin。shell 只认 PATH 里列出的目录没列进去装了也白装。所以排查顺序应该是先看安装日志有没有真报错再查npm config get prefix拿到真实落点接着确认这个落点在不在 PATH最后才动.zshrc/.bashrc。这个顺序能帮你少走一大圈弯路。我见过太多人一上来就sudo npm install -g反复重装结果 PATH 没修装十遍还是 not found。下面按「安装日志 → npm prefix → PATH → shell 配置」四步走每一步都给可复制命令和预期输出。装好之后再用 TaoToken 统一 Key 和 API 通道把模型调用配置一次搞定省得每个工具各配一套。2. 前置准备Node 版本、npm 落点与 TaoToken 通道在动手修 PATH 之前先把地基确认一遍。Claude CLI 要求 Node.js 18 或更高低于这个版本npm 装到一半就可能报错退出或者装上了运行时报模块找不到。先跑node --version npm --version预期看到v18.x以上。如果还是v16甚至更低别硬扛用 nvm 换版本最省心curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash # 重开终端或 source 一下配置 nvm install 20 nvm use 20 node --versionnvm 的好处是每个 Node 版本的全局 bin 目录独立PATH 由 nvm 自己管理不容易和系统目录打架。装完 Node 20再装 Claude CLInpm install -g anthropic-ai/claude-code这一步如果出现EACCES: permission denied说明 npm 想往系统目录写但没权限。别急着加sudo更稳的做法是把 npm 全局目录改到用户家目录后面第 3 节会给完整配置。接下来是 TaoToken 通道。Claude CLI 装好后要调模型默认走 Anthropic 官方端点但你可以把 Base URL 指向 TaoToken 的统一 API 通道用一个 Key 管所有模型调用。先去控制台拿 Key注册/登录后进控制台https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content创建 API Keyhttps://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content拿到 Key 先存好第 3 节会把它写进 Claude CLI 的配置。API 基础地址是https://taotoken.net/api注意这个地址不带任何查询参数配置时原样填。这里有个关键点Claude CLI 认的是环境变量ANTHROPIC_BASE_URL和ANTHROPIC_API_KEY或ANTHROPIC_AUTH_TOKEN。把这两个设对CLI 就会把请求发到 TaoToken 通道而不是官方端点。这样你后续换模型、查用量、做团队共享都在一个后台里完成。前置清单核对一遍Node 18、npm 可用、Claude CLI 已装哪怕现在 not found、TaoToken Key 已拿到。四项齐了进第 3 节做可复制配置。3. 可复制配置PATH 修复 TaoToken 接入片段这一节是全文核心分两块先把claude命令修到能跑再把模型通道接上。3.1 定位 npm 全局落点npm config get prefix常见输出有三种输出含义bin 目录/usr/local系统或 Homebrew Node/usr/local/bin/Users/你的名字/.npm-global手动改过 prefix~/.npm-global/bin/Users/你的名字/.nvm/versions/node/v20.x.xnvm 管理对应bin子目录拿到 prefix 后bin 目录就是$(npm config get prefix)/bin。先确认claude是不是真在里面ls -l $(npm config get prefix)/bin | grep claude如果这里能看到claude说明包装好了纯粹是 PATH 问题继续往下。如果这里也没有回到第 1 节检查安装日志。3.2 临时验证 PATH先临时加一下确认命令能跑再写进配置文件export PATH$(npm config get prefix)/bin:$PATH which claude claude --versionwhich claude应该输出完整路径claude --version应该打印版本号。两个都正常说明方向对了接下来做永久配置。3.3 永久写入 shell 配置macOS 默认 zsh配置文件是~/.zshrcLinux 常见 bash是~/.bashrc。先确认你用的是哪个echo $SHELLzsh 就写~/.zshrcecho export PATH$(npm config get prefix)/bin:$PATH ~/.zshrc source ~/.zshrcbash 就写~/.bashrcecho export PATH$(npm config get prefix)/bin:$PATH ~/.bashrc source ~/.bashrc注意这里用$(npm config get prefix)动态取值而不是写死/usr/local/bin。好处是你以后换 Node 版本、改 prefixPATH 自动跟着变不用回来改配置。3.4 权限问题把 npm 全局目录挪到家目录如果安装时报EACCES或者你不想每次装包都 sudo配置用户级全局目录mkdir -p ~/.npm-global npm config set prefix ~/.npm-global echo export PATH$HOME/.npm-global/bin:$PATH ~/.zshrc source ~/.zshrc npm install -g anthropic-ai/claude-code这样全局包都装在~/.npm-global不需要系统权限也不会污染/usr/local。3.5 TaoToken 接入配置片段Claude CLI 的模型通道通过环境变量配置。把下面这段加到~/.zshrcbash 用户改~/.bashrc# TaoToken 统一 API 通道 export ANTHROPIC_BASE_URLhttps://taotoken.net/api export ANTHROPIC_AUTH_TOKENsk-你的TaoToken密钥如果你更习惯用ANTHROPIC_API_KEY也可以export ANTHROPIC_API_KEYsk-你的TaoToken密钥保存后source ~/.zshrc。这里三件套要记牢Base URL 填https://taotoken.net/apiKey 填 TaoToken 控制台生成的Model ID 在 CLI 里通过--model参数或配置文件指定。三者缺一请求就会 401 或走错端点。如果你用 Claude Code 的 settings 文件方式管理可以在项目或用户级配置里写{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_AUTH_TOKEN: sk-你的TaoToken密钥 } }路径按 Claude Code 文档放通常是用户级~/.claude/settings.json或项目级.claude/settings.json。写完后 CLI 启动时会自动读取。配置完claude命令能跑模型通道也指向 TaoToken接下来验证。4. 验证请求which、version 与一次真实调用配置写完不算完得跑一遍确认链路通。按顺序来which claude claude --versionwhich claude输出类似/Users/you/.npm-global/bin/claudeclaude --version输出x.y.z (Claude Code)。两个都正常命令层就通了。接着验证模型通道。最直接的方式是进交互模式发一句话claude进去后输入一个简单任务比如「用一句话解释什么是闭包」。如果返回正常文本说明 Base URL 和 Key 都生效了。如果报 401回去检查ANTHROPIC_AUTH_TOKEN有没有拼错、Key 有没有过期。也可以用非交互方式快速验证claude -p 输出当前目录下的文件数量-p是 print 模式跑完直接退出适合脚本里用。返回结果正常链路就通了。想确认请求确实走了 TaoToken 通道可以去控制台的用量页面看有没有新记录模型对话入口https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content控制台用量https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content如果用量页有记录说明请求确实打到了 TaoToken配置无误。这一步很关键很多人以为命令能跑就行其实可能还在走默认端点Key 根本没生效。验证通过后日常用法就顺了在项目目录里直接claude让它读代码、改文件、跑测试。长期做编码和 Agent 任务的话可以考虑 Coding Plan把额度集中管理Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content验证阶段如果哪一步卡住对照第 5 节的报错表排查。5. 常见报错对照401、local proxy failed 与 reading choices这一节把真实会撞上的报错列出来对照着修。报错一zsh: command not found: claude这是本文主题。根因是 PATH 没包含 npm 全局 bin。修法见 3.1–3.3。验证which claude有输出即可。报错二npm install -g报EACCES: permission deniednpm 想写系统目录没权限。别用 sudo 硬来按 3.4 把 prefix 改到~/.npm-global重装即可。报错三Error: Cannot find module anthropic-ai/claude-code包没装全或缓存损坏。先清缓存再重装npm cache clean --force npm uninstall -g anthropic-ai/claude-code npm install -g anthropic-ai/claude-code报错四401 Unauthorized或invalid api keyKey 没生效或拼错。检查ANTHROPIC_AUTH_TOKEN/ANTHROPIC_API_KEY是否和 TaoToken 控制台一致Base URL 是否为https://taotoken.net/api。改完记得source配置文件或重开终端。报错五local proxy failed/ 连接超时通常是 Base URL 写错或者网络环境导致请求发不出去。确认ANTHROPIC_BASE_URL没有多余斜杠、没有拼错域名。如果公司网络有限制换网络环境再试。报错六reading choices相关解析错误这类报错多半是返回体不是预期 JSON常见于 Base URL 指到了不兼容的端点或者 Key 权限不对。确认走的是 TaoToken 的/api路径Key 有对应模型权限。报错七OAuth 相关提示Claude CLI 某些版本会引导 OAuth 登录。如果你用 API Key 方式接入 TaoToken就不需要走 OAuth确保环境变量已设CLI 会优先用 Key。报错八claude --version能跑但调用模型失败命令层通了通道层没通。重点查 Base URL 和 Key对照报错四、五处理。排查时记住一个原则命令找不到是 PATH 问题命令能跑但请求失败是通道问题两者分开定位别混在一起改。6. 后续调用与长期配置把 Key 和通道固定下来命令修好、通道验证通过之后最后一步是让它稳定下来别每次开新终端又失效。第一确认 PATH 和 TaoToken 环境变量都写进了~/.zshrc或~/.bashrc而不是只在当前会话export。判断方法重开一个终端直接敲which claude和echo $ANTHROPIC_BASE_URL都有输出才算持久化成功。第二如果你在多台机器或团队里用建议把 Key 管理集中到 TaoToken 控制台按项目或成员分 Key方便轮换和查用量。API Key 页面https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content第三Claude CLI 的模型选择可以通过--model参数临时指定也可以写进 settings 文件固定。三件套再强调一遍Base URL 用https://taotoken.net/apiKey 用 TaoToken 生成的Model ID 按你需要的模型填。三者对齐请求就不会跑偏。第四如果你同时用 Cline、Codex 这类工具它们的配置逻辑类似都是 Base URL Key Model ID 三件套。Codex 的auth.json、Cline 的 MCP 配置填的都是同一套 TaoToken 通道信息配一次可以复用。第五长期做编码和 Agent 任务建议了解 Coding Plan把额度和模型访问统一规划避免临时 Key 到处散落https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content接入文档在这里遇到新工具的配置问题可以对照https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content最后给一个日常自检习惯换 Node 版本、换机器、重装系统之后先跑which claude和claude --version再跑一次claude -p test。三步都过说明 PATH 和通道都健康。哪一步挂了回到对应章节修不用从头再来。这套流程跑顺之后command not found基本就跟你告别了。