Preface¶
When DeepSeek Harness (DSH) is running agents, developers may need to handle other tasks. When an agent runs for a long time or stays in the background, browser notifications are often unreliable or easy to miss. The article below introduces a plugin that plays real audio through the host operating-system process, ensuring that you can still recognize the end or blocked state of an agent turn even when you are looking at your phone or switching virtual desktops.
Plugin Overview¶
ruazero/dsh-task-chime is a DSH plugin. Its core purpose is to play real system sounds when an agent completes a turn or requires human intervention. Unlike in-webpage notifications, this sound is triggered by a host process through ctx.shell, so it remains audible even if the DSH window is minimized or running in the background.
Core Capabilities¶
This plugin provides the following specific capabilities:
- Two trigger points: Distinguishes “task completed” and “agent blocked while waiting for input” (such as approval or a question). These two trigger points correspond to different sounds and intensities.
- Rich sound library: Provides 13 sound options, including system sounds, beep patterns, and custom audio paths.
- Four-level intensity control: Supports four levels from L1 (light) to L4 (alert). L2 plays twice, L3 includes a prelude and plays three times, and L4 includes rising and descending preludes and plays five times.
- Automatic escalation: If a task exceeds 2 minutes, the intensity increases by one level; if it exceeds 10 minutes, it increases by two levels (capped at L4).
- Trigger scope: Can be set to apply only to root sessions or to include subagent sessions.
- Duration threshold: Short turns are muted by default to avoid frequent interruptions.
- Misfire prevention: The completion sound is triggered only when a
running -> idletransition is observed; for blocked waiting-for-input states, it is triggered only if the state remains unresolved after the grace period. - On-demand trigger tool: Exposes the
task_chimetool, allowing the agent to directly say “ring me” in the conversation to trigger a chime.
Installation and Enablement¶
The installation command is as follows:
dsh plugin --profile web add github:ruazero/dsh-task-chime
After installation, DSH must be restarted (close and reopen DSH Desktop, or restart the dsh web process). The plugin is installed as a configuration bundle, declares dsh.bundle.patch, and is applied automatically without manually editing synthetic files.
Configuration and Modes¶
The plugin supports two running modes. Your choice depends on your persistence requirements:
- Mode A (configuration bundle, permanent): Install it using the command above. This mode persists configuration, remains valid after restarting DSH, and applies to all sessions/projects. Configuration items are written to the
task-chimenamespace insettings.yaml, or can be modified through the UI card. - Mode B (dynamic plugin, temporary): Run the source code directly without installing it. This mode loses configuration on every restart and only affects the current session. It requires approval to run and provides a richer control panel.
Typical Usage¶
Configure task-chime in settings.yaml:
task-chime:
enabled: true
sound: notify
level: 2
autoEscalate: true
scope: roots
registerTool: true
notifyOnInput: true
The agent can proactively trigger a chime by calling the task_chime tool. For example, you only need to say “ring me,” and the agent will immediately execute the tool and play a sound on the host.
Notes¶
- Sound source: The sound is generated by a host process, so it remains audible when the DSH window is minimized, running in the background, or when switching to another virtual desktop.
- Mode differences: Be sure to distinguish between Mode A and Mode B. If you need long-term use and persistent configuration across sessions, use Mode A.
- Source code review: Before installation, it is recommended to review the source code and license (MIT).
Summary¶
This plugin uses operating-system-level audio feedback to solve the problem that DSH developers find it difficult to detect state changes when agents run in the background. Combined with intensity levels, automatic escalation, and an on-demand trigger tool, it can flexibly manage auditory feedback.
For more details, visit: ruazero/dsh-task-chime