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

文件下载按钮 micachi/dsh-download-button

DeepSeek Harness
micachi2 天前有提交已提供中文文档扫描:未发现敏感能力

在分发卡片和预览头部一键保存文件到本地

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

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

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add micachi/dsh-download-button
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
dsh 原生插件 · tool
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 2 天前
档位由哪些信号合成

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

README

由 DeepSeek 最新模型翻译生成
dsh-download-button 这是一个 DSH(DeepSeek Harness)Web GUI 插件,用来添加下载按钮。 present 工具生成的分发卡片上,以及右侧边栏文档预览的头部,都会出现按钮, HTML、PDF、图片、Office 文档、Markdown、源代码等文件都能就地保存。 - Host 侧只新增 1 个带认证的 GET /api/download.file - Client 侧只在现有 slot 里加 1 个锚点 - 交给浏览器自带的下载管理器,大文件也不会整份占满页面内存 - 不写工作区,也不向会话追加事件 截图 分发卡片上的下载按钮 present 分发的文件卡片右下角会出现下载图标。 分发卡片上的下载按钮 预览头部上的下载按钮 打开 HTML 等预览后,头部会出现「下载」按钮。 预览头部上的下载按钮 打开 HTML 预览的状态 预览开着也能保存,从分发卡片也能保存,两边都行。
展开完整文档(README 剩余 1 节)
dsh-download-button

这是一个 DSH(DeepSeek Harness)Web GUI 插件,用来添加下载按钮。
present 工具生成的分发卡片上,以及右侧边栏文档预览的头部,都会出现按钮, HTML、PDF、图片、Office 文档、Markdown、源代码等文件都能就地保存。

- Host 侧只新增 1 个带认证的 GET /api/download.file
- Client 侧只在现有 slot 里加 1 个锚点
- 交给浏览器自带的下载管理器,大文件也不会整份占满页面内存
- 不写工作区,也不向会话追加事件

截图

分发卡片上的下载按钮

present 分发的文件卡片右下角会出现下载图标。

分发卡片上的下载按钮

预览头部上的下载按钮

打开 HTML 等预览后,头部会出现「下载」按钮。

预览头部上的下载按钮

打开 HTML 预览的状态

预览开着也能保存,从分发卡片也能保存,两边都行。

HTML 预览与下载按钮

能做什么

| 位置 | 按钮 | 可保存的内容 |
| 分发卡片(present) | 右下角的 ↓ 图标 | 该卡片指向的文件 |
| 右侧边栏的预览 | 头部的「下载」 | 预览中的文件 |

不只是 HTML,Markdown、PDF、PNG/JPEG/SVG、Word/PowerPoint/Excel、CSV、源代码等,只要是 DSH 能预览的文件,都能保存。

安装

本仓库是 DSH 的打包(package.json 的 dsh.bundle.patch)。
Host 半边(index.js)和 Client 半边(client.js)放在同一个包里。

从本地目录安装

dsh plugin --profile web add link:/absolute/path/to/dsh-download-button

从 tarball 安装

dsh plugin --profile web add /absolute/path/to/dsh-download-button-0.1.0.tgz

从 GitHub 安装(本仓库)

dsh plugin --profile web add github:micachi/dsh-download-button

私有仓库需要先通过 gh auth login 等方式准备好 GitHub 认证信息。

启用与重新加载

只添加包,打包仍处于未启用状态。打开 Web 侧边栏的 Plugins,启用 dsh-download-button。

Host 侧的路由会通过 HMR 立即生效。如果安装前就打开的页面里没出现按钮,请重新加载一次页面(浏览器侧的插件图订阅断开时,新包要重新加载才能送达)。

从智能体安装

把包的绝对路径作为 target 传给 plugin_manager 工具的 install_bundle。
返回 application: "applied" 就说明启用也完成了。

用法

1. 让智能体生成 HTML 等文件,并用 present 分发。
2. 回复下方会排出发送卡片,按卡片右下角的 ↓ 图标。
3. 文件以原文件名保存到浏览器的下载目录。

要从预览保存,点击卡片在右侧边栏打开预览,再按头部的「下载」。

保存的文件名由解析后的路径生成。日文等非 ASCII 名称通过 RFC 5987 的 filename 发送,不会乱码。

工作原理

Client Host
────── ────
分发卡片 ── sessionId/seq/index ──▶ GET /api/download.file 预览 ── absolute path ────────▶ │ ├─ 在合成文件系统中解析 ├─ 校验普通文件与大小上限 └─ 200 + Content-Disposition: attachment

- 路由通过 connection.fetch.register 注册,和已发布的 /api/file、 /api/present.open 处在同一道认证围栏内。用浏览器的会话 cookie 认证,能否读取由合成文件系统决定。
- 分发卡片读取一次已记录的 deliverables/presented 事件,把声明的路径从会话的工作区解析出来。解析方式与已发布的「原生打开」路由同一坐标。
- 预览直接解析 Client 传入的执行环境绝对路径。
- 按钮是同源的 ,不会用 JavaScript 把所有字节读进内存,由浏览器的下载管理器流式保存。

实测值(2026-11-01,DSH 0.2.1-rc.2 / Linux)

截图和实测值都取自一个自包含的演示 HTML(demo-report.html),只用于演示。
其中不含个人对话,也不含本地路径。

- GET /api/download.file?path=.../demo-report.html
→ 200,Content-Disposition: attachment; filename="demo-report.html", 1,695 bytes,与原文件完全一致
- 经投递卡片(sessionId + seq + index,即 demo-report.html 那张卡片) → 200,1,695 bytes 一致
- 未认证 → 401,路径不存在 → 404,目录 → 403,相对路径 → 400
- 非 ASCII 文件名 日本語 ファイル (1).html → 用 filename=UTF-8''%E6%97%A5%E6%9C%AC%E8%AA%9E%20... 正确编码

配置

| 字段 | 默认值 | 含义 |
| maxBytes | 67108864(64 MiB) | 下载返回文件的大小上限。超过则返回 413。 |

可以用配置档补丁覆盖。

- id: download-button
config:
maxBytes: 268435456

依赖的服务

只有当配置中存在下列服务时,Host 那一半才会生效(已发布的 Web 配置档全都包含这些服务)。

connection / fs / sessionQuery / workspaceFiles / sandboxPolicy

Client 那一半面向 Web 平台,加入下列已发布包所声明的 slot。

- deliverables.file.actions — @deepseek-ai/dsh-client-ui-deliverables
- sidebar.right.tab.document.actions — @deepseek-ai/dsh-client-ui-sidebar-documentpreview

如果配置里没有 slot 的所有者,按钮只是不显示,插件不会失败。

限制

- 下载属于用户操作。这里刻意不提供智能体用的工具(因为那会变成往工作区外复制文件的操作)。
- 只返回合成文件系统能读到的文件。目录、被拒绝的符号链接、不存在的路径分别返回 403 / 404。
- 变更文件的差异审查标签页(deliverables.review.file.actions)暂不支持。
变更文件请先在侧边栏预览,再保存。
- 读取走 fs.readBytes,所以 maxBytes 同时也是单次下载占用的进程内存上限。
只在可信的单独使用环境里调高。
- 如果页面的插件图订阅已经结束(比如 Host 重启之后),要重新加载页面才能收到新包。

卸载

在 Plugins 页面禁用 dsh-download-button,或者执行:

dsh plugin --profile web remove dsh-download-button

English summary

A DeepSeek Harness plugin that adds a Download button to (1) the delivery
cards produced by the present tool and (2) the right-Sidebar document preview
header. Both buttons are same-origin anchors to one authenticated Host route,
GET /api/download.file, which answers with Content-Disposition: attachment
and streams the file through the composed filesystem. Install it as a bundle
with dsh plugin --profile web add <spec>, enable it on the Plugins page, and
reload a page that was open before the installation. See the Japanese sections
above for configuration, verified measurements, and limitations.

License

MIT — see LICENSE。
预览分享卡片长什么样 ↓micachi/dsh-download-button
分享 · DeepSeek Harness Hub
micachi/dsh-download-button

在分发卡片和预览头部一键保存文件到本地

这是你的仓库?认领条目

回到顶部