1. Windows 上跑 Claude Code,卡住的地方到底在哪
Claude Code 是 Anthropic 推出的命令行 AI 编程助手,能在终端里直接读你的项目文件、生成代码、改 BUG、跑分析,适合习惯用命令行或 VS Code 的开发者。但 Windows 用户第一次装它,十有八九会卡在三件事上:一是原生 CLI 依赖 Node.js,环境变量没配好就报「claude 不是内部或外部命令」;二是 API Key 散落在系统变量、.bashrc、VS Code 设置里,换台机器就得重配一遍;三是 WSL 和 Windows 原生终端两套环境,配置方式不一样,容易搞混。
这篇笔记就聚焦 Windows 下 Claude Code CLI 的安装与首次接入,覆盖 WSL 和 VS Code 终端两种环境。我会给出settings.json和config.toml的可复制骨架,演示用 TaoToken 统一 Key/API 通道完成配置,最后附一条 curl 验证命令确认连通。目标很明确:让你在本地跑通第一个对话请求,而不是装完就卡在鉴权那一步。
先说清楚 TaoToken 在这里的角色。它是一个统一 API 通道,把模型调用收敛到一个 Key 和一个 Base URL 上。对 Claude Code 来说,你不需要在每台机器、每个终端里分别维护不同的凭证,只要把ANTHROPIC_BASE_URL指向 TaoToken 的 API 地址,再用统一 Key 鉴权,CLI、VS Code 终端、WSL 三处就能共用同一套配置。官网入口在 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,API 地址是 https://taotoken.net/api ,注意 API 地址不带 UTM 参数,配置时别把推广参数拼进去。
2. 前置准备:Node.js、Git 与 TaoToken Key
2.1 Windows 原生 CLI 的环境依赖
原生 CLI 安装方式依赖 Node.js,推荐 18+ 或 20.x LTS 版本。去 Node.js 官网下.msi安装包,双击全程默认下一步,务必保留「Add to PATH」勾选。装完在 PowerShell 里验证:
node -v npm -v要求node -v输出 v18.x 及以上,npm -v输出 v9.x 及以上。如果版本太低,Claude Code 的部分依赖会装不上。
Git for Windows 建议一并装上,WSL 方案和无 Node 一键安装都会用到它。装完验证:
git --version输出版本号即成功。
2.2 拿 TaoToken 统一 Key
打开 TaoToken 控制台,进入 API Keys 页面创建一个新 Key。这个 Key 就是后面所有环境共用的凭证。创建入口在 https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,创建后立刻复制保存,页面刷新后通常不再完整显示。
注意:Key 只存在你自己的机器上,不要提交到 Git 仓库,也不要贴到公开的 issue 或聊天记录里。如果不小心泄露,回控制台吊销重建即可。
2.3 确认 API 通道地址
TaoToken 的 API 根地址是https://taotoken.net/api。Claude Code 通过ANTHROPIC_BASE_URL环境变量识别通道,所以配置的核心就是两件事:把 Base URL 指过去,把 Key 填进去。模型对话相关的调试可以在 https://taotoken.net/models?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 里先试跑,确认 Key 有额度、模型能响应,再回到 CLI 配置,能省不少排查时间。
3. 可复制配置:settings.json 与 config.toml 骨架
3.1 Windows 原生 CLI 的环境变量配置
原生 CLI 读取的是系统环境变量。推荐永久配置,重启终端仍生效。按Win+R输入sysdm.cpl打开系统属性,进「高级」→「环境变量」,在用户变量里新建两条:
| 变量名 | 变量值 |
|---|---|
ANTHROPIC_API_KEY | 你的 TaoToken Key |
ANTHROPIC_BASE_URL | https://taotoken.net/api |
保存后关闭所有终端重新打开。验证:
echo $env:ANTHROPIC_API_KEY echo $env:ANTHROPIC_BASE_URL两条都输出对应值,说明环境变量生效。临时配置只对当前终端有效,适合快速测试:
$env:ANTHROPIC_API_KEY="你的TaoToken Key" $env:ANTHROPIC_BASE_URL="https://taotoken.net/api"3.2 settings.json 骨架
Claude Code 支持用settings.json做项目级或用户级配置。用户级配置放在C:\Users\你的用户名\.claude\settings.json,项目级放在项目根目录的.claude\settings.json。骨架如下:
{ "env": { "ANTHROPIC_API_KEY": "你的TaoToken Key", "ANTHROPIC_BASE_URL": "https://taotoken.net/api" }, "model": "claude-3-sonnet-20240229", "permissions": { "allow": [ "Read", "Write", "Bash(git status)", "Bash(npm run test)" ] } }env块里的两个变量优先级高于系统环境变量,适合在项目里锁定通道。model指定默认模型,通用任务用claude-3-sonnet-20240229,复杂重构可以换更强的型号。permissions.allow是白名单,把常用只读命令和测试命令放进去,减少每次操作的确认弹窗。
3.3 config.toml 骨架(WSL 环境)
WSL 里 Claude Code 走的是 Linux 配置路径,用户级配置在~/.claude/config.toml。骨架:
[api] api_key = "你的TaoToken Key" base_url = "https://taotoken.net/api" [model] default = "claude-3-sonnet-20240229" [permissions] allow = ["Read", "Write", "Bash(git status)"]WSL 里也可以直接用环境变量,写进~/.bashrc:
echo 'export ANTHROPIC_API_KEY="你的TaoToken Key"' >> ~/.bashrc echo 'export ANTHROPIC_BASE_URL="https://taotoken.net/api"' >> ~/.bashrc source ~/.bashrc两种方式选一种即可,config.toml更适合需要多项目切换模型的场景,环境变量更适合全局统一。
3.4 VS Code 终端里的配置
VS Code 集成终端本质上是调用系统 shell,所以只要系统环境变量配好了,VS Code 里新开的终端会自动继承。如果 VS Code 是在配置环境变量之前打开的,需要完全退出再重启,否则读到的还是旧环境。
VS Code 的settings.json(按Ctrl+Shift+P输入Open User Settings (JSON))里可以加一段终端环境注入,确保每次开终端都带上:
{ "terminal.integrated.env.windows": { "ANTHROPIC_API_KEY": "你的TaoToken Key", "ANTHROPIC_BASE_URL": "https://taotoken.net/api" } }这样即使系统变量被改动,VS Code 终端里也有一份独立配置兜底。
4. 验证请求:curl 确认连通与首个对话
4.1 用 curl 验证 API 通道
配置完先别急着跑 CLI,用一条 curl 确认通道连通。PowerShell 里执行:
curl -X POST https://taotoken.net/api/v1/messages ` -H "x-api-key: 你的TaoToken Key" ` -H "anthropic-version: 2023-06-01" ` -H "content-type: application/json" ` -d '{\"model\":\"claude-3-sonnet-20240229\",\"max_tokens\":64,\"messages\":[{\"role\":\"user\",\"content\":\"说一句你好\"}]}'如果返回 JSON 里带content字段和模型回复文本,说明 Key 有效、通道连通、模型可调用。如果返回 401,检查 Key 有没有多余空格或换行;返回 404,检查 Base URL 是不是写成了带路径的完整地址,根地址只到/api。
4.2 跑通第一个 CLI 对话
确认通道没问题后,在 PowerShell 里执行:
claude --version claude "用 Python 写一个读取 CSV 并统计行数的脚本"第一条输出版本号说明 CLI 装好了,第二条会进入对话并返回代码。如果提示命令不存在,回到 3.1 检查环境变量,或者用npm config get prefix拿到 npm 全局路径,把该路径加进用户变量Path,重启终端。
4.3 WSL 环境下的验证
WSL 里先确认 Node 版本:
node -v npm -v然后装 CLI 并验证:
npm install -g @anthropic-ai/claude-code claude --version claude "解释一下这段 shell 脚本的作用"WSL 里的 curl 验证命令和 Windows 一致,只是换行符用\而不是反引号:
curl -X POST https://taotoken.net/api/v1/messages \ -H "x-api-key: 你的TaoToken Key" \ -H "anthropic-version: 2023-06-01" \ -H "content-type: application/json" \ -d '{"model":"claude-3-sonnet-20240229","max_tokens":64,"messages":[{"role":"user","content":"说一句你好"}]}'4.4 VS Code 终端里的验证
在 VS Code 里按Ctrl+`打开集成终端,执行claude --version和一条简单对话。如果 VS Code 终端报鉴权失败但系统 PowerShell 正常,多半是 VS Code 没重启,或者terminal.integrated.env.windows里的 Key 写错了。改完配置后关掉所有 VS Code 窗口再打开。
5. 本篇常见错排查
5.1 claude 不是内部或外部命令
这是 Windows 上最高频的报错。原因是 npm 全局安装路径没进Path。执行npm config get prefix拿到路径,通常是C:\Users\你的用户名\AppData\Roaming\npm,把它加进用户变量Path,关掉所有终端重开。如果用的是无 Node 一键安装,路径是C:\Users\你的用户名\.local\bin,同样加进Path。
5.2 401 未授权
三种可能:Key 复制时带了空格或换行;Key 被吊销或过期;账号额度用尽。先echo $env:ANTHROPIC_API_KEY看输出是否干净,再回控制台核对 Key 状态和额度。确认无误后重新生成一个 Key 替换。
5.3 模型不存在
报「model not found」通常是模型名写错。通用任务用claude-3-sonnet-20240229,复杂任务用claude-3-opus-20240229。如果你在settings.json或config.toml里写了自定义模型名,确认它和通道支持的名称一致。
5.4 WSL 与 Windows 配置互相干扰
WSL 读的是~/.bashrc和~/.claude/config.toml,Windows 原生读的是系统环境变量和C:\Users\你的用户名\.claude\settings.json。两边是独立的,改了 Windows 的不会影响 WSL。如果 WSL 里报鉴权失败,检查~/.bashrc里的ANTHROPIC_BASE_URL有没有写对,source ~/.bashrc后echo $ANTHROPIC_BASE_URL确认。
5.5 VS Code 终端读不到环境变量
VS Code 启动时会快照系统环境,之后改系统变量它不会自动刷新。完全退出 VS Code(不是关窗口,是退出进程)再打开。或者用 3.4 里的terminal.integrated.env.windows显式注入,绕开快照问题。
5.6 npm 安装慢或超时
网络原因导致 npm 拉包慢,可以切镜像加速:
npm config set registry https://registry.npmmirror.com装完再切回官方源也行,或者保持镜像源不影响日常使用。
6. 配置收尾与后续入口
到这里,Windows 原生、WSL、VS Code 终端三套环境的 Claude Code 应该都能跑通第一个对话了。核心就三样:Node.js 环境、TaoToken 统一 Key、ANTHROPIC_BASE_URL指向https://taotoken.net/api。settings.json和config.toml的骨架可以直接复制,改 Key 就能用。
如果你在排障或接入过程中卡住,优先看 API Keys 页面和接入文档,里面有针对不同客户端的配置示例:https://taotoken.net/api-keys?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= 。想先验证模型响应再配 CLI,可以去模型对话页试跑:https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 。如果你打算长期用 Claude Code 做编码或跑 Agent 任务,Coding Plan 的额度方式更适合高频调用:https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 。
最后留一个我踩过的坑:WSL 里装完 CLI 后,如果claude命令在 Windows 终端里也能用,别高兴太早,那可能是两个不同的安装路径在打架。分别在两个环境里跑which claude(WSL)和where.exe claude(Windows),确认各自指向自己的安装位置,避免配置改了一边另一边没生效。