把 13 家 coding agent(Claude Code、Codex、ChatGPT、Cursor、Gemini、opencode 等)的完整对话历史导入为可续聊的 DeepSeek Harness 会话,并支持反向导出回 Claude Code。
安装
# npm 包(预构建)
dsh plugin --profile web add dsh-chat-import
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:Nwflower/dsh-chat-import
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
DSH Chat Import
基于 DeepSeek Harness 构建的会话导入插件:把其他 Agent 的聊天历史一键导入,接着在 DeepSeek Harness 里继续对话。
所有会话,尽续于此。
支持数据源
安装
插件要求 dsh 0.1.5-rc.1 及以上。已在 0.1.x 与 0.2.x 上验证过,其中 dsh-tools 需满足
>=0.1.0-rc.6 <0.3.0。
- 用终端安装
dsh plugin --profile web add dsh-chat-import # npm 包
- 或者从插件市场安装
使用
- 通过 GUI 导入会话
点左侧栏底部的「导入会话」按钮打开导入窗口(用 DSH Claude Style 主题时,这个按钮收在左下角的账号菜单里),选好要导入的会话,一键导入。
会话行自带工具:双击行打开只读预览(跑的是导入的 dry-run,插件注入的消息不出现,工具调用折成一行);搜索框可切到「搜内容」按正文检索;可以把行隐藏(可撤销);可以把单会话来源的文件移进回收站;也可以把行拖到左侧栏的工作区上,导入到那个工作区并把时间轴平移到「现在」,让它排在最上面。规则细节见 docs/USAGE.zh-CN.md。
手上是别的工具导出的文件(网页版导出、自己写的脚本、列表里没有的工具)时,用同一个窗口顶部的「从文件导入」:填本机路径后回车,或者点「选择…」挑文件。路径是目录时会先问你要不要搜索子文件夹。预览确认之后再导入。识别不出格式时,会逐个列出候选解析器的失败原因,并给出把该格式转换过来的 Skill 指引。
截图界面用的是作者另一个主题插件 DSH Claude Style 的 DeepSeek 配色。它在 DSH 里复刻了 Claude Code Desktop 的视觉与交互,提供 Claude、DeepSeek 两套配色;看惯了默认主题的话可以试试。截图里的工作区与会话都是示例数据。
- 让 Agent 调用工具导入
# 参考调用格式
import_chat({ format: "claude", path: "~/.claude/projects" })
import_chat({ format: "chatgpt", path: "~/Downloads/chatgpt-export/conversations.json" })
import_chat({ format: "local-jsonl", path: "D:\downloads\session.jsonl" })
Cursor 的工作区分组与导入优先按对话 id 查询本机 Cursor 工作区登记册,只采用现存目录。导入始终重新读取,发现缓存成功结果并在 DB/WAL 变化时失效;畸形 JSON 与文件系统读取失败会在诊断告警中计数。没有可用登记时,仍回退转录所在项目目录名的解码。
配置
为了照顾 TUI 用户,插件提供的工具默认会注入上下文。你可以在设置页里把它们设成不注入或只注入一部分,这样能省下不少 token。
每个工具、每条命令的完整用法见 docs/USAGE.zh-CN.md。
第三方插件可以通过可选的 chatImport Host Service 调用 scanDiscover()、importPath()、importAll() 和 resumeSummary()。这四个方法复用与工具、命令相同的发现、导入、批量导入与交接摘要管线;单会话导入的返回值带 sessionId。服务不存在时,调用方要自己降级。
功能一览
| 能力 | 入口 | 说明 |
|---|---|---|
| 导入 | 侧边栏面板的「导入」页 | 从其他 Agent 导入对话,保留推理过程、工具调用结果和系统提示词(可选) |
| 文件导入 | 面板「从文件导入」/ /import auto <path> |
任意本地文件或目录:三级探测(显式格式 > 内容标记 > 逐格式试跑)、预览先行、目录会问要不要搜索子文件夹。识别失败时摊开各解析器的原因,一键复制可直接发给 Agent 的任务模板,并注册 dsh-chat-import-convert 转换 skill |
| 撤回导入 | 侧边栏面板的「历史」页 | 查看导入记录,一键删除本插件创建的会话 |
| 导出 | 上下文工具 | 把 DSH 会话序列化回外部 Agent 的格式 |
| 忽略 | 自动登记 + /ignores 命令 |
归档、删除、删工作区时自动登记源,重扫时跳过;用 /ignore、/unignore 管理忽略表 |
Codex 的会话标题优先取 session_index.jsonl 里保存的标题(thread_name),所以 Codex 里改过的名字也能显示。没有索引标题时,才按与导入共用的提取逻辑回退到首条真实提问,并排除注入的页面上下文。标题索引按行流式读取,同一会话取最后一条有效记录。
Codex 的活动时间取日志头尾有界窗口里最新的有效时间戳,并合并所有 rollout 分页的结果。只有日志里完全没有时间时才回退文件修改时间,所以宿主文件服务不提供修改时间也能取到活动时间。被窗口截断的记录里的时间戳可能漏掉。
Claude Code 的 fork 会话(新版桌面端会话菜单与 --fork-session)同样会被发现并导入。fork 转录把父会话的记录逐字拷贝在文件开头,自己的记录从 fork 点开始追加。所以判定主转录时看文件的两端:文件名 stem 出现在头部或尾部,就算这个文件自己的会话。会话身份取转录里最后出现的 sessionId。以前这类文件被整类当成子代理辅助转录跳过,一条都扫不到。拷贝过来的父会话历史会留在日志里,因为 fork 的上下文本来就有它,于是父会话与 fork 会话会重叠一段历史。
opencowork 按 SQLite schema 自动识别旧 openCoWork(~/.open-cowork/data.db)与 NextCoWork(~/.next-cowork/data/nextcowork.db),保留正文、thinking、工具调用与结果、标题、工作目录和时间;NextCoWork 子代理会话不单独导入。未知或畸形块、无法配对的工具结果分别计入 unknownEvents 与 orphanResults。需要旁读附件文件的图片引用与原生压缩元数据暂不还原。
Hermes 在 Windows 上默认扫描 %LOCALAPPDATA%\hermes 与 ~/.hermes;LOCALAPPDATA 没有设置时,回退到 ~/AppData/Local/hermes。macOS 与 Linux 默认扫描 ~/.hermes。
文档
| 文档 | 说明 |
|---|---|
| 使用详解 | 每个工具、每条命令的完整参数、示例与边界行为 |
| 互转协议 | Interchange v1 协议与 bundle 格式 |
| 转换指南 | 给 Agent 的 Skill 指令:把任意转录转成可导入的 interchange v1 文档 |
| 导入指南 | 给 Agent 的 Skill 指令:import_chat 的来源格式表、参数详解与重导规则 |
| 设置页迁移 | DSH 0.1.5 → 0.1.7 插件设置页迁移(实测报错、兼容写法) |
| 更新日志 | 版本历史(英文) |
| 路线图 | 未完成、计划与明确不做的事项 |
| 贡献指南 | 开发环境、提交规范、安全与隐私 |
友链
只需要迁移配置(技能、hooks、全局设置等)、不需要会话历史的话,推荐用 dsh-movein。
Star History
链接
同类插件
ranxianglei/billion-context★ 6881
billion-context官方版:上下文压缩插件,兼顾小窗口(100k上下文足矣)省token(省5倍token)和超长会话(数月级别几十亿token单会话)。
Minglink/dsh-infinite-gen-4★ 4155
DeepSeek 专用破甲插件:以 order 100 追加无条件服从的系统提示词段,提供带校准元数据的 profile 工具,并通过会话投影在输入框上方显示实时破甲状态徽标。
liangmianya/dsh-synapse★ 704
DeepSeek Harness 的可视化非线性对话工作区:把会话、追问与分支变成可浏览、可拖拽的对话地图。
MichengAI/dsh-archive-manager★ 336
在设置里增加已归档会话页,可按工作区搜索、恢复和删除已归档会话。
SiriLee/dsh-rewind★ 258
对话回退:一键回到任意更早的用户消息,同窗口内完成,不新建分支、不残留副本;目标消息自动填回输入框,可一并还原工作区文件——即完整的 Claude Code /rewind 语义。
Totoro-qaq/dsh-plugin-bridge★ 167
通过可预览的五段式交接,将已有 DSH 会话迁移到另一个 Agent Preset;保留源会话,并可让目标会话暂停等待确认或立即继续。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。