前言¶
在 DeepSeek Harness(DSH)里做智能体开发,常见情况是:Claude Code、Codex、Cursor 等工具里已经积累了大段对话,换到 DSH 后却要从头开始。手动复制粘贴会丢工具调用、思考过程和上下文结构;只导出文本又无法在 DSH 里「接着聊」。
dsh-chat-import 面向这类迁移场景:从十余种外部 Agent 工具的本地存储读取会话,转成 DSH 可恢复的会话;必要时还能导出、增量写回或打包备份。下面介绍它的定位、能力与用法。
这是什么¶
dsh-chat-import 是 DSH 社区插件,维护者为 Nwflower,npm 包名 dsh-chat-import,当前版本 0.7.0,许可证 MIT。它在 SkillHub 插件目录 的分类为「记忆」,GitHub 仓库约 102 stars。
插件只做两件事的核心延伸:读外部来源的会话文件(只读,不改写源文件),在 DSH 里生成可按工作区归组的新会话;反向方向支持把 DSH 会话序列化回 Claude Code、Codex、Kimi 等格式,或通过 interchange bundle 跨机器还原。
运行要求:Node.js ≥ 22.13;面向 dsh 0.1.x(README 写明在 0.1.0-rc.6 / 0.1.0-rc.7 上实测)。
核心功能¶
多来源导入¶
支持从 17+ 种外部 Agent 来源导入,每段对话成为独立 DSH 会话。导入工具包括 import_claude、import_codex、import_chatgpt、import_cursor、import_gemini、import_reasonix、import_opencode、import_mimocode、import_zcode、import_grokbuild、import_openclaw、import_pi、import_hermes、import_kimi、import_qoder、import_workbuddy、import_dsh,以及通用入口 import_local_jsonl。README 共列出 18 个 import_* 工具。
全保真续聊指:工具调用与结果、思考过程、标题、模型名、时间戳尽量保留;会话按源 cwd 归入对应工作区。
发现与批量¶
scan_discover() 可先只读预览可导入内容。侧边栏「导入会话」面板按工作区浏览并支持多选;/import-all 可批量导入。
导出与同步¶
export_claude/export_codex/export_kimi:把 DSH 会话序列化回对应格式,有损项会报告。export_bundle/restore_bundle:便携 interchange bundle,带 SHA-256 指纹,可跨机器还原。sync_to_claude:把 DSH 会话新增轮次增量追加到 Claude Code 文件,带守卫、不静默覆盖。- 面板「同步」页:可选双向增量同步(外部 → DSH、DSH → 外部),默认关闭;子代理对话默认双向过滤;
excludeDirs可按方向排除指定工作区目录。
资产与配置迁移¶
import_agents:将 pi、opencode、Claude、Codex 的 agent、prompt、skill、指令转为 DSH skills。import_mcp//mcp-status:读取 Claude / Codex 的 MCP server 配置,生成可审阅的 DSH MCP client YAML 片段。import_settings//settings-suggest:把 Claude settings / Codex config 转为 DSH 迁移建议(只读)。/resume-claude//resume-codex:以外部 transcript 为不可信历史,生成交接摘要注入当前会话。
审计与保护¶
verify_session、doctor,或 CLIdsh-chat-import doctor:结构审计与迁移健康检查。- 导入工具支持
expectedHash、restamp、上下文预算保护;源未变则跳过,源增长则只追加。 - 设置页「插件」分区可配置导入会话的默认 preset;「导入系统提示词」默认关闭,开启后可将源 transcript 的 system / developer 提示词作为上下文注入。
支持的来源¶
下表摘自 README.zh-CN.md,存储路径因平台而异,导入前请在本机核对实际目录。
| 来源 | 典型存储位置 | 导入工具 |
|---|---|---|
| Claude Code | ~/.claude/projects/<slug>/<sessionId>.jsonl |
import_claude |
| Codex / ChatGPT CLI | ~/.codex/sessions/YYYY/MM/DD/rollout-*.jsonl |
import_codex |
| ChatGPT 网页导出 | 导出包中的 conversations.json |
import_chatgpt |
| Cursor | ~/.cursor/projects/<slug>/agent-transcripts/<id>/<id>.jsonl |
import_cursor |
| Gemini CLI | ~/.gemini/history/<slot>/chats/session-*.json |
import_gemini |
| Reasonix | ~/.reasonix/sessions/ 等 |
import_reasonix |
| opencode | ~/.local/share/opencode/opencode.db |
import_opencode |
| ZCode | ~/.zcode/cli/db/db.sqlite |
import_zcode |
| Grok Build | ~/.grok/sessions/<id>/ |
import_grokbuild |
| OpenClaw | ~/.openclaw/agents/<agent>/sessions/*.jsonl |
import_openclaw |
| Pi Coding Agent | ~/.pi/agent/sessions/ |
import_pi |
| Hermes | ~/.hermes/ |
import_hermes |
| Kimi CLI / Kimi Code | ~/.kimi/sessions/ 等 |
import_kimi |
| Qoder CLI | ~/.qoder/projects/ |
import_qoder |
| WorkBuddy | ~/.workbuddy/projects/ |
import_workbuddy |
| DSH 会话日志 | ~/.dsh/sessions/ |
import_dsh |
| 任意本地 JSONL | 任意 .jsonl 文件或目录 |
import_local_jsonl |
源格式无法保留的部分会在导入报告中标注。各来源边界行为见仓库内 docs/USAGE.zh-CN.md。
安装与启用¶
通过 DSH 插件命令安装 npm 包:
dsh plugin --profile web add dsh-chat-import
本地开发可用符号链接指向源码目录:
dsh plugin --profile web add -w link:/path/to/dsh-chat-import
卸载时从 profile 的 bundles 中移除 import-claude insert 行并重启 dsh;已导入的会话不会被插件自动删除。
典型用法¶
安装后,在任意 DSH 会话中调用 import_* 工具。所有导入工具共用 path 语义:单文件导入单会话,目录则递归扫描批量导入。
导入 Claude Code 项目目录:
import_claude({ path: "~/.claude/projects" })
导入 ChatGPT 网页导出:
import_chatgpt({ path: "~/Downloads/chatgpt-export/conversations.json" })
导入本地 JSONL(可指定格式):
import_local_jsonl({ path: "D:\downloads\session.jsonl" })
常用参数包括:preview(零副作用预览)、force(另存完整新副本)、sessionId(覆盖目标 id)、expectedHash(SHA-256 校验)、restamp(时间戳平移)、workspaceMode / workspaceDir(工作区归组控制)。
典型续聊流程:
- 调用
import_*完成导入。 - 刷新会话列表,打开导入的会话。
- 从源记录停下的位置继续对话。
可选:scan_discover() 预览;侧边栏面板多选导入;/import-all 批量导入;面板「同步」页配置双向同步。
关键行为¶
- 只读导入:源转录与数据库不被改写;DSH 侧历史为 append-only。
- 幂等与增量:源未变则跳过;源增长则只追加新轮次;截断会被检测并上报。
- 自动归组:按源
cwd归入工作区。 - 环境变更声明:每个导入会话在首个回合前注入折叠行,声明已迁移到 DSH,工具与权限以当前会话为准。
- 失败要大声:畸形行、格式有损、导出有损项均显式上报;落盘会话自动结构自检。
- 沙箱:读取工作区外的源文件或写入工作区外的导出目标,需要会话沙箱放行对应路径。
适用场景与注意¶
适合在以下情况使用:
- 从 Claude Code、Codex、Cursor 等工具迁到 DSH,且需要保留工具调用与上下文结构。
- 需要在 DSH 与外部工具之间交接会话,或做便携备份与跨机器还原。
- 希望把外部 agent、MCP、settings 一并迁移到 DSH 生态。
使用前请注意:
- 插件以当前 dsh 进程的权限运行,会读取本机 Agent 工具的会话目录;安装前应查看 GitHub 源码 与 MIT 许可证,确认可接受其读写范围。
- SkillHub 为社区独立目录,与 DeepSeek / 幻方无官方从属关系;DSH 生态遵循「一切皆插件」思路,本插件为社区维护的迁移工具,非 DSH 内置能力。
- 双向同步默认关闭;启用写回前建议先用
preview或scan_discover()确认范围。
链接¶
- SkillHub 目录页:https://www.skillhub.cn/plugins/Nwflower/dsh-chat-import
- GitHub 仓库:https://github.com/Nwflower/dsh-chat-import
dsh-chat-import 把分散在各 Agent 工具里的会话收成 DSH 可续聊的会话,并在需要时反向导出或打包。若你正从其他 Agent 环境迁到 DSH,或要在两套工具间交接上下文,可以按上文步骤安装并试一次 import_*。