dsh-session-import:跨工具会话迁移插件

前言

在 DSH 中做智能体开发时,很多会话会分散在 ChatGPT、Claude Code、Codex、Cursor 等外部工具里。如果想在 DeepSeek Harness(dsh)里继续查看这些会话、续聊、归档或沉淀经验,就需要一种统一的导入路径。

dsh-session-import 是 devmom 维护的 dsh 插件,MIT 许可。它把外部工具导出的会话导入 dsh,也可以把 dsh 会话导出为通用格式;同时提供隐私脱敏检测和知识抽取入口。

插件是什么

一句话定位:dsh-session-import 是面向 dsh 的跨工具会话迁移插件。

它提供的能力包括:

  • 15+ 源会话导入:ChatGPT / Claude Code / Codex / Kimi Code / ZCode / WorkBuddy / OpenClaw / Gemini / Cursor / Aider / Continue / Cline / OpenCode / Reasonix / GitHub Copilot Chat / 通用 JSON。
  • 导入产出原生 dsh session-log 事件,经 ctx.sessions 写入,并随官方 JSONL 持久化落盘。
  • 导入后的会话在 dsh Web UI 中原样渲染、可续聊。
  • 双向导出:dsh 会话可导出为 generic JSON / Markdown / transcript。
  • 隐私脱敏检测:API Key / 手机号 / 邮箱 / 身份证 / IP / 银行卡。
  • 知识抽取:决策 / 代码 / 约定可进入本地记忆去重沉淀,接 memory seam 接口。
  • Web 导入向导:支持多选勾选、标题选项和导入结果展示。
  • 对话式发现导入工具:chat_import_discover / chat_import_import
  • /session-import 斜杠命令:支持文件、目录、source 过滤、redactextract-knowledge
  • sessionImport 服务:供其它插件或脚本调用。
  • REST API:提供 adapters / import / scan-dir / import-dir / import-paths / history
  • bundle 清单:cordis.patch.ymlpackage.json#dsh.bundle
  • 独立开发向导:可选使用 npm run wizard

安装与启用

运行环境要求 Node.js >=18

先执行官方安装命令,把插件加入 web profile:

dsh plugin --profile web add -w session-import

这里需要 -w:pnpm 9.x 的 workspace-root 检查需要该标志,dsh plugin 会原样转发 pnpm 参数。

安装后,插件会以 dsh bundle 插件形式加载,提供命令、服务、REST 路由和 Web 导入向导。插件声明的清单文件包括 cordis.patch.ymlpackage.json#dsh.bundle

如果本地开发时通过 link 方式安装,Windows 下建议使用 link:<绝对路径> 说明符。pnpm 9.x 对 file:D:/... 绝对路径解析有已知问题;registry 安装不受影响。

维护者如需发布到 npm,需要准备 npm 账号。

典型用法

下面介绍几种常用入口。

斜杠命令

在 Web UI 中可以直接输入:

/session-import <导出文件路径> [--redact] [--extract-knowledge]

也可以按路径、目录和 source 过滤来导入:

/session-import C:\path\to\chatgpt\conversations.json          # 单文件
/session-import C:\Users\PC\.codex\sessions                    # 目录(递归扫描全部会话)
/session-import C:\Users\PC\.codex\sessions --source codex     # 只导 codex
/session-import <path> --redact --extract-knowledge            # 脱敏 + 知识抽取

经过上面的命令,插件会执行导入;如加上 --redact,会进行隐私脱敏检测;如加上 --extract-knowledge,会进行知识抽取。

Web 导入向导

Web 导入向导支持多选勾选、标题选项和导入结果展示。可以在界面中选择会话项,调整标题选项,并查看导入后的结果。

对话式发现导入

插件提供对话工具:

chat_import_discover
chat_import_import

对话式发现导入默认开启。若需要关闭模型工具,可在 bundle config 中设置:

enableModelTools: false

REST API

插件会暴露以下接口:

GET /api/session-import/adapters
POST /api/session-import/import
POST /api/session-import/scan-dir
POST /api/session-import/import-dir
POST /api/session-import/import-paths
GET /api/session-import/history

其中 POST /api/session-import/scan-dir 支持:

{ sourceFilter?, maxFiles? }

GET /api/session-import/adapters 可用于查看已注册源。GET /api/session-import/history 可用于查看导入历史。

sessionImport 服务

其它插件或脚本可以通过 ctx.get('sessionImport') 调用服务:

const svc = ctx.get('sessionImport')
// { ingest, sources, detectSource, parseCount, scanDirectory, ingestDirectory }

const preview = await svc.scanDirectory('C:/Users/PC/.codex/sessions', { sourceFilter: ['codex'] })
const batch = await svc.ingestDirectory('C:/Users/PC/.codex/sessions', { sourceFilter: ['codex'], redact: true })

先做 scanDirectory 查看扫描结果,再做 ingestDirectory 执行导入。

独立开发向导

如果没有完整 dsh 环境,也可以运行独立开发向导:

npm run wizard

数据落点

会话本体写入 dsh 官方 session-log。原文归档、导入历史、本地记忆写入:

$DSH_HOME/session-import/

如需覆盖数据目录,可修改 bundle config:

dataDir

适用场景与注意

适合需要把多个 agent 工具会话统一迁入 dsh 的场景,尤其是希望后续续聊、导出、脱敏、抽取知识的个人开发者或团队。

使用前注意:

  • 插件以当前 dsh 进程权限运行,会读取指定文件或目录、写入 dsh 会话和相关数据目录;安装前应检查源码、依赖和 MIT 许可证。
  • 隐私脱敏检测覆盖 API Key / 手机号 / 邮箱 / 身份证 / IP / 银行卡;导出或分享前,仍建议人工确认敏感信息。
  • 知识抽取会沉淀到本地记忆,使用前应确认 $DSH_HOME/session-import/ 或自定义 dataDir 的权限。

资源

目录页是独立插件目录,不等同于官方应用商店。

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

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

小夜