DSH Plugins Marketplace

DSH Plugins

Plugins

/

dsh-plugin-agent-notifications

g

dsh-plugin-agent-notifications

Discovered

DSH Web Extension: Send browser notifications when the Agent task is completed, action is required, or an error occurs. Each of the three cases can be assigned its own notification sound. Browser notifications for DeepSeek Harness.

Machine translated

dsh-plugin-agent-notifications

npm license

一个 DeepSeek Harness(dsh)Web 插件:当 Agent 任务完成、需要你操作(审批、提问、计划审阅)或出错时,用浏览器通知 API 提醒你,并可分别为三种情况选择提示音。

通知由当前 Web 页面发出,所以需要保持 Harness 标签页打开。插件不注册 Service Worker,也不做 Web Push。

触发时机

类型判定依据
任务完成会话的 Agent 状态由 running 变为空闲(同一时刻出现待办时只发「需要操作」,不重复响)
需要操作会话出现等待用户的交互:工具审批(含工具名)、向用户提问(含问题文本)、计划审阅
出错会话级错误事件,正文为压缩成单行的错误信息(截断 200 字符)

这些判定读取 Session 插件自身派生的 UI 状态(uiSession.sessionStatus)与转发的 api-session/error 事件,因此不依赖审批 UI 与提问 UI 的注册顺序,不会抢占或吞掉官方审批面板。

可选设定

设置 → 通知。页面沿用官方 Settings 的骨架:16px/500 页面标题、13px/600 分组标题、16px 行距 + 0.5px 分隔线、36px 控件;开关、下拉菜单、按钮、图标直接用 Harness 原语(Switch、Menu、Button、IconPlayOutlineRegular、IconInfoOutlineRegular、IconWarningOutlineRegular)——与「通用」里的语言/开发者工具行同源,没有自制控件的兜底实现,配色全部取自主题 alias token,跟随明暗主题。

页面只有三组:

  1. 总开关「启用通知」
  2. 触发时机(三个事件合并在同一组,每个事件是「开关 + 该事件的提示音」两行)
    • 任务完成 / 需要操作 / 出错,各自一个开关
    • 开关打开时才出现它自己的音效行(选择器 + 图标试听);开关关闭,音效行整行消失
    • 三个默认音互不相同:叮咚 / 竖琴琶音 / 水滴
    • 把某个音效选成静音,就是单独关掉这个事件的声音,而事件开关保持开启
  3. 范围:仅在页面处于后台时提醒、包含子代理、统一音量 0–100

另外:权限申请是一条内联 Alert(未决定时显示说明 + 「允许通知」按钮;被拒绝/不支持时显示对应警告且不给按钮),授权后这条 Alert 直接消失,不留常驻的“已允许”行。末尾有「发送测试通知」按钮。

总开关关闭时,三个事件开关、音效行、音量滑杆一并禁用。

设置按浏览器保存在 localStorage(dsh.agent-notifications.v1),因为这些偏好与「本浏览器的通知权限」同域;同账号换浏览器不会互相覆盖。存储不可用或内容损坏时回落到内置默认值,页面仍可修改(仅本次会话生效)。

声音 / Sound

提示音由 Web Audio 合成,不加载音频文件:首次点击/按键时解锁音频上下文;浏览器若拒绝播放则静默跳过,不影响通知。通知本身始终带 silent: true,避免与系统提示音叠加。

音色按「敲击琴弦」建模,而不是开关式蜂鸣:每个音都是正弦波,带几毫秒的起音和长指数衰减,并叠一层很轻的八度/十二度泛音。五个预设分别是单音轻提示、两音叮咚、木琴双音、竖琴三音琶音、水滴下行两音;100% 音量也留有充足余量,整体偏柔和。

三种情况分别选音、默认不同,闭着眼也能分辨是完成还是出错:

情况默认音听感
任务完成叮咚明亮上行,收束感
需要操作竖琴琶音三音上行,偏「提示」
出错水滴下行两音,偏「回落」

音量只有一个,作用于全部三种音。

自动播放策略

浏览器(尤其 Chrome)会阻止没有用户交互的页面出声,空闲一段时间后还会再次挂起音频上下文。处理方式:

  • 首次点击/按键/窗口获得焦点时解锁,监听器常驻而不是用完即弃——否则上下文被重新挂起后就再也响不了。
  • 每次播放先排程音符再 resume():音符排在上下文自己的时间轴上,resume() 一通过就立刻发声;先等 resume() 再排程会丢掉那一轮提醒(这正是「有时候听不到」的主要原因)。
  • 切回标签页时主动 wake() 一次。
  • 真被拒绝时(resume() reject),试听按钮会就地给出说明,而不是静默失败。

行为细节

  • 点击通知会聚焦窗口并打开对应会话(会话已不存在时只聚焦)。
  • 首次看到某会话状态只做基线,不会在页面打开或重连时轰炸通知。
  • 同一会话同一类型 4 秒内只响一次;不同的审批/提问请求各自算独立提醒。
  • 权限未授予时不构造通知,但仍播放提示音作为降级提醒。
  • 浏览器不支持通知 API(或非安全上下文)时只播放提示音,设置页会说明。

安装

方式一:官方插件界面(推荐)

打开 Harness 的 插件 面板(侧边栏底部「插件」/ Plugins),点 添加插件(Add plugin)→ 安装第三方插件,在「包名或地址」(Package name or address)里填入:

dsh-plugin-agent-notifications

然后安装。装完刷新页面。

这条路径同样支持 GitHub 仓库地址和本地目录,所以下面两种写法也能直接粘进同一个输入框。

方式二:命令行

dsh plugin --profile web add dsh-plugin-agent-notifications

方式三:Git 仓库

dsh plugin --profile web add https://github.com/genius-alray/dsh-plugin-agent-notifications

方式四:本地目录(开发用)

dsh plugin --profile web add /绝对路径/dsh-plugins/agent-notifications

无论哪种方式,安装都会把这个 bundle 登记到当前 profile 的 package.json dsh.profile.bundles,并按包内 cordis.patch.yml 增加一行 agent-notifications;不覆盖任何官方组件。

开发

npm run check
npm test

测试用 node:test,无第三方依赖:tests/harness.mjs 模拟浏览器模块契约(window.__ModuleLoader__、localStorage、Notification、AudioContext、Document、@deepseek-ai/dsh-client-ui-primitives),其余文件分别覆盖通知引擎与去重、音色包络与自动播放策略、权限通道、设置页渲染(结构与交互)、以及 bundle 清单与 Loader patch 的一致性。

Comments

Loading…

Similar plugins

dsh-notification-center

by 610la

DSH 通知中心插件:对话/任务完成、报错、等待批准等事件触发浏览器通知 + 21 种匹配音效

Notifications & IntegrationsManifest valid

★ 15

↓ 74/wk

MIT

JavaScript

Sep 2, 2026

dsh plugin --profile web add @lyhalal/dsh-notification-center

by better-er

dsh·通知叮咚插件。agent 提问或跑完一轮时,弹浏览器系统通知并让宿主进程播放 Windows 内置提示音,人跑去别的窗口时也能被叫回来;纯插件自包含,不改 DSH 源码。

Notifications & IntegrationsDevelopment & InfrastructureManifest valid

★ 2

↓ 102/wk

MIT

TypeScript

Oct 8, 2026

dsh plugin --profile web add dsh-notify-ding

by AGImentu

DSH (DeepSeek Harness) Web 插件:任务完成后播放提示音(可开关、可调音量、可上传自己的音频;内置提示音由脚本合成)

Development & InfrastructureManifest valid

★ 0

MIT

TypeScript

Sep 12, 2026

dsh plugin --profile web add dsh-turn-chime

by c-ling

DeepSeek Harness 消息提醒插件:回合结束或等待确认时向浏览器、系统、飞书/钉钉/企业微信/通用 Webhook 发送通知

Notifications & IntegrationsManifest valid

★ 8

↓ 129/wk

MIT

JavaScript

Oct 20, 2026

dsh plugin --profile web add dsh-plugin-notify

by Dawn388887

DSH plugin: desktop toast + remote browser notifications when an agent finishes or errors

Tools & CapabilitiesTerminal & ClientsManifest valid

★ 0

↓ 381/wk

MIT

JavaScript

Oct 7, 2026

dsh plugin --profile web add dsh-notify

by YiMlT

DeepSeek Harness 通知插件:在 **任务完成 / 任务出错 / 运行中 / 等待审批 / 等待回答** 时提醒用户。 通知标题为对话标题;系统通知与自定义通知均支持**点击跳转到对应会话**。

Tools & CapabilitiesNotifications & IntegrationsTerminal & ClientsManifest valid

★ 4

↓ 278/wk

MIT

JavaScript

Oct 4, 2026

dsh plugin --profile web add dsh-notify-yimit