前言¶
在 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