1. Windows 上跑 Claude Code,卡住你的往往不是模型而是环境
Claude Code 是 Anthropic 推出的命令行编程助手,能在终端里直接读写项目文件、执行命令、跑测试,适合习惯用 CLI 干活的开发者。但它在 Windows 上的安装体验,和 macOS、Linux 完全不是一回事:Node.js 版本不对会直接报错,npm 全局目录没进 PATH 会提示claude 不是内部或外部命令,PowerShell 执行策略太严会拦住脚本,环境变量只写当前窗口关掉就丢。这篇就按 Windows 开发者的真实路径走一遍:从 Node.js/npm 准备、PowerShell 执行策略调整,到环境变量写入和settings.json骨架,最后用一条真实请求验证 CLI 是否跑通。全程命令可直接复制,遇到报错也有对应排查。
2. 装 Claude Code 之前,先把 Node.js 和 npm 理顺
Claude Code 依赖 Node.js 运行,官方要求 18 或更高版本。我建议别直接下 msi 安装包,而是用 nvm-windows 管理版本,后面切 Node 版本不用重装。
2.1 用 nvm-windows 装 Node.js
去 nvm-windows 的 releases 页面下载nvm-setup.exe,安装时它会问两个路径:nvm 自己的安装目录,以及 symlink 目录(默认C:\Program Files\nodejs)。第二个路径就是最终node命令所在位置,别改到带空格的奇怪目录。
装完打开新的PowerShell(旧窗口读不到新 PATH),执行:
nvm version nvm install 20.11.1 nvm use 20.11.1 node -v npm -vnode -v返回v20.11.1、npm -v返回10.x就说明基础环境好了。如果nvm use报exit status 1,多半是没以管理员身份运行 PowerShell,右键「以管理员身份运行」再试一次。
2.2 确认 npm 全局目录在 PATH 里
这一步很多人漏掉,导致装完 claude 却找不到命令。先看全局目录在哪:
npm config get prefix正常会返回类似C:\Users\你的用户名\AppData\Roaming\npm。把这个路径加到用户 PATH:
$npmPrefix = npm config get prefix [Environment]::SetEnvironmentVariable("Path", $env:Path + ";" + $npmPrefix, "User")执行完关掉 PowerShell 重开,echo $env:Path里能看到这个目录就对了。
3. 用 npm 安装 Claude Code 并调整 PowerShell 执行策略
3.1 npm 全局安装
直接装官方包,同时把 registry 指到国内镜像加速:
npm install -g @anthropic-ai/claude-code --registry=https://registry.npmmirror.com--registry参数只影响这一次安装,不会改你全局 npm 配置,比较干净。装完验证:
claude --version有版本号返回就成功了。如果提示无法将"claude"项识别为 cmdlet,回到 2.2 检查 PATH,或者用npm ls -g --depth=0确认包确实装上了。
3.2 PowerShell 执行策略
Claude Code 在 Windows 上会调用.ps1脚本,默认执行策略Restricted会直接拦下。查看当前策略:
Get-ExecutionPolicy -List如果CurrentUser是Undefined或Restricted,改成RemoteSigned:
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSignedRemoteSigned的意思是本地脚本随便跑,从网上下载的脚本需要签名。这比Unrestricted安全,也比AllSigned好用。改完用Get-ExecutionPolicy -Scope CurrentUser确认返回RemoteSigned。
注意:这一步只改当前用户,不动系统级策略,公司电脑如果被组策略锁死,需要找 IT 处理,别硬改机器级策略。
4. 配置 API 接入与环境变量,让 CLI 真正能对话
Claude Code 默认连 Anthropic 官方端点,国内网络环境下经常连不上或超时。这时候需要把请求指向一个兼容 Anthropic 协议的接入地址。TaoToken 提供的就是这类接入服务,官网在 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,API 端点是 https://taotoken.net/api 。先去控制台创建 API Key:https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,在 API Keys 页面生成一个 key,复制备用。
4.1 当前窗口临时配置
在 PowerShell 里依次执行(把<你的Key>换成真实值):
$env:ANTHROPIC_BASE_URL="https://taotoken.net/api" $env:ANTHROPIC_AUTH_TOKEN="<你的Key>" $env:ANTHROPIC_MODEL="claude-sonnet-4-5" $env:ANTHROPIC_DEFAULT_SONNET_MODEL="claude-sonnet-4-5" $env:ANTHROPIC_DEFAULT_HAIKU_MODEL="claude-haiku-4-5" claude这种写法只对当前窗口生效,关掉就没了,适合先验证能不能通。第一次启动会让你选终端配色,选 Dark mode 回车即可,接着是安全提示,确认后进入交互界面。
4.2 永久环境变量
验证通过后,把变量写进用户级环境变量,避免每次重设。按Win + R输入sysdm.cpl,进「高级 → 环境变量」,在「用户变量」里新建:
| 变量名 | 值 |
|---|---|
| ANTHROPIC_BASE_URL | https://taotoken.net/api |
| ANTHROPIC_AUTH_TOKEN | 你的 API Key |
| ANTHROPIC_MODEL | claude-sonnet-4-5 |
| ANTHROPIC_DEFAULT_SONNET_MODEL | claude-sonnet-4-5 |
| ANTHROPIC_DEFAULT_HAIKU_MODEL | claude-haiku-4-5 |
确定后重启 PowerShell,用echo $env:ANTHROPIC_BASE_URL确认能读到值。
4.3 settings.json 骨架
Claude Code 支持项目级配置文件,在项目根目录建.claude/settings.json,可以固化模型和权限策略:
{ "model": "claude-sonnet-4-5", "env": { "ANTHROPIC_BASE_URL": "https://taotoken.net/api", "ANTHROPIC_MODEL": "claude-sonnet-4-5" }, "permissions": { "allow": [ "Read", "Glob", "Grep" ], "deny": [ "Bash(rm -rf:*)" ] } }allow里放只读类工具,deny里挡掉危险命令。API Key 不建议写进这个文件,走环境变量更安全,也方便团队里各人用自己的 key。
5. 验证请求:从启动到一次真实对话
配置完别急着写代码,先做三步验证。
第一步,确认 CLI 能启动:
claude --version第二步,进入项目目录启动交互模式:
cd D:\Projects\demo claude启动后会问你是否信任当前文件夹,选「Yes, I trust this folder」。这是 Claude Code 的安全机制,只在你确认的目录里操作文件。
第三步,输入一句自然语言测试:
这个项目用的是什么语言?帮我列出根目录的主要文件如果模型正常返回文件列表和语言判断,说明接入链路通了。想单独验证模型对话是否正常,也可以直接打开模型对话页面 https://taotoken.net/model-chat?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 发一条消息,对比两边返回是否一致。
6. 本篇常见报错排查
claude 不是内部或外部命令:npm 全局目录没进 PATH。执行npm config get prefix拿到路径,手动加到用户 PATH,重开终端。
无法加载文件,因为在此系统上禁止运行脚本:执行策略问题。Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned后重开 PowerShell。
401 Unauthorized或invalid api key:ANTHROPIC_AUTH_TOKEN没设对,或者 key 复制时带了空格。用echo $env:ANTHROPIC_AUTH_TOKEN检查,重新设置时注意别加引号外的空格。
ECONNREFUSED/ 请求超时:ANTHROPIC_BASE_URL写错或没生效。确认值是https://taotoken.net/api,不带尾部斜杠,改完重启终端。
model not found:ANTHROPIC_MODEL填了不存在的模型名。先用claude-sonnet-4-5这种标准名,确认通了再换。
装完能启动但一对话就断:多半是当前窗口的环境变量和永久变量冲突,关掉所有 PowerShell 重开,只保留永久变量再试。
如果你打算长期在终端里用 Claude Code 做编码和 Agent 任务,可以了解 Coding Plan https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,接入文档在 https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,API Keys 管理页在 https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 。整套流程跑下来,最容易翻车的其实是 PATH 和执行策略这两步,把这两处确认好,后面基本一次通。