Introduction

When running tasks in dsh web, there are several states waiting for your attention: approval requests, questions asking for input, or a turn that has finished. If you aren’t constantly watching the tab, these states are easily missed.

dsh-audio-alert does something specific: it makes the browser play a sound when the above “needs your attention” events occur. It does not change the task execution logic; it simply turns waiting, questioning, and completion states into audible events.

What is it

ellelkktrraaa/dsh-audio-alert is a DSH plugin with the package name @deepseek-ai/dsh-client-audio-alert and an MIT license.

It targets the browser side of dsh web and provides sound alerts for the following three types of events:

  • approval request
  • ask-user question
  • finished turn

Alert sounds can be configured individually for each event type via the audio-alert setting; if a sound field is left empty, the built-in synthesized voice is used.

Core Features

Below are the verified configuration options and capabilities it provides.

  1. Play alert sounds by event type

The plugin can set sounds for the three types of events separately:

  • approvalSound
  • questionSound
  • doneSound
  1. Configure via audio-alert setting

Available configuration fields include:

  • enabled
  • volume
  • approvalSound
  • questionSound
  • doneSound
  • debug
  1. Sound fields support multiple sources

Sound fields can accept:

  • data URI
  • http(s) / blob URL
  • root-relative URL
  • local filesystem path

If a sound field is left empty, the built-in synthesized voice is used.

  1. Local paths are read by the machine running dsh web

Local path files are read by the Node side on the machine running dsh web and provided to the browser via:

/audio-alert/audio/<kind>

This means the browser does not directly read the local file system.

  1. Debug mode

After setting:

debug: true

The plugin will log the resolved config and each playback event to the browser console and server logs.

Installation and Enablement

First, ensure your environment meets the following conditions:

  • A dsh web deployment
  • Node ^22.19 || >=24
  • pnpm

When installing the plugin, use the installation command provided by the repository:

dsh plugin --profile web add https://github.com/ellelkktrraaa/dsh-audio-alert.git

If you already have a local checkout, you can also install from a local path:

dsh plugin --profile web add C:\path\to\dsh-audio-alert

Afterwards, if you no longer need this plugin, you can remove it by package name:

dsh plugin --profile web remove @deepseek-ai/dsh-client-audio-alert

Configuration

Create an audio-alert configuration section in $DSH_HOME/settings.yaml, for example:

audio-alert:
  enabled: true
  volume: 0.8
  approvalSound: "C:/sounds/approval.mp3"
  questionSound: "C:/sounds/question.mp3"
  doneSound: "C:/sounds/done.mp3"
  debug: true

The meaning of each field is as follows:

  • enabled: Whether to enable the alert sound
  • volume: Volume level
  • approvalSound: The sound for approval requests
  • questionSound: The sound for ask-user questions
  • doneSound: The sound for finished turns
  • debug: Whether to output debug logs

When a sound field is left empty, the built-in synthesized voice is used.

Note: Values starting with / will be treated as root-relative URLs, not local file paths.

After modifying the configuration, you need to restart dsh web:

# Restart the service process you are currently using to access dsh web
# For example, restart the process where dsh web is running

Typical Usage

Below is a verification flow suitable for getting started.

  1. Enable debug logs

Set in settings.yaml:

audio-alert:
  debug: true
  1. Restart dsh web

  2. Trigger an approval request, ask-user question, or finished turn

  3. Open the browser console and check if [audio-alert] logs appear

When normal, you can see similar logs in the console:

[audio-alert] browser half mounted
[audio-alert] scope changed: {"status":"ready","writable":true,"value":{"enabled":true,"volume":0.8,...}}
[audio-alert] alert kind: approval

Then you can check if the browser plays the corresponding sound at the same time the event occurs.

Applicable Scenarios and Considerations

This plugin is suitable for people using dsh web who want to receive sound alerts when tasks enter “awaiting your return” states. It is lightweight, and its main value is to pull the three types of waiting states out of the interface and turn them into a perceivable audio event.

Please pay attention to the following considerations before use.

  1. It is a DSH plugin; check source code and license before installing

dsh-audio-alert will be installed into the web profile as a DSH plugin. Since it runs within the current DSH environment, it is recommended to check the source code, dependencies, and license before installing. The license for this plugin is MIT.

  1. Custom sounds require the host API proxy to expose the audio-alert namespace

Custom sounds require the host API proxy allowlist to expose the audio-alert namespace. If it is not exposed, the browser may fail to read custom sounds, though the plugin may still play the built-in sound.

  1. Local sound files must be readable on the machine running dsh web

Local paths must exist on the machine running dsh web and be readable. It is not directly portable to another machine.

  1. The done event does not distinguish between end reasons

The trigger condition for done is when a session’s running status changes from true to false. It does not distinguish between completed, error, or aborted turns; it simply indicates that this round has ended.

  1. The first sound may be blocked by the browser’s autoplay policy

The first playback may be blocked by the browser’s autoplay policy until a user gesture has occurred on the page. You just need to click on the page once to allow playback.

  1. Sessions already pending or idle at load time will not have missed alerts replayed

If a session was already in pending or idle state when the plugin loaded, it will not replay missed alerts.

  1. If you do not see [audio-alert] logs, suspect the cache first

If there are no [audio-alert] logs in the browser console, the browser might still be using an old client.js. You can try a hard refresh or open a new tab.

Conclusion

The value of dsh-audio-alert is straightforward: turning approval requests, ask-user questions, and finished turns that require human review in dsh web into browser alert sounds. It is configurable via the audio-alert setting, allows selecting sounds by event, and supports local files, URLs, and built-in sounds.

GitHub repository:

https://github.com/ellelkktrraaa/dsh-audio-alert