前言¶
DSH 的会话默认只留在本机。要把一段对话发给同事或留档时,常见做法是长截图、整段复制,或导出原始日志——前者难检索,后者体积大且容易带上路径、令牌等敏感信息。
Session Share(仓库 dsh-plugin-session-share)做一件事:在本机把会话事件流整理成一份可以独立存在的文档,默认脱敏后再交付。维护者为 CJXIAO0718,在 SkillHub 社区目录中归类为「记忆」。插件当前版本为 0.1.0,MIT 许可证;要求 DSH 桌面端 ≥ 0.2.1-rc.2,Node ≥ 20。
这是什么¶
插件 id 为 session-share-html。它解析 DSH 会话事件流,区分真人对话与系统注入,折叠工具调用,并按确定性规则脱敏,再渲染成自包含的单文件 HTML(不依赖 JS、CDN、字体,双击即可阅读)。若你自建「边注」托管服务,还可以上传结构化快照 dsh.session-share/v1,得到只读链接 /s/:id;整理与脱敏仍在本机完成,出网前已完成脱敏。
核心功能¶
下面列出 README 中已说明的能力,均在本机或你自建的边注服务上完成。
| 能力 | 说明 |
|---|---|
| 导出单文件 HTML | 由 lib/render.js 生成排版,零外部资源 |
| 部分消息分享 | 界面「选择对话后分享…」,或 CLI --pick m12,m13;条目 id 稳定可复用 |
| 默认脱敏 | 12 条确定性规则(家目录、password / api_key、Bearer、sk-、常见云厂商令牌等);页头显示「已脱敏 N 处」 |
| 系统内容折叠 | system-reminder、运行时环境、工具清单、子代理汇报等折叠为灰色小卡,原文保留 |
| 思考过程 | --reasoning omit / count / full,默认不展示 |
| 主题 | 浅色 / 深色 / 跟随系统(auto) |
| 边注发布 | 上传快照后获得只读链接;发布者可撤回 |
| 给自动化用 | 离线 CLI 成功时 stdout 一行 JSON;插件还提供 share_conversation_html 工具 |
两种交付形态对比:单文件 HTML 适合发文件、归档、离线留存,发出后无法撤回;边注链接适合频繁分享与长期访问,需自建托管,发布者可随时撤回。
安装与启用¶
前提:DSH 桌面端 ≥ 0.2.1-rc.2。装完后完全退出 DSH(含托盘)再启动,插件首次挂载只在进程启动时完成。
方式 A · 插件市场索引(推荐)¶
在 DSH 打开「插件 → 发现」,添加索引源:
https://raw.githubusercontent.com/CJXIAO0718/dsh-plugin-session-share/main/market/index.json
然后在市场里搜索 Session Share 安装。若「插件」页没有「发现」标签,说明市场 bundle 未启用,需先按仓库 docs/publish.md 启用后再添加索引源。
方式 B · 按 git 地址安装¶
安装串为 pnpm spec,commit 以仓库 market/index.json 为准(钉 40 位 commit,不要用 #main):
git+https://github.com/CJXIAO0718/dsh-plugin-session-share.git#<40 位 commit>
方式 C · 本地脚本挂载(开发者)¶
Windows 下可用仓库内 install.ps1 写入 profile 的 cordis.patch.yml。同一台机器不要同时用方式 C 与方式 A/B,否则同一包名两个来源可能导致客户端组合失败;切换前执行 install.ps1 -Uninstall。
验证¶
- 设置 → 插件,确认 id =
session-share-html且 phase 为 active; - 打开任意会话,对话头部出现「分享为 HTML」;
- 预览或下载成功即通过。
若 DSH 无法启动,可完全关闭进程后运行仓库根目录的 如果DSH起不来-双击我.cmd 回滚 cordis.patch.yml 到安装前备份(仅改该文件,不动会话与工作区)。
典型用法¶
会话内操作¶
- 对话头部点「分享为 HTML」→ 预览或下载;渲染在本机,默认不上传。
- 输入框命令(默认行为可在「连接设置…」里三选一,保存在
$DSH_HOME/session-share/settings.json):
/share 按连接设置里的默认行为(出厂:本机预览)
/share preview 本机预览
/share download 本机下载
/share publish 发布到边注(需先填主机与个人令牌)
分享菜单第三项「选择对话后分享…」可只勾选部分消息;列表摘录在服务端已脱敏。
离线 CLI¶
适合批量、脚本或无桌面端场景:
node tools/render-session.mjs \
--log <session.v4.jsonl.zstd 或 .jsonl> \
--out <out.html> \
[--reasoning omit|count|full] [--pick m12,m13] [--no-redact] [--title "标题"]
成功时 stdout 仅一行 JSON(含 out、bytes、stats 等);失败 stderr 一行中文错误。退出码:0 成功,1 运行失败,2 参数非法。会话日志默认路径形如 %USERPROFILE%\.dsh\sessions\<工作目录编码>\<session-id>\session.v4.jsonl.zstd。
发布到边注(可选)¶
边注是仓库 server/ 下可独立部署的 Node 应用,不随 npm 包发布。本地 HTTP 测试示例:
cp server/.env.example .env
docker compose -f compose.server.yml up -d --build
在 DSH 分享菜单填写「连接设置…」中的主机地址与个人令牌后,使用「发布到边注…」。令牌存本机 settings.json,权限 0600,接口不回传令牌明文。
配置项¶
插件 config(由 lib/index.js 读取):
| 键 | 取值 | 默认 | 说明 |
|---|---|---|---|
theme |
auto / light / dark |
auto |
分享页初始主题 |
redact |
true / false |
true |
脱敏总开关;false 为原样输出,慎用 |
适用场景与注意¶
适合需要把 DSH 对话整理成可读文档、默认脱敏后再外发或归档的开发者;若团队已有边注实例,可改用只读链接并支持撤回。
插件以当前 DSH 进程权限运行,能访问本会话相关数据与配置。安装前应阅读仓库源码与 MIT 许可证,确认脱敏规则是否满足你的合规要求;redact: false 会原样输出,仅在完全可信环境使用。
社区目录(如 SkillHub)与 DeepSeek / 幻方无官方从属关系;DSH 生态理念是「一切皆插件」,本插件为社区维护的独立项目。
链接¶
- 社区目录页:https://www.skillhub.cn/plugins/CJXIAO0718/dsh-plugin-session-share
- 源码与完整文档:https://github.com/CJXIAO0718/dsh-plugin-session-share