← 返回列表
未验证
一键把 DeepSeek Harness DSH Web 对话导出为 Markdown / JSON 的本地插件
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/21 · 已提供中文文档
一键把 DeepSeek Harness (DSH) Web 对话导出为 Markdown / JSON 的本地插件
综合分
27.9
GitHub 分
27.9
用户评分
—
★ Stars
1
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add DESTINYwang0428/dsh-conversation-export该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/18(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
dsh-conversation-export
一键把 DeepSeek Harness(DSH)Web 的对话导出为 Markdown 或 JSON 的本地插件。
License
Node
CI
特性
- 入口顺手:导出按钮位于输入栏「访问模式」选择器右侧,找不到时回退为右下角悬浮按钮
- 任意会话:面板列出本机全部会话,自动选中当前会话并标记「当前」
- 两种格式:
- Markdown — 标题 + 元信息表 + 按轮次分组的用户/助手消息
- JSON — 结构化导出(turns → steps → tools,工具参数与返回结果)
- 可选内容:工具调用(默认压缩为一行摘要)、思考过程(默认隐藏),导出时勾选展开
- 好用:面板 × / 点击外部 / ESC 均可关闭;文件名 = 会话标题 + 会话 ID
- 零依赖侵入:直接读取会话日志文件(zstd 分帧解压),不依赖 DSH 内部服务
目录结构
dsh-conversation-export/
├── plugin/
│ └── dsh-export.mjs # 插件本体(安装时从这里复制)
├── examples/
│ └── cordis.patch.yml # profile 注册片段示例
├── samples/
│ ├── export-sample.md # 导出示例(Markdown)
│ └── export-sample.json # 导出示例(JSON)
├── docs/
│ └── architecture.md # 工作原理详解
├── test/
│ └── smoke.test.mjs # 自包含冒烟测试(无需 DSH 环境)
└── .github/workflows/ci.yml # CI(Node 22/24 跑冒烟测试)
安装
1. 把插件复制到你的 profile 目录:
cp plugin/dsh-export.mjs ~/.dsh/profiles/web/
2. 编辑 ~/.dsh/profiles/web/cordis.patch.yml,在 insert 列表追加一条
(参考 examples/cordis.patch.yml):
- insert:
- id: dsh-export-widget
name: ./dsh-export.mjs?v=1
3. 重启 dsh web,打开任意会话,在输入栏「访问模式」右侧即可看到「⤓ 导出对话」。
更新插件:替换 dsh-export.mjs 后,把 ?v=1 的版本号 +1(如 ?v=2)再重启,
让 loader 重新加载(改动记录见 CHANGELOG.md)。
使用
1. 点击「⤓ 导出对话」打开面板(自动选中当前会话)
2. 选择要导出的会话
3. 选择格式:Markdown / JSON
4. 按需勾选:包含工具调用、包含思考过程
5. 点「导出」下载文件
HTTP API
插件同时暴露本地 HTTP 接口(同源即可调用,也可直接 curl):
列出全部会话
curl http://127.0.0.1:3080/dsh-export/sessions.json
导出当前会话为 Markdown(含工具调用)
curl -OJ "http://127.0.0.1:3080/dsh-export/export?session=&format=md&tools=yes&download=1"
| 路由 | 说明 |
| --- | --- |
| GET /dsh-export/sessions.json | 会话列表:id/标题/工作目录/时间/消息数,含当前会话标记 |
| GET /dsh-export/export?session=&format=md\|json&tools=yes\|no&reasoning=yes\|no&download=1 | 导出单个会话;download=1 时带下载响应头 |
| GET /dsh-export/export.js | 注入页面的客户端脚本(自动注入,一般无需手动访问) |
工作原理(摘要)
DSH 的会话日志在 ~/.dsh/sessions///session.jsonl.zstd,
是 zstd 分帧追加写入的 JSONL。插件按帧扫描解压(容忍写入中的撕裂帧),
把事件流还原为「轮次 → 用户/助手消息 → 工具调用/返回」,再渲染为 Markdown 或 JSON。
详见 docs/architecture.md。
示例输出
预览 samples/export-sample.md 与
samples/export-sample.json。
示例会话
| 属性 | 值 |
| --- | --- |
| 会话 ID | session-xxxxxxxx-... |
| 工作目录 | /Users/me/project |
| 轮次 | 2 |
💬 第 1 轮
🧑 用户
帮我写一个脚本统计项目代码行数
🤖 助手 · 步骤 1
好的,我来。先看一下项目结构:
🔧 工具 bash
参数:
json
{ "command": "find . -name '*.ts' | xargs wc -l | tail -1" }
返回:
1234 total
常见问题
Q:重启后没看到按钮?
确认 cordis.patch.yml 里已追加 insert 条目、name 指向的 dsh-export.mjs 确实在
profile 目录中,且 dsh web 已重启。改过插件源码后记得 bump ?v=N。
Q:为什么默认不包含工具调用和思考过程?
导出文件更聚焦对话本身;需要完整审计时在面板里勾选对应选项即可。
Q:导出的 Markdown 里没有我看到的系统提示/流式内容?
那些是内部事件(source.kind === 'plugin' 与流式 chunk),导出时会自动跳过,
只保留真人对话与工具调用。
Q:支持 Windows / Linux 吗?
支持。插件只在 DSH Web(Node.js)环境运行,与操作系统无关。
开发
bash
运行冒烟测试(Node >= 22.6)
node test/smoke.test.mjs
欢迎提交 PR 改进导出渲染、面板交互或文档。
许可证
MIT同作者(DESTINYwang0428)的其他插件
扫码进群