1. Windows 上跑 Claude Code为什么总卡在鉴权这一步Claude Code 是 Anthropic 推出的命令行编程助手能在终端里直接读项目、改代码、跑重构适合习惯用 CLI 的开发者。它本身不绑定操作系统Windows 下用 PowerShell 或 Windows Terminal 都能跑起来。但真正让大多数人卡住的不是安装而是鉴权配置。我见过太多人在 Windows 上装完 Claude Code一运行就报Auth conflict或者提示Invalid API key然后开始怀疑是不是网络问题、是不是版本不对。其实核心矛盾只有一个Claude Code 同时支持两种鉴权来源而它强制只允许一种生效。这两种来源分别是ANTHROPIC_AUTH_TOKENCLI 登录态通过claude login走 OAuth 流程拿到适合本地交互式开发。ANTHROPIC_API_KEYAPI Key 方式直接填一个密钥适合脚本化、CI 或统一网关接入。问题在于Windows 的环境变量层级比 Linux/macOS 复杂得多。当前 PowerShell 会话、用户级、系统级三层都可能残留ANTHROPIC_*变量再加上 Claude Code 自己在~/.claude下缓存了一份配置。你改了环境变量、重启了终端缓存那份还在冲突照旧。所以这篇不是单纯讲“怎么装”而是把 Windows 下从安装到跑通第一个对话任务的完整链路拆开重点放在鉴权配置和验证动作上。如果你打算用 TaoToken 的统一 Key 和 API 通道来接入那 Base URL、密钥、模型 ID 这三件套怎么填、填在哪、怎么验证都会给到可复制的片段。适合谁看在 Windows 上第一次接触 Claude Code 的人已经装了但一直报鉴权错误的人想用统一 Key 管理多个模型通道、不想每个工具单独配一遍的人。下面按“先清干净、再装、再配、再验证”的顺序走每一步都有命令和预期结果。2. 用 TaoToken 统一 Key 接入前的准备工作在动手改配置之前先把 TaoToken 这边的信息拿到手。TaoToken 的作用是提供一个统一的 API 通道你只需要一个 Key 和一套 Base URL就能在 Claude Code、Cline、Codex 等不同工具里复用不用每个工具去单独申请和切换。你需要准备三样东西第一API Key。登录 TaoToken 控制台在 API Keys 页面创建一个新的 Key。建议按用途命名比如claude-code-win方便后面排查是哪个 Key 出的问题。创建后立刻复制保存页面刷新后通常不再完整显示。第二Base URL。TaoToken 的 API 入口是https://taotoken.net/api注意这里不要加任何查询参数直接用它作为 Anthropic 兼容端点的基础地址。Claude Code 在配置时会在这个地址后面拼接/v1/messages之类的路径所以 Base URL 只写到/api为止。第三Model ID。Claude Code 默认会请求 Claude 系列模型你需要确认当前通道支持的模型标识。常见的是claude-sonnet-4-5这类命名具体以控制台模型列表为准。Model ID 填错会直接导致reading choices或 404 类错误后面排障章节会细说。拿到这三样之后先别急着往 Claude Code 里塞。Windows 上最容易出问题的就是“旧配置没清干净新配置又叠上去”。所以下一步是先做一次彻底清理把环境变量和本地缓存都归零再重新配。这里有个认知点值得强调Claude Code 的鉴权来源不止环境变量一处。它还会读~/.claude目录下的本地配置缓存。你在 PowerShell 里Remove-Item Env:ANTHROPIC_API_KEY只清了当前会话用户级和系统级还在就算三层都清了~/.claude里的缓存还在重启终端也没用。所以清理必须覆盖四个位置当前会话、用户级、系统级、本地缓存目录。清理命令用 PowerShell 执行逐条跑Remove-Item Env:ANTHROPIC_API_KEY -ErrorAction SilentlyContinue Remove-Item Env:ANTHROPIC_AUTH_TOKEN -ErrorAction SilentlyContinue [Environment]::SetEnvironmentVariable(ANTHROPIC_API_KEY, $null, User) [Environment]::SetEnvironmentVariable(ANTHROPIC_AUTH_TOKEN, $null, User) [Environment]::SetEnvironmentVariable(ANTHROPIC_API_KEY, $null, Machine) [Environment]::SetEnvironmentVariable(ANTHROPIC_AUTH_TOKEN, $null, Machine) Remove-Item -Recurse -Force $env:USERPROFILE\.claude -ErrorAction SilentlyContinue Remove-Item -Recurse -Force $env:USERPROFILE\.config\claude -ErrorAction SilentlyContinue跑完之后用Get-ChildItem Env: | Where-Object { $_.Name -like ANTHROPIC* }确认当前会话没有残留。如果输出为空说明清理到位。这一步不做后面 99% 会继续报Auth conflict。清理完再装 Claude Code。现在官方已经从 npm 版切换到原生安装器Windows 下直接跑claude install即可。如果你已经能运行claude并进入交互界面说明安装已完成不用回头重装。安装完成后先不要claude login因为我们要走的是 TaoToken 统一 Key 的 API 通道方式而不是 CLI 登录态。3. 可复制的 settings 配置片段与 Base URL 设置Claude Code 在 Windows 下的配置入口主要有两个环境变量和settings.json。推荐用settings.json来管理因为它可复制、可版本化换机器时直接带走不用重新配环境变量。配置文件路径是%USERPROFILE%\.claude\settings.json也就是C:\Users\你的用户名\.claude\settings.json。如果.claude目录不存在先手动创建。用记事本或 VS Code 打开这个文件写入以下 JSON{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_API_KEY: sk-你的TaoToken密钥, ANTHROPIC_MODEL: claude-sonnet-4-5 } }这三行就是前面说的三件套Base URL、Key、Model ID。注意ANTHROPIC_BASE_URL只写到https://taotoken.net/api不要加/v1或结尾斜杠Claude Code 会自己拼接路径。ANTHROPIC_API_KEY填你在 TaoToken 控制台创建的 Key保留sk-前缀。ANTHROPIC_MODEL填控制台确认过的模型标识。如果你更习惯用环境变量而不是 settings.json也可以在 PowerShell 里设置用户级变量[Environment]::SetEnvironmentVariable(ANTHROPIC_BASE_URL, https://taotoken.net/api, User) [Environment]::SetEnvironmentVariable(ANTHROPIC_API_KEY, sk-你的TaoToken密钥, User) [Environment]::SetEnvironmentVariable(ANTHROPIC_MODEL, claude-sonnet-4-5, User)设置完需要新开一个 PowerShell 窗口才能生效因为用户级变量不会自动刷新到当前会话。两种方式选一种即可不要同时用。同时用会出现“settings.json 里一套、环境变量里一套”的情况Claude Code 读取优先级不明确容易又绕回鉴权冲突。我的建议是统一用 settings.json环境变量只作为临时覆盖手段。这里要特别提醒一个 Windows 特有的坑路径中的反斜杠和空格。%USERPROFILE%展开后可能是C:\Users\张三如果用户名带空格或中文某些工具读取路径会出问题。遇到这种情况把.claude目录放到一个纯英文无空格的路径下比如C:\dev\.claude然后通过CLAUDE_CONFIG_DIR环境变量指向它。不过大多数情况下默认路径是能正常工作的先按默认来。配置写完后不要急着跑对话。先做一次配置读取验证在 PowerShell 里执行claude --version确认 CLI 能正常启动。然后执行claude config list如果版本支持看它读到的 Base URL 和 Model 是不是你填的值。如果这一步就报错说明 JSON 格式有问题检查有没有多余的逗号或引号。确认配置被正确读取后再进入下一步的真实请求验证。4. 一次真实请求验证从启动到首个对话任务跑通配置写完只是“看起来对了”真正跑通要看一次完整请求。这一步的目标是启动 Claude Code发一个简单指令看到模型正常返回并且不报鉴权错误。先新开一个 PowerShell 窗口让用户级环境变量生效如果你用的是 settings.json这步可以跳过但新开窗口没坏处。然后进入一个测试目录比如C:\dev\test-claude执行cd C:\dev\test-claude claude如果配置正确你会看到 Claude Code 的欢迎界面类似/model to try Opus 4.5 Try refactor filepath ? for shortcuts看到这个界面就说明鉴权已经通过CLI 进入了工作态。注意这不是报错是正常的引导界面。很多人第一次看到以为卡住了其实是在等你输入。接下来发一个真实请求。在提示符后输入explain .这个指令让 Claude 读取当前目录并解释项目结构。如果目录是空的它会告诉你没有文件如果目录里有代码它会开始分析。无论哪种只要它开始输出内容而不是报鉴权错误就说明请求链路通了。更直接的验证方式是发一个纯对话指令用一句话说明什么是递归预期结果是模型返回一句解释。如果返回正常说明 Base URL、Key、Model ID 三件套全部生效。如果报错根据错误类型对照下一节排查。验证通过后你可以试试基础操作。查看当前目录用pwd列出文件用ls让 Claude 改代码用refactor src/index.ts修 bug 用fix src/main.ts。切换模型用/model。这些指令都遵循一个原则在现有内容基础上做修订不是重来。amend是修补刚提交的成果refactor是重组结构但不改语义fix是修明确问题。理解这个语义用起来会顺手很多。如果你想让 Claude Code 长期跑编码任务或 Agent 流程可以考虑 TaoToken 的 Coding Plan它在统一 Key 的基础上做了额度管理适合持续调用场景。验证模型是否可用则可以直接用模型对话页面快速试。5. 常见报错排查401、Auth conflict、reading choices 怎么解配置过程中最容易撞上的几类错误这里按真实报错对照给解法。401 Unauthorized / Invalid API key这个最直接Key 不对或没生效。检查三处settings.json 里的ANTHROPIC_API_KEY是不是完整复制了有没有多余空格TaoToken 控制台里这个 Key 是不是被禁用或删除了环境变量里是不是还残留一个旧的ANTHROPIC_API_KEY覆盖了 settings.json。用Get-ChildItem Env: | Where-Object { $_.Name -like ANTHROPIC* }确认当前会话没有旧变量。Auth conflict这是 Windows 下最高频的错误原因是同时存在ANTHROPIC_AUTH_TOKEN和ANTHROPIC_API_KEY。Claude Code 强制只允许一种。解法就是回到第 2 节的清理流程把四个位置全部清空然后只保留一种鉴权方式。如果你走的是 TaoToken 统一 Key就只保留ANTHROPIC_API_KEY不要claude login。如果你走 CLI 登录态就只保留ANTHROPIC_AUTH_TOKEN在claude login时看到Use API key?明确输入No。local proxy failed / connection refused这个通常不是鉴权问题而是 Base URL 写错或网络不通。检查ANTHROPIC_BASE_URL是不是https://taotoken.net/api有没有多写/v1或结尾斜杠。然后在 PowerShell 里跑curl https://taotoken.net/api看能不能通。如果 curl 都不通说明本机网络到该地址有问题换网络环境再试。reading choices / 404 model not found这个错误指向 Model ID 不对。Claude Code 请求的模型标识和你填的ANTHROPIC_MODEL不匹配或者该模型在当前通道不可用。回到 TaoToken 控制台确认模型列表把ANTHROPIC_MODEL改成列表里存在的标识。注意大小写和连字符claude-sonnet-4-5和claude-sonnet-4.5是不同的。OAuth 相关报错如果你之前用过claude login本地可能残留 OAuth token。即使清了环境变量~/.claude里的凭证文件还在。解法是删掉%USERPROFILE%\.claude整个目录然后重新用 settings.json 配置。删之前确认里面没有你要保留的其他配置。改了配置但重启还是报错这是认知点重启只刷新当前会话、用户级、系统级三层环境变量~/.claude里的本地缓存不会因为重启而清除。必须手动删目录。这也是为什么第 2 节的清理命令里包含了Remove-Item -Recurse -Force $env:USERPROFILE\.claude。排查时建议按顺序来先确认环境变量干净再确认 settings.json 格式正确再确认 Base URL 和 Model ID 无误最后看网络连通性。大部分问题在前两步就能定位。6. 把配置固化下来下次换机器直接复用跑通之后最有价值的动作是把配置固化。Windows 下建议把%USERPROFILE%\.claude\settings.json纳入你的 dotfiles 管理或者至少复制一份到云盘。换机器时装完 Claude Code把这个文件放回原位新开终端就能用不用重新走一遍清理和配置。如果你同时用 Cline、Codex 等工具TaoToken 的统一 Key 可以复用同一套 Base URL 和 Key只是各工具的配置文件路径和字段名不同。Codex 用auth.jsonCline 在 MCP 配置里填 Base URL 和 KeyClaude Code 用settings.json。三件套不变Base URL 写https://taotoken.net/apiKey 用同一个Model ID 按各工具支持的填。最后留一个实用习惯每次改完配置先跑claude --version确认 CLI 能启动再跑一次纯对话指令确认鉴权通过最后才进项目目录干活。这个顺序能帮你把配置问题和代码问题分开省掉大量“到底是哪错了”的排查时间。