Codex 桌面版接入 DeepSeek V4 完整教程(保留 GPT 登录,模型菜单一键切换)
方案简介DeepSeek V4 不能直接写进 Codex 官方配置使用因为 Codex 走 OpenAI Responses 协议。本文使用开源项目 DSCodex它在本地起一个路由127.0.0.1:10110按模型名分流deepseek/deepseek-v4-flash→ 转发 DeepSeek 原生 Responses API其他模型GPT-5.6 等→ 原样转发 ChatGPT OAuth 后端效果不改 App、不覆盖登录、不丢聊天记录模型菜单里多一项 V4 FlashGPT 模型照常可用。一、安装步骤可直接复制1. 安装 Node.js 24DSCodex 要求 ≥24.5brew install node24 export PATH/opt/homebrew/opt/node24/bin:$PATH node --version # 应显示 v24.x2. 克隆 DSCodex 并进入目录git clone https://github.com/fish2lab/DSCodex.git ~/DSCodex cd ~/DSCodex3. 运行测试建议确认环境正常npm test4. 保存 DeepSeek API Key隐藏输入不打印node src/cli.mjs key set按要求粘贴 Key 后回车会存入~/.codex/dscodex/config.json权限 0600。不要把 Key 写进命令行或 config.toml。5. 安装并启动路由node src/cli.mjs install node src/cli.mjs start node src/cli.mjs doctordoctor六项全部输出ok即成功config_injected / catalog_present / router_token_present / proxy_running / deepseek_key_in_proxy / app_server_bridge。6. 可选开机自启node src/cli.mjs autostart enable不开启的话每次重启电脑后都要手动node src/cli.mjs start。7. 重启 Codex 桌面端完全退出⌘Q再重新打开新建任务在模型选择器里选择 V4 Flash。8. 验证 DeepSeek 真实工具循环codex -m deepseek/deepseek-v4-flash -c model_reasoning_effortmax -a never exec --skip-git-repo-check 调用一次 shell 工具打印 DEEPSEEK_OK然后回复 deepseek-ok9. 验证切回 GPTOAuth 旁路codex -m gpt-5.6-terra -a never exec --skip-git-repo-check 只回复 gpt-oauth-ok二、遇到的问题与解决方法问题 1切回 GPT 时报Invalid input[358].content: array too long. Expected an array with maximum length 0...array_above_max_length现象DeepSeek 回合结束后切回 GPT-5.6 再发消息直接 400 报错任务无法推进。原因DeepSeek 回合会把思考内容存成reasoning消息content是reasoning_text数组切回 GPT 时 Codex 把这段历史原样回放给 OpenAI而 OpenAI 要求reasoning消息的content必须是空数组maxItems: 0于是整请求被拒。解决修改 DSCodex 路由src/proxy.mjs在 GPT 旁路转发前把reasoning消息的content清空保留 summary核心代码exportfunctionbuildChatGptBody(input){constbodystructuredClone(input);if(Array.isArray(body.input)){body.inputbody.input.map((item){if(!item||typeofitem!object||Array.isArray(item))returnitem;if(item.typereasoningArray.isArray(item.content)item.content.length0){return{...item,content:[]};}returnitem;});}returnbody;}然后重启路由node src/cli.mjs stop node src/cli.mjs start验证server.log出现chatgpt: stripped reasoning replay content from 1 item(s)即生效doctor全部ok。问题 2切回 GPT 报 502 Bad Gateway /fetch failed现象DeepSeek 正常GPT 请求全部 502。原因DSCodex 的 Node 进程默认不走系统代理而 ChatGPT OAuth 后端需要代理才能访问国内网络环境常见。解决读取本机代理并写入路由配置然后重启scutil --proxy # 查看本机代理例如 HTTPProxy 127.0.0.1 端口 7897 node src/cli.mjs proxy set http://127.0.0.1:7897 node src/cli.mjs stop node src/cli.mjs start问题 3重启电脑后 DeepSeek 和 GPT 都连不上原因Codex 的所有请求都指向本地路由127.0.0.1:10110路由没有开机自启时全部失败。解决开启自启或开机后手动启动node src/cli.mjs autostart enable # 或手动node src/cli.mjs start问题 4日志里 WebSocket 426 / Figma OAuth 警告均为正常现象不影响使用426 是路由主动拒绝 WebSocket、Codex 自动回退 HTTP/SSEFigma 警告与模型接入无关。问题 5想卸载恢复原样node src/cli.mjs stop node src/cli.mjs uninstall只删除 DSCodex 写入的配置行、模型目录和桥接文件原配置备份在~/.codex/config.toml.pre-dscodex.bak。聊天记录、auth.json、GPT 登录状态完全不动。三、简洁版提示词直接复制发给 Codex请用 https://github.com/fish2lab/DSCodex 把 DeepSeek V4 Flash 接入本机 Codex 1. 安装 Node.js 24克隆仓库如 ~/DSCodex按 README 执行 npm test、key set、install、start、doctor。 2. 我的 DeepSeek API Key 我会在 key set 提示时隐藏输入严禁打印、严禁写入 config.toml 或提交进仓库。 3. 硬性要求保留现有 ChatGPT 登录auth.json、全部聊天记录和 GPT 模型不要把应用强制改成 API Key 登录只把 V4 Flash 加入模型选择器GPT 请求必须原样走 OAuth 旁路。 4. 用 scutil --proxy 读取本机代理并配置路由proxy set解决 GPT 旁路 502/fetch failed。 5. 必须修复已知 BugGPT 旁路转发前把 input 中 reasoning 消息的 content 清为空数组保留 summary否则切回 GPT 会报 array_above_max_length 400修复后加测试并重启路由。 6. 实测两项codex -m deepseek/deepseek-v4-flash 完整工具循环codex -m gpt-5.6-terra 切回 GPT 成功。 7. doctor 六项全部 ok 后告诉我如何重启自启和卸载不要改动除 DSCodex 标记之外的配置。小提示DeepSeek V4 Flash 是纯文本模型桌面端贴图时 DSCodex 会借用你的 ChatGPT 登录无需额外 Key让 GPT 生成图片描述再喂给 DeepSeekCodex 用量统计页面不会计入 DeepSeek 消耗这是正常现象。