DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
D

dsh-delivery-native-open

Delivery Native Open

点击交付卡片时,在默认桌面应用中打开已交付的文件;按住 Alt/Ctrl/Cmd/Shift 并点击可继续在侧边栏中预览。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:otvaket/dsh-delivery-native-open#7eec63880da13b3cd83da33cc1dacf1a54b0bf07
README兼容性版本

兼容性与来源证明

Delivery Native Open 以 dsh-delivery-native-open 发布,当前版本为 0.1.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/10/22

版本

0.1.0stable
2026/10/22

相关插件

正在加载相关插件…

最新版
0.1.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 0
周下载
0
最近提交
2026/10/25
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 ui-customization 分类下经过校验的插件。

Web App@deepseek-ai/dsh-web-appdsh 浏览器界面捆绑包:位于 dsh-base 之上的 Web 补丁层,加上运行时粘合插件(提供前端 dist、Web 界面提示符、bash 运行时变量和 URL 行)Experimental Session Titles Bundle@deepseek-ai/dsh-experimental-session-titles-bundle新的用户提示到达时刷新会话标题。Personalized Recommendations@deepseek-ai/dsh-personalized-recommendations回答下方以卡片形式提供个性化页面和内置插件推荐Whale Widgetdsh-whale-widgetDSH Web 界面右下角的 DeepSeek 余额小鲸鱼挂件:余额/今日已用/峰谷定价、自定义泡泡点击序列(文本/余额/今日/峰谷/图片/随机语句与并列加权选择)、逐行样式与字体、悬浮快捷编辑、音效与每轮消耗、自定义角色/动图/音效、吸附与翻转自定义

README

dsh-delivery-native-open

把 DSH Web 交付卡片(present 卡片)的主点击从「右侧栏 Web 预览」改成「用本机默认程序打开」,同时保留一个显式的侧栏预览按钮。不修改 deepseek-harness 的任何源码。

交互

手势结果
点击交付卡片主体用本机默认程序打开该文件
点击卡片右侧的侧栏预览按钮(本插件提供)在右侧栏 Web 预览
Alt / Ctrl / Cmd / Shift + 点击卡片主体同样是在右侧栏 Web 预览(保留原生手势)
卡片右侧的打开控件不变(原 ui-open-in-app 的应用菜单 / 显示文件位置)
Host 没有桌面(远程、容器)不拦截,点击仍是预览,且不显示预览按钮

安装

dsh plugin --profile web add https://github.com/otvaket/dsh-delivery-native-open

开发期用本地链接安装:

cd ~/.dsh/profiles/web
pnpm add link:<本目录绝对路径>

dsh.bundle.patch 会在插件行上生效,不要再往 profile 的 cordis.patch.yml 手动 insert 同一行(重复 id 会让 loader 崩)。

装好后重启 dsh web,浏览器硬刷新。

卸载:

cd ~/.dsh/profiles/web && pnpm remove dsh-delivery-native-open

实现方式与依赖

插件占用 deliverables.file.actions(list slot),在每个交付卡片内挂一个不可见探针:

  1. 用 probe.closest('[data-presented-file]') 找到卡片外壳;
  2. 用 :scope > button 找到卡片自己的激活按钮;
  3. 在该按钮上以 capture 阶段监听 click,命中后 preventDefault + stopPropagation,改为调用 slot owner 的 onAction('open')——即 POST /api/present.open 的授权链路,状态反馈仍由 ui-deliverables 自己发布(「正在打开…」「已请求打开」)。

依赖的上游契约(升级后可能变,变了会安全降级为原生预览):

  • deliverables.file.actions slot 的 owner props:actionUrl / available / pending / onAction;
  • 交付卡片 DOM:[data-presented-file] 外壳,激活按钮是它的第一个直接子 <button>。

任一不满足时探针不拦截,点击退回预览——不会报错,也不会重复打开。

预览按钮怎么来的

卡片在 Sidebar 里打开需要 openFile(path),而 slot owner 只暴露 actionUrl/available/pending/onAction,路径不在其中。插件改用「重放原生激活」:预览按钮拿到自己卡片上的激活按钮,置一个 replaying 标志后调用 activation.click(),探针看到标志直接放行,原生预览照常发生——不需要路径,也不依赖事件 schema。按钮用自绘 SVG 图标加注入的 CSS(沿用 --dsw-* 主题变量)与卡片右侧其它控件对齐。

包结构

package.json    dsh.bundle.patch(可被 dsh plugin add 安装)+ dsh.client.platform = web
cordis.patch.yml  bundle patch:插入 host 行
lib/index.js    host 半:空 apply
lib/client.js   浏览器半:window.__ModuleLoader__ 契约,零第三方依赖(只 require('react'))

限制

  • 只覆盖 present 交付卡片;「本轮改动文件」卡片(点击进 diff 对照)不在范围内。
  • 预览按钮的文案固定为中文(外部插件不进宿主 locale 字典)。
  • 若上游把卡片激活按钮挪到非第一个直接子元素,拦截与重放都会失效(安全降级为原生预览)。

License

MIT