dsh-codex-sync
Two-way Codex↔DSH bridge: skills from ~/.codex/skills, session import with workspace attach, live MCP mirroring of mcp_servers, and a Codex-side reverse MCP installer.
Install
dsh plugin --profile web add dsh-codex-sync
Sandbox test results
| Stage | Result |
|---|---|
| 1 install | ✗ |
| 2 list | — |
| 3 mount | — |
| 4 boot | — |
dsh: initialized profile web at /home/node/.dsh/profiles/webFour stages run in an isolated sandbox: install (network on) → list → mount → boot (last three with no network).
README
<div align="center">
⚡ dsh-codex-sync
Codex 与 DSH 双向桥接:挂载 ~/.codex/skills、带工作区绑定的会话导入、mcp_servers 实时镜像,以及 Codex 端反向 MCP 安装器。<br/>
项目会话双向流转 · 技能实时挂载 · MCP 自动镜像 · 原生现代化交互
<p align="center">
<a href="README.md"><b>English</b></a> •
<a href="README.zh-CN.md"><b>简体中文</b></a>
</p>






<br/>
<table>
<tr>
<td align="center" width="50%">
<b>🎛️ 侧边栏原生同步设置</b><br/>
<img src="docs/sync-settings-modal.png" alt="Codex 同步设置模态卡片:快捷操作、开关、语言" width="100%"/>
</td>
<td align="center" width="50%">
<b>📍 顶部工作区快捷入口</b><br/>
<img src="docs/sidebar-entry.png" alt="工作区头部 Codex 快捷入口" width="100%"/>
</td>
</tr>
<tr>
<td align="center" width="50%">
<b>📥 从 Codex 导入项目对话</b><br/>
<img src="docs/import-picker.png" alt="从 Codex 导入对话:多项目折叠、状态标签" width="100%"/>
</td>
<td align="center" width="50%">
<b>📤 导出 DSH 对话到 Codex</b><br/>
<img src="docs/export-picker.png" alt="导出到 Codex 对话框:智能归属、来源切换" width="100%"/>
</td>
</tr>
</table>
</div>
🤔 为什么要用这个插件?
在使用 OpenAI Codex 时,你可能已经积累了:
1. 大量项目的对话历史(包含完整的代码上下文、架构讨论与调试记录);
2. 丰富的自定义 Skills 库(~/.codex/skills 下各种专有工具与指令);
3. 精心配置的 MCP 服务工具链(数据库、搜索、浏览器自动化等)。
当你想在 DeepSeek Harness (DSH) 中体验强大的开源模型生态或开展双 Agent 协作时,通常会遇到:
- 历史无法迁移:两边会话格式互不相通,想在 DSH 中接续之前的 Codex 对话极其繁琐;
- 配置割裂与漂移:Skills 和 MCP 必须在两边重复配置维护,改了一边另一边就失效;
- 单向死胡同:市面上的迁移脚本往往只是一次性的、粗暴的单向文件拷贝,在 DSH 续聊后无法安全带回 Codex。
dsh-codex-sync 正是为解决这些痛点而生! 它不是一次性迁移脚本,而是让 Codex 与 DSH 持续互联互通、双向无缝流转 的现代化扩展。
✨ 核心方便之处
1. 💬 项目会话双向安全互导(Codex ⇄ DSH)
- 从 Codex 导入:
- 按项目(Workspace)树状聚合所有历史对话;
- 完整保留用户消息、助手回复、思维链推理(Reasoning)与工具调用轨迹;
- 导入后自动关联对应工作区,在 DSH 中直接断点续聊;
- 支持增量更新:Codex 续聊过的旧对话会标记「有更新」,再次勾选仅增量追加新 Turn,不重复创建会话。
- 导出到 Codex:
- 在 DSH 续聊的内容或新建的原生会话,可一键导出回 Codex;
- 自动校验 Codex 已有项目库,智能锁定未知目录,杜绝孤儿会话;
- 导出生成独立的全新 Codex 会话副本(
history_mode: legacy),绝不破坏或覆盖原 Codex 历史; - 导出完成后重启 Codex 即可在对应项目下查看并继续工作。
- 子代理智能收纳:
- 默认过滤子代理线程,保持列表干净清爽;
- 点击「过滤子代理」可随时展开并嵌套在主会话下方,按需单独导出,不污染父会话。
2. ⚡ Skills 实时一等公民挂载
- 直接将
~/.codex/skills/*/SKILL.md注册为 DSH 原生一等公民技能; - 支持完整的子目录资源引用与多文件架构;
- 改完即用:在本地修改
SKILL.md,DSH 下次调用即时生效,无需重启 DSH 服务。
3. 🔌 MCP 自动双向镜像
- Codex → DSH:后台自动监听
~/.codex/config.toml,将[mcp_servers.*]动态镜像到 DSH,支持热重载,并内置常用服务的静音与冲突排除策略; - DSH → Codex(反向桥):一行命令配置
[mcp_servers.dsh-plugins],让 Codex Agent 也具备搜索、检查与安装 DSH 插件的能力。
4. 🎨 极度优雅的原生现代化 UI
- 专属入口:自适应融入工作区标题栏(展开时位于工作区标题旁,收起窄栏时整齐排列在搜索图标下方);
- 居中模态卡片:点击呼出高对比度毛玻璃控制面板,快捷操作、状态卡片、功能开关一目了然;
- 原生设计语言:采用 iOS 风格平滑切换滑块与纯 CSS 过渡,自适应 DSH 深浅色主题,零样式残留与无横向溢出。
📦 快速开始
1. 安装到 DSH
通过 DSH 插件市场一键安装(推荐):
dsh plugin --profile web add dsh-codex-sync
或在 profile 的 cordis.patch.yml 中配置:
- insert:
- id: codex-sync
name: dsh-codex-sync
config:
maxSkills: 30
mcpMirrorDeny:
- node_repl
mcpMirrorSilent:
- exa
2. 配置 Codex 反向 MCP 桥(可选)
# 自动在 ~/.codex/config.toml 挂载 [mcp_servers.dsh-plugins] npx dsh-codex-sync codex-install # 检查双向同步健康状态 dsh-codex-sync doctor
🎛️ 同步控制面板与开关
点击侧边栏工作区的 Codex 图标 即可打开居中设置面板:
分组 · 项目 · 对应命令 / 配置键 · 行为说明
操作 · 从 Codex 导入 · /import-all · 打开项目选择对话框,按项目勾选导入历史对话
· 导出到 Codex · /export-codex · 将 DSH 会话写出为全新 Codex 对话副本
· 会话修复¹ · /repair-sessions [--fix] · 扫描会话存储中的重放损伤并原地修复(见下方排障章节)
· 查看镜像状态 · /mcp-status · 弹窗查看每个 MCP 服务器的挂载状态与诊断信息
· 刷新状态 · /codex-settings · 实时重新拉取宿主机所有开关的真实值
功能开关 · 导入命令 · enableImport · 启用 /import-codex 等 slash 命令族
· 自动导入 · autoImport · 启动首个会话时自动增量导入 Codex 历史
· 指令注入 · enableInstructions · 注入 instructions.md / AGENTS.md 进系统提示词
· 配置摘要 · enableConfig · 注入 config.toml 模型配置摘要进系统提示词
· 技能注册 · enableSkills · 将 ~/.codex/skills 挂载为 DSH 原生技能
· MCP 镜像 · mcpMirror · 自动监听并镜像 [mcp_servers.*](开关立即生效)
语言 · 语言切换 · Language · 切换界面简体中文 / English(本地记住)
¹ 设置面板左下角有一个小提醒,把「导入对话报错」与该命令关联起来。
🩺 排障:导入对话的 token meter / 重放报错
现象 —— 切换模型或压缩某个(导入的)对话时失败:
command.execute failed: internal: token meter: assistant/message at seq N has no matching step/start event corrupt session log: seq gap in committed region at line L
原因 —— 换模型时 DSH 的 token meter 会对整个事件日志做冷重放校验(旧模型的 usage 锚点失效)。v1.6.0 之前写入的日志缺少配对的 step/start…step/end 标记,混合日志还可能带有失效的 seq 引用——这些损伤只在冷重放时才会暴露。
修复 —— 在任意 DSH 对话中执行(或终端运行 dsh-codex-sync repair-sessions --fix):
/repair-sessions --fix
修复过程会合并接缝、补齐缺失的 step 标记、重映射引用、重编号 seq,并在写入前用真实的 @deepseek-ai/dsh-token-meter 校验,每个修复过的日志旁保留 .bak 备份。v1.6.0+ 的导入天然合规,理论上不会再触发此问题。
🤖 智能体辅助技能 (codex-sync)
本插件随包提供了一个内建的 codex-sync Skill。你可以直接在对话中让 AI Agent 操作同步:
- “帮我预演一下导入 Codex 会话” → 自动执行
/import-codex --dry-run; - “查看当前的 MCP 镜像状态” → 自动执行
/mcp-status; - “开启自动导入功能” → 自动执行
/auto-import on。
📄 开源许可
[MIT License](LICENSE) © 2026 Walvez
Rendered from the README published on npm. Formatted only, not edited.
Versions
Published on npm::35,最后更新 2026-10-05