前言¶
在 DSH Web UI 里,一次会话通常会经历开始、完成、出错、等待用户审批或回答等状态。如果只依赖文字提示,状态切换有时不够直观。dsh-soundscape 是一个 DeepSeek Harness Web UI 插件:它在回合开始、成功完成、出错或中断、等待用户处理时播放 WebAudio 合成音效,成功完成可带彩带,并给其他插件提供 ctx.soundscape 服务。
这是什么¶
dsh-soundscape 由 Blaczz 维护,许可证为 MIT © 2026 Blaczz。它是独立社区插件,不与 DeepSeek Harness 关联。
一句话定位:给 DSH Web UI 的会话增加事件音效,并把音效能力开放给其他客户端插件调用。
核心功能¶
下面介绍已核实的能力。
- 回合开始时播放
send rebound clack,默认开启。 - 回合成功完成时播放
celebration fanfare并展示confetti,也可切换为plain ding。 - 回合出错或中断时播放
low buzz。 - 等待用户审批、回答或计划审查时播放
two-tone alert(1.5s throttle)。 - 会话打开时可播放
soft two-note greeting,默认关闭。 - 流式输出时可选
typing ambience click(throttled + jittered),默认关闭。 - 使用纯 WebAudio oscillator synthesis,零音频文件、零网络请求、零核心修改。
- 提供
soundscape settings namespace,可保存主开关、主音量、逐音效开关等设置。 - 为其他客户端插件提供
ctx.soundscape.play(name)和ctx.soundscape.celebrate()服务。 - 注册使用
ctx.effect,支持 HMR 自动清理。
安装与启用¶
先确认环境满足:
- DeepSeek Harness,且
dsh web可用 - Node ≥ 22.19
- pnpm
从 GitHub 安装:
dsh plugin --profile web add "github:Blaczz/dsh-soundscape#main"
安装后需要重启 dsh web。后续源码变化可走 HMR。
从 GitHub 安装可能需要 allowBuilds 授权。如果第一次 add github:... 失败,按 dsh 输出将 package key 配置到:
~/.dsh/profiles/web/pnpm-workspace.yaml
的 allowBuilds,或发布预构建 npm 包。
典型用法¶
经过上面的步骤后,可以这样使用:
1、打开任意会话并发送消息。回合开始、成功完成、出错或中断、等待审批或回答会分别触发对应音效。
2、使用会话头部的快速静音开关进行临时静音。设置可跨重启保留。
3、在 Settings → 音效 中调整主开关、主音量、各音效开关、预览和流式节奏参数。
4、开发者可以在其他插件的 inject 中加入 soundscape,并调用:
ctx.soundscape.play('celebrate')
ctx.soundscape.celebrate()
ctx.soundscape.isEnabled()
ctx.soundscape.setEnabled(true)
每个音效都会受用户设置和主音量门控。
适用场景与注意¶
这个插件适合以下情况:
- 你希望 DSH Web UI 在回合开始、完成、出错、等待用户处理时有声音提示。
- 你希望成功完成时有
confetti反馈,也可以切换成plain ding。 - 你希望在其他插件中复用
ctx.soundscape.play(name)或ctx.soundscape.celebrate()。
使用前注意:
- 插件以当前
dsh进程权限运行;安装前应检查源码与许可证。 - 它是独立社区插件,不与 DeepSeek Harness 关联,不应视为 DeepSeek Harness 的官方组件。
- 会话打开问候音和流式 typing ambience 默认关闭。
- 从 GitHub 安装可能需要
allowBuilds授权;安装后需要重启dsh web。
结尾¶
dsh-soundscape 的价值在于用 WebAudio 合成音效补齐 DSH Web UI 的状态反馈,同时保留零音频文件、零网络请求、零核心修改的轻量形态,并开放 ctx.soundscape 供其他插件使用。
GitHub:https://github.com/Blaczz/dsh-soundscape