🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

会话报告导出 121212165/dsh-plugin-html-report

DeepSeek Harness
12121216517 天前有提交已提供中文文档扫描:含敏感能力

dsh 插件:将会话记录渲染为自包含的 HTML 报告(/report latest|prefix|all)

30.7/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/18 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

自动兼容检查有告警:未发布到 npm registry,仅可从源码安装。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add 121212165/dsh-plugin-html-report
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么
dsh 原生插件 · chat
装得上吗
实装验证未通过(unknown),装前请到仓库确认最近更新与 issue
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 17 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
⚠︎ 实装验证未通过(unknown · 2026/11/2) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意

未发布到 npm registry,仅可从源码安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包dsh-plugin-html-report(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=22.18 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/3 12:27:25

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件
查看扫描证据(共 8 处,展示前 8 条)
  • 读取本地文件
    lib/plugin.js:23
    if (!existsSync(dataDir))
  • 读取本地文件
    lib/plugin.js:25
    for (const name of readdirSync(dataDir)) {
  • 读取本地文件
    lib/plugin.js:28
    records.push(...parseJsonl(readFileSync(join(dataDir, name), 'utf8')).records);
  • 写入本地文件
    lib/plugin.js:59
    mkdirSync(outDir, { recursive: true });
  • 读取本地文件
    src/plugin.ts:43
    if (!existsSync(dataDir)) return records;
  • 读取本地文件
    src/plugin.ts:44
    for (const name of readdirSync(dataDir)) {
  • 读取本地文件
    src/plugin.ts:46
    records.push(...parseJsonl(readFileSync(join(dataDir, name), 'utf8')).records);
  • 写入本地文件
    src/plugin.ts:73
    mkdirSync(outDir, { recursive: true });
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-base@deepseek-ai/schemastery@deepseek-ai/dsh-tools
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 会话记录渲染为HTML
  • 生成自包含单文件报告
  • 支持按前缀或全部导出

README

由 DeepSeek 最新模型翻译生成
dsh-plugin-html-report 🧩 dsh 插件家族(22 件):总目录 dsh-plugin-family | 明星插件:ide-hub 跨 IDE 统一管理 · task-forge 跨窗口无损交接 · quota 实时用量仪表 EN · 把一个会话渲染成单个自包含 HTML 文件,可打开、归档或转发:内容转义、逐轮统计、工具行压缩(/report latest · /report <prefix> · /report all)。· 纯函数有测试覆盖(注入转义、自包含 / 外链检查、会话选择)· 对真实 ~/.dsh/transcripts 边车跑过 /report 并检查了输出 · 未测试:浏览器里单条消息超过 100 KB 的情况。 DeepSeek Harness (dsh) 插件:把会话转录渲染成自包含 HTML 报告。读 transcript 的 JSONL 边车,产出单文件、内联样式、零外链的 HTML——发给任何人都能直接双击打开。 适合回答:「这次会话我要交给别人看,但不想让他装 dsh、开 Obsidian、或者读 JSONL。」 同系列:transcript(数据源)· transcript-search(检索)· obsidian-push(入库)。区别:本插件面向分享与浏览,Markdown 那两个面向归档与检索。
展开完整文档(README 剩余 1 节)
dsh-plugin-html-report

🧩 dsh 插件家族(22 件):总目录 dsh-plugin-family | 明星插件:ide-hub 跨 IDE 统一管理 · task-forge 跨窗口无损交接 · quota 实时用量仪表

EN · 把一个会话渲染成单个自包含 HTML 文件,可打开、归档或转发:内容转义、逐轮统计、工具行压缩(/report latest · /report <prefix> · /report all)。· 纯函数有测试覆盖(注入转义、自包含 / 外链检查、会话选择)· 对真实 ~/.dsh/transcripts 边车跑过 /report 并检查了输出 · 未测试:浏览器里单条消息超过 100 KB 的情况。

DeepSeek Harness (dsh) 插件:把会话转录渲染成自包含 HTML 报告。读 transcript 的 JSONL 边车,产出单文件、内联样式、零外链的 HTML——发给任何人都能直接双击打开。

适合回答:「这次会话我要交给别人看,但不想让他装 dsh、开 Obsidian、或者读 JSONL。」

同系列:transcript(数据源)· transcript-search(检索)· obsidian-push(入库)。区别:本插件面向分享与浏览,Markdown 那两个面向归档与检索。

用法

- /report:渲染最近活跃的那一个会话。
- /report <sessionId 前缀>:渲染匹配前缀的会话(session- 前缀带不带都行)。
- /report all:渲染全部会话,按最后活跃时间倒序。

输出示例:

已渲染 1 份报告: C:\Users\<你>\.dsh\html-reports\4bc1bd00-916.html(15 条 / 12,645 字符)

文件名取 sessionId 去掉 session- 前缀后截 12 字符(这个截断规则是系列里踩过的坑:早期用 slice(0,8) 导致同前缀会话互相覆盖)。

产物形态

- 单文件 ,样式全部内联,正文不引用任何外部 src=http… / href=http…;离线、内网、邮件附件场景都成立。
- 用户/助手消息成「轮次卡片」,工具调用压成一行 chip 且正文截断到 300 字符——转录里工具结果可能非常大,报告要的是可读性而不是全量转储。
- 顶部一行统计:条数 / 用户 / 助手 / 工具 / 字符数 / 完整 sessionId。
- 正文按 at 升序回放,与转录时间线一致。
- 所有文本、标题、工具名一律 HTML 转义(含 # 与 "),会话里出现 不会变成可执行标签。

配置

| 字段 | 默认 | 说明 |
| enabled | true | |
| dataDir | ~/.dsh/transcripts | transcript 边车目录(只读) |
| outDir | ~/.dsh/html-reports | 输出目录,不存在会自动创建 |
| title | Session Report | 页面标题;留空则回退为 Session <id 前 8 位> |

只读取 transcript-YYYY-MM.jsonl 命名的文件;损坏行跳过并计数,永不改写源文件。没有转录数据时明确报错并提示先装 transcript,不会输出空页面糊人。

安装

三步,实测于 @deepseek-ai/dsh@0.1.7-alpha.1(需 pnpm 在 PATH 上):

① 装进 profile:dsh plugin 把参数原样转发给 pnpm,git 包会自动跑 prepare 构建 lib/
dsh plugin --profile web add github:121212165/dsh-plugin-html-report

② 把本仓库根目录 cordis.patch.yml 的内容并进 $DSH_HOME/profiles/web/cordis.patch.yml。
该文件默认是 [],所以要么整份替换,要么把 insert 条目并进同一个数组;不要直接追加——追加会形成两个 YAML 文档,启动即报 failed to parse overlay ... end of the stream or a document separator is expected(本机实测踩过)。

③ 重启 dsh。配置层与 client 半都要重启才生效(客户端按 boot 时算出的内容 rev 下发,硬刷新浏览器没用)。

自检挂载:dsh --profile web --dump-config | grep dsh-plugin-html-report,应看到该条目。

验证状态

- 纯函数(转义防注入、统计计数、自包含性与外链检查、工具行压缩、会话选择:缺省最新 / all 倒序 / 前缀匹配含 session- 变体 / 交错记录取最后时间)8 个 node --test 全绿。
- 本机 live:对真实 ~/.dsh/transcripts 边车执行 /report,产出 HTML 结构与统计逐项目视通过。
- 未验证:超大单条消息(>100KB 文本)在浏览器里的渲染表现;长文本仅工具行做截断,用户/助手全文照排。

借鉴来源与差异

| 借鉴来源 | 借鉴了什么 | 我们的差异 |
| simonw/claude-code-transcripts(1.7k★) | 「把会话转录发布成可分享页面」这个需求方向 | 它面向 Claude Code 单一格式;本插件读的是 dsh-plugin-transcript 的 JSONL 契约(跨工具),渲染为自包含单文件 HTML,独立实现 |
预览分享卡片长什么样 ↓121212165/dsh-plugin-html-report
分享 · DeepSeek Harness Hub
121212165/dsh-plugin-html-report

dsh 插件:将会话记录渲染为自包含的 HTML 报告(/report latest|prefix|all)

这是你的仓库?认领条目

回到顶部