dsh-browser-notify-plugin
给 DeepSeek Harness (DSH) 的 web 界面添加一个功能:每轮对话完成后,在浏览器内弹一条系统级桌面通知——即使浏览器窗口不在前台也能看到。
快速开始
要求:已安装 dsh。
dsh plugin --profile web add dsh-browser-notify-plugin
安装后:
- 打开 DSH web(默认 http://127.0.0.1:3080)。
- 刷新页面,发任意一条消息。
- 该轮执行结束时浏览器会请求通知授权,点允许。
- 之后每一轮对话完成都会弹桌面通知。
若是本地源码调试,改成 dsh plugin --profile web add ./dsh-notify-plugin(指向仓库目录)。
卸载
dsh plugin --profile web remove dsh-browser-notify-plugin
卸载或重装后建议重启 dsh web 并刷新页面,让浏览器里的插件随之生效/失效。
通知效果
- 标题:
DSH · 第 N 轮对话(完成/出错/被打断…)
- 正文:该轮最新回复的摘要(≤120 字)
- 只在通知权限为「允许」时发送;无权限时静默跳过,不会打扰会话
- 对当前窗口之外的会话(后台会话、子 agent)同样生效
- 点击通知会把 DSH 窗口拉到前台
工作原理(简要)
本插件是一个 dsh.bundle + dsh.client 双面插件:浏览器半部订阅 DSH 的会话事件流(events.mux),在每轮结束(turn/end)时调用浏览器 Web Notification API 弹通知。桌面通知必须由浏览器 JS 发起,因此无需改动 DSH 源码。
常见问题
没有收到通知?
- 先确认已刷新页面加载插件;
- 确认地址是
http://127.0.0.1:3080;
- 检查浏览器地址栏的「网站设置 → 通知」是否已允许(或点击右下角被阻止通知的图标单独放行)。
通知策略能改吗?
目前行为固定在上面的「通知效果」。如需调整标题、正文长度或显示时机,改仓库里 lib/client.js 后重新安装/发布即可。