dsh-chat-import

by Nwflower

22 会话与消息github 检测到 manifest package.json#dsh 社区精选 收录于 08-13

把 13 家 coding agent(Claude Code、Codex、ChatGPT、Cursor、Gemini、opencode 等)的完整对话历史导入为可续聊的 DeepSeek Harness 会话,并支持反向导出回 Claude Code。

Import full-fidelity chat histories from 13 coding agents (Claude Code, Codex, ChatGPT, Cursor, Gemini, opencode, and more) as resumable DeepSeek Harness sessions, with reverse export back to Claude Code.

安装

dsh plugin --profile web add github:Nwflower/dsh-chat-import

GitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试

安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗

安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。

README

目录

📥 DSH Chat Import

便捷导入十余种外部 Agent 聊天历史,在 DeepSeek Harness 中继续对话,还可导出或写回 Claude Code、Codex、Kimi 等。

English 简体中文

npm version npm downloads License: MIT Node.js >= 22.13 CI GitHub stars 已收录于 Awesome DeepSeek Harness dsh.so security 已收录于 Awesome DSH Plugins

💡 简介 · 🚀 安装 · ✨ 功能一览 · 🗂 支持的来源 · 🛠 使用 · 🔑 关键行为 · 📚 文档 · ⭐ Star History · 🤝 贡献

一个插件,十余种来源 —— 全保真导入 DeepSeek Harness,无缝续聊,反向可互转 / 备份 / 交接。

更新日志(英文): CHANGELOG.md · 路线图: ROADMAP.md · 互转协议: docs/INTERCHANGE.md


💡 简介

dsh-chat-import 从 Claude Code、Codex、ChatGPT、Cursor、Gemini、Reasonix、opencode、MiMo Code、ZCode、Grok Build、OpenClaw、Pi Coding Agent、Hermes、Kimi CLI / Kimi Code、Qoder CLI 与 DSH 会话日志 导入聊天历史,将工具调用、思考过程一并导入,成为无缝继续的 DeepSeek Harness 会话。源文件只读读取(绝不改写),不碰 DSH 引擎;每次导入都成为一条全新会话,并按源 cwd 归入对应工作区。

同样支持导出和同步:export_claude 把 DSH 会话序列化回 Claude Code JSONL,Claude Code 可用 --resume 加载续聊;sync_to_claude 再把会话新增轮次增量写回 Claude Code 文件——带守卫、绝不静默覆盖;同一矩阵延伸到 Codex rollout(export_codex)与 Kimi wire(export_kimi),外加带 SHA-256 指纹与跨机器还原的便携 interchange bundle(export_bundle / restore_bundle)。

需要 Node.js ≥ 22.13,面向 dsh 0.1.x(实测 0.1.0-rc.6 / 0.1.0-rc.7)。


🚀 安装

dsh plugin --profile web add dsh-chat-import                    # npm 包
dsh plugin --profile web add -w link:/path/to/dsh-chat-import   # 本地源码(符号链接)

安装后:

  1. 导入 — 在任意 DSH 会话里调用任一 import_* 工具:
import_claude({ path: "~/.claude/projects" })
import_chatgpt({ path: "~/Downloads/chatgpt-export/conversations.json" })
import_local_jsonl({ path: "D:\downloads\session.jsonl" })
  1. 续聊 — 刷新会话列表,打开导入的会话,从源记录停下的地方继续对话。
  2. 发现与批量 — scan_discover() 先只读预览;侧边栏「导入会话」面板按工作区浏览、多选导入;/import-all 一键批量。
  3. 同步(可选) — 面板「同步」页提供双向增量同步(外部 → DSH、DSH → 外部),默认关闭。子代理对话默认双向过滤;excludeDirs 排除列表可按方向跳过指定工作区目录。

卸载:从 profile 的 bundles 移除 import-claude insert 行并重启 dsh;已导入会话保留,插件绝不自动删。


✨ 功能一览

能力 入口 说明
批量导入 16+ 源 import_*(17 个工具)· scan_discover · 侧边栏面板 · /import 单个文件、目录或整个数据库,每段对话成为独立会话
全保真续聊 导入即 DSH 会话 工具调用/结果、思考、标题、模型、时间戳原样保留,按源 cwd 归组工作区
矩阵导出 export_claude / export_codex / export_kimi DSH 会话序列化回 Claude / Codex / Kimi 格式,有损项逐条报告
便携备份 export_bundle / restore_bundle SHA-256 双指纹的 interchange bundle,可跨机器还原
增量写回 sync_to_claude 新增完整轮次追加回 Claude Code 文件,带守卫绝不覆盖
双向同步 面板「同步」页 Claude / Codex / Grok 双向增量同步;子代理对话默认过滤;excludeDirs 按目录排除
Agent 资产迁移 import_agents pi / opencode / Claude / Codex 的 agent、prompt、skill、指令转成 DSH skills
MCP 镜像计划 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 / CLI dsh-chat-import doctor 结构审计与迁移健康检查
幂等与保护 所有导入工具 expectedHash / restamp / 上下文预算保护;未变跳过、增长只追加
预设模式 + 系统提示词 设置页「插件」分区 TAB 导入会话补录默认预设模式;可选「导入系统提示词」作为上下文注入(默认关)

🗂 支持的来源

来源 存储位置 导入工具
Claude Code ~/.claude/projects/<slug>/<sessionId>.jsonl import_claude
Claude-3p(新端) %LOCALAPPDATA%\Claude-3p\claude-code-sessions(元数据经 cliSessionId 反查 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(CLI + 桌面版) ~/.reasonix/sessions/desktop-*.jsonl · %APPDATA%\reasonix\projects\<slug>\sessions\*.jsonl import_reasonix
opencode ~/.local/share/opencode/opencode.db import_opencode
MiMo Code(opencode fork) ~/.local/share/mimocode/mimocode.db import_mimocode
ZCode(z.ai CLI) ~/.zcode/cli/db/db.sqlite import_zcode
Grok Build ~/.grok/sessions/<project>/<session_id>/ import_grokbuild
OpenClaw ~/.openclaw/agents/<agent>/sessions/*.jsonl import_openclaw
Pi Coding Agent ~/.pi/agent/sessions/--<cwd>--/<timestamp>_<uuid>.jsonl import_pi
Hermes ~/.hermes/(Windows %LOCALAPPDATA%\hermes) import_hermes
Kimi CLI / Kimi Code ~/.kimi/sessions/<workdir-md5>/<sessionId>/wire.jsonl · ~/.kimi-code/sessions/<workspaceId>/<sessionId>/agents/main/wire.jsonl import_kimi
Qoder CLI ~/.qoder/projects/<encoded-project>/<sessionId>.jsonl(子代理在 <sessionId>/subagents/*.jsonl) import_qoder
DSH 会话日志 ~/.dsh/sessions/<encoded-workspace>/<sessionId>/session.jsonl(.zstd) import_dsh
任意本地 JSONL 任意 .jsonl 文件 / 目录(自动识别格式) import_local_jsonl

每次导入都保留源实际记录的内容;源格式无法保留的部分,会在导入报告里显式标注。各来源的格式细节与边界行为见 使用详解。


🛠 使用

所有 import_* 工具共用同一个 path 语义:单文件导单会话,目录递归扫描批量导入。常用参数:preview(零副作用预览)、force(另存完整新副本)、sessionId(覆盖目标 id)、expectedHash(SHA-256 强校验)、restamp(时间戳平移)、workspaceMode / workspaceDir(归组控制)。

import_claude({ path: "C:\Users\<you>\.claude\projects\<slug>\<sessionId>.jsonl" })
import_opencode({ path: "C:\Users\<you>\.local\share\opencode\opencode.db" })
import_local_jsonl({ path: "D:\downloads\session.jsonl", format: "claude" })

import_chatgpt / import_opencode / import_zcode / import_hermes 恒返回批量结果——一个文件 / 数据库包含全部会话,一次调用即可让每段对话成为独立会话。

完整工具 / 命令用法(参数、示例、边界行为)见 docs/USAGE.zh-CN.md。


🔑 关键行为

  • 只读导入 — 源转录与数据库绝不改写;导入的 DSH 历史 append-only。
  • 幂等 + 增量 — 未变源不重读直接跳过;增长只追加新增轮次;截断检测并上报。
  • 自动归组 — 按源 cwd 归入工作区(权威映射 → slug 解码 → 主目录沙箱防护;本机路径不存在时回退源文件目录)。
  • 预设模式 — 导入会话经 agents.create 挂默认 preset scope,并把默认 preset id 写回 SessionHeader.agentPreset,UI 上照常显示「预设模式」chip(与正常会话一致)。
  • 系统提示词(可选,默认关) — 设置页「插件」分区里的「会话导入」TAB 提供「导入系统提示词」开关;开启后把源 transcript 的 system / developer 提示词作为「上下文注入」折叠行保留,正文前置环境变更免责声明(工具 / 权限 / 执行指令以 DSH 当前会话为准)。Claude Code 的转录不落 system prompt,此开关对 Claude 源无效果。
  • 失败要大声 — 畸形行、疑似敏感信息、格式无法保留的部分、导出有损项,全部显式上报;每次落盘会话自动结构自检。
  • 沙箱 — 读取工作区外的源文件或写工作区外的导出目标,需要会话沙箱放行该路径。

📚 文档

文档 说明
使用详解 每个工具 / 命令的完整参数、示例与边界行为
互转协议 Interchange v1 协议与 bundle 格式
更新日志 版本历史(英文)
路线图 已实现 / 规划
贡献指南 开发环境、提交规范、安全与隐私

⭐ Star History

Star History Chart


🤝 贡献

欢迎贡献——fork 本仓库,新建 feature/<name> 分支,提交 PR。完整指南见 CONTRIBUTING.md。

  • 测试: npm test · 跨平台护栏: npm run check:linux
  • 仓库规范见 AGENTS.md:conventional commit(中文)、双语 README 必须保持同步、插件只消费公开 dsh host 服务、多会话并发走文件认领协议。

📄 许可证

MIT — 见 LICENSE。

原始 README: https://github.com/Nwflower/dsh-chat-import/blob/main/README.zh-CN.md ↗