前言¶
在 DSH 和 Codex 之间来回切换时,常见做法是导入整段会话或新建会话接管。前者容易把上下文整包搬过来,后者又容易丢掉「上一轮做到哪、哪里还没核验」这类细节。若你只想在 DSH 输入框里看到本机可接续的 Codex 聊天、按项目分组浏览,并把恢复摘要放进草稿自己确认后再发,可以看一下社区插件 @bitqyh/dsh-codex-bridge(维护者 bitqyh,分类:客户端)。它定位是 Codex ↔ DSH 跨 agent 接力:会话采集、自动存档、中断恢复提示,以及输入框下方的「交接」入口。
这是什么¶
@bitqyh/dsh-codex-bridge 是 DeepSeek Harness 的客户端插件(npm 包名与仓库 bitqyh/dsh-codex-bridge 一致,当前资料中版本为 0.1.0,MIT 许可证)。一句话:在输入框下方按具体项目分组列出可接续的 Codex 聊天,只插入草稿、不自动发送;同时提供 CLI 只读恢复与会话侧采集/存档能力。
与目录里一批「把外部会话带进 DSH」的插件相比,作者明确写的是不导入、不切换上下文、不写回——只把会话列清楚,并标注项目归属判断有多可靠。详细对比见仓库内 COMPARISON.md。
核心功能¶
资料中列出的能力如下。
| 能力 | 说明 |
|---|---|
| 会话采集 | prompt、工具调用、轮次边界,上报 ai-memory |
| 自动存档 | 每轮结束刷新可恢复快照(零 token) |
| 中断检测 | 限速扫描磁盘日志,发现额度中断/崩溃的会话并注入提示 |
| 手动恢复 | dsh-codex-bridge resume 只读解析原生日志,构建恢复上下文;可离线、无 DB 时降级,不依赖服务运行 |
| 「交接」按钮 | 输入框下方按项目分组列出可接续 Codex 聊天,只把恢复内容插入草稿 |
「交接」列表按每个具体项目各自一组,未归属的合成「非项目会话」放最后;组顺序按组内最新会话时间倒序。搜索作用于全部会话。每个候选带本轮标识:本轮已收尾 / 因故中断 / 未收尾/需核验,说的是这一轮怎么结束,不是任务完成度。
按钮只调 insertText,不碰 setDraft/paste/submit,只插入草稿,绝不自动发送。
安装与启用¶
注册 DSH 插件¶
一个包、一条命令加入 desktop profile:
dsh plugin --profile desktop add @bitqyh/dsh-codex-bridge
包的 cordis.patch.yml 已自带 UI 入口(「交接」按钮),装完重启 DSH 即可使用该按钮;不需要再手动改 profile patch 才能看到交接 UI。
安装 DSH / Codex 侧脚本¶
安装命令不会自动改文件;默认只打印计划,加 --yes 才执行,且改文件前会先备份。
npx @bitqyh/dsh-codex-bridge doctor # 先只读检查
npx @bitqyh/dsh-codex-bridge setup # 看计划(不写文件)
npx @bitqyh/dsh-codex-bridge setup --yes # 真正安装 DSH 侧
npx @bitqyh/dsh-codex-bridge setup-codex --yes # 安装 Codex 侧
作者说明不用 postinstall 自动装:DSH profile 的 pnpm allowBuilds 白名单会拦未批准脚本;且安装会向项目目录外写入 ai-memory hooks 等多处文件,产品上应显式确认。
可选:事件扫描插件(中断提示)¶
若只要「交接」列表或 CLI resume,不必做下面步骤。README 写明:在项目目录跑 dsh-codex-bridge resume --from-agent codex 不需要注册插件、装 profile 或重启 DSH。
启用事件扫描(中断提示)时:
- 在
~/.dsh/profiles/desktop/cordis.patch.yml增加:
- insert:
- id: dsh-codex-bridge-events
name: '@bitqyh/dsh-codex-bridge'
- 重启 DSH
- 在 Codex 里
/hooks重新信任(改命令哈希会失效,且静默跳过)
插件配置项¶
事件插件侧配置(资料原文):
{
scriptPath: "", // 留空自动解析
throttleSeconds: 600, // 扫描限速窗口
sinceHours: 24, // 只看最近 N 小时有活动的会话
maxReported: 3, // 最多提示几条
enabled: true,
}
CLI 可用 --server=<url> 覆盖 ai-memory 地址(默认 http://127.0.0.1:49374)。
典型用法¶
1. DSH 界面「交接」¶
点输入框下方「交接」→ 按聊天名称选 → 看预览 →「插入当前对话」。内容进草稿,确认后再发送。
2. Codex skill¶
对 agent 说「用接续任务接着 DSH 没做完的任务」,或使用 $resume-task(见仓库 skills 说明)。
3. 命令行 resume(备用)¶
在同一项目目录:
dsh-codex-bridge resume --from-agent codex
从 DSH 切到 Codex 时把参数改为 --from-agent dsh。工作目录不一致时:
dsh-codex-bridge resume --from-agent codex --cwd '<实际项目路径>'
多个可接续来源时需指定完整 native id:
dsh-codex-bridge resume --from-agent codex --session <完整native-id>
输出是机械提取的恢复上下文(定位、任务目标原话、已确认成功操作、失败/未知/待审批、最后助手可见输出、接续前须核验清单)。它是证据,不是新授权;resume 只读日志,不写 handoff/DB,不调用模型。
退出码:0 ready、2 no-candidate、3 needs-selection、4 incomplete(信息不足,不要当通过)。
其它 CLI:
dsh-codex-bridge doctor # 只读检查两侧状态
dsh-codex-bridge paths # 打印相关路径
前置条件与注意¶
运行时依赖¶
| 依赖 | 谁需要 | 缺了会怎样 |
|---|---|---|
| Node.js ≥ 20 | 全部 | 插件不加载 |
| python3 ≥ 3.8 | 「交接」列表、resume、doctor |
列表静默为空或界面「读取失败」;CLI 无输出 |
| zstd | 只读 DSH 侧会话 | DSH 侧会话读不出;Codex 侧不受影响 |
| ai-memory 服务 | 采集 / 自动存档 / 中断提示 | 「交接」与 resume 仍可用 |
| Codex(CLI 或 Desktop) | 读 Codex 会话 | 无 Codex 侧可接续聊天 |
自检示例:
node -v
python3 -V
command -v zstd # 只读 DSH 侧才需要
curl -s http://127.0.0.1:49374/healthz # 采集/存档需要 ai-memory
资料注明:Windows 暂未适配(硬编码 python3);缺 python3 时可能几乎不报错,先 command -v python3。
项目分组说明¶
列表分组依据是「目录匹配」与 Codex 元数据,不是会话归属的绝对真理。优先级为 threads.project_id(权威,project_basis: thread)> 登记目录与 cwd 匹配(dir)> 歧义或读不到(ambiguous / unavailable)> 无依据(none)。当前 Codex 版本 threads.project_id 整列为空时,实际多走 dir 路径。
安全与权限¶
插件在当前 DSH 进程权限下运行;setup 会向本机 ai-memory hooks 等路径写入文件。安装前请阅读仓库源码与 MIT 许可证,确认路径与行为可接受。DeepSeek Harness 社区插件目录(如 skillhub.cn)为独立站点,与 DeepSeek / 幻方无官方从属关系。
结尾¶
若你需要在 DSH 里按项目浏览 Codex 可接续聊天、只把恢复内容插入草稿,并可选地做会话采集、存档与中断提示,@bitqyh/dsh-codex-bridge 把 UI、CLI 和安装步骤拆得比较清楚;纯 resume 甚至不必装事件插件。
- 目录页:https://www.skillhub.cn/plugins/bitqyh/dsh-codex-bridge
- GitHub:https://github.com/bitqyh/dsh-codex-bridge