Bundle
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.
- Source
- Walvez
- License
- MIT
- Updated
- Updated 7 days ago
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>
[](https://www.npmjs.com/package/dsh-codex-sync)
[](https://www.npmjs.com/package/dsh-codex-sync)
[](https://github.com/Walvez/dsh-codex-sync/actions)
[](package.json)
[](LICENSE)
[](https://awesome-dsh-plugin.com/p/Walvez/dsh-codex-sync/)
<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 插件市场一键安装(推荐):
```bash
dsh plugin --profile web add dsh-codex-sync
```
或在 profile 的 `cordis.patch.yml` 中配置:
```yaml
- insert:
- id: codex-sync
name: dsh-codex-sync
config:
maxSkills: 30
mcpMirrorDeny:
- node_repl
mcpMirrorSilent:
- exa
```
### 2. 配置 Codex 反向 MCP 桥(可选)
```bash
# 自动在 ~/.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
Install
dsh plugin --profile web add dsh-codex-sync@1.6.1
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-codex-sync from the hub