ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Codex-Desk 安装踩坑实录:用 CC-Switch 把 DeepSeek API Key 改到 TaoToken 的完整流程

Codex-Desk 安装踩坑实录:用 CC-Switch 把 DeepSeek API Key 改到 TaoToken 的完整流程

1. Codex-Desk 安装踩坑与 CC-Switch 配置 DeepSeek API Key 全流程

Codex-Desk 是 OpenAI 推出的桌面端编码助手,能在 Windows 上以独立应用的形式调用大模型完成代码补全、重构和对话式编程。它本身默认走 OpenAI 官方通道,但很多开发者手里只有 DeepSeek 的 API Key,或者希望把请求统一收敛到自己的网关做计费和日志。这时候就需要 CC-Switch 这个工具出场:它是一个本地路由映射器,能把 Codex-Desk 发出的请求转发到你指定的 Base URL 和 Key 上。本文聚焦 Windows 环境下从零安装 Codex-Desk、再用 CC-Switch 把 DeepSeek API Key 改到 TaoToken 网关的完整实操路径,覆盖 PowerShell 环境变量、配置文件定位、可复制的 CC-Switch 配置片段,以及从安装到首次请求成功的逐步验证动作。适合刚接触 Codex-Desk、被 msix 安装和路由映射卡住的新手,也适合想把多个模型供应商统一管理的开发者。

我试过在 Windows 11 上完整走一遍,中间踩了几个坑:安装包双击跳 Microsoft Store 打不开、CC-Switch 路由开了但 Codex 不认、日志里看不到实际调用的模型。下面把每一步拆开讲,命令和配置都能直接复制。

2. 原问题与场景:Codex-Desk 首次安装为什么总卡在 msix 和路由上

先说清楚问题出在哪。Codex-Desk 在 Windows 上的分发形式是 msix 包,官方下载页点下去经常跳转到 Microsoft Store,而 Store 在国内网络环境下加载慢甚至白屏,导致很多人第一步就卡住。绕过办法是拿到 msix 直链后离线安装,用 PowerShell 的Add-AppxPackage命令完成部署。这一步本身不难,难的是路径写错、包名不匹配、权限不足这三个报错。

第二个坑在 CC-Switch。它的作用是本地路由映射:Codex-Desk 以为自己在请求 OpenAI 的接口,实际上请求被 CC-Switch 拦截并转发到你配置的供应商。但 CC-Switch 默认只对 Claude Code 开启路由,对 Codex 的路由开关是关的。如果你只填了 DeepSeek 的 Key 却没打开 Codex 路由,Codex 会直接报连接失败或 401。很多人以为是 Key 错了,其实是路由没开。

第三个坑是模型切换。Codex-Desk 的模型下拉框里不会显示 DeepSeek,这是它内置模型列表的限制,不代表不能用。正确做法是在 CC-Switch 里通过复制配置、改模型名、删模型映射来切换,然后重启 Codex 生效。日志文件在C:\Users\用户名\.cc-switch\logs\cc-switch.log,能看到实际调用的模型名,这是验证是否切换成功的关键。

把这三个坑串起来看,本质是「安装链路」和「请求链路」两条线。安装链路解决 msix 部署,请求链路解决 Base URL + Key + Model ID 三件套的映射。下面按顺序走。

3. TaoToken 前置:Base URL、API Key 与模型 ID 三件套准备

在动 CC-Switch 之前,先把要接入的网关信息准备好。TaoToken 提供统一的 API 入口,兼容 OpenAI 风格的请求格式,Codex-Desk 和 CC-Switch 都能直接对接。你需要准备三样东西:

第一是 Base URL。TaoToken 的 API 地址是https://taotoken.net/api,注意这里不加任何查询参数,CC-Switch 里填的就是这个。如果你在别的地方看到带 UTM 的链接,那是推广链接,配置时不要带。

第二是 API Key。到 TaoToken 控制台的 API Keys 页面创建一个,复制出来形如sk-开头的字符串。这个 Key 只显示一次,建议先存到记事本再填进 CC-Switch。创建入口在控制台的 api-keys 页面。

第三是 Model ID。DeepSeek 系列常用的有deepseek-chat、deepseek-reasoner,如果你走 TaoToken 的模型对话页能看到当前支持的模型列表。CC-Switch 配置里填的模型名必须和网关侧一致,否则会报 model not found。

把这三样记下来:

配置项值填写位置
Base URLhttps://taotoken.net/apiCC-Switch 供应商配置
API Keysk-开头字符串CC-Switch 供应商配置
Model IDdeepseek-chat或deepseek-reasonerCC-Switch 模型映射

注意:Base URL 末尾不要加/v1,CC-Switch 会自动拼接路径。加了会变成/v1/v1/chat/completions,直接 404。

准备好这三件套后,先别急着开 Codex,用一条 curl 命令验证网关通不通。打开 PowerShell:

curl.exe -X POST "https://taotoken.net/api/v1/chat/completions" ` -H "Authorization: Bearer sk-你的Key" ` -H "Content-Type: application/json" ` -d '{\"model\":\"deepseek-chat\",\"messages\":[{\"role\":\"user\",\"content\":\"ping\"}]}'

如果返回里有choices字段和内容,说明网关和 Key 都没问题。如果返回 401,检查 Key 是否复制完整;如果返回 model not found,换一个 Model ID 再试。这一步过了,后面 CC-Switch 配置才有意义。

4. 可复制配置:CC-Switch 的 JSON 片段与 PowerShell 安装命令

先装 Codex-Desk。拿到 msix 包后,在 PowerShell 里执行:

Add-AppxPackage -Path "E:/basicsoft/codex/codex.msix"

路径换成你本地的真实路径。执行完查看安装信息:

Get-AppxPackage *Codex*

能看到OpenAI.Codex_xxx_x64__xxx这样的包名就说明装好了。卸载用:

Remove-AppxPackage OpenAI.Codex_26.602.9276.0_x64__2p2nqsd0c76g0

包名以你实际查询到的为准。

接着装 CC-Switch,从 GitHub releases 下载对应版本安装即可。装完后打开 CC-Switch,选中 ChatGPT 标签,点击添加供应商,选择 DeepSeek 模板。关键配置如下,可以直接对照填:

{ "name": "taotoken-deepseek", "baseUrl": "https://taotoken.net/api", "apiKey": "sk-你的TaoToken密钥", "models": { "default": "deepseek-chat", "mapping": { "gpt-4o": "deepseek-chat", "gpt-4o-mini": "deepseek-chat" } }, "routeCodex": true }

这里routeCodex必须为true,否则 Codex 的请求不会被拦截转发。mapping的作用是把 Codex 内部请求的模型名映射到 DeepSeek 的模型名,因为 Codex 默认会请求gpt-4o这类名字。如果你不想做映射,也可以把mapping留空,但那样 Codex 可能因为找不到模型而报错。

配置保存后,回到 CC-Switch 主界面,确认「本地路由映射」开关是打开的,并且 Codex 那一项显示为已启用。CC-Switch 的配置文件实际落在C:\Users\用户名\.cc-switch\目录下,你可以直接打开这个目录检查config.json是否和界面一致。

提示:如果你同时用 Claude Code,CC-Switch 里 Claude 和 Codex 的路由是分开的,别只开了一个就以为两个都生效。

5. 验证请求与成功结果:从 Codex 首次对话到日志确认

配置完成后重启 Codex-Desk。首次启动会让你选择登录方式,选「使用其他方式登录」,然后填入你的 API Key。注意这里填的 Key 可以是任意非空字符串,因为实际请求会被 CC-Switch 拦截并替换成配置里的 TaoToken Key。但为了保险,建议直接填 TaoToken 的 Key。

进入 Codex 主页后,模型选择处不会显示 DeepSeek,这是正常的。直接开一个对话,输入「写一个 Python 快排」,观察返回。如果返回了代码,说明请求链路通了。

接下来验证实际调用的模型。打开日志文件:

Get-Content "C:\Users\用户名\.cc-switch\logs\cc-switch.log" -Tail 50

日志里会显示类似model=deepseek-chat的记录。如果显示的是gpt-4o,说明模型映射没生效,回到 CC-Switch 检查mapping配置。

切换模型的方法:在 CC-Switch 里复制一条现有配置,改个供应商名称,把模型名改成deepseek-reasoner,删除模型映射(或者把映射目标也改成deepseek-reasoner),保存后启用。然后重启 Codex,再对话几次,看日志里模型名是否变了。

成功的结果应该是:Codex 正常返回代码,日志里模型名和你配置的一致,没有 401 或连接超时。如果日志里出现local proxy failed,说明 CC-Switch 的路由进程没起来,检查 CC-Switch 是否在后台运行。

6. 本篇常见错排查:401、local proxy failed 与 reading choices 报错

第一个高频报错是 401 Unauthorized。原因通常是 Key 填错或 Base URL 带了多余路径。检查 CC-Switch 里的apiKey是否完整,baseUrl是否为https://taotoken.net/api不带/v1。另外确认 TaoToken 控制台里这个 Key 没有过期或被禁用。

第二个是local proxy failed。这是 CC-Switch 的本地代理没启动或端口被占用。解决办法:完全退出 CC-Switch 再重新打开,确认任务栏有它的图标。如果还不行,检查是否有其他程序占用了 CC-Switch 的默认端口,可以在设置里改端口。

第三个是reading choices相关报错,通常表现为cannot read property 'choices' of undefined。这说明返回的 JSON 结构不对,多半是 Base URL 拼错导致请求打到了错误端点,返回了 HTML 而不是 JSON。用第 3 节的 curl 命令先验证网关,确认返回里有choices字段。

第四个是 OAuth 相关报错。Codex-Desk 首次登录如果选了 ChatGPT 登录方式,会走 OAuth 流程,但你没有 OpenAI 账号就会卡住。解决办法是选「使用其他方式登录」,绕过 OAuth。

第五个是模型不显示。前面说过,Codex 的模型下拉框不显示 DeepSeek 是正常的,不影响使用。只要 CC-Switch 的映射配对了,请求就会走 DeepSeek。

排查顺序建议:先 curl 验证网关,再检查 CC-Switch 配置,再看日志,最后重启 Codex。这样能快速定位是网关问题、配置问题还是客户端问题。

如果你在配置过程中需要查看当前支持的模型列表,可以到模型对话页面确认;需要管理 Key 就到 API Keys 页面;接入文档里有更详细的参数说明。长期做编码和 Agent 任务的话,Coding Plan 会更划算。

整套流程走下来,核心就是三件套对齐:Base URL 填https://taotoken.net/api,Key 填 TaoToken 的,Model ID 填deepseek-chat或deepseek-reasoner。CC-Switch 的routeCodex开关和模型映射是两个最容易漏的点,日志文件是验证的最终依据。装完之后如果 Codex 更新导致配置失效,重新检查一遍 CC-Switch 的路由开关即可。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进