如果你在 Windows 上装过 Claude Code,大概率体验过那个尴尬:安装很简单,但它一启动就要求你登录 Anthropic 账号,还跟信用卡绑定,很多人卡在这一步就直接放弃了。我自己折腾过好几轮之后发现,完全可以不碰官方模型接口,让 Claude Code 这个 Agent 外壳去调用 DeepSeek 的 API,核心工作其实只有一个settings.json文件。这篇文章就把我实测过的 Windows 安装流程、配置字段和踩坑点完整写出来,适合想用便宜模型跑 Claude Code、又不想折腾订阅和绑卡的开发者。
1. 为什么非要把 Claude Code 接到 DeepSeek:成本、直连和模型差异
1.1 Claude Code 默认架构下的 API 端点重定向原理
Claude Code 本质上是一个命令行 AI 编程 Agent,它负责处理终端交互、文件读取、命令执行、工具调用这些“外壳”逻辑,真正的文本生成和推理能力来自背后的模型 API。默认情况下,它会把所有请求发送给 Anthropic 官方接口,但它的架构里留了三个非常重要的环境变量:ANTHROPIC_BASE_URL、ANTHROPIC_AUTH_TOKEN、ANTHROPIC_MODEL。只要把这几个变量重新指定,Claude Code 的请求就会从官方接口转向你指定的任何兼容端点。
这个过程可以类比成换电源:电脑还是那台电脑,屏幕、键盘、操作系统都没变,但供电来源从原装适配器换成了第三方电源。Claude Code 依然保持它的 Agent 行为——多轮对话、自动执行命令、自动修改文件、调用工具函数——只是底层生成文字和代码的引擎变成了 DeepSeek。
DeepSeek 官方 API 本身是 OpenAI 兼容格式,而 Claude Code 跟 Anthropic 官方通信用的是 Anthropic Messages 格式。要让两者对上,需要走 DeepSeek 提供的 Anthropic 兼容端点。我实际配置时用的基础地址是https://api.deepseek.com/anthropic,注意不是https://api.deepseek.com/v1,也不是https://api.deepseek.com,这几个地址差别很大,填错了会在后面踩到 404 的大坑。
1.2 用 DeepSeek 驱动和官方 Claude API 的实测对比
我从实际使用的角度做了一张对比表,方便你判断这个方案适不适合自己:
| 对比项 | 官方 Claude API | DeepSeek API(Claude Code 接入) |
|---|---|---|
| 账号门槛 | 需要 Anthropic 账号、海外支付方式 | 国内手机号注册,支付宝/微信充值 |
| 计费方式 | 预充值,按 token 计费 | 预充值,按 token 计费,价格低一个数量级以上 |
| 网络直连 | 对部分区域不够友好 | 国内直连速度稳定 |
| 默认模型 | claude-sonnet / claude-opus 系列 | deepseek-chat / deepseek-reasoner |
| Agent 能力 | 完整支持 | 基础工具调用可用,reasoner 模式偏慢 |
| settings.json 配置 | 不需要额外配置 | 必须手工指定 base URL 和 token |
说实话,DeepSeek 版本的 Claude Code 在代码生成质量上和官方 Claude 系列模型有差距,尤其是复杂多文件重构场景,DeepSeek 的上下文理解和指令跟随会弱一些。但它的优势非常明显:成本可控、充值容易、直连稳定。我自己把日常的代码审查、单文件修改、脚本编写这类任务都交给了 DeepSeek 驱动,只有在处理大型架构调整时才会切回官方模型。
2. Windows 环境三件套:Node.js、PowerShell 策略和 DeepSeek API Key
2.1 Node.js 版本选择与安装方式
Claude Code 是一个 npm 包,Windows 上必须先有 Node.js 环境。很多新手在第一步就翻车:装了 Node.js 但版本太老,npm install 的时候直接报 engine 不兼容,连装都装不上。
我的建议是用 Windows 包管理器 winget 安装当前 LTS 版本,命令如下:
winget install OpenJS.NodeJS.LTS装完打开一个新的 PowerShell 窗口,验证版本:
node -v npm -v我实测常用的版本是 Node.js 20 LTS 和 22 LTS,都比较稳。如果你机器上已经有多个 Node 版本,推荐用nvm-windows管理,方便随时切换。这里有个小提醒:安装 Node.js 之后,如果node -v能输出版本号,但npm -v报错,多半是 npm 的缓存或者 PATH 环境变量有问题,先把旧版本的 Node.js 卸载干净再重装,比试图修复 PATH 快得多。
2.2 PowerShell 执行策略:npm 全局命令闪退的头号原因
Windows 上装完 Claude Code 后,在终端敲claude如果出现一闪而过或者类似“无法加载文件,因为在此系统上禁止运行脚本”的提示,不要怀疑安装过程,十有八九是 PowerShell 的执行策略挡住了 npm 生成的.ps1启动脚本。
解决办法很简单,在 PowerShell 里执行:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUserRemoteSigned的含义是:本机创建的脚本可以运行,从互联网下载的脚本必须经过签名才能运行。这是一个相对安全的策略,不会影响系统整体安全,但它能解决绝大多数 npm 全局命令在 Windows 上无法启动的问题。
如果你用的是 CMD 而不是 PowerShell,通常不会遇到这个限制。但我强烈建议你在 Windows Terminal 里配合 PowerShell 使用 Claude Code,因为后面调试日志、配置环境变量都更顺手。
2.3 注册 DeepSeek API Key 并找到 Anthropic 兼容地址
在配置 Claude Code 之前,先去 DeepSeek 开放平台注册账号,创建 API Key。流程很简单:登录后进入 API Keys 页面,点击创建,复制以sk-开头的那串密钥。注意,这个 Key 只在创建时完整显示一次,务必先保存好再关闭页面。
充值方面,建议第一笔充个几十块就够了,够你跑很多轮对话来测试。DeepSeek 的价格是按 token 计费,deepseek-chat和deepseek-reasoner两个模型价格不同,具体金额以官网价格页为准,但总体费用比官方 Claude API 便宜很多,日常轻量使用这个额度能用相当久。
关于兼容地址,我当时是在 DeepSeek API 文档里找到的 Anthropic 兼容接口说明。基础地址是https://api.deepseek.com/anthropic,也就是说,Claude Code 的ANTHROPIC_BASE_URL应该填这个,而不是常见的 OpenAI 兼容地址https://api.deepseek.com/v1。如果填成后者,Claude Code 会在后面追加路径,请求会打到不存在的v1/anthropic上,直接 404。
注意:如果你在官方文档里看到的是另一个 Anthropic 兼容地址,以文档为准。这类兼容端点的域名偶尔会有调整,配置之后先用一句话测试一下,确认通了再进行后续操作。
3. 安装 Claude Code 并跳过官方登录流程
3.1 npm 全局安装与版本检查
环境准备好之后,安装 Claude Code 本身非常简单,PowerShell 里执行一行命令:
npm install -g @anthropic-ai/claude-code安装完成后,检查版本:
claude --version如果能看到版本号,说明安装成功。如果提示claude不是内部或外部命令,先检查 npm 的全局目录是否在 PATH 里。可以用下面这行命令查看全局安装路径:
npm config get prefix然后把%APPDATA%\npm(或者 npm 输出的那个路径)加到系统环境变量的 PATH 里,重新开一个终端就好了。
3.2 首次运行的登录选择:怎么跳过 Anthropic 账号
这里是最容易卡住的环节。直接运行claude,它会进入一个交互式引导,让你登录 Anthropic 账号,甚至是让你用浏览器打开链接授权。如果你没有 Anthropic 账号,也不想注册,此时不需要硬着头皮去登录。
正确做法是:先不要运行claude,先跳转到下一步把settings.json配好。当环境变量和配置文件里的ANTHROPIC_BASE_URL指向 DeepSeek 端点、ANTHROPIC_AUTH_TOKEN填好 DeepSeek Key 之后,再运行claude,它会自动识别到自定义端点,并跳过官方账号登录流程。部分版本会弹出一个问题,类似“检测到自定义 API 端点,是否跳过登录”,直接选择跳过或者回车确认即可。
我当时第一次没经验,直接运行了claude,进入了登录引导,最后用Ctrl+C强行退出。后来把配置文件写好,再启动就畅通无阻了。所以顺序很重要:先配置,后启动。
3.3 已经登录过旧账号的两个清理路径
如果你之前已经用 Anthropic 官方账号登录过 Claude Code,现在想切换到 DeepSeek,需要先清理掉本地保存的旧凭证,否则每次启动都会优先尝试走官方账号通道。
清理旧凭证有两条路径:
- 在 Claude Code 交互界面里输入
/logout,退出当前账号登录状态。 - 直接删除用户目录下
.claude文件夹里的凭证文件(通常是.credentials.json或类似名称)。Windows 路径在C:\Users\你的用户名\.claude\下,删除前可以先把整个.claude文件夹备份一下,避免误删其他配置。
清理完成后再启动claude,配合新的 settings.json,它就会老老实实走 DeepSeek 端点了。
4. settings.json 逐字段配置:base URL、token 和模型名的匹配逻辑
4.1 两个配置文件的位置与优先级
Claude Code 的配置文件叫settings.json,它有两个最关键的位置:
- 用户级配置:
C:\Users\你的用户名\.claude\settings.json,对这台机器上的所有项目生效。 - 项目级配置:项目根目录下
.claude\settings.json,只对当前项目生效。
两个配置文件同时存在时,项目级配置会覆盖用户级配置中的同名配置项。这是一个很好的灵活性设计:你可以在用户级配置里放通用的 DeepSeek 端点信息,在项目级配置里按项目需求指定不同模型,或者覆盖超时时间。
如果你刚安装完,.claude目录可能还不存在,需要手动创建。用户级和项目级的目录结构是一样的。
4.2 一份可直接抄的完整配置 JSON
下面这份配置是我实测能跑通的完整版本,你直接把<你的DeepSeek-API-Key>替换成自己的 Key 就能用:
{ "env": { "ANTHROPIC_BASE_URL": "https://api.deepseek.com/anthropic", "ANTHROPIC_AUTH_TOKEN": "<你的DeepSeek-API-Key>", "ANTHROPIC_MODEL": "deepseek-chat", "API_TIMEOUT_MS": 900000 }, "model": "deepseek-chat", "maxTokens": 8192 }逐个字段说一下配置逻辑:
ANTHROPIC_BASE_URL:这是核心中的核心,强制指定所有 API 请求的基地址。填https://api.deepseek.com/anthropic,而不是 OpenAI 兼容的/v1。ANTHROPIC_AUTH_TOKEN:Claude Code 会把这里的内容作为Authorization: Bearer <token>请求头发送给服务端。这里填 DeepSeek API Key。ANTHROPIC_MODEL:直接指定请求里携带的模型名。如果不设置这个字段,Claude Code 会默认发送claude-sonnet-4-x之类的模型名,DeepSeek 端点不认这个模型,会直接报错。API_TIMEOUT_MS:请求超时时间,单位毫秒。我设置的是 900000,也就是 15 分钟。因为deepseek-reasoner这类推理模型在长思维链模式下响应很慢,默认 60 秒超时经常会断。model:让 Claude Code 的交互界面和内部工具调用使用同一个模型,避免实际请求和界面显示不一致。maxTokens:限制单次生成的最大 token 数量。DeepSeek 模型单次输出上限通常也是 8K 级别,这里设置 8192 是留出足够空间,避免长代码生成被截断。
4.3 环境变量方式和 settings.json 的取舍
配置文件里写 API Key 有一个风险:如果项目是公开仓库,项目级配置很容易被 Git 提交上去,导致 API Key 泄露。这里有两种方式可以规避:
| 方式 | 优点 | 缺点 |
|---|---|---|
| settings.json 里直接写 Key | 复制配置文件就能跑,适合本机单用户 | 容易误提交到 Git,Key 会泄露 |
| Key 放系统/用户环境变量 | Key 不出现在配置文件里,更安全 | 新机器上需要额外配置环境变量 |
我个人的做法是:用户级 settings.json 里只写ANTHROPIC_BASE_URL、ANTHROPIC_MODEL、API_TIMEOUT_MS,Key 放在 Windows 的用户环境变量里。具体设置方式是在系统设置里搜索“环境变量”,在用户变量里新建ANTHROPIC_AUTH_TOKEN,值填 DeepSeek Key。
这样做的好处是,无论我怎么复制配置文件,里面都不会出现敏感信息。如果你图省事,直接写在 settings.json 里,那一定要在项目级配置所在的.claude目录加入.gitignore:
.claude/4.4 模型名对应关系:deepseek-chat 还是 deepseek-reasoner
DeepSeek 官方目前主要提供两个模型,对应到 Claude Code 里需要区分使用场景:
deepseek-chat:对应 DeepSeek-V3 系列,速度快、成本低,适合日常代码生成、单文件修改、命令行操作。我在绝大多数日常任务中用这个。deepseek-reasoner:对应 DeepSeek-R1 系列,带深度推理能力,会在最终回答前先输出长思维链。适合复杂架构分析、逻辑推理、疑难 bug 排查,但响应速度明显比 chat 慢。
需要特别提醒的是,deepseek-reasoner在 Claude Code 场景里的工具调用稳定性不如deepseek-chat,有时会出现思考链路很长但迟迟不执行工具函数的情况。所以我默认配置用的是deepseek-chat,需要深度推理时再临时切换模型,切换方式很简单,在 Claude Code 对话框里输入:
/model deepseek-reasoner或者直接用命令行参数启动:
claude --model deepseek-reasoner5. 验证是否真的跑在 DeepSeek 上:日志、账单和异常排查
5.1 快速验证:一句话测试加日志抓取
配置完成后,运行claude,输入一个最简单的测试问题:“你好,请确认你现在可以工作,并告诉我你的模型名称是什么。”
如果一切正常,它会直接回复,不会让你登录官方账号。这一步能通过,说明大方向没错:请求已经发出去了,而且得到了响应。
但这里有一个隐蔽的问题:有时候设置里的 base URL 没生效,Claude Code 还在用某种方式访问官方接口,而你有代理环境所以也能成功返回。要确认它到底走的是不是 DeepSeek 端点,必须看日志。
5.2 从请求日志确认端点和模型名
Claude Code 提供了 debug 模式,启动时加参数:
claude --debug在这个模式下,控制台会打印更详细的请求和响应信息,日志文件也会写到C:\Users\你的用户名\.claude\logs目录下。打开最新的日志文件,重点找这么几个特征:
- 请求的 URL 是否包含
api.deepseek.com/anthropic。 - 请求头
authorization是否带着你的 DeepSeek Key。 - 请求体里的
model字段是否是deepseek-chat或deepseek-reasoner。
如果 URL 指向api.anthropic.com,说明配置没生效,回到 settings.json 检查字段拼写和文件路径,然后重启claude再试。如果 URL 正确但 model 字段还是claude-sonnet-4-x,那说明ANTHROPIC_MODEL和model这两个字段至少有一个没被读到,检查 JSON 格式是不是有语法错误。
5.3 DeepSeek 用量页验证:最直观的实锤
另一个更直接的验证方式是打开 DeepSeek 开放平台的用量统计页面。跑一两个任务之后,刷新页面,你会看到 token 消耗量、请求次数和费用在增长。这一步是最硬的证据:只有你的请求真的到达了 DeepSeek 服务器,这里才会产生数据。
我第一次跑通的时候,就是在 Claude Code 里问了一个代码问题,再去用量页,看到消耗了大概几千 token,费用显示几分钱,这才确认整个链路完全打通。
5.4 常见报错对照表:401、400、404、429、超时
实际使用中一定会遇到各种报错,我这里整理了一份高频问题对照表:
| 报错/现象 | 根本原因 | 解决办法 |
|---|---|---|
| 401 Unauthorized | API Key 错误、没有余额 | 检查ANTHROPIC_AUTH_TOKEN是否填对,登录 DeepSeek 平台确认余额 |
| 400 Invalid model | 请求里带的模型名不对 | 确认ANTHROPIC_MODEL和model都设置为deepseek-chat或deepseek-reasoner |
| 404 Not Found | base URL 填错了,路径不存在 | 改为https://api.deepseek.com/anthropic,不要带/v1 |
| 429 Too Many Requests | 账户限流、余额不足 | 检查余额,降低请求频率 |
| 超时 / 一直转圈 | 推理模型思维链太长、超时时间太短 | 调大API_TIMEOUT_MS,例如 900000 |
排查这类问题有一个通用技巧:不要只看 Claude Code 在终端里展示的那一行错误,去看 debug 日志里的完整响应体。很多时候 Claude Code 会把上游的错误信息包装成模糊的提示,真正的错误原因藏在日志的 response body 里。
6. 跑通之后的事情:Windows 下的日常使用和避坑清单
6.1 长任务输出与超时参数调整
用 DeepSeek 驱动 Claude Code,最需要适应的是两个模型的响应节奏。deepseek-chat速度比较快,日常使用基本和官方模型体验接近。但deepseek-reasoner会先输出一大段思维链,再给出最终答案,整个响应时间可能长达几分钟。
如果你经常遇到“好像卡住了”的情况,先别急着按Esc中断,看看是不是推理模型正在思考。我第一次切到deepseek-reasoner的时候,等了一分多钟没反应,以为配置坏了,后来发现它只是在慢慢推理。
如果你的任务需要生成特别长的代码文件,建议把maxTokens保持在 8192,同时在提问时明确要求“输出完整代码,不要省略中间部分”。因为模型在输出超过上限时可能会截断,给用户的体验就是代码不完整。
6.2 VS Code 里使用 Claude Code 的顺手操作
很多人习惯在 VS Code 里写代码,Claude Code 也支持直接在 VS Code 的集成终端里运行。前提是你已经在 Windows 全局安装好了 Claude Code,并且 settings.json 配置正确。
在 VS Code 里打开集成终端,直接输入claude即可使用。因为集成终端本质上还是 PowerShell,所有配置和命令都通用。如果你希望更顺手,可以安装 VS Code 的 Claude Code 扩展,它会提供面板式的交互界面。但请注意,扩展本身也要读取同样的配置,如果你的 settings.json 没配好,扩展同样会卡在登录界面。
6.3 升级与配置失效的处理
Claude Code 这个工具迭代速度很快,npm 包更新也很频繁。定期升级是好习惯:
npm update -g @anthropic-ai/claude-code但升级之后有一个需要警惕的点:某些版本更新可能调整了环境变量的读取逻辑,或者引入新的配置项格式。如果你升级后发现请求又莫名其妙打到了官方地址,先检查两件事:一是settings.json是否还在正确的位置,二是环境变量是否被新版本覆盖默认值。
另外,Windows 上如果同时配置了系统环境变量和 settings.json 里的env字段,后者的优先级通常是更高的。当你发现配置不生效时,用 debug 日志反向追踪请求,基本能快速定位到底哪一层配置出了问题。
6.4 几条个人向的使用建议
跑了三四个月这个方案,我的总体判断是:值得用,但要分清场景。日常的脚本编写、单文件修改、代码解释、文档生成,DeepSeek 驱动完全够用,成本优势也很明显。但涉及大型项目的多文件重构、需要长时间维护上下文一致性的任务,官方 Claude 模型依然更强。
我现在的使用习惯是:用户级配置默认指向deepseek-chat,在少数需要深度推理的时候,临时用/model deepseek-reasoner切换。项目的.claude目录加入 Git 忽略,API Key 放在 Windows 用户环境变量里而不是写进配置文件。这样既安全,又不影响团队协作时复制配置。如果你打算在团队里推广这个方案,让每个人用自己的 Key 填自己机器的环境变量就好,settings.json 本身可以直接共享。
最后说一个小技巧:用 DeepSeek 之前,先把 Key 对应的账户充个最低额度,然后在用量页刷新确认每一轮请求至少在记账。等你看过几次账单数字之后,就会对它有多便宜有直观体感了,之后放开手用也不用心疼。