前言¶
DeepSeek Harness(DSH)里的一次 Session 可能跑很久。切到其他窗口之后,你往往不能及时知道:Agent 是否已经回复结束,还是停在某个工具调用或计划上等你点批准。盯着界面等并不现实,系统通知也未必能区分「完成」和「待审批」。
下面介绍社区插件 通知提示音(coopobot/dsh-notification-chime):在 Harness 应用内播放两种可区分的短提示音,并在设置里提供试听与状态查看。声音由页面内的 Web Audio 合成,不依赖外部音频文件,也不走会显示为 powershell.exe 的那类系统侧播放路径。
这是什么¶
dsh-notification-chime 是分类为 客户端 的 DSH bundle 插件,维护者为 coopobot。它只做一件事:在合适的 Session 事件发生时,于 Electron 渲染进程(或支持 Client 插件的 Web GUI)里播放提示音——任务结束时一种音,出现人工审批类交互时另一种音。
插件 Host 半部为空,逻辑全部在 Client 侧;不修改 Host 进程、不启动子进程、不访问网络。许可证为 MIT。在 Harness 0.2.1-rc.2 上开发与验证;无需额外运行时依赖。
社区目录页:https://www.skillhub.cn/plugins/coopobot/dsh-notification-chime
源码与说明:https://github.com/coopobot/dsh-notification-chime
核心功能¶
两种提示与触发规则¶
| 场景 | 行为 |
|---|---|
普通 Session 的 turn 结束为 completed、error 或 max-tokens |
播放 完成音 |
出现 approval 或 plan-review 待处理交互 |
播放 审批音 |
| 子智能体完成 | 不播放 |
用户主动中止(aborted / interrupted / forked) |
不播放 |
| 已有审批未处理、状态未变 | 不重复播放审批音 |
完成音与审批音在音高与节奏上刻意区分:完成为 C5 → E5 → B5(带一点 C6 泛音),偏柔和上行;审批为更短、更高的 C6 → G5 → C6 三连音。均为正弦/三角波加包络合成。
降噪与合并¶
600ms 内多次「完成」、900ms 内多次「审批」只响一次,避免连播打扰。
设置与自检¶
路径:设置 → 通用 → 通知提示音。可 试听 完成音(首次点击也会解锁浏览器音频上下文);状态行显示音频是否就绪,以及最近一次真实触发(完成或审批)的时间。任务结束后无需保持该设置页打开。
工作原理(概要)¶
Client 插件订阅页面内的 uiSession.sessionStatus(各 Session 的 running、pendingInteraction、completionUnread)与 sessions.list(用于识别子智能体)。对比前后快照:running: true → false 或出现 completionUnread 视为完成;审批类 pendingInteraction 首次出现视为需要人工审批。随后用 Web Audio 播放,并把状态同步到上述设置项。更完整说明见仓库 docs/ARCHITECTURE.md。
环境要求¶
- DeepSeek Harness Desktop,或支持 Client 插件的 Web GUI。
- 在 Harness
0.2.1-rc.2上开发和验证。 - 无需安装任何运行时依赖;bundle 本地包名为
@local/notification-chime(@local仅用于本地链接,非可发布 npm scope)。
安装与启用¶
安装入口在 Harness 左侧边栏的「插件」页面,不是 设置 → 插件——后者是内置插件与运行时状态的只读清单,没有安装按钮。侧边栏收起时需先展开;「插件」与「定时任务」在同一组全局面板中。
从 Git 地址安装¶
- 打开左侧 插件(Plugins)面板。
- 点击右上角 添加插件,或点旁侧箭头选择 安装第三方插件。
- 在包名输入框填入仓库 Git 地址:
https://github.com/coopobot/dsh-notification-chime
- Host 会先用
git ls-remote检查仓库,再由 pnpm 安装。私有仓库需本机 Git 凭据。 - 按提示检查并安装。安装完成后 bundle 默认启用;若设置项未立刻出现,刷新一次页面。
从本地目录安装¶
若你已在磁盘上有该 bundle 的目录(例如自行下载或解压后的文件夹),在同上「添加插件」对话框中填入该目录的 绝对路径,例如 Linux 下:
/home/me/dsh-notification-chime
Windows 下示例见官方 README(如 C:\Users\me\dsh-notification-chime)。
开发调试:由 Agent 安装本地 bundle¶
让 DSH Agent 调用 plugin_manager 的 install_bundle,target 填仓库目录绝对路径,适合本地改代码联调。
安装前建议浏览源码与 MIT 许可证;Client 插件在 Harness 客户端环境中运行,权限与当前 GUI 进程一致。
典型用法¶
- 按上一节完成安装并确认 bundle 已启用(插件 → 已安装插件)。
- 打开 设置 → 通用 → 通知提示音,点击 试听,确认系统音量合成器中出现 DeepSeek Harness(浏览器中打开 GUI 时则为对应浏览器)且有电平。
- 正常使用 Session:长时间任务可在后台跑;结束或需要
approval/plan-review时会自动发声。 - 若结束未听到声音,先看设置里「上次触发」是否更新:有更新仍无声,按 README 排障检查默认输出设备、远程桌面音频与音频上下文是否已通过试听解锁。
适用场景与注意¶
适合谁:经常并行多窗口、依赖 Harness 跑长任务,又需要区分「跑完了」和「等你点批准」的开发者或日常用户。
不适合或不会响的情况:只关心子智能体结束(故意过滤);主动中止、中断或 fork 的 turn;重复挂着未处理的审批(不会反复催音)。
兼容性:插件依赖 Client 内部的 uiSession、sessions 与 settings.general.item 等接口,尚未承诺跨大版本稳定;升级 Harness 后若失效,优先核对这三处契约。提示音跟随系统默认输出设备;远程桌面/虚拟声卡是否可听取决于客户端音频设置。
生态说明:DSH 强调「一切皆插件」;SkillHub 目录 为社区站点,与 DeepSeek / 幻方无官方从属关系,并非官方应用商店。
排障速查¶
- 有设置项但试听无声:先点试听解锁 Chromium 音频上下文;查合成器电平与默认输出设备。
- 找不到「通知提示音」:确认 bundle 启用、刷新页面或在通用设置中搜「提示音」;查日志是否有 Client 插件加载失败。
- 找不到安装入口:用左侧 插件 页,不要用 设置 → 插件。
仓库 npm run check / npm test 用于 manifest 与 Client 检测逻辑的自检;CI 在 Node 20 与 22 上运行。
结尾¶
dsh-notification-chime 用两种应用内合成提示音,补上「任务已结束」和「需要你审批」这两类最容易被切屏错过的信号,并在设置里提供可验证的试听与上次触发时间。需要安装或细节时,以社区目录与 GitHub README 为准: