AI-Galaxy-GPU/dsh-sound ↗★ 9

@ai-galaxy/dsh-sound

DeepSeek Harness plugin: per-event task-completion and attention sounds for turn-end / approval / question / plan-review / goal-blocked / task-failure, each with its own sound (built-in synth, local audio file) and volume, with a separate subagent channel (Web UI) 适合希望通过声音反馈实时掌握任务进度和异常状态的用户。

패키지
@ai-galaxy/dsh-sound
호환성
미검증
Cordis peer 범위
^4.0.1
버전
0.4.1
라이선스
MIT
최근 업데이트
2026. 9. 14.

설치

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:AI-Galaxy-GPU/dsh-sound

Configuration storage

  • The browser half persists its configuration in localStorage (key dsh-sound:config), sanitizing every read and filling defaults. Uploaded local music files are stored in IndexedDB (dsh-sound-audio) instead — no localStorage quota limits.
  • Config keys: enabled, quietCurrent, ignoreSubagent, and six main sound + six main volume fields — completionSound / approvalSound / questionSound / planReviewSound / goalBlockedSound / failureSound (builtin key, none, local, data: URL, or audio:) and completionVolume … failureVolume (0–1) — plus the matching subagentCompletionSound … subagentFailureSound / subagentCompletionVolume … subagentFailureVolume pairs for the subagent channel (all sounds default to none). localFiles keeps the last chosen local file per event (completion, … and subagent-completion, …) so switching to a built-in sound and back does not drop it.
  • 0.2.0 migration: older configs are upgraded automatically — defaultSound becomes completionSound, voice/TTS values degrade to the per-event default, and workspaces / debounceMs / global volume / voice settings are dropped.
  • Export / import: the settings panel downloads the full config as JSON (IndexedDB audio references are inlined as data URLs) and restores it from a JSON file — moving browsers or machines does not require reconfiguration.
  • The host half also registers the dsh-sound settings namespace: on rc.6 the settings API allowlist (WEB_SETTINGS_NAMESPACES in dsh-host-apiproxy) does not expose third-party namespaces to browsers, so the client does not depend on settingsScope today; the registration keeps the migration path open for future releases.