
1. 为什么 Windows 上装 ClaudeCode 总在第一步卡住ClaudeCode 是一个跑在终端里的 AI 编码助手能读你本地的项目文件、执行命令、按你的描述改代码。它适合谁适合已经在用 PowerShell 或 CMD 做开发、想让 AI 直接进到工程目录里干活的 Windows 用户。但它跟普通 npm 包不太一样它依赖 Node.js 运行时启动时还要读一组环境变量来决定「把请求发到哪个模型通道」。这两件事任何一件没弄对你敲claude之后看到的不是对话界面而是一串报错或者一直转圈。我见过最多的三类翻车现场第一Node.js 装了但 npm 全局目录没权限npm install -g直接 EPERM第二装完了却不知道 ClaudeCode 默认要连官方通道国内网络下请求发不出去第三环境变量只在当前窗口生效关掉 PowerShell 再开就「失忆」于是每次都要重新配。这篇就按「从零到能对话」的顺序走一遍先用 PowerShell 把 node.js / npm 检查干净再设好 npm 全局目录避免权限坑然后给出接入 TaoToken 统一 Key/API 通道的 settings.json 骨架最后实打实启动一次验证。全程命令可直接复制配置项我会解释每个字段在干嘛方便你换成 DeepSeek 等其他模型时知道改哪里。2. 前置环境用 PowerShell 把 node.js 与 npm 检查到位2.1 确认 PowerShell 与执行权限先以管理员身份打开 Windows PowerShell。不是必须管理员才能装 Node但设全局目录、改执行策略时省事。检查当前执行策略Get-ExecutionPolicy如果返回Restrictednpm 的全局脚本可能跑不起来改成当前用户级别即可不用动系统全局Set-ExecutionPolicy -Scope CurrentUser RemoteSignedRemoteSigned的意思是本地写的脚本可以直接跑从网上下载的脚本需要签名。对日常开发够用也比Unrestricted稳妥。2.2 检查 node.js 与 npm 版本node -v npm -v正常会分别打印类似v20.11.1和10.2.4。如果提示「无法将 node 识别为 cmdlet」说明没装或没进 PATH。去 Node.js 官网下载 LTS 版.msi双击安装时保持默认路径C:\Program Files\nodejs\一路 Next 即可。安装完关掉当前 PowerShell 重新开一个PATH 才会刷新。版本要求上ClaudeCode 需要 Node 18 以上建议直接用 20 LTS 或更高。Node 24 也能跑但如果你公司内网有老项目依赖装 20 LTS 兼容性更稳。2.3 设置 npm 全局目录绕开 EPERM默认情况下 npm 全局包会装到C:\Program Files\nodejs\node_modules这个目录普通用户没写权限npm install -g就会报EPERM: operation not permitted。解决办法是把全局目录挪到用户目录下npm config set prefix $env:USERPROFILE\.npm-global然后把该目录加进当前会话的 PATH$env:Path ;$env:USERPROFILE\.npm-global想永久生效用setx写进用户环境变量注意setx有 1024 字符长度限制PATH 太长会截断建议先echo $env:Path备份setx PATH $env:Path;$env:USERPROFILE\.npm-global验证一下配置是否落盘npm config get prefix返回C:\Users\你的用户名\.npm-global就对了。这一步做完后面npm install -g anthropic-ai/claude-code才不会因为权限中断。3. 接入 TaoToken 统一通道settings.json 骨架与字段说明3.1 为什么用统一 Key/API 通道ClaudeCode 默认走 Anthropic 官方端点。如果你手上有 DeepSeek、通义、Kimi 等多个模型的 Key一个个配环境变量会很乱。TaoToken 提供统一 Key 和 API 通道把不同模型的接入收敛到一个 base URL 加一个 Key 上切换模型只改模型名不用重配整套环境。官网入口在 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 端点是 https://taotoken.net/api 。先去控制台建一个 Key打开 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 在 API Keys 页面创建复制保存好后面 settings.json 要用。Key 只在创建时完整显示一次丢了只能重建。3.2 settings.json 放哪、写什么ClaudeCode 读取用户级配置的位置在用户目录下的.claude文件夹。先建目录New-Item -ItemType Directory -Force -Path $env:USERPROFILE\.claude然后创建settings.json。用记事本或 VS Code 都行路径是C:\Users\你的用户名\.claude\settings.json。骨架如下{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_AUTH_TOKEN: sk-你的TaoToken密钥, ANTHROPIC_MODEL: deepseek-chat, ANTHROPIC_SMALL_FAST_MODEL: deepseek-chat } }字段逐个说清楚ANTHROPIC_BASE_URL决定请求发到哪。填 TaoToken 的 API 地址ClaudeCode 就会把对话请求送到统一通道而不是官方端点。ANTHROPIC_AUTH_TOKEN是你的鉴权凭证。注意这里用的是AUTH_TOKEN而不是API_KEY两者在 ClaudeCode 里的读取逻辑不同用错字段会出现「请求发出去了但 401」。ANTHROPIC_MODEL是主模型负责实际写代码、分析文件。示例填deepseek-chat你也可以换成通道里支持的其他模型名。ANTHROPIC_SMALL_FAST_MODEL用于轻量任务比如生成标题、判断意图。填同一个模型最省心想省钱可以填更小的模型。注意settings.json 里不要留中文注释JSON 不支持注释会导致解析失败。密钥属于敏感信息别把这个文件提交到 Git 仓库。3.3 环境变量与 settings.json 的关系ClaudeCode 启动时进程环境变量的优先级高于 settings.json。也就是说如果你之前在 PowerShell 里$env:ANTHROPIC_BASE_URL ...设过它会盖掉配置文件里的值。排查问题时先确认当前会话有没有残留变量Get-ChildItem Env: | Where-Object { $_.Name -like ANTHROPIC* }有输出就说明当前窗口有临时变量。想以 settings.json 为准关掉窗口重开或者手动清掉Remove-Item Env:ANTHROPIC_BASE_URL -ErrorAction SilentlyContinue Remove-Item Env:ANTHROPIC_AUTH_TOKEN -ErrorAction SilentlyContinue4. 安装 ClaudeCode 并完成一次启动验证4.1 全局安装前置都就绪后安装命令就一行npm install -g anthropic-ai/claude-code装完检查版本claude -v能打印版本号说明可执行文件已进 PATH。如果提示找不到命令回到 2.3 确认npm config get prefix的路径在 PATH 里然后重开 PowerShell。4.2 启动并验证模型调用进一个测试目录避免 ClaudeCode 扫描到无关的大项目mkdir $env:USERPROFILE\cc-test cd $env:USERPROFILE\cc-test claude首次启动会进入交互界面。直接输入一句简单的话比如「用一句话说明这个目录里有什么」。如果配置正确你会看到模型返回内容而不是报错。想更明确地验证通道是否通可以在对话里让它执行一个只读命令比如「列出当前目录的文件」。ClaudeCode 会请求执行ls或dir你确认后它返回结果。这一步同时验证了两件事模型能收到请求工具调用链路也正常。如果你更想先在网页里确认 Key 和模型名没问题可以打开模型对话页面 https://taotoken.net/model-chat?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 发一条消息能正常回复说明 Key 有效、模型名拼写正确再回到终端排查 ClaudeCode 侧的问题会快很多。4.3 长期编码场景的配置建议如果你打算把 ClaudeCode 当日常编码助手长期用建议去了解一下 Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。它针对高频编码、Agent 类调用做了额度与通道优化比按次零散调用更划算。接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 里面有各模型名对照和参数说明换模型时照着改ANTHROPIC_MODEL即可。5. 本篇常见报错排查5.1 npm install -g 报 EPERM现象EPERM: operation not permitted, mkdir C:\Program Files\nodejs\node_modules\...。原因全局目录在受保护路径。回到 2.3 设npm config set prefix确认npm config get prefix返回用户目录再重装。如果之前装过一半先npm uninstall -g anthropic-ai/claude-code清掉残留。5.2 claude 命令找不到现象claude : 无法将“claude”项识别为 cmdlet。原因全局 bin 目录不在 PATH。检查npm config get prefix的返回值把该路径加进 PATH。注意setx改完要重开终端当前窗口不会自动刷新。5.3 启动后一直转圈或超时现象输入消息后长时间无响应最后报连接超时。原因base URL 没生效请求还在往官方端点发。检查三处settings.json 的ANTHROPIC_BASE_URL是否为https://taotoken.net/api当前会话有没有残留的ANTHROPIC_BASE_URL环境变量覆盖它网络能否正常访问该地址。用Get-ChildItem Env:确认没有多余变量。5.4 返回 401 未授权现象模型返回鉴权失败。原因字段名用错或 Key 无效。ClaudeCode 读的是ANTHROPIC_AUTH_TOKEN不是ANTHROPIC_API_KEY。确认 settings.json 里字段名拼写正确Key 没有多余空格且没有过期。可以先去模型对话页面用同一个 Key 测一条消息排除 Key 本身的问题。5.5 模型名报错 model not found现象提示模型不存在或不可用。原因ANTHROPIC_MODEL填的模型名不在通道支持列表里。对照接入文档里的模型名清单确认拼写。DeepSeek 系列常用deepseek-chat别写成deepseek或带版本号的错误格式。5.6 改了 settings.json 不生效现象修改配置后行为没变化。原因环境变量优先级更高或者改错了文件位置。确认文件在C:\Users\你的用户名\.claude\settings.json不是项目目录下的同名文件。清掉当前会话的 ANTHROPIC 变量后重开终端再试。6. 配好之后从一次真实对话开始整套流程的核心就三件事Node 环境干净、npm 全局目录有写权限、ClaudeCode 的请求指向统一通道。这三件做完剩下的就是模型名和 Key 的细节。给你一个我常用的自检顺序出问题时按这个走能省不少时间先node -v和npm -v确认运行时再npm config get prefix确认全局目录然后Get-ChildItem Env:看有没有残留变量最后去模型对话页面用同一个 Key 发一条消息确认通道和 Key 本身没问题。四步下来问题基本能定位到具体环节。配置文件和命令都给你了直接复制改 Key 就能跑。真正开始用之后你会发现 ClaudeCode 的价值在于它能进到你的工程目录里读文件、改代码而不是在网页里来回粘贴。把 settings.json 一次配好后面换模型只改一个字段这才是统一通道省事的地方。