dsh-session-md-export:把 DSH 会话导出为可读 Markdown

前言

在 DeepSeek Harness(DSH)里跑完一段对话后,你往往还需要把内容留档、贴进笔记,或交给另一个模型继续处理。DSH 自带的 /export 会下载会话日志 ZIP,里面是 JSONL 和附件,适合备份和排障,但人眼很难直接读。若目标是「只要对话、能进 Obsidian / Notion / 飞书」的那份文本,就需要另一条导出路径。下面介绍社区客户端插件 dsh-session-md-export(维护者 yunfong),它把当前会话一键转成只含对话的 Markdown 文件。

这是什么

dsh-session-md-export 是 DSH 的客户端插件,npm 包名同为 dsh-session-md-export,源码在 GitHub。一句话定位:把 DeepSeek Harness 会话一键导出成可读的 Markdown,仅保留对话,不保留工具调用、工具输出、思考过程等噪声(README 英文摘要:dialogue only, no tool noise)。

插件归类为客户端,在 Web 界面注入会话标题栏按钮,并注册 /md 命令与下载路由;与 DSH「一切皆插件」的扩展方式一致。社区目录页见 SkillHub(独立站点,与 DeepSeek / 幻方无官方从属关系)。

核心功能

导出结果面向阅读与二次使用,不是完整会话备份。

保留 丢弃
用户消息正文 工具调用与工具结果
助手正文 思考过程(reasoning)
ask_user_question 的问答 系统提示、注入的运行时上下文
压缩点标记 命令、任务、重试等日志事件

ask_user_question 是例外:回答只出现在工具结果里,但语义上是用户说的话,插件会按「问题短标签:答案」还原成用户发言,避免记录失真。

生成的 Markdown 结构包括:以用户首条消息为文档标题、引用块中的会话名与时间戳、以及用 👤 用户 / 🤖 助手 区分的轮次。完整样例见仓库 docs/sample.md;为何不做 frontmatter、工具摘要或 full 档等设计取舍见 docs/design.md。

下载文件名格式为 <会话标题>-<yyyyMMdd-HHmm>.md;中文标题使用 RFC 5987 编码,避免乱码。

安装与启用

先做 CLI 安装(README 原文命令,profile 为 desktop):

dsh plugin --profile desktop add dsh-session-md-export

或在 DSH 里打开「插件 → 添加插件」,输入包名 dsh-session-md-export,重启后生效。

兼容性(来自 README 与 package.json 的 engines.dsh):

  • 需要 DSH >=0.2.1-rc.3 且 <0.3.0(package.json 中为 <0.3.0-0)。
  • 会话头部的下载按钮仅在 Web 界面提供;命令与下载路由同样只在 Web 载体上注册。

安装前建议自行查看 仓库源码 与 MIT 许可证。插件以当前 DSH 进程权限运行,添加第三方插件前应确认来源与许可。

典型用法

两种方式,行为一致:

  1. 会话头部按钮:在会话标题栏最右侧点击下载图标,浏览器直接下载 .md 文件。
  2. 斜杠命令:在输入框输入 /md,触发同一路由的导出。

经过上面的步骤,你得到的是「对话版」Markdown,而不是 /export 的 ZIP 日志包。

适用场景与注意

适合谁

  • 要把 DSH 对话整理进笔记或文档协作工具、或作为上下文喂给其它模型,且不需要工具链细节的人。
  • 只需要可读 transcript,不需要 JSONL 级排障数据的人。

务必注意

  • 导出的 Markdown 忠实保留你在会话里输入过的全部内容,可能含密钥或内部信息;对外分享前请自查。
  • 向仓库提 issue 时,请勿附带真实会话的导出文件或日志;复现问题请用合成数据(项目测试使用 test/fixture.jsonl 即属此类)。

当前 npm 版本为 0.1.0(见 package.json);GitHub 星标数为 1(目录页与线索一致,仅作规模参考,不代表质量结论)。

结尾

若你的痛点是「ZIP 日志能备份但不能读」,dsh-session-md-export 补的是可读 Markdown 这一条腿:Web 里点下载或敲 /md 即可。更多信息见 SkillHub 目录页 与 GitHub 仓库。

羽毛球分组比赛记分
小程序二维码

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

小夜