
如果你手里同时用着 Codex、Claude Code 这类 AI 编程 CLI一定会有个共同感受官方工具本身是好用可它默认绑定的模型供应商就一个。想在 Codex 里接 DeepSeek要么去翻 config.toml 手改配置要么找个第三方脚本自己维护切换逻辑——麻烦不说还容易把配置改崩。CC-Switch 就是冲着这个痛点来的一个开源的 API 配置切换器加本地代理工具把 DeepSeek、Kimi、通义这些兼容 OpenAI 协议的供应商统一收进一个图形界面里点一下就能让 Codex 用上 DeepSeek。这篇文章基于 2026 年最新的 CC-Switch 版本把 Windows、macOS、Linux 三大平台的安装、Codex 接入、以及我在实际环境里踩过的坑一次讲清楚。适合谁看凡是受够了手动改配置文件、想在 Codex 里低成本切换不同模型供应商的人都建议从头到尾过一遍。1. 先把底层搭好Codex 与 DeepSeek 的准备1.1 Codex CLI 安装三大平台通用做法要讲 CC-Switch 和 DeepSeek 的联动前提是机器上先有一个能跑的 Codex CLI。Codex 官方推荐通过 npm 全局安装所以 Node.js 环境是绕不开的。如果你之前装过 Node 就直接跳过这步没装的话先去 Node 官网下载 LTS 版本Windows 端一路下一步即可macOS 端我建议用 Homebrew 装命令是brew install node。Node.js 就绪之后Codex 的安装就很简单了# Windows 在管理员 PowerShell 里执行 npm install -g openai/codex # macOS / Linux 同样可以用 npm npm install -g openai/codex装完验证一下版本终端输入codex --version能正常打印版本号就说明 CLI 本体没问题。这里有个小细节如果你 Windows 上装的是桌面版 Codex后续配置文件的路径会和 CLI 版不一样本文统一以 CLI 版为基准因为 CC-Switch 的接入思路主要是针对命令行工具设计的。另外建议给 npm 配一个国内镜像源否则下载 Codex 包的那几分钟你会怀疑人生镜像源配置属于常规操作网上随手一搜就有。1.2 注册 DeepSeek 并拿到 API KeyDeepSeek 这一侧的准备比较简单去它的开放平台注册账号进入控制台之后找到“API Keys”菜单创建一个新的 Key 并复制保存。这个 Key 只会完整显示这一次关掉页面就找不回来了我建议你直接粘贴进一个专门的笔记文件里后面配置环境变量要用。顺手科普一下 DeepSeek 的模型命名规则对话模型一般叫deepseek-chat推理增强模型叫deepseek-reasoner。这两个名字后面配置时要用到记不住也没关系CC-Switch 的预设里通常已经把官方常见模型列好了。至于价格DeepSeek 按 Token 计费具体数字以官方计费页面为准整体上比 OpenAI 便宜不少这也是很多人愿意在 Codex 里接它的核心原因。你可以先用一条 curl 快速确认 Key 是否有效curl https://api.deepseek.com/v1/chat/completions \ -H Content-Type: application/json \ -H Authorization: Bearer sk-你的Key \ -d {model:deepseek-chat,messages:[{role:user,content:ping}],max_tokens:5}只要能返回一段 JSON就说明 Key 有效、模型名正确。这一条测试很关键它能帮你把“DeepSeek 账号问题”和“CC-Switch 配置问题”区分开后面排查故障时能少走很多弯路。2. CC-Switch 是什么为什么接 DeepSeek 绕不开它2.1 它到底解决什么问题如果你只是想让 Codex 用上 DeepSeek最原始的办法是直接编辑 Codex 的配置文件把模型供应商指向 DeepSeek 的官方 API 地址。听起来不复杂但你一旦有多个供应商需要切换问题就来了今天想用 DeepSeek明天想用 Kimi后天又想切回 OpenAI每次都要打开一个 TOML 文件改好几个字段手一抖就改错。更要命的是 Codex 的配置文件里各个字段的命名在不同版本还有差异网上教程互相打架抄都不知道抄哪个。CC-Switch 干的事情很直白把这些供应商的配置全部收进一个图形界面里你在界面上提前添加好 DeepSeek、OpenAI、Kimi 等供应商之后想切哪个就点一下它自动帮你改写 Codex 的配置文件。这个逻辑和“密码管理器生成高强度密码”有点像你不需要记具体规则只需要在合适的工具里按下按钮。但 CC-Switch 的价值不止于“配置切换器”它还内置了一个本地代理。这才是它真正受欢迎的原因也是理解后续所有报错的关键。2.2 工作原理拆解代理端口与 OpenAI 兼容层Codex 作为 OpenAI 官方的 CLI 工具底层调用的是 OpenAI 的 Responses API也就是/v1/responses这个端点。而 DeepSeek 对外提供的是 OpenAI 兼容接口走的是/v1/chat/completions这个端点。两者都叫“OpenAI 兼容”但端点和请求结构并不完全一样直接拿 Codex 去请求 DeepSeek 官方地址经常会出现请求格式对不上的情况。CC-Switch 的做法是在你本机启动一个代理服务默认监听127.0.0.1:3456或类似的本地端口。Codex 把请求发到本地代理代理再把请求转换成 DeepSeek 能识别的格式转发出去并处理响应。对 Codex 来说它以为自己连的是一个 OpenAI 兼容的远端实际上这个“远端”就在你自己电脑上。这类比可以理解成翻译官Codex 说中文DeepSeek 说英文CC-Switch 就是那个同声传译。想明白这层再回头看标题里那个高频报错local proxy failed while handling codex endpoint /responses本质就是本地代理在处理 Codex 发来的/responses请求时失败了。导致失败的原因有好多条我在第 4 章会展开细聊这里先记住一句话只要看到这个报错优先怀疑本地代理没正确工作而不是 DeepSeek 官方挂了。2.3 CC-Switch 下载与安装Windows、macOS、Linux 全流程CC-Switch 的官方分发渠道是 GitHub Releases按平台下的安装包不一样我把主流的三种情况整理成了对照表平台推荐安装方式注意事项Windows 10/11下载.zip包解压双击.exe运行偶尔会被 SmartScreen 拦截点“仍要运行”即可macOSIntel/Apple Silicon下载.dmg或.app拖入应用程序目录官方未签名时需要在系统设置里手动放行LinuxUbuntu/Debian/CentOS优先选.deb或.AppImage老系统选静态编译的二进制AppImage 需要 FUSE 支持CentOS 7.9 注意 glibc 版本源码编译任意平台git clone官方仓库后执行构建命令环境依赖较复杂适合有 Rust/Node 经验的用户先讲 Windows下载 zip 后解压到一个不含中文和空格的路径双击 exe 就能打开。如果系统弹窗提示“已阻止此应用”是因为安装包没做数字签名点“更多信息”再选“仍要运行”属于常见情况不是病毒。macOS 用户常遇到“无法打开因为来自身份不明的开发者”的提示。解决路径是右键点击应用图标选择“打开”然后在弹窗里点“仍要打开”或者去“系统设置-隐私与安全性-安全性”里找到被拦截的记录手动放行。Apple Silicon 的机器记得确认下载的是 arm64 版本否则可能打不开。Linux 这边稍微讲究一点。Ubuntu/Debian 直接下.deb包sudo apt install ./xxx.deb装完就能用如果你下的是 AppImage需要先chmod x 文件名.AppImage再运行。CentOS 7.9 这类老系统我建议优先找“静态编译”版本的二进制因为 AppImage 依赖 FUSE 且老系统 glibc 版本偏低跑起来很容易报version GLIBC_xxx not found之类的错。源码编译是保底方案适合对命令行有信心的用户上手成本略高但能保证在多种发行版上通用。安装完成后第一次启动CC-Switch 可能会让你选择要管理的 CLI 工具比如 Codex 或 Claude Code这一步直接勾上 Codex 即可。主界面能看到供应商列表、模型列表和启动本地代理的开关到这一步工具链的主体就算备齐了。3. 配置接入把 DeepSeek 挂到 Codex 上3.1 在 CC-Switch 中添加 DeepSeek 供应商打开 CC-Switch 主界面找到“供应商管理”或“Provider”相关的入口点击新增。名称填DeepSeekAPI 地址填 DeepSeek 官方的https://api.deepseek.com/v1这个地址 CC-Switch 通常有预设选好就能自动填上。模型列表里把deepseek-chat和deepseek-reasoner都加进去前面说到的那两个模型名在这里会用到。添加时留意一个字段叫“模型映射”或“模型映射关系”。因为 Codex 发过来的是一个模型名比如 deepseek-chat但 CC-Switch 代理再转发给 DeepSeek 时你用哪个模型名去路由就是由这个映射决定的。默认情况下 1:1 映射就行深挖一点的话你完全可以把 Codex 默认的 gpt-5 这类名字映射到 deepseek-chat实现“Codex 以为自己还在用官方模型实际后端已经换成 DeepSeek”的效果。我个人的建议是别做这种花活直接写清楚映射不然排查问题时容易绕晕自己。3.2 设置本地代理端口与 Codex 配置CC-Switch 的本地代理端口默认是3456你可以在设置里改但改了之后必须保证 Codex 的配置指向同一端口。这个“必须一致”被我列进高频坑前三很多人的报错就是改了两边不对齐。接下来打开 Codex 的配置文件。CLI 版默认路径是~/.codex/config.tomlWindows 上对应C:\Users\你的用户名\.codex\config.toml。目录可能不存在直接新建即可。把下面这份配置作为参考# ~/.codex/config.toml model_provider deepseek model deepseek-chat [model_providers.deepseek] name DeepSeek base_url http://127.0.0.1:3456/v1 env_key DEEPSEEK_API_KEY解释几个关键字段model_provider指定默认走哪套供应商配置model是默认模型名base_url指向 CC-Switch 本地代理不要写成 DeepSeek 官方地址否则就绕过了 CC-Switch 的转换层你会退回到“手动接入”的原始状态env_key告诉 Codex 从哪个环境变量读取 API Key。环境变量这一步别忘了。Windows 下在命令行里执行setx DEEPSEEK_API_KEY sk-你的Key注意setx只对之后新开的终端窗口生效当前窗口不会立即读取到所以设置完最好重开一个终端。macOS / Linux 则把 Key 写进 shell 配置echo export DEEPSEEK_API_KEYsk-你的Key ~/.zshrc source ~/.zshrc3.3 验证接入从 curl 测试到 Codex 对话配置完成后先在 CC-Switch 界面把 DeepSeek 设为当前供应商再把“启用本地代理”开关打开。接着在终端里做一次健康检查直接用 curl 打本地代理端口这里不需要写 Authorization因为代理会自己处理curl http://127.0.0.1:3456/v1/chat/completions \ -H Content-Type: application/json \ -d {model:deepseek-chat,messages:[{role:user,content:ping}],max_tokens:10}能拿到正常 JSON 响应就说明 CC-Switch 的本地代理已经打通了 DeepSeek。这一步通过之后再运行codex直接提问比如让它写一段 Python 代码看它能否正常回话。实测正常情况下你会注意到响应速度和直接调 DeepSeek 差不多因为中间多了一层本地转发略微增加一点延迟属于正常现象。有个细节补充一下不同 Codex 版本的config.toml字段命名可能有出入比如某些版本要求model_provider写成[model_providers.xxx]的表头形式而不是顶层字段。如果你按上面配置后 Codex 报“provider not found”优先去官方文档确认字段名CC-Switch 的 GitHub 仓库也有一份 Codex 配置示例两边对照着看基本能解决。4. 全平台故障速查表2026 实测版4.1 王牌报错local proxy failed while handling codex endpoint在 Codex 里最容易撞见的就是这句话local proxy failed while handling codex endpoint /responses。它本身不是一条孤立错误而是一堆根因的“共同表现”所以我直接整理成排查表现象/报错片段可能原因处理方式Proxy not running或本地代理无响应CC-Switch 没有启动代理或启动了但端口不对去 CC-Switch 面板打开“启用本地代理”确认端口是 3456codex endpoint /responses失败Codex 发请求给了本地代理但代理转发失败先 curl 测127.0.0.1:3456排除端口问题后再往下查401 UnauthorizedAPI Key 错误或环境变量没生效重开终端再试确认echo $DEEPSEEK_API_KEY有值403或model not found模型映射写错DeepSeek 收到不认识的模型名检查 CC-Switch 模型列表里是否加了deepseek-chat请求超时DeepSeek 官方接口不稳定或本机代理进程崩溃看 CC-Switch 日志杀掉代理进程后重新启动Codex 提示找不到 providerconfig.toml 里字段名写错或版本不匹配对照官方文档检查model_provider与base_url写法排查这类报错我建议按“链路排查法”走不要一上来就乱改配置。第一步确认本地代理端口有响应curl 一把过第二步确认 CC-Switch 当前选中的供应商是 DeepSeek第三步确认 Codex 的config.toml落在默认路径且没有语法问题第四步看 CC-Switch 的日志界面它能直接显示代理转发时发出去请求真正报的是什么错。日志里的错误信息一般比终端显示的报错更真实、更具体我每次都靠这步把问题定位到最后一层。4.2 下载安装阶段的坑GitHub 慢、macOS 拦截、Linux 依赖先说 GitHub 下载问题。CC-Switch 的安装包主要挂在 GitHub Releases 页面上国内网络环境下下载速度不理想是常态偶尔还会断流。我的经验是优先用镜像加速地址下载或者直接在浏览器里从第三方软件分享站拿打包好的安装包下来核对一下文件大小是否有异常就行。尽量不要用那种“在线安装器”装完一堆捆绑软件得不偿失。macOS 的安装坑集中在权限拦截上。除了前面说过的右键打开还有一种情况是下载的.app压缩包被 Gatekeeper 标记为“已损坏”。这个提示其实不是文件真坏了而是签名校验没过。解决办法是去“系统设置-隐私与安全性-安全性”里找到对应记录点击“仍要打开”一般就能解决。Linux 的依赖坑比较分散。Ubuntu 20.04 及更老版本跑 AppImage 时经常提示libfuse.so.2缺失安装libfuse2就能解决CentOS 7.9 用户如果发现新版本双击无反应大概率是 glibc 版本不匹配优先找项目 Release 列表里的静态编译版或者源码包自己构建。另外 Linux 桌面环境如果缺图形库也会出现“打开就闪退”的情况校验依赖的办法是用终端直接运行启动命令错误信息会打在终端里比桌面弹窗友好得多。4.3 切换账号后对话上下文丢失这是一个特别多人问的问题“我用 CC-Switch 切了账号之后之前 Codex 里的对话上下文全没了怎么办”先说原因。Codex 的会话记录存在本地~/.codex/sessions/目录里会按“供应商 模型 会话ID”来组织。你用 CC-Switch 切换账号本质上把供应商配置换掉了Codex 会认为这是个新环境于是新建一个会话而不是继续加载旧会话。所以你看到的“上下文丢失”其实是 Codex 在按配置隔离会话并不是数据真没了。解决思路有三条。第一条如果只是同一个 DeepSeek 账号换了 API Key那就不要动供应商的名称CC-Switch 里保持“DeepSeek”这个供应商名不变只改 Key 值Codex 会认为还是同一套 provider旧会话仍然可恢复。第二条如果确实要切换不同供应商那旧会话可以手动恢复在 Codex 里执行codex resume 会话ID会话 ID 可以通过codex history或查看 sessions 目录文件名找到。第三条如果业务场景要求必须频繁切换账号且希望保留完整上下文建议直接把 Codex 的顶层model固定为一个值供应商切换只在 CC-Switch 层做不要频繁改动 config.toml。4.4 其他高频问题速查除了上面这条报错还有几个问题被问得特别多我给整理成一个快速对照表方便直接抄作业。问题描述原因与解法Windows 下端口 3456 被占运行netstat -ano | findstr 3456查到占用进程 PID再用taskkill /PID 进程号 /F结束或者在 CC-Switch 里改端口并同步改 config.tomlCodex 报model not found大概率是模型映射名写错确认 DeepSeek 侧模型名是deepseek-chat还是deepseek-reasoner两边必须一致CC-Switch 能切换但 Codex 还是走 OpenAIconfig.toml里的base_url写成了官方地址没有指向127.0.0.1:3456或者 CC-Switch 面板没有点“启用代理”CC-Switch 可以用在 Cursor 里吗Cursor 本身有自己的模型管理官方不支持直接挂 CC-Switch如果你非要在 Cursor 里用 DeepSeek直接填 OpenAI 兼容地址更简单别绕一层代理代理能转发但响应极其缓慢先测试 DeepSeek 官方接口速度若官方也慢则是远端问题若官方正常考虑是代理缓冲区或网络路径原因重启代理进程通常能缓解我在实际使用中最大的体会是CC-Switch 这类工具把配置的“入口”统一了但底层变量依然很敏感。端口、模型名、API Key三者任何一个对不上表现出的报错都可能一模一样。所以排查时永远要按“本地代理 → 供应商 → 模型名 → Key”的顺序走先证明前面的能通再往后排查不要因为它们都在一串错误里就分不清主次。另外如果你在公司内网通过 vLLM 自建了 DeepSeek 这类开源模型的服务也可以用同一套思路把它接到 Codex 上在 CC-Switch 里添加一个自定义供应商base_url 指向内网地址模型名填部署时的名字其他配置完全一致。把 CC-Switch 的“供应商配置 本地代理 模型映射”这层逻辑想透几乎所有兼容 OpenAI 协议的服务都能成为 Codex 的后端这才是这个工具真正值钱的地方。