dsh-session-export:DSH 会话导出插件

前言

在 DeepSeek Harness(DSH)开发或使用过程中,会话里积累的提问与回答往往需要归档、复用或分享给他人。直接复制粘贴既容易遗漏上下文,也不便于程序化处理。社区已有 @deepseek-ai/dsh-session-log-export 用于下载完整 Session 日志,但如果你只需要文本与最终回答、希望以 Markdown 或 JSON 形式批量导出、同时保持界面清爽,就需要一个更轻量的会话导出方案。

下面介绍 dsh-session-export。这是一款为 DSH 桌面端 / Web 端设计的会话导出插件,由 vi0let-dev 维护。它只会在「设置」里增加一个「会话导出」分区,不往侧栏或聊天页塞按钮,避免打断日常界面。

核心功能

插件提供以下能力:

  • 单会话 / 多会话:在会话列表中支持搜索、全选、清空和逐行勾选,可一次导出多个会话,结果合并成一个文件。
  • 默认内容:导出用户提问与每一轮对话的「最终回答」。最终回答取每一轮最后一条带文本或附件的 assistant 消息,中间步骤里的 reasoning 和 tool-call 不会被误当成最终回答。
  • 可选内容:按需附加思考过程、工具调用与结果、系统与运行时上下文。
  • 输出格式:Markdown(适合阅读、归档、粘贴到笔记)或 JSON(适合程序处理)。
  • 标题与元数据:导出文件包含会话标题、ID、工作目录、创建时间、最后活动时间、状态等元信息。
  • 只读:只读取会话日志,不修改会话、不写工作区记账、不删除任何东西。
  • 隐私:所有内容在 Host 本机生成,不联网、不上传。

安装与启用

插件仓库地址:https://github.com/vi0let-dev/dsh-session-export

前置要求:
- DSH 0.2.1-rc.2 左右的桌面端或 dsh web
- Node.js ^22.19.0 || >=24.0.0

安装方式一:从 GitHub 安装(推荐)

  1. 在 DSH 侧栏点击「插件」→「添加插件」;
  2. 在输入框中填入:
   github:vi0let-dev/dsh-session-export
  1. 点击「安装」。安装完成后会提示「立即启用」,点击启用;
  2. 完全退出并重启 DSH(bundle 行不会热加载);
  3. 重启后按 Ctrl+Shift+R 硬刷新页面。

命令行等价写法(跟随 main 分支):

dsh plugin --profile desktop add github:vi0let-dev/dsh-session-export

锁定到某个 tag(推荐,避免以后 main 变化):

dsh plugin --profile desktop add github:vi0let-dev/dsh-session-export#v1.0.0

安装后确认 profile 的 package.json 里 dsh.profile.bundles 包含 dsh-session-export。

安装方式二:本地目录(开发调试)

  1. 在「插件」→「添加插件」中输入插件目录的绝对路径,例如:
   D:\src\dsh-session-export
  1. 点击「安装」→「立即启用」;
  2. 完全退出并重启 DSH,再按 Ctrl+Shift+R 硬刷新页面。

命令行等价写法:

dsh plugin --profile desktop add "D:\src\dsh-session-export"

本地目录安装是软链接,修改代码后重新加载插件或重启即可,不要删除或移动原目录。本插件没有构建步骤、没有第三方依赖,不需要 pnpm approve-builds。

典型用法

安装完成后,打开「设置 → 会话导出」:

  1. 在列表中勾选一个或多个会话(默认会选中最近的、已打开的那个会话);
  2. 在「导出内容」里确认勾选项,默认已勾选「用户提问」与「最终回答」;
  3. 选择输出格式「Markdown」或「JSON」;
  4. 点击「导出」,浏览器会下载文件。

文件名示例:

dsh-session-<会话标题>-20261017-2315.md
dsh-sessions-3-20261017-2315.json

Markdown 结构示例:

# DSH 会话导出
> 导出时间 / 会话数量 / 导出内容

---
## 会话: <标题>
- 会话 ID / 工作目录 / 创建时间 / 最后活动 / 状态

### 第 1 轮 · 时间
#### 用户提问
...
#### 最终回答
...

(勾选思考过程 / 工具调用时,会以折叠块附在对应轮次下)

JSON 结构示例:

{
  "app": "dsh-session-export",
  "version": 1,
  "exportedAt": 1792249526189,
  "options": { "user": true, "assistant": true, "reasoning": false, "tools": false, "system": false },
  "sessions": [
    {
      "id": "session-...",
      "title": "...",
      "cwd": "C:\\...",
      "createdAt": 1792249261242,
      "updatedAt": 1792249526189,
      "turns": [
        {
          "turn": 1,
          "complete": true,
          "users": [{ "text": "...", "attachments": [] }],
          "assistant": { "text": "...", "attachments": [] },
          "reasoning": [],
          "tools": []
        }
      ]
    }
  ]
}

适用场景与注意

  • 适合需要批量导出会话、归档对话记录、或以程序化方式读取会话内容的使用者。
  • 插件以当前 DSH 进程的权限运行,所有会话内容仅在本机处理和下载,不会上传。
  • 安装前建议检查源码与许可证(MIT)。
  • 导出上限:一次最多 200 个会话,生成结果最多约 32 MB;超过会提示减少会话或内容选项。

小结

dsh-session-export 为 DSH 提供了一个轻量、隐私友好的会话导出方案,支持 Markdown 与 JSON 两种格式,默认只导出用户提问与最终回答,可按需附加思考过程、工具调用与系统上下文。它不修改会话、不联网、不写入仓库,适合需要长期保存和复用会话记录的开发者与使用者。

  • 插件目录页:https://www.skillhub.cn/plugins/vi0let-dev/dsh-session-export
  • GitHub 仓库:https://github.com/vi0let-dev/dsh-session-export
羽毛球分组比赛记分
小程序二维码

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

小夜