
chromoany/dsh-notify-me
dsh-notify-me
dsh-notify-me is a community DeepSeek Harness plugin. Read the repository README before installing.
Install
npx @deepseek-ai/dsh plugin --profile web add dsh-notify-meRestart `dsh web` after install. Bundle APIs can change during the developer preview.
README badge
[](https://dshhub.dev/plugins/dsh-notify-me)Paste this into your README. The star count updates with every catalog sync.
From the README
Excerpt from chromoany/dsh-notify-me, cleaned of badges and images.
dsh-notify-me
离开 DSH 页面,也能及时知道何时需要回来。
简体中文 | English
安装 · 效果预览 · 配置 · 兼容性 · 已知限制 · 更新日志
DSH Web / Desktop 的通知插件,让你敢不开完整访问,也不必一直守着页面。
- 需要你操作时:审批、方案确认、提问,用通知、提示音和标题标记提醒。
- 后台回复完成时:及时回来查看结果,点击通知可回到对应对话;提醒时机可选「仅后台 / 仅当前对话静默 / 总是提醒」。
- 人走开但窗口没走:窗口留在最前台、人却离开座位,超过 3 分钟没有输入也算离开,该提醒的照常提醒;收到的那条通知不会在你回来之前自己消失。
- 离开电脑时:可选转发到 Discord、Bark、Gotify、飞书群机器人、Server酱、WxPusher 或自己的 Webhook。
页面或桌面应用需保持运行(后台 / 最小化可以);系统通知需要通知权限。审批按钮依赖 Service Worker,只有 Web 端有,桌面端的通知不带按钮,点通知回到对话里裁决。
效果预览
普通通知示例 · Windows / Edge · 不含审批按钮。 查看原图
展开设置界面预览
只截插件自己的面板(真实组件,与宿主同款深色主题),不带 DSH 左侧导航栏;每行说明在鼠标停在标题文字上时才出现,所以这里只看到标题。
安装
DSH Web
已安装 DSH CLI 的用户,在终端执行:
# 安装并自动挂载进 web profile
dsh plugin --profile web add dsh-notify-me
重启 dsh web,然后硬刷新页面(Ctrl+Shift+R)。如果你使用其他 Web profile,请把命令中的 web 换成实际名称。
DSH Desktop
- 在桌面应用打开 插件 → 添加插件。
- 输入 npm 包名
dsh-notify-me,按应用提示完成安装,并确认插件已启用。 - 完全退出并重新启动 DSH Desktop,使插件加载。
桌面端的 desktop profile 由 Electron 应用管理;不要把上面的 Web 命令改成 --profile desktop,CLI 会拒绝此操作。安装到 Web profile 也不会自动安装到桌面端。
首次验证
- 在 DSH 页面上点击一次,按提示允许通知;若此前拒绝过,在浏览器站点设置中允许通知。操作系统也需要允许对应浏览器 / DSH Desktop 显示通知。
- 打开 设置 → 通知提醒,确认出现该分区及底部插件版本号,保持「启用提醒」「提示音」开启。
- 点击设置页的「测试『回复完成』」按钮:应出现一条测试通知,并按当前音效设置播放声音。这个本地测试不会转发到外部通知端点,也不受「窗口在前台时也提醒」开关限制。
Web 用户可再测审批按钮,通知上会带「同意 / 拒绝」。桌面端拿不到 Service Worker,这条测试只发一条普通通知;真实审批的提醒同理——只弹通知,点它回到对话里裁决。
控制台验证(可选) — 支持 DevTools 的环境也可执行:
window.__dshNotifyMe.test("done") // 「完成」示例
window.__dshNotifyMe.test("attention") // 「需要你」示例
window.__dshNotifyMe.test("approval") // 桥可用时带「同意 / 拒绝」按钮;否则只发普通通知(桌面端即如此)
window.__dshNotifyMe.debug() // 桥接状态看 bridge 字段(active = 按钮可用);最近一次被平台拒发的原因在 lastToastReject
没有测试通知时,先检查:通知权限是否被拒绝(在页面上点一下 → 选「允许」;或地址栏锁 → 站点设置 → 通知 → 允许 → 刷新)、装完没重启 DSH、系统设置里浏览器通知被关。
为什么需要它
- 不开完整访问(
workspace-write+ ask):保留事前审批,但错过请求会让 agent 等待。 - 开完整访问(full access):减少审批打断,同时放弃事前拦截能力。
dsh-notify-me 把「监督」和「守在屏幕前」解耦:只在真的出现决策点(审批 / 方案确认 / 提问)或回复跑完时,才用系统通知把你叫回来——让你敢不开完整访问,不必靠放弃拦截能力来换效率。它不降低 full access 本身的权限风险(它不是沙箱),只是减少 ask 模式下因错过审批而产生的等待。
提醒时机
| 事件 | 默认行为 |
|---|---|
| 🔔 需要你操作 | 页面可见也提醒;当前对话只留标题标记 |
| ✅ 回复完成 | 页面隐藏 / 后台时提醒(可选「仅当前对话静默」或「总是提醒」) |
需要你操作包括审批请求、方案待确认(plan review)和提问(ask_user_question)。带按钮的快捷裁决只在 Web 端可用,桌面端点通知回到对话里裁决(见已知限制)。
回复完成也覆盖后台会话;完成但还没看时,标题带 ✅ 回复完成 · 标记,打开对应会话即撤。标题标记不受提醒策略限制。
通知正文的第一行是会话标题:当前正在看的会话和其他会话一样显示自己的标题,只有宿主还没给出标题的新会话才用「当前对话」占位符兜底。
后台子代理(subagent)子会话的等待与完成默认不提醒:DSH 把每个子代理子会话列成独立会话,但它们是所属主对话那一轮里的步骤,提醒只会是噪音。你当前打开的那个子代理会话不算在内,照常提醒。设置页「子代理会话不提醒」可关掉这个静音。
在 DSH 设置里改配置
打开 设置 → 通知提醒。页面按「提醒方式 → 什么时候提醒 → 试一试」三段排开,不常改的收进底部「高级设置」,点一下展开。每行只写标题,具体说明在鼠标停在标题文字上时弹出的小方框里(只有标题本身触发布局,整行空白处不会弹;触屏或键盘操作时留一份隐藏文本给读屏)。带 ▸ 的行点一下展开子项。
提醒方式
- 启用提醒 总开关:关闭后不弹通知、不响提示音,也不改标签页标题;
- 提示音 / 音量:开关直接切;音量滑块收在该行里,点一下标题(▸ 变成 ▾)展开。具体播什么由「高级设置 → 音效来源」决定;
- 审批通知上直接裁决(默认开):审批带「同意 / 拒绝」,点一下即完成裁决,不用切回页面。Web 走带按钮的系统通知;桌面端
dsh-app://注册不了 Service Worker,通知上没有按钮,点通知回到对话里裁决。设置页「试一试」下面那行会如实说明当前环境能不能给按钮。
什么时候提醒
…

