1. 为什么要在 VS Code 里折腾 Claude Code + deepseek
Claude Code 是 Anthropic 推出的命令行式编程助手,能在终端里直接读写项目文件、跑命令、改代码,很多人拿它当“会动手的结对程序员”。但它默认走 Anthropic 官方通道,对国内零基础用户来说,注册、付费、网络这几关就够劝退一轮。deepseek 的大模型在代码理解和长上下文上表现不错,价格也友好,于是“用 deepseek 驱动 Claude Code”成了很自然的需求。
问题在于:Claude Code 只认 Anthropic 那套环境变量协议(ANTHROPIC_BASE_URL、ANTHROPIC_AUTH_TOKEN、ANTHROPIC_MODEL),而 deepseek 的接口地址和模型名跟它并不一样。你要么手动改环境变量,要么用一层统一 Key/API 通道把两边对接起来。这篇就是写给完全没配过的人:在 VS Code 里装好 Claude Code 扩展,用一份可复制的 settings.json 骨架把 deepseek 接进去,再教你用 CC Switch 在多个模型间切换,最后给出验证模型是否真的生效的具体动作。全程不需要你懂 Node、不需要命令行基础,照着填就行。
我试过直接改系统环境变量,结果 VS Code 重启后没生效,排查半天才发现扩展读的是它自己的配置项。所以下面这份配置是踩过坑之后收敛出来的版本,你直接抄。
2. 前置准备:TaoToken 统一 Key 与通道
在动手改配置之前,先把“钥匙”和“通道”准备好。这里有两种思路,你可以按自己的情况选:
第一种是直接用 deepseek 官方 API。去 deepseek 开放平台注册、充值、创建一个 API Key,拿到形如sk-xxxx的字符串。它的 Anthropic 兼容地址是https://api.deepseek.com/anthropic,模型名用deepseek-chat或更新的版本。这条路最直接,缺点是 Key 分散在各家平台,换模型要重新找 Key。
第二种是用 TaoToken 做统一 Key/API 通道。它的价值在于:你只维护一个 Key,背后可以挂不同厂商的模型,Claude Code 这边只认一个ANTHROPIC_BASE_URL和一个ANTHROPIC_AUTH_TOKEN,切换模型时改模型名就行,不用来回换 Key。对经常在 deepseek、Claude 等模型之间横跳的人来说,省事很多。
具体操作:打开 TaoToken 官网(https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=),注册后进入控制台,在 API Keys 页面创建一个 Key 并复制保存。这个 Key 就是你后面填进ANTHROPIC_AUTH_TOKEN的值。通道地址用https://taotoken.net/api,注意这个地址不带任何查询参数,直接填。
提示:Key 只在创建时完整显示一次,复制后先存到记事本或密码管理器,别等关了页面再找。
如果你只是想先跑通、不折腾多模型,用 deepseek 官方 Key 也完全可以,下面的配置骨架两种都兼容,区别只在ANTHROPIC_BASE_URL和ANTHROPIC_AUTH_TOKEN填谁。
3. 可复制配置:settings.json 骨架与 CC Switch 切换
3.1 安装扩展并关掉登录提示
先在 VS Code 扩展市场搜索 “Claude Code for VS Code”,安装。装完它会弹一个登录引导,不用管,直接关掉,然后重启 VS Code。重启是为了让扩展重新读取配置。
接着按Ctrl+Shift+P打开命令面板,输入Preferences: Open Settings (UI),在搜索框里输入claude。你会看到两个关键项:
Claude Code: Disable Login Prompt—— 勾选它,避免每次启动都弹登录。Claude Code: Environment Variables—— 点“在 settings.json 中编辑”,进入 JSON 编辑界面。
3.2 填一份能跑的 settings.json
把下面这份骨架贴进你的 settings.json。注意:如果你文件里已经有其他配置(比如字体、主题),不要整个覆盖,只把claudeCode相关的键合并进去。
{ "claudeCode.disableLoginPrompt": true, "claudeCode.environmentVariables": [ { "name": "ANTHROPIC_BASE_URL", "value": "https://taotoken.net/api" }, { "name": "ANTHROPIC_AUTH_TOKEN", "value": "sk-你的TaoTokenKey" }, { "name": "ANTHROPIC_MODEL", "value": "deepseek-chat" }, { "name": "ANTHROPIC_DEFAULT_OPUS_MODEL", "value": "deepseek-chat" }, { "name": "ANTHROPIC_DEFAULT_SONNET_MODEL", "value": "deepseek-chat" }, { "name": "CLAUDE_CODE_SUBAGENT_MODEL", "value": "deepseek-chat" } ], "claudeCode.preferredLocation": "panel" }几个参数的含义,用表格对照一下更清楚:
| 参数名 | 作用 | 填什么 |
|---|---|---|
| ANTHROPIC_BASE_URL | 请求发往哪个通道 | TaoToken 用https://taotoken.net/api;deepseek 官方用https://api.deepseek.com/anthropic |
| ANTHROPIC_AUTH_TOKEN | 身份凭证 | 你的 TaoToken Key 或 deepseek Key |
| ANTHROPIC_MODEL | 主模型 | deepseek 填deepseek-chat |
| ANTHROPIC_DEFAULT_OPUS_MODEL | Opus 档位映射 | 同上,指向 deepseek 模型 |
| ANTHROPIC_DEFAULT_SONNET_MODEL | Sonnet 档位映射 | 同上 |
| CLAUDE_CODE_SUBAGENT_MODEL | 子代理模型 | 同上 |
为什么要写这么多“DEFAULT_xxx_MODEL”?因为 Claude Code 内部会按 Opus/Sonnet 档位去请求,如果你只填ANTHROPIC_MODEL,某些子任务可能仍去请求官方模型名而报错。把档位全部映射到 deepseek,能避免“主对话正常、子任务 404”的怪问题。
3.3 用 CC Switch 切换模型
如果你装了 CC Switch(一个管理 Claude Code 配置的小工具),切换模型会更省事。它的逻辑是维护多份配置档案,你点一下就把对应的环境变量写进 settings.json。操作路径大致是:打开 CC Switch,新建一个配置,名称随便写(比如 “deepseek”),把上面的环境变量逐条填进去,保存后点“应用”。之后想换回别的模型,再点另一份配置即可。
注意:CC Switch 写入后,建议重启一次 VS Code 窗口(
Ctrl+Shift+P→Developer: Reload Window),让扩展重新加载环境变量,否则可能读到旧值。
4. 验证请求:确认 deepseek 真的在干活
配置写完不等于生效,必须验证。最直接的方式是打开 Claude Code 面板,发一条能暴露模型身份的问题。
在 VS Code 里按Ctrl+Shift+P,输入Claude Code: Focus on Claude Code View,把面板调出来。然后在输入框里敲:
你是什么模型?请只回答模型名称和提供方。如果配置正确,它会返回类似“我是 deepseek 提供的模型”这样的回答,而不是 Anthropic 的 Claude。这一步能确认请求确实打到了 deepseek 通道。
再做一个更硬的验证:让它读文件。在项目里新建一个test.py,写几行简单代码,然后在 Claude Code 里输入:
读取当前目录的 test.py,解释它做了什么,并指出一个可以改进的点。如果它能正确读出文件内容并给出分析,说明文件读写权限和模型调用都通了。这一步比单纯问“你是什么模型”更有说服力,因为它走的是完整的工具调用链路。
实测下来,第一次请求可能稍慢,因为要建立连接和加载上下文,后面就正常了。如果超过 30 秒没反应,先看第 5 节的排查。
5. 本篇常见错排查
报错一:401 Unauthorized。九成是 Key 填错或过期。检查ANTHROPIC_AUTH_TOKEN的值有没有多余空格、有没有把sk-前缀漏掉。用 TaoToken 的话,去控制台确认 Key 状态是否正常、额度是否充足。
报错二:404 model not found。模型名写错了。deepseek 官方通道用deepseek-chat,别写成deepseek-v4-pro之类不存在的名字。如果你用的是 TaoToken 通道,模型名要以它文档里列出的为准,填错就会 404。
报错三:改了配置没反应。扩展缓存了旧的环境变量。解决方法是Ctrl+Shift+P→Developer: Reload Window,或者干脆关掉 VS Code 再开。只保存 settings.json 不重载,很多时候不生效。
报错四:登录弹窗反复出现。确认claudeCode.disableLoginPrompt是true,并且它和environmentVariables在同一个 JSON 对象里,别写成了两个分开的对象。
报错五:子任务报错但主对话正常。这就是前面说的档位映射没配全。把ANTHROPIC_DEFAULT_OPUS_MODEL、ANTHROPIC_DEFAULT_SONNET_MODEL、CLAUDE_CODE_SUBAGENT_MODEL都补上,指向同一个 deepseek 模型。
报错六:网络超时。检查ANTHROPIC_BASE_URL是否写成了带路径的完整地址。TaoToken 通道就是https://taotoken.net/api,不要自己加/v1之类的后缀,加了反而可能 404。
6. 把 Key 和文档收好,下次直接复用
配置跑通之后,建议做两件事。第一,把这份 settings.json 的claudeCode部分单独存一份到你的笔记里,换电脑或重装时直接粘贴,不用重新摸索。第二,去 TaoToken 控制台把 API Keys 页面收藏一下,以后要新建或吊销 Key 都在那里操作;接入文档页面也存个书签,模型名、通道地址有变动时以文档为准。
如果你后面想长期用 Claude Code 做项目开发、跑 Agent 任务,可以了解一下 Coding Plan,它更适合高频、长时间的编码场景,额度模型和按次调用不太一样。想先单独验证某个模型对话效果,用模型对话页面直接试就行,不用每次都开 VS Code。Key 的管理和新建统一在 API Keys 页面,接入细节看接入文档。
把这几步走完,你手里就有了一套可复用的配置:一个统一 Key、一份 settings.json 骨架、一个验证动作。下次换模型,只改模型名那一行,其余不动。