1. Windows 上跑 Claude Code 桌面端,为什么还要折腾 cc-switch
Claude Code 桌面端在 Windows 上的体验其实已经不错,但很多人卡在同一个地方:官方通道的额度和计费方式,对只想拿它写写脚本、改改配置的普通开发者来说不太友好。于是就有了「用 DeepSeek 这类模型来驱动 Claude Code 界面」的需求——界面还是那个界面,底层换成更划算的模型。
问题在于,Claude Code 桌面端默认只认 Anthropic 的接口格式,而 DeepSeek 走的是自己的 API。两者协议不一样,直接改配置是接不上的。这时候就需要一个中间层,把桌面端发出的 Anthropic 格式请求,翻译成 DeepSeek 能听懂的格式,再把结果翻译回来。cc-switch 就是干这个的:一个跑在本地的小代理,负责协议转换和模型路由。
但光有 cc-switch 还不够。如果你同时想接 DeepSeek、又想留一条备用通道,或者以后想换别的模型,每个提供商都要单独配 Key、单独记 Base URL,管理起来很乱。所以我更推荐用 TaoToken 做统一入口:一个 Key 管所有模型,cc-switch 里只填一个地址就行。这篇就按这个思路,把 Windows 桌面端 Claude Code + cc-switch + TaoToken 接入 DeepSeek 的完整流程走一遍,包括可复制的配置骨架和连通性验证动作。
适合谁看:已经在 Windows 上装了 Claude Code 桌面端、想换成 DeepSeek 驱动、又不想每次手动改一堆配置的人。全程不需要额外装什么重型依赖,Node.js 和 Git 备好就行。
2. 前置准备:Node.js、TaoToken Key 与 cc-switch 安装
2.1 确认 Node.js 和 Git
Claude Code 桌面端和 cc-switch 都依赖 Node 运行时。打开 PowerShell,先验证:
node --version npm --version版本低于 18 的话,去 nodejs.org 下 LTS 版(20.x 或 22.x)装上。Git 可选,但后面拉配置方便,一条命令搞定:
winget install --id Git.Git -e --source winget2.2 拿一个 TaoToken 统一 Key
TaoToken 的作用是把多个模型的接入收敛成一个 Key。你不需要分别去 DeepSeek、Anthropic 各注册一遍,只要在 TaoToken 控制台创建一个 Key,后面 cc-switch 里填这一个就行。
操作路径:打开控制台,进 API Keys 页面,新建一个 Key,复制保存。这个 Key 就是后面配置里的sk-xxx。如果你还没账号,先注册再建 Key,整个过程两三分钟。
注意:Key 只在创建时完整显示一次,记得先存到密码管理器或本地文本里,别关掉页面才想起来没复制。
2.3 安装 cc-switch
cc-switch 是 Rust 写的本地代理工具,Windows 上推荐用 MSI 安装包,支持自动更新。去它的 GitHub Releases 页面下载对应版本,装到默认路径即可。装完后系统托盘会出现 cc-switch 图标,说明主程序已经在跑了。
它的数据目录默认在C:\Users\你的用户名\.cc-switch\,里面有几个关键文件:
| 文件/目录 | 作用 |
|---|---|
cc-switch.db | SQLite 数据库,存提供商和路由配置 |
logs/cc-switch.log | 运行日志,排障主要看这个 |
config.json | 全局设置,端口、自启等 |
工作原理一句话说清:Claude Code 桌面端把请求发到本地代理端口,cc-switch 拦截后按模型映射表重写目标模型,再转发到 TaoToken 的接口,返回时原路送回。整个过程对桌面端透明,它以为自己一直在跟 Anthropic 说话。
3. 可复制配置:cc-switch 接入 TaoToken 与 DeepSeek
3.1 在 cc-switch 里添加提供商
托盘图标双击打开 cc-switch 主界面,点「添加提供商」,类型选自定义(或 Anthropic 兼容),填这几项:
| 参数 | 值 |
|---|---|
| 名称 | TaoToken |
| API Base URL | https://taotoken.net/api |
| API Key | 你刚才建的sk-xxx |
| API 格式 | anthropic |
| 桌面端模式 | proxy(本地代理) |
这里 Base URL 用 TaoToken 的 API 地址,不要带任何多余路径。cc-switch 会自动在这个地址后面拼接对应模型的端点。
3.2 配置模型路由映射
cc-switch 的核心是模型映射表:桌面端请求的是 Claude 的模型名,cc-switch 把它改写成 DeepSeek 的模型名再发出去。在「模型路由」页添加三条映射:
{ "claude-haiku-4-5": "deepseek-v4-flash", "claude-sonnet-4-6": "deepseek-v4-pro", "claude-opus-4-8": "deepseek-v4-pro" }含义是:桌面端日常快速任务走 Haiku,映射到 DeepSeek 的 flash 模型;复杂任务走 Sonnet 或 Opus,映射到 pro 模型。这样你在桌面端切换模型时,实际调用的 DeepSeek 模型也跟着变,不用手动改配置。
3.3 配置 Claude Code 桌面端的 3p 模式
桌面端要主动走本地代理,得开 3p 模式。找到配置文件:
C:\Users\你的用户名\AppData\Local\Claude\claude_desktop_config.json写入:
{ "deploymentMode": "3p" }设为3p后,桌面端不再直连 Anthropic,而是把请求发给 cc-switch 的本地代理。改完保存,重启桌面端生效。
3.4 settings.json 片段
如果你用的是 Claude Code CLI 形态,配置在settings.json里,加一段环境变量指向本地代理:
{ "env": { "ANTHROPIC_BASE_URL": "http://127.0.0.1:你的cc-switch端口", "ANTHROPIC_API_KEY": "sk-你的TaoToken-Key" } }端口号在 cc-switch 设置页能看到,默认一般是 8787 之类。桌面端和 CLI 两种形态的配置不要混用,按你实际装的那个来。
4. 验证请求:确认 DeepSeek 真的在响应
配置写完不算完,得验证请求确实走到了 DeepSeek。分三步。
第一步,确认 cc-switch 在跑。托盘图标右键看状态,或者直接看日志文件尾部:
Get-Content "$env:USERPROFILE\.cc-switch\logs\cc-switch.log" -Tail 20第二步,在 Claude Code 桌面端发一条最简单的消息,比如「用一句话解释什么是递归」。发送后立刻回到日志看有没有新的转发记录,正常会看到类似forwarding request to https://taotoken.net/api的行,以及目标模型被改写成deepseek-v4-pro或flash。
第三步,用 curl 直接打 TaoToken 接口,排除桌面端本身的干扰:
curl https://taotoken.net/api/v1/messages \ -H "x-api-key: sk-你的TaoToken-Key" \ -H "anthropic-version: 2023-06-01" \ -H "content-type: application/json" \ -d '{ "model": "deepseek-v4-pro", "max_tokens": 64, "messages": [{"role": "user", "content": "ping"}] }'返回里有正常的content字段和文本,说明 Key 和通道都没问题。如果这一步通了但桌面端不通,问题就在 cc-switch 或桌面端配置,不在 Key。
成功的结果长这样:桌面端能正常出字,日志里有转发记录,curl 能拿到响应。三者都满足,链路就通了。
5. 本篇常见报错排查
cc-switch 代理起不来。最常见是端口被占。看日志里有没有address already in use,有的话去设置页换个端口,或者用netstat -ano | findstr 端口号找到占用进程处理掉。
DeepSeek 返回 401 或 403。九成是 Key 问题。检查 cc-switch 里填的 Key 有没有多余空格,是不是复制时截断了。TaoToken 控制台里确认这个 Key 还在启用状态、额度没耗尽。
桌面端连不上 cc-switch。先确认claude_desktop_config.json里deploymentMode确实是3p,拼写别错。再看 cc-switch 是不是真的在监听,日志里有没有收到请求。如果桌面端完全没发请求过来,多半是配置文件路径不对——注意是AppData\Local\Claude\不是AppData\Roaming\。
模型映射不生效,还是报 Claude 模型不存在。检查映射表里的模型名拼写,claude-sonnet-4-6这类名字要和桌面端实际请求的一致。可以在日志里看桌面端请求的原始模型名,照着填。
想切回官方通道。在 cc-switch 界面把当前提供商切回 Claude Official,或者把deploymentMode改回默认值,重启桌面端即可。不用卸载重装。
6. 把 Key 和通道固定下来,后面就省心了
跑通之后你会发现,真正麻烦的从来不是装软件,而是 Key 和地址散落在各个配置文件里,换一次模型就要翻一遍。用 TaoToken 做统一入口的好处就在这:cc-switch 里只维护一个 Base URL 和一个 Key,模型路由在映射表里改,桌面端和 CLI 共用同一套通道。
如果你后面要长期用 Claude Code 写代码、跑 Agent 任务,建议直接上 Coding Plan,额度和模型调度都帮你规划好了,不用每次手动切。想先验证模型效果,可以去模型对话页面直接试,不用装任何东西。Key 管理和接入文档都在控制台和文档页,遇到报错先翻日志,再对照文档里的字段说明,基本能自己解决。
我自己的习惯是:配置改完先跑一遍 curl,通了再动桌面端。这样出问题时能立刻分清是通道问题还是客户端问题,省掉一半排查时间。