Dual-MediaPlayer daemon ($think loop + $fx one-shots) with volume ducking, mood-aware sounds (smooth/struggle/deep_think triggered by consecutive success/failure streaks and prolonged agent runtime), 15 built-in PCM WAV synthesised from sine/square waveforms, per-tool sound mapping with 51 categorised tools, custom WAV/MP3 drop-in with auto-conversion, and a full settings UI with dark-mode fix.
Install
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:berserk0501/dsh-soundscape
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
This plugin publishes its README in Chinese only.
DSH 本机音效插件:监听 Agent 状态与工具生命周期,通过常驻
PowerShell 双 System.Windows.Media.MediaPlayer 守护进程
($think 思考循环 + $fx 一次性音效)播放思考、工具、错误和情绪提示音。
当前能力
agent/status进入running时循环思考音,回到idle时停止并播放结束音。- 工具音闪避:工具音播放时思考循环降低至闪避电平(默认 20%), 结束后自动恢复,实现无缝混音而非打断。
- 情绪感知音效:连续成功触发「顺利进展」上行和弦,连续失败触发 「连续困难」下行不协和音,长时间运行触发「深度思考」低频无人机氛围音。 阈值和音效均可在设置页自定义。
- 工具开始、完成和失败音可独立开关;同工具调用有节流保护。
- 15 种零素材内置 PCM WAV(含 3 种情绪音效);用户可在
assets/sounds/放入<工具名>.wav或<工具名>.mp3覆盖。 - MP3 由
mpg123-decoder在 Node 进程内转换并缓存为 WAV。 - DSH 设置页提供开关、音量、思考音、工具映射、试听、重新扫描和打开音效目录。
- 工具映射面板展示全部 51 个 DSH 标准工具,按分类分组并带彩色标签, 支持搜索过滤和逐工具音效自定义;分类采用精确映射表确保准确归类。
- 深色模式下所有下拉菜单(select/option)均有显式背景色和
color-scheme: dark, 确保选项文字可见。 - 配置写入采用临时文件替换,插件卸载时停止定时器并终止播放进程。
- 守护进程采用滑动窗口重启策略(30 秒内最多 3 次),成功启动后计数器重置, 长期会话不会因偶发崩溃而永久放弃重启。
配置与解析顺序
配置保存在 assets/config.json。工具音按以下顺序解析:
assets/sounds/<工具名>.wav- 已扫描转换的
assets/sounds/<工具名>.mp3 config.tools.<工具名>- 工具分类音
config.tools.default
映射值支持 builtin:<名称>、file:<文件名> 和 none。cache: 前缀是
运行时 MP3 转换缓存键,sanitizeEntry 会显式拒绝其写入配置。file: 条目
中的 .. 和路径分隔符同样在校验层被拦截。MP3 转换缓存由
插件管理,不应手工写入配置。
本地 API
静态 hybrid bundle 使用 DSH 已验证的 webServer.register 同源接口:
GET/POST /api/dsh-soundscape/configGET /api/dsh-soundscape/soundsPOST /api/dsh-soundscape/play-testPOST /api/dsh-soundscape/rescanPOST /api/dsh-soundscape/open-sounds-folder
这些接口只由本机 DSH 页面调用。设计草案中的 harness.handle/host.call
属于动态 Cordis runner,不是此静态 bundle 的运行时 API。
验证
npm install --ignore-scripts --legacy-peer-deps
npm run verify
verify 包含全部源码语法检查、Node 单元测试和宿主 mock smoke。
当前已在真实 DSH 中验证:热重载 active、5 条本地 API、设置页完整挂载、
保存立即生效、12 个内置音效清单、MediaPlayer 守护进程 DAEMON READY
及 PLAYED 回执。实际扬声器听感、最终代码完整重启、真实自定义文件命中
和卸载净验证仍需人工验收,不能仅凭日志推断通过。
Links
More in this category
PolinniZhong/dsh-omi-voice★ 75
In-chat read-aloud for DeepSeek Harness: tap to read, pause and resume AI replies with natural Doubao TTS voices (BYOK), reading only the final answer with code, tables and diagrams filtered; local engine, plugin keeps no API key.
PensiveFei/dsh-voice-scribe★ 36
Voice input for the web UI: tap Alt (or Alt+Space) to start/stop dictation, browser Web Speech (zero-config) or OpenAI-compatible cloud ASR, optional polish through DSH-configured LLM, settings UI.
1624318455/dsh-plugin-tts★ 25
Reads assistant replies aloud via free Edge TTS or your own RVC voice models: read-aloud buttons + auto-read, adaptive chunked progressive playback (gapless long reads), one-click voice-pack installs from a registry, and a portable RVC runtime.
WizisCool/dsh-ears★ 22
Voice input plugin for DeepSeek Harness (dsh): a microphone button in the composer turns speech into a draft transcript, with a choice of speech-recognition backends, optional polish through dsh own LLM routes, and a native settings page.
ppy-web/dsh-plugin-xiaomi-mimo-tts★ 18
Adds Xiaomi MiMo text-to-speech to DSH Web with assistant-message read-aloud, PCM streaming, preset and custom voice design, browser speech fallback, playback controls, and optional UI sounds.
PerryLink/dsh-talk★ 17
Voice I/O for DeepSeek Harness — speech-to-text and text-to-speech over the microphone and audio output.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.