在交付卡片上加下载按钮,文件直存本机
29.4/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/16 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add hanbernate/dsh-save-button该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:待复验
是什么
dsh 原生插件 · browser
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 25 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。
发起外部网络请求
查看扫描证据(共 4 处,展示前 4 条)
- 发起网络请求lib/client.js:619
fetch(HOST_PATH, { headers: { accept: 'application/json' } }) - 发起网络请求lib/client.js:654
const response = await fetch(url, { method: 'HEAD' }) - 发起网络请求lib/client.js:667
const response = await fetch(openUrlOf(sessionId, file, action), { method: 'POST' }) - 发起网络请求lib/client.js:746
fetch(url, { method: 'HEAD' })
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
给 DSH 交付卡片加上下载按钮,用 present 交付的文件直接在浏览器里保存。
README
由 DeepSeek 最新模型翻译生成dsh-save-button
在 DSH Web GUI 的交付卡片上,给「打开」按钮右边加一个「下载」按钮:模型用 present 交付的文件(打包好的 zip、报告、数据集、图片……)直接通过浏览器下载到本机,不用再开 SFTP/SCP 拉文件。
┌──────────────────────────────────────────────────────────────────┐
│ 📄 HexHowitzer-windows-x86_64.zip ┌────────┐ │
│ 在侧边栏预览 │ 打开 ▾ │ │ ← 官方卡片 │ └────────┘ │ └──────────────────────────────────────────────────────────────────┘ ┌──────────────────────────────────────────────────────────────────┐ │ 📄 HexHowitzer-windows-x86_64.zip ┌────────┐ ┌──────┐ │ │ 在侧边栏预览 │ 打开 ▾ │ │ ⬇ 下载│ │ ← 装上本插件 │ └────────┘ └──────┘ │ └──────────────────────────────────────────────────────
展开完整文档(README 剩余 1 节)
dsh-save-button 在 DSH Web GUI 的交付卡片上,给「打开」按钮右边加一个「下载」按钮:模型用 present 交付的文件(打包好的 zip、报告、数据集、图片……)直接通过浏览器下载到本机,不用再开 SFTP/SCP 拉文件。 ┌──────────────────────────────────────────────────────────────────┐ │ 📄 HexHowitzer-windows-x86_64.zip ┌────────┐ │ │ 在侧边栏预览 │ 打开 ▾ │ │ ← 官方卡片 │ └────────┘ │ └──────────────────────────────────────────────────────────────────┘ ┌──────────────────────────────────────────────────────────────────┐ │ 📄 HexHowitzer-windows-x86_64.zip ┌────────┐ ┌──────┐ │ │ 在侧边栏预览 │ 打开 ▾ │ │ ⬇ 下载│ │ ← 装上本插件 │ └────────┘ └──────┘ │ └──────────────────────────────────────────────────────────────────┘ 远程/容器里跑 DSH(云主机、GPU 机器、WSL、内网服务器)时最有用:文件在 Host 上,浏览器在你手上,中间只差一个按钮。 功能 - 交付卡片一键下载:present 声明的每个文件右边都有「下载」,走 Content-Disposition: attachment,由浏览器自己的下载管理器流式落盘——几十上百 MB 的 zip 不会先塞进页面内存。 - 官方卡片能力保留:点卡片/「打开」在侧边栏预览;右侧 ▾ 仍是官方的「用默认应用打开」「打开所在文件夹 / 在 Finder 中显示 / 在文件资源管理器中显示」,主机没有桌面时按官方语义禁用并提示。 - 状态就地反馈:正在准备下载… / 已开始下载 / 下载失败,点击重试;打开、打开所在文件夹同样有状态与重试。 - 不干扰官方渲染:本轮文件改动 chips、多文件折叠(全部 N 个文件 / 收起)等官方行为照旧;插件的回合没有交付产物时,官方那一行完全不受影响。 - 零依赖、零构建:纯 ESM + 手写浏览器 bundle,装完即用;没有 postinstall、没有编译步骤。 - 中英双语:跟随 GUI 语言。 - 同时兼容 DSH 0.1.5-rc.\、0.1.7-rc.\ 与 0.2.0-rc.\*:见下方「支持的 DSH 版本」。 安装 从 npm 装进 web profile: dsh plugin --profile web add dsh-save-button 也可以直接装 git 仓库——本包无构建步骤,lib/ 已提交: dsh plugin --profile web add github:hanbernate/dsh-save-button 本地开发时改为链接本目录,改动后 Host 半区随 Loader 热重组合生效: dsh plugin --profile web add /path/to/dsh-save-button dsh 不在 PATH 上时,用你启动 Web GUI 的那份 CLI,例如: node ~/.dsh/profiles/node_modules/@deepseek-ai/dsh/lib/bin.js \ plugin --profile web add dsh-save-button 这条命令把 dsh-save-button 追加到 profile 的 dsh.profile.bundles,并由 Loader 插入本包 cordis.patch.yml 里的那条 entry。 生效方式: - 装完 刷新浏览器页面(浏览器半区是页面加载的 bundle,刷新才会重新拉取)。 - 若刷新后没出现按钮,重启 Web GUI:dsh web(或你平时的启动命令)。 验证:随便让它 present 一个文件(例如先 ls 出你打包好的 zip),卡片右侧就会出现「下载」。 使用 按钮长在官方交付卡片的「打开」右侧,一文件一个: | 操作 | 行为 | | 下载 | 先 HEAD /api/download.button?sessionId=…&seq=…&index=… 探测可下载性,成功后用 把文件交给浏览器下载管理器;文件名由 Host 的 Content-Disposition 决定 | | 打开 | 与官方一致:在侧边栏预览该文件 | | ▾ 菜单 | 官方动作:用默认应用打开 / 打开所在文件夹(Finder / 资源管理器);主机无桌面时禁用 | | 失败 | 就地显示失败原因(如「该文件已不在会话中」),点击原按钮重试 | | 多于 4 个文件 | 保留官方折叠:全部 N 个文件 / 收起 | 下载只接受 (sessionId, seq, index) 三元组寻址,没有 path 参数,因此只有该会话用 present 声明过的文件能被下载;解析、越界与类型校验、分块读取全在 Host 半区。详见 doc/architecture.md。 支持的 DSH 版本 | DSH RC | turnTail 契约 | 集成方式 | 状态 | | 0.1.0-rc.2 … 0.1.2-rc.1 | —(无 present / workspaceFiles) | 不适用 | 不支持 | | 0.1.5-rc.1 / rc.2 / rc.3 | chain | 按 priority: -1 认领整行并自绘卡片 | 支持(rc.3 实测 11/11) | | 0.1.7-rc.1 / rc.2 | list | 官方卡片原样,注入 deliverables.file.actions 下载按钮 | 支持(rc.2 实测 12/12) | | 0.2.0-rc.1 / rc.2 | list | 同 0.1.7:官方卡片原样,注入 deliverables.file.actions 下载按钮 | 支持(rc.2 实测 12/12) | 插件在初始化时按运行时实际声明选择适配器(客户端拿不到 DSH 版本号),所以同一份安装包在所有这些线上都工作。 契约清单、测试分层、逐项实测记录与换线手册见 doc/compatibility.md。 卸载 dsh plugin --profile web remove dsh-save-button 然后刷新页面。插件被移除后,官方交付卡片原样恢复——本插件不修改任何官方文件。 故障排查 | 现象 | 处理 | | 卡片右侧没有「下载」 | 先刷新页面;再确认 ~/.dsh/profiles/web/package.json 的 dsh.profile.bundles 里有 dsh-save-button;仍无效则重启 dsh web | | 按钮出现,点了提示「下载失败,点击重试」 | 打开浏览器开发者工具看 /api/download.button?... 的响应:401/403 = 认证,404 = 该声明不在 Session 里(换了会话或事件被裁剪),422 = 不是常规文件/在工作区之外 | | 点「打开」报「打开失败」 | Host 无桌面(纯服务器)时的正常结果;用「下载」或侧边栏预览 | | 报 exports["./client"] must be a string | package.json 的 exports 被改坏了,跑 npm test 看守卫 | | 改了 lib/client.js 没生效 | 刷新页面(bundle 由 Host 按 revision 提供,页面不刷新不会重拉) | 文档 | 文档 | 内容 | | doc/architecture.md | 工作原理、两个半区、适配器与能力探测选择器、图标能力表、安全边界、设计决策记录 | | doc/compatibility.md | 支持矩阵、官方契约面清单(C1–C10)、两个断点的历史、测试分层与用例、真机实测记录(V1–V23)、换线手册 | | doc/development.md | 目录结构、跑测试、改完怎么生效、新增适配器的步骤、发布前检查清单、开发陷阱 | License MIT,见 LICENSE。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
hanbernate/dsh-save-button
在交付卡片上加下载按钮,文件直存本机
相关插件 · 浏览器
智能体插件框架deepseek-ai/deepseek-harness
DeepSeek Harnessdsh是由 DeepSeek AI 开发的开源 agent harness智能体框架。
★ 270,422已汉化DSH
71.9
多设备 Agent 看板YaoApp/yao
✨ 所有 Agent 和工作区集中管理,覆盖你的每一台设备。任务看板追踪进度,桌面端、移动端、浏览器、API…
★ 8,147已汉化DSH
71.2
可扩展侧边栏工作台omdsh-dev/DSH-better-sidebar
DSH 的双工作台:原生右侧栏 + 自绘底部面板,并把 ctx.betterSidebar 服务开放给所有插件
★ 4,761已汉化DSH
71.1
浏览器自动化桥Tencent/BrowserSkill
你的 Agent。你的浏览器。连接,就能协作。
★ 9,967已汉化DSH
71
AI 小说创作工作台EthanYoQ/AI-Novel-Writer
AI 小说作家 / AI Novel Writer
★ 1,591已汉化DSH
70.7
智能体浏览器引擎platonai/Browser4
DeepSeek Harness 集成
★ 1,175已汉化DSH
70.4
这是你的仓库?认领条目