跳到正文
dsh-market 浏览插件 GitHub EN

chrisx9z/dsh-session-chat-share

将选中的聊天片段分享为 Markdown、HTML、TXT 或 PNG;提供 Session Header 弹窗(范围或多选、脱敏、工具调用、子代理对话)与 /share 命令。

Star 数 ★ 1 分类 会话与消息 收录于 2026-09-01

安装

在 DeepSeek Harness 里通过 dsh-market 安装

dsh plugin --profile web add dshmarket

或使用命令行

dsh plugin --profile web add github:chrisx9z/dsh-session-chat-share

装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络。请先审阅源码,并尽量锁定 commit(github:owner/repo#sha)。

README

English | 中文

将选中的聊天片段分享为 Markdown、HTML、TXT 或 PNG——面向 DeepSeek Harness 的社区插件(已标记 dsh-plugin,并收录于 awesome-dsh-plugin 市场目录)。

本仓库是该插件的独立分发版:host 与 browser 两个半区均以预构建产物(lib/)随包发布,可通过 dsh plugin add 或插件市场安装。参考实现位于 harness 仓库的 packages/session-query/session-chat-share,两个半区在那里构建并通过测试。

兼容性:DeepSeek Harness 0.1.6-alpha.2 或更高版本。插件通过 host 的 session-query 服务与一条载荷路由读取会话数据,并把控件贡献到 Session Header 的 utilities 槽位。更早的 harness 版本(0.1.0-rc.x)请改用此前的 dsh-chat-share 包(最后兼容版本为 dsh-chat-share@1.3.0)。

功能

  • 注册 Web /share 斜杠命令:/share 打开对话框,/share txt 将整个聊天保存为一个 .txt,/share last <n> 只保存最新的 n 条消息(可组合:/share txt last 10)。
  • 浏览器半区在 Session Header 添加 Share 按钮;若 harness 的 ui-workspace 提供 sessionRowMenu 贡献注册表,还会向每个会话的侧边栏 ... 菜单添加 分享 与 保存 TXT 两项。对话框列出会话中可分享的消息(追加来源的 user/message 与 assistant/message 文本),可通过 From/To 下拉框或点击消息行选择闭区间范围——也可切换到多选模式导出所选行的并集——选择 Markdown、HTML、TXT 或 PNG,预览渲染结果(GFM),然后复制到剪贴板或下载为文件(.md / .html / .txt / .png)。不会上传任何内容:接收方直接打开产物即可。
  • 选项:脱敏敏感信息(凭据形态与本地绝对/家目录路径,默认开启)、包含工具调用(有界工具调用行,默认关闭)、包含子代理对话(子会话以分节标题追加,默认关闭)。
  • HTML 产物是自包含页面,具备 GFM-lite 渲染(标题、列表、表格、引用、链接、围栏代码、行内代码/强调),并把会话图片以 data URI 内嵌;产物跟随当前 UI 语言。PNG 是把 HTML 产物栅格化成长图。
  • 可选的 host 端自动保存:在插件行上配置 autoSaveDir 后,每个回合结束都会为每个会话写一个 TXT。
  • 会话数据通过 host 的 session-query 服务冷读,因此无论浏览器已分页多少内容,导出都覆盖整个会话——不改动持久化,也不涉及模型。命令停留在人工命令平面,Token 影响为零。

安装

npm(推荐——插件市场优先 npm 源):

dsh plugin --profile demo add dsh-session-chat-share

GitHub(备选;附带相同的预构建产物):

dsh plugin --profile demo add github:chrisx9z/dsh-session-chat-share#v1.4.4

包内已带预构建产物(lib/——host 与 browser 两个半区),两种安装都不需要构建步骤。发布版本以 v1.x.y 标记;如需可复现安装,可固定 tag 或 commit。

然后在该 profile 的任意会话中使用:

/share

插件市场

插件已收录于 awesome-dsh-plugin 目录,因此会出现在 设置 → 插件市场 中——可浏览、一键安装,目录刷新后即可获得更新(通常一天内生效)。上方的 npm 源可让市场安装直接解析到已发布的包。

浏览器半区要求

已安装包的浏览器半区由 host 的 dsh.client 扫描识别,因此只要其组合包含本插件,Header 按钮与对话框即可工作。其导入仅限所有 Web 构建都提供的平台模块(@deepseek-ai/dsh-client-store、@deepseek-ai/dsh-client-ui-primitives、React),外加一份用于 PNG 导出的内置 html-to-image。

若要走官方分发路径(harness 仓库自带的 Web bundle),请把包集成到 packages/session-query/session-chat-share,并在 packages/bundle/web-app/cordis.patch.yml 中组合 chat-share 行。

工作原理

  • Host 半边(src/index.ts):在人工命令平面注册 /share,并提供 GET /api/session.share?sessionId=<id>&includeSubagents=<bool>。该路由通过 sessionQuery 观测会话(活跃或冷会话),把持久事件折叠为可分享消息(user/message、assistant/message、追加来源的 tool/call),在需要时追加直接子代理会话,并把引用的图片内联为 base64。配置 autoSaveDir 后,它还会在每个回合结束为每个会话写一个 TXT。
  • 浏览器半区(src/client/):控制器每个会话只取一次载荷,维护每会话对话框状态,按选项过滤行,并用纯渲染器(render.ts)把所选范围渲染为 Markdown(角色标题下保留原文)、自包含 HTML 页面(GFM-lite)、纯文本或 PNG 长图。
  • 对话框最多列出最新的 300 行并会提示;直接保存(/share txt)始终导出完整对话。

开发与测试

包的测试套件(命令与载荷路由行为、控制器状态、渲染器、对话框、Header 操作,以及真实的 Loader 组合)需要在 @deepseek-ai/* 工作区依赖可解析的 deepseek-harness 检出中运行:

pnpm exec vitest run packages/session-query/session-chat-share

限制

  • 对话框最多列出 300 行可分享消息;更早的消息可通过直接保存获取,直接保存始终导出完整对话。
  • 分享是复制/下载产物,而非托管链接:不上传任何内容到服务器。
  • 脱敏是尽力而为的模式匹配,不构成保证;分享前请自行检查产物。
  • 消息文本按界面呈现分享;推理文本与工具结果不包含在内(仅工具调用,需显式开启)。
  • 侧边栏 ... 菜单项需要 harness 的 ui-workspace 提供 sessionRowMenu 贡献注册表;在原始 harness 上插件仍会挂载,入口为 Header 按钮与 /share。

License

MIT

内容来自项目 README(GitHub)↗

评论

评论存放在 GitHub Discussions。用 GitHub 账号登录后可发表评论或点表情。