前言¶
DeepSeek Harness(命令名 dsh)把智能体跑在本地 Web 界面里。一轮编码或排查经常要等很久:工具要你点审批、模型突然提问、或者这一轮已经写完了,这些提示都停在前台标签页。浏览器一切走,请求就默默等着,人回头才发现 DSH 卡在确认框上。
DeepSeek 官方把 Harness 的设计写成「一切皆插件」:模型、工具、会话、沙箱、循环和 UI 都是可替换插件,不必改 Harness 源码。社区目录 deepseek-harness-plugin.com 收录了不少第三方扩展,它是独立站点,与 DeepSeek / 幻方没有官方从属关系,不能当成官方应用商店。
dsh-web-ui-notify 是「通知与集成」分类里的一款 Web UI 客户端插件。它不给模型加工具,只在你离开当前标签页时,用浏览器的系统通知把审批、提问和轮次完成搬到桌面,点击通知还能跳回对应会话。本文按目录详情页、仓库 README / README.zh.md、package.json、CHANGELOG 和 DeepSeek Harness 官方说明核对后整理。
这是什么¶
dsh-web-ui-notify 由 bill9109 维护,npm 包名是 @bill9109/dsh-web-ui-notify,许可证 BSD-3-Clause,主要语言 TypeScript,当前仓库版本为 0.1.3(2026-08-14)。社区目录 2026-08-03 收录;写作当日(2026-08-17)GitHub 仓库显示 17 stars,目录页仍显示 12 stars,星标数以仓库页面为准。
它解决的问题很具体:Web UI 是 DSH 向你提问的唯一前台。人在看别的页面时,工具审批、DSH 提问或一轮干完了都不会主动找你。这个插件把这些时刻变成原生系统通知,标题带会话名,点一下打开那条会话。
package.json 把它声明成 DSH bundle(dsh.bundle + dsh.client),client 平台是 web。仓库 README 写明:通过标准 dsh plugin 装进 web profile 即可,无需修改 DSH 源码、无需手写 patch。仓库已提交构建产物 lib/,装完不用再构建。运行时没有额外 npm 依赖,浏览器侧对 react、react/jsx-runtime、ui-slots 的 require 走 DSH 前端自己的模块表。
目录同一分类里还有 dsh-notification 等回合完成通知插件。dsh-web-ui-notify 的侧重点不同:审批和提问也会响,后台会话同样通知,并且点击会跳到对应会话,而不是只把窗口拉到前台。不要把两套安装命令混用。
核心功能¶
当前会话需要你介入时通知¶
工具审批和 DSH 提问会弹出通知,正文带上下文:审批显示越权原因,提问显示问题原文。标题带会话名,例如「重构数据库 · 需要审批」。
后台会话同样通知¶
没在看的会话需要审批或提问时,也会弹同样带上下文的通知;整个后台会话干完也会提醒。点通知会直接打开那条会话,而不是只回到当前正在看的那一条。
当前会话每轮干完都通知¶
当前会话每一轮结束都会通知。正文是这一轮最终回答的开头(80 字以内);纯工具轮没有最终回答时,显示轮次号。正常结束、被中断、出错都会通知。
只在离开标签页时响,同一件事只响一次¶
页面在前台时,DSH 自己已经有提示,插件不会再弹一遍。同一件事只通知一次:断线重连不会重复响,打开带历史记录的会话也不会把旧轮次全刷一遍。通知不会几秒后自动消失,会一直等到你处理。
设置行跟 DSH 语言走¶
开关在 设置 → 通用 → 桌面通知,中英文跟随 DSH 界面语言。设置存在 profile 的 Settings provider 里,升级插件不会丢掉。
设置行有四种状态:
| 状态 | 含义 |
|---|---|
| 已开启 | 正常工作 |
| 未授权 | 点按钮向浏览器申请权限 |
| 已被浏览器阻止 | 以前拒绝过,要去浏览器的站点设置改回允许,只点按钮无效 |
| 浏览器不支持 | 当前环境没有 Notification API |
安装与启用¶
插件以当前 dsh 进程的权限运行,安装时可能执行代码。装之前应先看仓库源码和 BSD-3-Clause 许可证。
社区目录页给出的安装命令是:
dsh plugin add github:bill9109/dsh-web-ui-notify
这是目录页的原文写法。该插件的 client 平台声明为 web,仓库 README 因此要求装进 web profile:
dsh plugin --profile web add github:bill9109/dsh-web-ui-notify
命令内部会在 profile 目录执行 pnpm add,并把声明了 dsh.bundle 的包追加进 dsh.profile.bundles。目录页还提示:如需可复现安装,可固定 commit 哈希:
dsh plugin add github:bill9109/dsh-web-ui-notify#<commit>
开发调试也可以先 clone,再用本地路径安装:
dsh plugin --profile web add /path/to/dsh-web-ui-notify
package.json 要求 Node.js ^20 或 >=22。CHANGELOG 记载:0.1.2 起适配 dsh 20260812 快照,并把包名从 @dsh-external 改成 @bill9109。README 还说明,profile 体系之前的旧版 DSH 用 pnpm --filter @deepseek-ai/dsh add 加 config.yaml;20260806 快照起改为上面的 profile 方式。若你的 DSH 仍是旧版,要用 git 历史里的旧 README,不要套现在这条命令。
装完后按你平时启动 DSH Web UI 的方式重启 Web UI,再硬刷新浏览器页面,插件才会出现。之后还要授权浏览器通知权限,否则插件是静默的:
- 打开 设置 → 通用 → 桌面通知,点开启桌面通知
- 浏览器弹出询问时选允许,状态变成「已开启」
- macOS 还要在 系统设置 → 通知 里允许你的浏览器
升级:
dsh plugin --profile web update github:bill9109/dsh-web-ui-notify
卸载(注意包名带 scope):
dsh plugin --profile web remove @bill9109/dsh-web-ui-notify
卸载后同样要重启 web 并硬刷新浏览器。本地路径安装则对替换后的 checkout 重新执行 add。
典型用法¶
- 确认设置行是「已开启」,浏览器对该 DSH 站点的通知权限是「允许」。
- 切到别的标签页,让当前会话跑一轮,或故意触发一次工具审批 / DSH 提问。此时应弹出系统通知,标题带会话名。
- 点通知,浏览器应回到 DSH 页面并打开通知里的那条会话,而不是停在你刚才看的其他会话。
- 再开一条后台会话,切走后等它需要审批或整段干完,确认后台会话也会响,并且点击能跳过去。
- 回到 DSH 标签页前台再跑一轮:按 README,此时不应再弹桌面通知,页面上的原有提示即可。
装完后如果设置里没有这一项,README 建议先确认已经重启 Web UI 并硬刷新,再用下面这条检查 bundle 是否写进了 web profile:
dsh --profile web --dump-config | grep web-ui-notify
没有通知出现时,按仓库的故障排查表逐项看:开关是否「已开启」、站点权限是否「允许」、macOS 是否允许浏览器发通知,以及你是否已经切到别的标签页。状态显示「已被浏览器阻止」时,必须到浏览器站点设置改回允许。显示「浏览器不支持」则当前环境没有 Notification API,桌面通知无法工作。重启后通知突然没了,多半是浏览器重置了站点权限,需要重新授权。
适用场景与注意事项¶
比较适合这些情况:
- 已经在用
dsh web,人会切去看文档、邮件或别的仓库,但工具审批和提问仍卡在原标签页。 - 同时开着多条会话,需要知道后台那条在等你,并且点通知能直接跳过去。
- 不只想知道「跑完了」,还想在模型提问、工具越权审批时被叫回来。
使用前要清楚边界,这些都写在仓库 README 里:
- 只覆盖 Web UI。
dsh.client.platform是web,不要指望它给终端 TUI 或无界面 profile 弹系统通知。 - 标签页要开着,人要离开前台。页面在前台不重复通知;标签页关掉之后,浏览器也不会再替你弹。它不是操作系统级的常驻守护进程。
- 必须授予 Notification 权限。没授权时浏览器直接禁止弹通知;曾经拒绝过的站点,只能去浏览器设置改,插件按钮帮不上。
- macOS 还有一层系统开关。浏览器允许了,系统设置里如果拦了该浏览器,仍然看不见横幅。
- 没有按结束原因拆开关,也没有关键词规则。当前会话每轮结束(含中断和出错)都会通知。需要按 completed / error 过滤、或用包含 / 排除规则压噪音时,目录里的
dsh-notification是另一条路,两者不要混装命令。 - 点击会打开对应会话。这是它和部分只聚焦窗口的通知插件的差别,但也要求 Web UI 仍在跑。
目录页的安全提示同样适用:插件以当前 dsh 进程权限运行,安装时可能执行代码。这款插件声称自己是 Web UI 客户端 bundle、零运行时依赖、不改 DSH 源码,但仍应自行核对源码和许可证后再装。可复现安装请固定 commit 哈希。
小结¶
dsh-web-ui-notify 把工具审批、DSH 提问和轮次完成从 Web 前台挪到系统通知栏,标题带会话名,点击跳回对应会话,并且只在你离开标签页时响。它走标准的 web profile 安装,不改 Harness 源码。适合已经在用 DSH 网页界面、又经常把标签页切走的人。
目录页:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-web-ui-notify/
GitHub:https://github.com/bill9109/dsh-web-ui-notify