Codex-Deepseek-Handoff
Health Warn
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 5 GitHub stars
Code Fail
- process.env — Environment variable access in work/thread-localizer/src/appserver-client.mjs
- os.homedir — User home directory access in work/thread-localizer/src/constants.mjs
- process.env — Environment variable access in work/thread-localizer/src/constants.mjs
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
Keep GPT and DeepSeek conversations continuous in Codex Desktop, allowing the two models to work alternately within the same project. 在 Codex 桌面应用中实现 GPT 与 Deepseek 任务上下文双向交接,让两个模型在同一个项目下交替工作。
Codex-DeepSeek-Handoff
在 Codex 桌面应用中,让 GPT 和 DeepSeek 接着同一个任务继续聊。
这是一个目前只支持 Windows 的本地任务交接工具。第一次使用命令行也没关系,
下面会从“怎么下载项目”开始,一步一步说明。
这个项目解决什么问题?
DeepSeek 官方已经提供了接入 Codex 的方式,但切换配置后,经常会出现这样的情况:
- GPT 模式里原来能看到的任务,在 DeepSeek 模式里看不到;
- DeepSeek 新回复的内容,切回 GPT 后不能接着使用;
- DeepSeek 产生的推理记录或联网搜索记录,可能让 GPT 报格式错误。
本项目在 GPT 和 DeepSeek 之间增加了一层本地“任务交接”。直观过程如下:
在 GPT 中工作
↓
完全关闭 Codex
↓
点击桌面的“DeepSeek交接”
↓
工具先交接任务,再打开 DeepSeek 模式的 Codex
↓
在 DeepSeek 中继续原任务
↓
完全关闭 Codex
↓
点击桌面的“任务交接GPT”
↓
工具先清理并交接任务,再打开 GPT 模式的 Codex
两边看到的是同一个工作过程的接力版本。DeepSeek 的回复可以交回 GPT,GPT 的
新回复也可以继续交给 DeepSeek。
使用前必须知道的三件事
- 本项目不是 Codex,也不提供 DeepSeek API key。 你需要先安装 Codex,
并拥有自己的 DeepSeek 官方 API key。 - 切换前必须完全关闭 Codex。 不要让 GPT 模式和 DeepSeek 模式同时运行。
- 交接过程中只点击一次快捷方式。 聊天记录较多时可能需要等待;工具完成
交接后才会显示 Codex 窗口。
安装前准备
第 1 项:确认你使用的是 Windows
目前支持:
- Windows 10
- Windows 11
macOS 和 Linux 目前没有经过本项目验证。
第 2 项:确认 Codex 可以正常打开
先用你平时的方式打开 Codex,确认能够登录 ChatGPT/OpenAI,并能进入一个现有
任务。确认后完全关闭 Codex。
如果你还没有安装 Codex,请先从 OpenAI 官方入口
完成安装和登录,再回来继续。
第 3 项:安装 PowerShell 7
PowerShell 是下面用来复制和运行安装命令的窗口。Windows 自带的旧版叫
“Windows PowerShell”,本项目推荐使用 PowerShell 7。
打开 Windows 开始菜单,搜索并打开 PowerShell 7。在窗口中复制下面这条命令,
然后按回车:
$PSVersionTable.PSVersion
只要第一行显示的主版本号是 7,这一项就通过了。
如果找不到 PowerShell 7,可以按照微软官方说明安装:
Windows 11 用户也可以在终端中执行:
winget install --id Microsoft.PowerShell --source winget
安装完成后关闭旧窗口,重新打开 PowerShell 7。
第 4 项:安装 Node.js
在 PowerShell 7 中执行:
node --version
如果出现类似 v20...、v22... 或 v24... 的版本号,说明已经安装。
如果提示无法识别 node,请到 Node.js 官方网站下载 LTS(长期支持版):
安装时保持默认选项即可。安装完成后重新打开 PowerShell 7,再执行一次node --version。
第 5 项:准备 DeepSeek API key
你需要拥有自己的 DeepSeek 官方 API key。不要把 API key 发给别人,也不要写进
本项目的文件或提交到 GitHub。DeepSeek 官方说明见:
如果你已经能通过 DeepSeek 官方方式打开 Codex,可以直接进入下一节。
下载本项目
方法 A:下载 ZIP(推荐新手使用)
- 打开本项目的 GitHub 页面。
- 点击页面上方绿色的
Code按钮。 - 点击
Download ZIP。 - 下载完成后,在资源管理器中找到这个 ZIP 文件。
- 右键 ZIP 文件,选择“全部解压”。
- 进入解压后的文件夹。
请继续进入文件夹,直到你能同时看到下面这些内容:
README.md
package.json
work 文件夹
scripts 文件夹
看到这些文件,才说明你位于正确的“项目根目录”。
在正确的文件夹中打开 PowerShell 7
- 保持上面的项目根目录窗口打开。
- 点击资源管理器顶部的地址栏。
- 删除地址栏中原来的文字。
- 输入
pwsh。 - 按回车。
系统会打开一个 PowerShell 7 窗口,而且它已经位于正确的项目文件夹中。
执行下面这条命令检查:
Test-Path ".\work\thread-localizer\launcher\install.ps1"
如果输出:
True
说明位置正确。如果输出 False,请关闭 PowerShell,回到资源管理器继续进入真正
包含 README.md、package.json 和 work 的那一层文件夹,再重新输入 pwsh。
第一次安装
第 1 步:先完成 DeepSeek 官方接入
本项目不会重新分发 DeepSeek 官方模型目录,因此必须先运行 DeepSeek 官方 Codex
配置脚本。
在刚才打开的 PowerShell 7 中,复制下面整段命令,然后按回车:
$officialSetup = Join-Path $env:TEMP 'codex-deepseek-setup-en.ps1'
Invoke-WebRequest `
-Uri 'https://cdn.deepseek.com/api-docs/codex-deepseek-setup-en.ps1' `
-OutFile $officialSetup
notepad $officialSetup
记事本会打开刚下载的官方脚本。检查下载地址确实是cdn.deepseek.com,看完后关闭记事本,再回到 PowerShell 7 执行:
pwsh -NoProfile -ExecutionPolicy Bypass -File $officialSetup
按照官方脚本的提示配置 DeepSeek API key。
完成后:
- 完全关闭 PowerShell 和 Codex。
- 用 DeepSeek 官方脚本创建的方式打开一次 Codex。
- 确认 DeepSeek 能正常回复一条测试消息。
- 再次完全关闭 Codex。
如果 DeepSeek 本身还不能正常回复,请先不要安装本项目。只有官方基础接入已经
成功,本项目的任务交接层才能正常工作。
第 2 步:预览本项目将执行的安装操作
重新回到项目根目录,按照前面的方式在地址栏输入 pwsh,打开 PowerShell 7。
复制下面整段命令并按回车:
pwsh -NoProfile -ExecutionPolicy Bypass `
-File ".\work\thread-localizer\launcher\install.ps1" `
-SourceRoot "$PWD" `
-WhatIf
这里的 -WhatIf 意思是“只预览,不真正修改”。窗口中会出现多行What if:,最后还会看到:
"whatIf": true
这一步不会迁移任务、不会启动 Codex,也不会发送任何模型请求。
如果这里直接出现红色错误,请先查看本文后面的“常见问题”,不要反复执行正式
安装命令。
第 3 步:正式安装
预览没有报错后,在同一个 PowerShell 7 窗口执行下面这段命令。它和上一步的
区别是没有 -WhatIf:
pwsh -NoProfile -ExecutionPolicy Bypass `
-File ".\work\thread-localizer\launcher\install.ps1" `
-SourceRoot "$PWD"
安装器会:
- 备份 Codex 的相关配置;
- 检查新配置能否被当前 Codex 读取;
- 安装任务交接工具;
- 在桌面创建两个快捷方式。
安装器不会直接修改 Codex 的任务数据库,不会删除原任务,也不会自动发送消息。
第 4 步:确认桌面快捷方式
安装成功后,桌面上应该出现:
DeepSeek交接
任务交接GPT
它们的作用分别是:
| 快捷方式 | 什么时候点击 | 会做什么 |
|---|---|---|
DeepSeek交接 |
当前使用 GPT,下一次想用 DeepSeek | 先把 GPT 任务交给 DeepSeek,再打开 Codex |
任务交接GPT |
当前使用 DeepSeek,下一次想回到 GPT | 先清理并交接 DeepSeek 任务,再打开 Codex |
第一次进行任务交接
建议第一次使用一个不重要的测试任务完成验收。
从 GPT 切换到 DeepSeek
先用正常的 GPT 登录方式打开 Codex。
新建一个测试任务,发送一句容易辨认的话,例如:
这是 GPT 和 DeepSeek 交接测试。等 GPT 回复完成。
完全关闭 Codex。
等待几秒,确认 Codex 窗口已经全部消失。
双击桌面的
DeepSeek交接。只点击一次,然后等待。
交接完成后,Codex 会自动以 DeepSeek 配置打开。
在“最近”或对应项目中找到刚才的测试任务。
确认能看到 GPT 的测试消息和回复。
在同一个任务中让 DeepSeek 再回复一句。
从 DeepSeek 切回 GPT
- 等 DeepSeek 回复完全结束。
- 完全关闭 Codex。
- 等待几秒。
- 双击桌面的
任务交接GPT。 - 只点击一次,然后等待。
- 工具会先处理 DeepSeek 与 GPT 不兼容的推理和联网搜索记录。
- 完成后,Codex 会自动回到 GPT 登录配置。
- 打开刚才的测试任务。
- 确认能看到 DeepSeek 刚刚发送的内容。
- 再给 GPT 发送一条消息,确认 GPT 能正常回复。
以上全部通过,就说明双向任务交接已经跑通。
日常应该怎么用?
以后只需要记住下面两条:
- **GPT → DeepSeek:**关闭 Codex,点击
DeepSeek交接。 - **DeepSeek → GPT:**关闭 Codex,点击
任务交接GPT。
不要在刚用完 DeepSeek 后直接点击任务栏里的官方 Codex 图标。那样会绕过交接
步骤,刚产生的 DeepSeek 内容可能暂时没有出现在 GPT 任务中。
为什么点击快捷方式后没有立刻出现 Codex?
这是正常设计,不代表快捷方式坏了。
工具必须先完成:
- 查找需要交接的任务;
- 检查是否已经交接过,防止重复任务;
- 创建新的目标任务;
- 转换不兼容的记录;
- 完整验证交接结果;
- 验收成功后删除上一棒旧任务;
- 最后才打开 Codex。
任务越多,等待时间可能越长。交接期间再次点击快捷方式不会让它更快,也可能让
你误以为程序没有反应,所以请耐心等待第一次点击的结果。
常见问题
1. 安装器提示找不到 models-deepseek.json
说明 DeepSeek 官方基础配置还没有成功完成,或者官方模型目录不在预期位置。
处理方法:
- 重新运行本文“先完成 DeepSeek 官方接入”中的官方脚本。
- 确认 DeepSeek 能独立打开 Codex 并正常回复。
- 完全关闭 Codex。
- 再运行本项目安装器。
不要自己创建一个空的 models-deepseek.json,空文件不能代替官方模型目录。
2. 点击快捷方式后很久没有窗口
先不要连续点击。等待任务交接完成。如果出现错误弹窗,请记录:
- 弹窗里的完整文字;
- 弹窗提供的报告路径;
- 当前是从 GPT 切换到 DeepSeek,还是从 DeepSeek 切回 GPT。
详细排查方法见 故障排查文档。
3. 任务出现在“最近”里,没有自动置顶
只要任务能够打开、消息完整并且可以继续回复,就说明交接成功。是否置顶属于
Codex 界面状态,不影响任务上下文。需要时可以手动置顶。
4. 出现两个相同名字的旧任务
早期测试或失败交接可能留下旧任务。不要只根据名字判断;先打开并确认哪一个是
最新、可以继续回复的任务。不要直接修改 Codex 数据库或 rollout 文件。
5. GPT 报 Invalid input[*].content ... maximum length 0
这通常说明旧的 DeepSeek 推理记录没有完成兼容处理。当前版本会在
DeepSeek → GPT 交接时清理新目标中的不兼容 content。请保留错误报告,
不要手动修改任务数据库或 rollout。详见 故障排查文档。
6. 使用 DeepSeek 联网搜索后,切回 GPT 报错
DeepSeek 与 GPT 的联网搜索记录 ID 格式可能不同。本项目会在交回 GPT 时同步
调整检索调用和结果之间的关联 ID;发现冲突时会停止并报告,而不是删除记录。
7. DeepSeek 能回复,但看不懂图片
任务交接工具只负责保存和转换任务上下文,不会给模型增加视觉能力。能否看图取决于
你选择的 DeepSeek 模型及其接口能力。
如何卸载?
卸载前先完全关闭 Codex。
打开 PowerShell 7,先执行预览命令:
pwsh -NoProfile -ExecutionPolicy Bypass `
-File "$env:USERPROFILE\.codex\model-switcher\uninstall.ps1" `
-WhatIf
确认预览没有异常后,正式卸载:
pwsh -NoProfile -ExecutionPolicy Bypass `
-File "$env:USERPROFILE\.codex\model-switcher\uninstall.ps1"
默认卸载只移除本项目安装的受管配置、两个快捷方式和程序文件。以下内容会保留:
- DeepSeek 官方模型目录;
- 已加密保存的 API key;
- 任务交接 manifest;
- 交接报告和 manifest。
默认设置
- DeepSeek 默认思考强度:
max - DeepSeek 默认联网搜索:
live - OpenAI/GPT:尽量保留任务原来使用的 GPT 模型
如果以后更换 DeepSeek 模型,新模型必须先由官方目录声明,并且支持 Codex 所需的
Responses API。普通用户不需要手动修改 config.toml。
隐私与安全边界
本项目在你的电脑本地调用 Codex 自带的 app-server:
- 不运营聊天中转服务器;
- 不把聊天记录上传到本项目作者的服务器;
- 不把 API key 写入 Git;
- 不直接修改
state_5.sqlite、session_index.jsonl或源 rollout; - 写入前生成 dry-run 报告,旧任务会保留到新任务完成验收;
- 交接不再生成累计任务备份,成功后通过官方协议删除上一棒旧任务;
- 发现当前 Codex 协议不兼容时停止,而不是猜测字段继续操作;
- 使用交接 manifest 防止同一个任务被重复复制;
- 使用每用户锁防止重复点击造成多个交接程序同时运行。
详细说明见 安全边界文档。
给开发者的内容
如果你只想安装和使用,到这里就可以停止阅读。下面内容面向准备检查代码、调试协议
或参与开发的人。
本地测试
在项目根目录执行:
npm test
pwsh -NoProfile -File ".\scripts\check-powershell.ps1"
协议检查与 dry-run
npm run schema-check
npm run dry-run:deepseek
npm run dry-run:openai
schema-check 只检查或缓存 Codex app-server 协议,不启动模型回合。dry-run 只
生成报告;第一次修改迁移逻辑时,应先用单个任务验收,再扩大范围。
修改默认模型
提供商默认设置位于:
work/thread-localizer/data/handoff-settings.json
- OpenAI 使用
preserve-existing,尽量回到任务此前使用的 GPT 模型。 - DeepSeek 默认使用
deepseek-v4-pro + max。进入 DeepSeek 模式后,可在 Codex
原生模型菜单中为当前任务切换 V4 Pro/V4 Flash 与 Low/High/Max。 - 部分 Codex Desktop 会过滤第三方模型名。启动器会生成两个本机兼容菜单项,
并且只在 DeepSeek 模式启动一个绑定127.0.0.1的模型名称适配器。它只把
兼容名称换回官方 DeepSeek slug;GPT 请求不会经过它,消息正文、工具调用、
搜索记录和返回流也不会被它改写。 - 交接器会记住每个任务最后使用的 DeepSeek 模型和思考强度;下次从 GPT 交接
回来时优先恢复。只有从未使用过 DeepSeek 的任务才采用默认值。 - DeepSeek 模型 slug 必须存在于本机官方
models-deepseek.json中。
进一步阅读
开源许可
本项目采用 MIT License。
DeepSeek 官方模型目录和品牌图标不会随本仓库重新分发;安装器复用用户本机已经
完成的官方配置。请不要把个人图标、API key、Codex 数据库、任务报告或聊天记录
提交到公开仓库。
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found