dsh-agent-session-import:把 Cursor、Codex 等本地对话导入 DSH

前言

在 DeepSeek Harness(DSH)里续聊或归档历史时,常见做法是手动复制粘贴,或从零开新会话。若你同时在 Cursor、Codex CLI、Claude Code、ZCode、Kimi Code 等工具里留下大量本地对话,这些记录分散在各家的目录和数据库里,很难一次性迁到 DSH 的 v4 会话模型里继续用。

dsh-agent-session-import 是社区维护者 howtomakeaname 发布的 DSH bundle 插件(分类:记忆)。它在 host 侧只读各 agent 的本地数据,在浏览器侧提供 Import Sessions 面板,把第三方 coding agent 的本地对话导入为 DSH 会话。插件零运行时依赖、无需构建即可安装使用;在 DSH 0.2.x 上开发与验证(桌面版 0.2.1-rc.2),当前 npm 包版本为 0.2.4,MIT 许可证。

这是什么

一句话:可读本地 Cursor / Codex / Claude Code / ZCode / Kimi 等会话存储,勾选后写入 DSH v4 会话,并在侧边栏与会话列表中可见。

实现上,host 负责扫描、转换与写入(lib/host/),客户端为打包后的单文件 lib/client.js(源码在 src/client/)。处理全程在本机 DSH Host 进程内完成,插件不发送网络请求;对第三方数据只读,不修改、不复制原始文件。

支持的来源与本地路径

下面表格来自项目 README,host 按这些路径只读扫描(Windows / Linux 上 Cursor 等路径已做跨平台处理,详见 README「平台支持」)。

来源 读取的本地数据(只读)
Codex(CLI / 桌面版共用) ~/.codex/sessions/**.jsonl + ~/.codex/thread_history_1.sqlite
Claude Code ~/.claude/projects/**.jsonl
Cursor IDE(Agent / Composer) macOS:~/Library/Application Support/Cursor/User/globalStorage/state.vscdb;其他系统使用 %APPDATA% / ~/.config 对应路径
ZCode ~/.zcode/cli/db/db.sqlite
Kimi(Kimi Code CLI / 桌面端) ~/.kimi-code/sessions(Windows:%USERPROFILE%\.kimi-code\sessions,可用 KIMI_CODE_HOME 覆盖)

其他 agent(如 Aider、Continue)可通过新增 lib/host/providers/ 下的 provider 并注册扩展,契约见仓库内 docs/adding-provider.md。

核心功能

导入面板

侧边栏 Import Sessions:左侧来源导航,右侧会话列表按项目文件夹分组、可展开/收起,展示标题、更新时间、消息数,以及 Imported / Archived 徽标。支持搜索、Unimported / All 切换、组级全选、Select unimported、逐条勾选;导入时弹窗显示总进度、当前条目与逐条结果,失败项可重试。

两种导入模式

两种模式内容都不丢,区别在展示与请求结构:

  1. Faithful:思考、工具调用与结果保留为结构化卡片,适合阅读;续聊时可能受模型 API 对历史 tool_use / thinking 的校验限制。
  2. Resume-safe:同样内容以文本保留(【思考】 / [工具调用] / [工具结果]),去掉 tool/thinking wire 结构,便于任意模型安全继续对话。

一条来源对话对应一条 DSH 会话,尽量回到原项目目录(目录不存在时回退到用户 home)。会话标题与消息数写入 DSH 投影缓存;已导入映射保存在 $DSH_HOME/session-import/imported.json,重复导入会显示徽标,导入结束后列表自动刷新。

会话格式与续聊说明

每条导入会话的第一个 surface 事件是空的 system/message(受保护的 surface head),满足 DSH v4 格式;续聊时由 DSH 按当前 cwd、工具集、preset 与模型重新渲染 system prompt,插件不会把 system prompt 硬编码进日志。第一条 user 消息开头会注入来源说明文本,说明历史来自哪个 agent、历史工具名与当前 DSH 工具不同,仅作参考。

安装与启用

插件以当前 DSH 进程权限运行,安装前建议查看 GitHub 仓库 源码与 MIT 许可证。社区插件目录见 SkillHub 目录页(独立站点,与 DeepSeek / 幻方无官方从属关系)。

从 npm 安装(发布后可用)

  1. 打开 DSH 侧边栏 Plugins。
  2. Add plugin,输入包名(或带版本):
dsh-agent-session-import
dsh-agent-session-import@0.2.4
  1. 选择 Install,完成后点 Enable now(或在 Plugins 列表启用)。
  2. 侧边栏出现 Import Sessions 即可使用;桌面端通常数秒内热组合生效,未出现可重启 DSH。

从 GitHub 安装

  1. Plugins → Add plugin。
  2. 输入仓库地址(推荐固定 commit):
git+https://github.com/howtomakeaname/dsh-agent-session-import.git

也可使用本地 clone 目录的绝对路径(例如 ~/code/dsh-agent-session-import)。
3. Install → Enable;修改代码后需重启 DSH 生效。

卸载:Plugins → 该插件 → Uninstall。卸载不会删除已导入的会话。删除 $DSH_HOME/session-import/imported.json 只会重置「已导入」记录,不会删除会话本身。

典型用法

  1. 侧边栏点 Import Sessions。
  2. 左侧选来源 → 展开项目分组 → 勾选要导入的对话(或 Select unimported)→ 选择 Faithful 或 Resume-safe → Import。
  3. 在进度弹窗查看每条结果;完成的会话出现在左侧会话列表中(归入对应工作区分组)。

若目标是稳定续聊而非仅阅读历史,README 建议优先使用 Resume-safe。

适用场景与注意

适合谁:已在多款 coding agent 中积累本地会话、希望在 DSH 中统一查看或续聊的开发者;需要保留工具调用与思考过程时,可按场景在 Faithful 与 Resume-safe 间选择。

已知限制(摘自 README):

  • Codex:完整 reasoning 链不落明文,本地只保留可见 summary。
  • Kimi:仅支持 Kimi Agent / Kimi Code 会话;普通 Kimi 聊天记录在服务端,本地无正文。
  • ZCode:schema 绑定 ZCode 0.16.x;rewind 会话按线性历史导入。
  • 工具结果超过 2 万字符、思考超过 1.2 万字符会截断并标注;超大历史分页读取,损坏行会跳过并计入统计。
  • macOS 已在实机上验证五个来源的端到端导入;Windows / Linux 路径与 SQLite 访问已在 CI 中处理,但 README 注明尚未在 Windows 真机用本地数据做导入验证。Kimi 桌面端内置 runtime 路径目前按 macOS 解析。

SQLite 访问优先使用 node:sqlite;缺少该模块时回退 PATH 上的 sqlite3 / sqlite3.exe,可用 SQLITE3 环境变量覆盖。

结尾

dsh-agent-session-import 把分散在多款 agent 本地的对话,以只读方式汇总进 DSH 会话,并提供分组列表、已导入标记与两种续聊友好程度不同的导入模式。安装与用法以 DSH 侧边栏 Plugins 与 Import Sessions 为准。

  • 目录页:https://www.skillhub.cn/plugins/howtomakeaname/dsh-agent-session-import
  • GitHub:https://github.com/howtomakeaname/dsh-agent-session-import
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜