dsh-plugin-browser-notify
August 14, 2026 · View on GitHub
DSH 浏览器通知插件:任务完成或需要审批时,通过浏览器系统通知 + 页内 toast 提醒用户。
- 需要审批 → 🖐 需要审批(含操作 / 原因)
- 子代理结束 → ✅ 子任务完成 / ✖ 子任务失败
- 工作流结束 → ✅ 工作流完成 / ✖ 工作流失败
- 后台任务结束 → ✅ 后台任务完成 / ✖ 后台任务失败
- 设置页可手动「发送测试」
安装(官方 bundle 插件)
方式一:从 npm 安装(推荐)
dsh plugin --profile web add dsh-plugin-browser-notify
方式二:从 GitHub 安装
dsh plugin --profile web add "github:Caxson/dsh-plugin-browser-notify#main"
方式三:本地路径试装
git clone https://github.com/Caxson/dsh-plugin-browser-notify.git
dsh plugin --profile web add ./dsh-plugin-browser-notify
装完重启 dsh web,刷新浏览器页面。
使用
- 打开 设置 → 通用,找到「🔔 浏览器通知」一行
- 点「开启」授权浏览器通知(浏览器会弹出权限请求)
- 授权后最小化窗口,点「发送测试」——屏幕角落应弹出系统通知
- 之后任务完成 / 需要审批时会自动提醒(系统通知 + 页内 toast 双通道,不会漏)
注意:macOS / Windows 上若系统通知不显示,请检查系统设置里该浏览器的通知权限与横幅样式(如 macOS「系统设置 → 通知 → Chrome」的「横幅」开关、勿扰/专注模式)。
设置行下方的小字是诊断信息(API 支持、权限状态、最近一次通知结果),排查问题时可用。
架构
- Node half(
index.mjs):监听approval/request、subagent/end、workflow/end、jobs.onJobDone事件,把通知压入队列;通过官方webServer服务注册两个路由:GET /api/notify/drain— client 轮询取走队列POST /api/notify/test— 手动测试
- Browser half(
lib/client.js):官方 client 契约window.__ModuleLoader__.load({id, factory});每 1.5sfetch轮询/api/notify/drain,用浏览器NotificationAPI 弹系统通知(每次唯一 tag,避免合并/刷屏),同时渲染页内 toast 兜底(shell.overlayslot),设置页开关注册在settings.general.itemslot。
发布维护
- npm:
dsh-plugin-browser-notify@0.1.0已发布(npmjs.com)。发新版本时:改package.json版本号 →npm publish --registry=https://registry.npmjs.org(若账号开启 2FA,用带 bypass 权限的 granular token 或--otp=)。 - GitHub:仓库 Caxson/dsh-plugin-browser-notify,topics 建议:
dsh、dsh-bundle、deepseek-harness、notification。
License
MIT