对话录(dsh-share-transcript):把 DSH 会话片段导出为可编辑 Markdown 或 PNG

前言

在 DSH 里跑完一段多轮对话后,常见需求是:只分享其中几轮、去掉思考链或工具细节、顺手脱敏路径和密钥,再复制到文档或导出成图片。直接截图会带上界面噪音;整段复制又往往包含不需要的轮次或注入内容。社区插件 heix0x/dsh-share-transcript(目录名 share-transcript)面向「选轮次 → 改草稿 → 复制或导出」,默认脱敏,路由只读且走与官方 API 相同的鉴权边界。下面介绍它是什么、怎么装、怎么用,以及安装前值得留意的安全说明。

这是什么

对话录 是维护者 heix0x 发布的 DSH 客户端插件:从会话日志按轮聚合转写,在独立页面里勾选轮次、编辑右侧草稿,再复制到剪贴板或导出为带 front matter 的 .md、900px 宽的 .png 卡片。转写数据来自 sessionQuery.readSession,不依赖聊天界面 DOM,长会话不会因虚拟滚动只拿到尾部。

  • 目录页:https://www.skillhub.cn/plugins/heix0x/dsh-share-transcript
  • 源码与说明:https://github.com/heix0x/dsh-share-transcript
  • 当前 package 版本(资料中的 package.json):0.16.0,许可证 MIT

核心功能

两个入口

  1. 会话列表:某条会话「…」菜单 → 导出对话 — 默认整段全选。
  2. 聊天内:任意 AI 回复下方的分享图标 — 默认预选「这条 + 往上 4 轮」。

编辑与导出页面

  • 左侧按轮列出,Shift + 点击可连选;右侧为可直接修改的草稿。
  • 预设三档:对话录(Q/A)、完整(带思考)、只要 AI;另有 含工具、脱敏 两个开关。
  • 顶部显示 PNG 导出时的图片容量相关提示(README 截图说明)。
  • 导出方式:复制到剪贴板、.md(含 front matter,便于 Obsidian 等)、.png(Canvas 自绘,深浅色跟随主题)。

Host 与聚合规则(实现要点)

Host 提供只读接口,例如 GET /plugins/share-transcript/transcript?session=&message= 返回按轮聚合的转写;message 可单独使用,会在最近 12 个会话中查找该消息并反推轮次,超出预算返回 message-scan-limited。

按轮划分与内容取舍(与 README 一致):

  • 以 turn/start 划分轮次;只收录 source.kind === 'user' 的人类消息。
  • 一轮内多个 assistant/message 正文合并;reasoning 单独保存;tool/call 仅保留名称与一行摘要。
  • runtime-context、skill-catalog、agent-instructions 等注入不会进入转写;跨会话引用用 [引用开始] … [引用结束] 围栏并声明为资料而非指令。

安全与脱敏(默认行为)

  • 所有路由先经 ctx.connection.requestRejection(req),与官方 /api 同鉴权;无凭据本地请求得 401;拿不到 connection 服务时 503,不会退回 loopback 放行。
  • 全部为只读 GET,无写操作。
  • 默认脱敏:家目录 → ~、sk-/ghp_/AKIA、Bearer、邮箱等;打开脱敏会对已有草稿就地处理。草稿含 <system-reminder> / <skill_content> 时页面会额外警告。
  • 已知边界:非家目录绝对路径与项目名不脱敏,分享前需自行确认。细节见仓库 SECURITY.md。

安装与启用

在 DSH 插件 → 添加插件 中粘贴以下任意一行(两种写法等价,README 标注实测可装):

https://github.com/heix0x/dsh-share-transcript
github:heix0x/dsh-share-transcript

也可以对 agent 说明安装 github:heix0x/dsh-share-transcript,由 plugin_manager 的 install_bundle 完成。

命令行 dsh plugin --profile <name> add … 对 desktop profile 无效(由 Electron 独占,会报 profile "desktop" is managed exclusively by the Electron application);该命令仅适用于自建 profile(例如 dsh-tui)。

装完后刷新页面:会话「…」菜单应出现 导出对话,AI 回复下方出现分享图标。升级时需先 remove_bundle 再安装,否则不会加载新的 JS 模块;插件无热重载,改代码后同样需 remove → install。

典型用法

  1. 从会话菜单进入:整段对话默认全选,在左侧取消不需要的轮次,右侧改标题或措辞。
  2. 从某条 AI 回复的分享图标进入:默认已选该条及向上 4 轮,用 Shift 连选扩展范围。
  3. 按需要切换「对话录 / 完整 / 只要 AI」,决定是否 含工具、是否 脱敏。
  4. 选择 复制、下载 .md 或 .png 完成分享。

想确认某个开关含义时,README 建议将鼠标停在按钮上查看说明。

适用场景与注意

适合:需要把 DSH 对话片段整理成 Markdown 笔记、Obsidian 属性(front matter)、或一张可传播的 PNG 卡片;希望在导出前编辑并默认脱敏常见密钥与家目录路径的开发者。

注意:

  • 插件在当前 DSH 进程权限下运行;安装前应阅读源码与 MIT 许可证,并理解 SECURITY.md 中的边界。
  • SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系;本文事实以 GitHub README 与仓库文档为准。
  • 开发自测:npm test(README 写明 18 个断言);结构说明见 ARCHITECTURE.md(npm run map 生成)。

结尾

对话录把「选轮、改稿、脱敏、只读导出」收进 DSH 客户端的两个入口,适合在分享前少踩密钥与注入内容泄露的坑。进一步细节见仓库 docs/how-it-works.md、ROADMAP.md、CHANGELOG.md。

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

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

Xiaoye