Laplace-bit/dsh-bell-notify
DeepSeek Harness(dsh)社区插件:为Agent生命周期事件合成铃声+右下角呼吸状态点,每个事件可上传自定义音频。
项目介绍Project Overview
dsh-bell-notify 是 DeepSeek Harness(dsh)的社区插件,将 Agent 生命周期事件转为可配置声音提示。所有铃声由 Web Audio 实时合成,零音频资源。默认仅开启开始执行、等待确认、本轮完成三个事件,其余可按需启用并支持上传自定义音源。配置集中在设置 → 插件 → 插件配置 → 铃声通知。首次加载需点击页面任意位置解锁声音播放。
dsh-bell-notify is a community plugin for DeepSeek Harness (dsh) that turns Agent lifecycle events into configurable sound cues. All chimes are synthesized in real time via Web Audio, so no audio assets ship with the package. By default only start, await-confirm, and turn-complete are enabled; other events stay muted and can be toggled or replaced with uploaded audio files. Configuration lives under Settings → Plugins → Plugin Config → Bell Notify. The initial page click is required once to unlock browser autoplay.
请帮我了解并安装插件:【dsh-bell-notify】【https://github.com/Laplace-bit/dsh-bell-notify】
把上面这条消息直接发给当前会话里的 DSH,让它帮你了解并安装。安装命令不一定准确,发给 DSH 更稳。Send this message to DSH in your current session. CLI install commands may not be accurate across systems — DSH will figure it out for you.
或使用命令行安装(适合开发者)Or use CLI install (for developers)
命令行安装CLI Install
dsh plugin --profile bell add dsh-bell-notify
把 Laplace-bit/dsh-bell-notify 加入你的 DSH 配置(web profile)即可启用。
READMEREADME
dsh-bell-notify 🔔
dsh-bell-notify 是 DeepSeek Harness(dsh)的社区插件。它把关键 Agent 生命周期事件变成可配置的声音提示,让你在不盯着页面时仍能掌握进度。
所有铃声均由 Web Audio 实时合成,不携带音频资源。配置集中在 设置 → 插件 → 插件配置 → 铃声通知:不再提供工作区悬浮面板或右下角状态点,避免占用会话界面。
它不是 DeepSeek 官方发行的一部分,是一个 MIT 协议开源的社区插件。
一句话定位
如果你在后台运行 DeepSeek Harness(dsh)任务,想在需要介入或任务完成时收到低打扰提示,安装这个插件即可。它适合长任务、并行工作和不希望一直盯着浏览器的开发者;不需要外部服务,也不会上传音频。
它不是桌面系统通知桥,也不是通用的浏览器通知库:声音只在 DSH Web 会话的 Agent 生命周期事件发生时播放。
它能干什么
🎵 需要时才响
每个可配置事件都有独立铃声。首次安装默认只开启三个最需要注意的节点:开始执行、等待确认、本轮完成;其余事件预置为关闭,避免过程细节持续打断你。
| 环节 | 默认铃声 | 首次状态 |
|---|---|---|
| 会话启动 | startup |
关闭 |
| 开始执行 | click |
开启 |
| 开始思考 | notify |
关闭 |
| 工具调用 | tick |
关闭 |
| 工具完成 | drop |
关闭 |
| 命令执行 | beep |
关闭 |
| 命令完成 | rise |
关闭 |
| 等待确认 | alert |
开启 |
| 本轮完成 | success |
开启 |
| 回到空闲 | confirm |
关闭 |
🎛️ 每个声音都能自己换
打开 设置 → 插件 → 插件配置 → 铃声通知,可对每一个事件:
- 试听默认音,或者试听你上传的音
- 上传自己的音频文件替换默认音
- 还原回默认
换上的声音会记住(刷新后仍在),界面会显示上传的文件名。需要回到原始配方时,直接选择“还原默认”。
🎼 声音是「活」的
所有铃声都是实时合成的——不是一段段录好的音频文件。这意味着:
- 零音频资源,包体轻到可以忽略
- 内置配方在播放时实时生成;每个事件都可以替换成自己的音频
- 离线可用,不联网、不加载外部资源
为什么做这个
当 Agent 运行较久时,页面并不总在视野里。用少量高价值提示音标记开始、需要确认和完成,你可以把注意力留给别的工作,需要介入时再回到 Harness。
安装
从 DeepSeek Harness 源码仓库里:
pnpm dsh plugin --profile bell add dsh-bell-notify
如果 PATH 上已经有 dsh:
dsh plugin --profile bell add dsh-bell-notify
npm 包带预构建产物,无需 pnpm ≥10 的构建脚本授权,直接可装。
启动:
pnpm dsh --profile bell
打开页面后先点一下页面任意位置(浏览器的音频自动播放策略,点一次即可解锁声音),然后在 设置 → 插件 → 插件配置 → 铃声通知 中按需要调整事件。
卸载:
pnpm dsh plugin --profile bell remove dsh-bell-notify
配置
常规运行参数仍可在 profile 的 cordis.patch.yml 中调整(Cordis 加载时会校验并补默认值):
maxQueue: 8 # 等待队列容量
maxConcurrent: 3 # 同时播放的声音数(1 = 串行,值越大越能重叠)
defaultCooldown: 1000 # 规则默认节流窗口(毫秒)
在 设置 → 插件 → 插件配置 → 铃声通知 中:
- “启用提示音”是唯一的总开关;关闭即完全静音。
- 总音量与启用状态持久化在当前 profile。
- 每个事件的开关、自定义音源和文件名保存在浏览器本地(
localStorage+ IndexedDB),改完立即生效、刷新不丢。
旧版的右下角状态点和浮层设置已移除;现有配置都在插件配置卡中完成。
版本与更新
卡片会显示包元数据中的运行版本。只有当前 profile 能确认使用 npm registry 包时,才会启用“更新”;更新会在该 profile 内执行固定的 pnpm update dsh-bell-notify,随后按 Harness 规则同步 dsh.profile.bundles,完成后重启 Harness 生效。link: / file: 本地开发安装会显示为“开发版本”,更新按钮保持禁用,避免覆盖你的源码链接。
开发
pnpm install
pnpm build # 产出 lib/index.js(Host)+ lib/client.js(浏览器)
pnpm test # 单元测试
pnpm typecheck
想快速试听内置铃声?在仓库中打开 preview.html,或访问在线试听页。
常见问题
这是 DeepSeek 官方插件吗?
不是。它是 DeepSeek Harness(dsh)的社区插件,MIT 协议开源,不属于官方发行。
为什么点了没声音? 大概率是浏览器的自动播放策略——插件首次加载后需要你先在页面上点击一次,声音才会解锁。这之后事件声音就能正常响了。
在哪里配置提示音? 在 Web 设置的 插件 → 插件配置 → 铃声通知 中。这里可以设置启用状态、音量、事件开关与自定义铃声,也能查看并更新 npm 安装的版本。
为什么不再有右下角状态点或浮层? 它们已被移除,避免遮挡工作区。所有控制项现在统一放在插件配置中。
自定义的声音存在哪?
文件字节存在浏览器 IndexedDB,事件到文件的映射存在 localStorage。都在你本地,不会上传到任何地方。
nexu-io/open-design
ruvnet/ruflo
amruthpillai/reactive-resume
esengine/DeepSeek-Reasonix
volcengine/OpenViking
Molunerfinn/PicGo
titanwings/distilly
titanwings/colleague-skill