Introduction¶
DeepSeek Harness (DSH) provides a plugin-based architecture. During long-running tasks or debugging, developers often need to clearly know whether the current Agent conversation turn has ended. dsh-voice-notify is a host-side plugin that hooks into DSH’s native “turn finishing” extension point and triggers a Chinese voice announcement when the conversation truly ends.
Core Features¶
- Turn Finishing Announcement: Listens to the
agent/turn-stoppingevent and plays a Chinese voice announcement when the conversation truly ends. - Built-in Voice Library: Includes 20 “Xiaoxiao · Warm” style reduplicated-phrase voice clips (WAV format).
- Visual Configuration: Provides a settings page with support for a master switch, sub-agent turn filtering, minimum interval, fixed voice selection, and more.
- Custom Extension: Supports specifying custom voice directories and scripts.
- Turn Filtering and Interval: Supports sub-agent turn filtering and uses
minIntervalMsto prevent frequent announcements.
Installation and Enablement¶
This plugin only supports the Windows platform.
Installation Command¶
Run the following command in the extracted directory:
powershell -NoProfile -ExecutionPolicy Bypass -File .\install.ps1
Daemon Hot Mount (Recommended)¶
If you need the change to take effect immediately in a running DSH instance without restarting, you can use daemon hot mount mode:
powershell -ExecutionPolicy Bypass -File .\install.ps1 -Hot
Working Principle¶
- Hook Point:
agent/turn-stopping(hostserialextension point, dispatched when a turn truly finishes). - Playback: Randomly plays one built-in WAV; optionally appends your own voice directory.
- Non-blocking: After
spawn, callsunref()and returns immediately; it never waits for playback to complete. - Fault Tolerance: Any exceptions are swallowed and only logged; they never affect the finalization of the task.
Configuration¶
Configuration items are located under the mount entry’s config:
- id: voice-notify
name: dsh-voice-notify
config:
enabled: true # 总开关
includeSubagents: false # 子代理轮次是否也响
minIntervalMs: 4000 # 两条提醒的最小间隔
clip: '' # 固定一条,如 'done-3';留空则随机
clipDir: '' # 额外语音目录,*.wav 一起进随机池
voiceScript: '' # 覆盖放音脚本(默认包内 lib/play.ps1)
Notes¶
- Platform Limitation: Only supports the Windows platform.
- Sub-agent Default Behavior: Sub-agent turns do not trigger announcements by default; set
includeSubagents: trueto include them. - Minimum Interval: Defaults to 4000ms to prevent frequent announcements.
- React Dependency: React is an optional dependency.
- Log Location: The log file is located at
$DSH_HOME/voice-notify.log.