前言¶
在 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
核心功能¶
两个入口¶
- 会话列表:某条会话「…」菜单 → 导出对话 — 默认整段全选。
- 聊天内:任意 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。
典型用法¶
- 从会话菜单进入:整段对话默认全选,在左侧取消不需要的轮次,右侧改标题或措辞。
- 从某条 AI 回复的分享图标进入:默认已选该条及向上 4 轮,用 Shift 连选扩展范围。
- 按需要切换「对话录 / 完整 / 只要 AI」,决定是否 含工具、是否 脱敏。
- 选择 复制、下载 .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