1. 为什么要在 VS Code 里把 Claude Code 接到 DeepSeek
Claude Code 是 Anthropic 出的命令行编程助手,能读项目、改文件、跑命令,在终端里用起来很顺手。但它默认走 Anthropic 官方接口,国内开发者直接调用会遇到两个现实问题:一是网络链路不稳定,二是官方订阅和 API 计费对个人开发者偏贵。DeepSeek 提供了兼容 Anthropic Messages 协议的接口,模型能力够用,价格也友好,所以把 Claude Code 的后端换成 DeepSeek 是很自然的选择。
这篇聚焦最短路径:你已经有 DeepSeek 的 API Key,只想在 VS Code 里少改配置、快速跑通。核心动作只有一个——改settings.json里的环境变量,把请求地址和鉴权指向 DeepSeek 兼容端点。改完之后,VS Code 里的 Claude Code 面板和终端里的claude命令都会走这条链路。
适合谁:已经在 VS Code 里装了 Claude Code 插件、手上有 DeepSeek Key、不想折腾复杂路由的开发者。如果你还没有统一管理多个模型 Key 的习惯,后面我也会给出用 TaoToken 做统一 Key/API 通道的接法,这样切换模型时不用反复改配置文件。
整个链路可以这样理解:
你在 VS Code 里提问 → Claude Code 插件 / CLI → 读取 ~/.claude/settings.json → 按 ANTHROPIC_BASE_URL 发请求 → DeepSeek 的 Anthropic 兼容端点 → deepseek-chat / deepseek-reasoner 回包关键点在于 Claude Code 支持用环境变量覆盖默认端点,只要目标服务兼容 Anthropic Messages 协议,就能接上。DeepSeek 正好提供了这个兼容层,所以不需要任何额外网络工具,改配置即可。
2. 前置准备:Key、Node 版本与 TaoToken 通道
动手前先确认三样东西,缺一样后面都会卡住。
第一是 Node.js 版本。Claude Code CLI 需要 Node 18 以上,建议直接上 20 LTS。在 VS Code 内置终端里跑:
node -v npm -v如果版本低于 18,先去 Node 官网装新版,装完重启 VS Code 让 PATH 生效。
第二是 API Key。你有两种来源可选:
- 直接用 DeepSeek 官方 Key:去 DeepSeek 开放平台创建,Key 只显示一次,复制后先存到密码管理器里。
- 用 TaoToken 统一 Key:TaoToken 提供一个兼容 Anthropic 协议的 API 通道,一个 Key 可以路由到多个模型,省去每个模型单独配 Key 的麻烦。官网入口在 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,注册后在控制台创建 Key 即可。
如果你只是临时跑通 DeepSeek,用官方 Key 最直接;如果你后面还想在 Claude、DeepSeek、其他模型之间切换,建议用 TaoToken 的通道,配置只写一次。
第三是确认 Claude Code 已经装好。VS Code 扩展市场搜 Claude Code 安装,装完右侧活动栏会出现图标。插件自带 CLI,但不会加进系统 PATH,所以如果你想在终端里直接敲claude,还需要全局装一次:
npm install -g @anthropic-ai/claude-code --registry=https://registry.npmmirror.com claude --version能打印出版本号就说明 CLI 就绪。这里用 npmmirror 源是为了安装更快,和网络工具无关,纯粹是包下载加速。
注意:API Key 会以明文形式写进
settings.json,它等同于密码。不要把.claude/目录提交到 git,建议在项目.gitignore里加一行.claude/。
3. 可复制的 settings.json 配置骨架
配置文件路径按系统区分:
- Windows:
C:\Users\你的用户名\.claude\settings.json - macOS / Linux:
~/.claude/settings.json
如果.claude目录不存在,手动建一个。然后用编辑器打开settings.json,写入下面这份骨架。这是接 DeepSeek 官方端点的版本:
{ "env": { "ANTHROPIC_BASE_URL": "https://api.deepseek.com/anthropic", "ANTHROPIC_AUTH_TOKEN": "sk-你的DeepSeek_API_Key", "ANTHROPIC_MODEL": "deepseek-chat", "ANTHROPIC_DEFAULT_SONNET_MODEL": "deepseek-chat", "ANTHROPIC_DEFAULT_HAIKU_MODEL": "deepseek-chat", "CLAUDE_CODE_SKIP_AUTH": "true", "DISABLE_AUTOUPDATER": "1" }, "hasCompletedOnboarding": true }如果你走 TaoToken 统一通道,只需要把前两行换掉,其余保持不变:
{ "env": { "ANTHROPIC_BASE_URL": "https://taotoken.net/api", "ANTHROPIC_AUTH_TOKEN": "你的TaoToken_API_Key", "ANTHROPIC_MODEL": "deepseek-chat", "ANTHROPIC_DEFAULT_SONNET_MODEL": "deepseek-chat", "ANTHROPIC_DEFAULT_HAIKU_MODEL": "deepseek-chat", "CLAUDE_CODE_SKIP_AUTH": "true", "DISABLE_AUTOUPDATER": "1" }, "hasCompletedOnboarding": true }参数逐个说明,方便你按需调整:
| 环境变量 | 作用 | 建议值 |
|---|---|---|
ANTHROPIC_BASE_URL | 请求发往哪个端点 | DeepSeek 官方或 TaoToken 通道 |
ANTHROPIC_AUTH_TOKEN | 鉴权令牌 | 你的 Key,注意不要带空格 |
ANTHROPIC_MODEL | 默认模型 | deepseek-chat |
ANTHROPIC_DEFAULT_SONNET_MODEL | Sonnet 档位映射 | 同上,按需换deepseek-reasoner |
ANTHROPIC_DEFAULT_HAIKU_MODEL | Haiku 档位映射(轻量任务) | deepseek-chat |
CLAUDE_CODE_SKIP_AUTH | 跳过官方登录校验 | true |
DISABLE_AUTOUPDATER | 禁止自动更新覆盖配置 | 1 |
关于模型名,DeepSeek 常用的两个是deepseek-chat(通用对话)和deepseek-reasoner(推理增强)。日常写代码用deepseek-chat就够,遇到复杂逻辑再切deepseek-reasoner。如果你不确定当前账号支持哪些模型名,可以到 TaoToken 的模型对话页面确认可用列表:https://taotoken.net/models?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 。
提示:
CLAUDE_CODE_SKIP_AUTH设为 true 后,Claude Code 不再走 Anthropic 官方登录,而是完全依赖你配置的第三方端点。这意味着部分 Claude 专属特性可能不可用,但代码读写、命令执行这些核心能力不受影响。
4. 三步验证:保存、重启、发测试请求
配置写完不代表生效,Claude Code 只在启动时读取settings.json,所以必须重启。按下面三步走。
第一步,保存配置。确认 JSON 语法正确,没有多余逗号,Key 前后没有空格。可以用 VS Code 的 JSON 校验看有没有红色波浪线。
第二步,重启 Claude Code。如果你用的是 VS Code 插件面板,直接关掉面板再重新打开,或者按Ctrl+Shift+P执行Developer: Reload Window重载整个窗口。如果你在终端里用 CLI,退出当前claude会话再重新进。
第三步,发一条测试请求。在 VS Code 内置终端里用管道模式快速验证,不用进交互界面:
echo "用一句话说明你是什么模型" | claude -p -期望结果是返回一段正常文本,说明请求已经打到 DeepSeek 端点并成功回包。如果返回内容里提到 DeepSeek 或直接给出回答,就说明链路通了。
想进一步确认当前模型,进交互模式后输入斜杠命令:
claude进入后输入:
/model会列出当前可用的模型档位。如果显示的是你配置的deepseek-chat,说明模型映射也生效了。
再补一个更贴近真实使用的验证:在 VS Code 里打开一个项目文件夹,用 Claude Code 面板让它读一个文件并总结。比如:
读一下 package.json,告诉我这个项目用了哪些依赖如果它能正确读取文件并给出依赖列表,说明文件读写和模型调用都正常。这一步比单纯问“你是什么模型”更能验证实际编程场景。
5. 本篇常见报错排查
配置过程中最容易踩的坑集中在鉴权、模型名和进程读取配置这三类,逐个说。
401 Unauthorized:Key 错了或格式不对。回控制台重新生成一个,复制时注意不要带上首尾空格。如果你用的是 TaoToken 通道,确认 Key 是在 TaoToken 控制台创建的,不要混用 DeepSeek 官方 Key。创建和管理 Key 的入口在 https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= 。
404 或 model not found:模型名拼错了。检查ANTHROPIC_MODEL的值,DeepSeek 端点是deepseek-chat或deepseek-reasoner,不要写成带版本后缀的奇怪名字。如果你从别处抄来的配置里模型名带方括号后缀,先去掉再试。
改了配置但没生效:九成是没重启。Claude Code 不会热加载settings.json,改完必须重开面板或重载窗口。另一个可能是你改错了文件——插件和 CLI 读的是同一个~/.claude/settings.json,但如果你在项目目录里另建了一个.claude/settings.json,项目级配置会覆盖全局配置,检查一下有没有这个文件。
claude 命令找不到:说明 CLI 没进 PATH。要么用npx @anthropic-ai/claude-code临时调用,要么重新全局安装并确认 npm 全局 bin 目录在 PATH 里。Windows 上可以用npm config get prefix看全局路径,把它加进系统环境变量。
请求超时:先确认ANTHROPIC_BASE_URL写对了,DeepSeek 官方端点是https://api.deepseek.com/anthropic,TaoToken 通道是https://taotoken.net/api,注意后者不带尾部斜杠。如果地址没错还是超时,检查本地 DNS,换成公共 DNS 再试。
返回内容乱码或截断:多半是模型名和端点不匹配。比如你把deepseek-reasoner配到了不支持推理的通道上。换回deepseek-chat验证,确认基础链路通了再调模型。
排查时有个通用思路:先用echo "test" | claude -p -做最小请求,排除项目上下文干扰;通了再进交互模式测文件读写。这样能把问题定位在“配置层”还是“使用层”。
6. 长期使用与统一通道建议
跑通之后,如果你只是偶尔用 DeepSeek,当前配置就够了。但如果你打算长期在 VS Code 里用 Claude Code 写项目,会慢慢遇到几个需求:想在 DeepSeek 和其他模型之间切换、想统一管理多个 Key、想控制每个项目的用量。
这时候用 TaoToken 做统一 API 通道会省事很多。你只需要在settings.json里维护一份ANTHROPIC_BASE_URL和 Key,换模型时改ANTHROPIC_MODEL的值就行,不用动鉴权部分。对于需要长期编码、跑 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= 。如果你用的是 Claude Code 的 Anthropic 兼容模式,文档里有对应的端点说明。
最后提醒一句:settings.json里的 Key 是明文,团队协作时不要把这个文件共享出去。如果多人共用一台开发机,建议每人用自己的系统账户,各自维护~/.claude/settings.json。配置这东西,跑通一次之后就是复制粘贴的事,真正花时间的是排查那些“改了没生效”的小问题——记住重启这一步,能省你一半的调试时间。