前言¶
DSH 的 Web UI 插件可以扩展界面行为。dsh-sound 解决的是提醒问题:任务结束、需要审批、需要回答、计划审查、目标受阻或后台失败时,用声音提示开发者,而不是只依赖界面状态变化。
这是什么¶
dsh-sound 是一个 DeepSeek Harness(DSH)插件,面向 Web UI,由 AI-Galaxy-GPU 维护,许可证为 MIT。它的作用是:在任务结束或需要人工关注时播放可自定义声音,让开发者不必一直盯着 Web UI 窗口。
核心功能¶
六类独立事件¶
dsh-sound 覆盖六类事件:
turn end / background task completedapproval requestuser questionplan reviewgoal blockedbackground / loop failure
每类事件都有独立声音和独立音量,音量范围为 0–100%。
声音来源¶
每类事件可以选择:
- 内置合成声音:
Ding/Chime/Bell/Complete/Success - 静音
- 本地文件:
MP3/WAV等
本地音乐文件保存在 IndexedDB,库名为 dsh-sound-audio,不占用 localStorage 配额。
设置面板¶
打开:
Settings → 声音通知 / Sound Notification
设置面板包含:
- 总开关
- 六类事件行
- 音量滑块
- 声音选择
- 本地文件选择/替换
- 配置导出/导入
多标签页与事件回退¶
多个标签页打开时,同一事件只响铃一次,使用 BroadcastChannel 做 tie-break。
当事件流不可用或帧解包失败时,插件会回退到 snapshot diffing。
安装与启用¶
安装条件¶
安装前需要满足:
- DSH 版本支持 bundle-plugin,包含
dsh.profile.bundles与dsh.bundle.patch pnpm在 PATH 中- Node 版本满足
>=20
依赖方面,dependencies 包括 @deepseek-ai/schemastery,peerDependencies 包括 @deepseek-ai/cordis。
Web profile 安装¶
执行:
dsh plugin --profile web add dsh-sound
然后打开 Settings → 声音通知 / Sound Notification,选择事件声音、音量或本地文件。
其他 profile¶
其他 profile 使用相同方式:
dsh plugin --profile <name> add dsh-sound
不使用 pnpm 的手动安装¶
如果没有 pnpm,可以手动安装:
- 将该包及其运行时依赖复制到:
$DSH_HOME/profiles/web/node_modules/
- 在:
$DSH_HOME/profiles/web/package.json
的 dsh.profile.bundles 中加入 "dsh-sound"。
- 重启:
dsh web
典型用法¶
配置每类事件¶
在设置面板中,为每个事件选择声音、调整音量,或选择本地文件。
导出和导入配置¶
使用设置面板导出完整配置为 JSON,也可以从 JSON 文件恢复配置。这样可以在浏览器或机器间迁移配置。
本地开发验证¶
可以运行:
npm test
npm run check
npm test 运行测试;npm run check 做语法检查。
配置与迁移¶
浏览器端配置保存在 localStorage,key 为:
dsh-sound:config
每次读取都会做清洗并补默认值。
配置项包括:
enabled
quietCurrent
以及六类事件声音字段、六类事件音量字段和:
localFiles
0.2.0 迁移会自动升级旧配置:
defaultSound变为completionSound- voice/TTS 值退化为事件默认值
workspaces、debounceMs、全局volume和 voice 设置会被移除
在 rc.6 中,settings API allowlist 不向浏览器暴露第三方 namespace,因此当前客户端不依赖 settingsScope。
适用场景与注意¶
适合在 DSH Web UI 中运行任务、审批、提问等流程,并希望用声音降低盯屏成本的开发者。
注意:
- 插件以当前
dsh进程权限运行,安装前应检查源码与许可证。 - 内置合成声音不需要音频文件;本地文件会写入 IndexedDB。
- 多标签页场景依赖
BroadcastChanneltie-break。 - 本地开发时,profile 的 pnpm 使用
nodeLinker: hoisted,会把file:依赖复制进node_modules;修改本地 checkout 后,需要重新执行 update,或用 symlink 替换复制目录。
结尾¶
dsh-sound 把 DSH Web UI 中的完成、审批、提问、计划审查、目标受阻和失败事件映射成可配置声音提醒,适合作为本地开发时保持注意力的轻量插件。
- GitHub:https://github.com/AI-Galaxy-GPU/dsh-sound
- 社区目录:可按
dsh-sound检索