1. Codex 桌面版接入 DeepSeek 的完整链路拆解
Codex 桌面版本身不是模型,它更像一个本地客户端外壳,负责把你在输入框里敲的内容发出去、把返回结果渲染出来。真正干活的是背后那个 API 服务。所以当你希望用 DeepSeek 的 API Key 来驱动 Codex 时,中间缺了一层「翻译」——Codex 认的是 OpenAI 风格的接口格式,而 DeepSeek 虽然兼容 OpenAI 协议,但请求地址、模型名、鉴权头这些细节需要有人帮你对齐。
cc-switch 就是干这个的。它把不同供应商的配置抽象成一份份可切换的 profile,你可以在 DeepSeek、GPT、Claude 之间来回切,而 Codex 那边始终只认一个本地地址。这套方案适合谁?适合手头有多个模型 API Key、又不想每次改配置文件重启客户端的开发者;也适合想用 DeepSeek 低成本跑日常问答和代码补全、但不想被单一平台绑死的人。
我实测下来,整条链路是:Codex 桌面版 → cc-switch 本地路由 → DeepSeek API。只要 cc-switch 的配置文件写对,Codex 那边几乎不用动。下面从环境准备开始,一步步把配置骨架和验证方法交给你。
2. 前置准备:Node.js、Codex 与 cc-switch 的安装定位
在动配置文件之前,先把三个东西装好。Node.js 是很多本地工具的运行底座,cc-switch 的某些版本也依赖它来做进程管理。去 Node.js 官网下载 LTS 版本,Windows 选 .msi 一路下一步即可,装完在终端敲node -v能看到版本号就说明通了。
Codex 桌面版直接在系统自带的应用商店搜「Codex」安装,或者从官方渠道拿安装包。装完后先别急着登录,因为我们要让它走本地路由,而不是直连官方。
cc-switch 是配置管理的核心。它的作用是维护多套供应商配置,并暴露一个本地 HTTP 端点给 Codex 调用。安装完成后首次打开,界面会生成一个本地密钥,这个密钥是 cc-switch 自己用来鉴权的,不是 DeepSeek 的 Key,务必先记下来。后面 Codex 填的 API Key 填的是这个本地密钥,而不是 DeepSeek 的原始 Key——这一点是新手最容易搞混的地方。
注意:cc-switch 的本地密钥和 DeepSeek 的 API Key 是两回事。前者是「进门钥匙」,后者是「上游付款凭证」。Codex 只拿前者,cc-switch 拿后者去请求 DeepSeek。
3. cc-switch 配置文件骨架与 settings.json 示例
cc-switch 的配置通常落在用户目录下的配置文件夹里,Windows 一般在%APPDATA%\cc-switch\或安装目录的config子目录,macOS 在~/Library/Application Support/cc-switch/。核心是一个 JSON 文件,结构大致如下。你可以先复制这个骨架,把占位符替换成自己的值。
{ "version": "1.0", "activeProvider": "deepseek", "providers": [ { "name": "deepseek", "type": "openai", "baseUrl": "https://api.deepseek.com/v1", "apiKey": "sk-你的DeepSeek密钥", "models": [ { "id": "deepseek-chat", "name": "DeepSeek Chat", "contextWindow": 64000 }, { "id": "deepseek-coder", "name": "DeepSeek Coder", "contextWindow": 64000 } ], "requestInterval": 200, "maxRetries": 3 } ], "localServer": { "port": 8787, "authKey": "cc-switch生成的本地密钥" } }几个关键字段说明。baseUrl填 DeepSeek 的兼容端点,注意带/v1,因为 OpenAI 风格客户端默认会拼/chat/completions。type填openai,表示走 OpenAI 兼容协议。apiKey这里填 DeepSeek 开放平台创建的 Key,不是 cc-switch 的本地密钥。localServer.port是 cc-switch 监听的端口,Codex 要连的就是这个端口。authKey才是 Codex 那边要填的本地密钥。
如果你用的是 cc-switch 的图形界面,它其实会帮你生成这份 JSON,你只需要在界面里点「添加供应商」、选「自定义配置」、填名称、填 DeepSeek Key、填请求地址、打开本地路由映射、获取模型列表、选模型、设上下文窗口。界面操作完,底层落盘的就是上面这份结构。理解这份骨架的好处是:出问题时你能直接打开文件核对,而不是在界面里瞎点。
4. 在 Codex 中指向本地路由并验证请求
配置写好后,重启 cc-switch 让本地服务生效。然后在 Codex 桌面版的设置里找到 API 配置项,把请求地址改成http://localhost:8787/v1,API Key 填 cc-switch 的本地密钥。保存后重启 Codex。
验证是否打通,最直接的办法是在 Codex 里发一句「用一句话解释什么是递归」。如果返回正常,说明链路通了。如果报 401,多半是本地密钥填错;如果报 404,多半是 baseUrl 少了/v1或端口不对;如果报 402 或余额不足,那是 DeepSeek 账户的问题,跟 cc-switch 无关。
你也可以绕过 Codex,直接用 curl 测 cc-switch 的本地端点,这样能快速定位是 cc-switch 的问题还是 Codex 的问题:
curl -X POST http://localhost:8787/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer cc-switch本地密钥" \ -d '{ "model": "deepseek-chat", "messages": [{"role": "user", "content": "ping"}], "max_tokens": 20 }'如果这条命令返回了 JSON 格式的回复,说明 cc-switch 到 DeepSeek 这一段是通的,问题只可能在 Codex 的配置上。反过来,如果这条命令就报错,那先修 cc-switch 的配置,别去动 Codex。
5. 本篇常见错误排查清单
错误一:把 DeepSeek Key 填进了 Codex。这是最高频的坑。Codex 只认 cc-switch 的本地密钥,DeepSeek Key 只出现在 cc-switch 的供应商配置里。填反了会一直 401。
错误二:baseUrl 写成https://api.deepseek.com不带/v1。有些客户端会自动补,有些不会。cc-switch 的 OpenAI 类型通常需要你显式带上/v1,否则请求路径拼出来是/chat/completions而不是/v1/chat/completions,DeepSeek 会返回 404。
错误三:端口冲突。cc-switch 默认端口如果被占用,本地服务起不来。去 cc-switch 的网关监控页看左下角实际端口,把 Codex 里的地址改成对应端口。改完记得两边都重启。
错误四:模型名写错。DeepSeek 的模型 id 是deepseek-chat和deepseek-coder,不是deepseek-v4-pro之类的展示名。cc-switch 界面里下拉选出来的 id 才是真正发出去的,展示名只是给你看的。如果你手写配置,务必用官方文档里的 id。
错误五:上下文窗口设得过大导致请求被拒。有些模型实际支持的上下文没有你设的那么长,设成一百万但模型只支持六万四,长对话会直接报错。按模型实际能力填,DeepSeek 当前主流模型填 64000 比较稳妥。
错误六:改了配置没重启。cc-switch 和 Codex 都需要重启才能读到新配置。改完 JSON 或界面配置后,先退 cc-switch 再重开,然后重启 Codex。
6. 多模型切换与长期使用的配置建议
cc-switch 的价值在于「切换」而不是「一次性配置」。你可以在 providers 数组里放多个供应商,比如一个 DeepSeek、一个其他兼容 OpenAI 协议的服务,通过改activeProvider字段或界面上的切换按钮来换。Codex 那边完全无感,因为它始终连的是localhost:8787。
如果你打算长期用 Codex 跑编码任务,建议把requestInterval设成 200 到 500 毫秒,避免触发上游的频率限制;maxRetries设 3 次,网络抖动时能自动重试。另外,cc-switch 的本地密钥不要泄露,它虽然只在本机生效,但如果你的机器有多用户,别人拿到这个密钥就能通过你的 cc-switch 消耗你的 DeepSeek 余额。
需要管理多个 Key 或查看用量时,可以到 TaoToken 的 API Keys 页面集中管理接入凭证,配合接入文档核对请求格式;想先验证模型对话效果,用模型对话页面快速试一句;如果是长期编码或 Agent 场景,Coding Plan 更适合做额度规划。把本地路由和上游凭证分开管理,是这套方案最舒服的地方——换模型不用动 Codex,换客户端也不用动 cc-switch。