Introduction

For users of the DeepSeek Harness (DSH) web interface, if they miss status updates such as task completion, turn completion, task failure, waiting for approval, or Agent questions, they need to go back and check the interface. dsh-sounds is a DSH plugin (bundle) that uses sounds synthesized in real-time in the browser to alert users to these status changes. Unlike connecting to external notification tools, it handles events and plays sounds directly within the DSH plugin bundle.

What is it

dsh-sounds is maintained by DNNCOVO. The repository is named dsh-sounds, the package name declared in package.json is harness-sounds, the version is 0.1.0, and the license is MIT.

It subscribes to official service events and pushes them via a separate SSE endpoint /harness-sounds/events. The browser side uses EventSource to subscribe and plays alert sounds using Web Audio oscillators.

Verified information states that it “runs independently and does not depend on any other plugins” and also “does not affect DeepSeek Harness itself”. The sounds are synthesized in real-time in the browser; there are no audio files.

Trigger Events and Sound Effects

Below are the verified trigger scenarios and corresponding sound effects.

Scenario Sound Effect Trigger Event
Task Complete / Turn Complete celebrate (ascending triplet at 523/659/784Hz) jobs.onJobDone completed, turn/end
Task Failed / Request Error error (170Hz square wave) jobs.onJobDone failed, agent/request-error
Waiting for Approval wait (880Hz short tone) approval/asked
Agent Question Selection wait (880Hz short tone) tool/call (ask_user_question)

These alert sounds are not pre-recorded audio files but are synthesized in real-time in the browser using Web Audio oscillators.

How it Works

Verified information provides the following operation chain:

Host (Node.js)
  jobs.onJobDone / agent/request-error / session/event
    -> SSE broadcast /harness-sounds/events
Client (browser)
  EventSource subscription -> Web Audio synthesis -> Playback

Where:

  • The Host file is located at .dsh-plugin/index.mjs, directly subscribing to official service events and performing SSE broadcasting;
  • The Client file is located at .dsh-plugin/client.js, responsible for EventSource subscription and Web Audio oscillator synthesis.

Browser autoplay policies require an initial interaction with the page. The documentation states that the first pointerdown or keydown unlocks the AudioContext. Therefore, after enabling, refresh the page and click anywhere on the page once to unlock audio.

Installation and Enablement

Verified information does not provide a single official installation command, only installation steps and package.json configuration. The following explains the steps found in the documentation.

  1. Place this package in the node_modules/ of the web profile, or in any bundle resolution location.

  2. Register dependencies and bundles in the profile’s package.json:

{
  "dependencies": {
    "harness-sounds": "file:./node_modules/harness-sounds"
  },
  "dsh": {
    "profile": {
      "bundles": [
        "@deepseek-ai/dsh-base",
        "@deepseek-ai/dsh-web-app",
        "harness-sounds"
      ]
    }
  }
}
  1. Restart dsh web.

  2. Refresh the page and click anywhere on the page once to unlock audio.

Note: The documentation shows the plugin name appearing as both dsh-sounds (repository/README title) and harness-sounds (package.json name). In the dependencies and bundles examples above, harness-sounds is used.

Listening and Building

The documentation mentions that sound effects can be tested via index.html or the GitHub Pages homepage.

If you need to build the client yourself, you can use the commands provided below:

npx esbuild .dsh-plugin/client/index.mjs --bundle --format=cjs --platform=browser --target=es2020 --outfile=.dsh-plugin/client-bundle.js
node wrap-client.mjs .dsh-plugin/client-bundle.js .dsh-plugin/client.js harness-sounds

The first command uses esbuild to bundle the client source code into a CJS bundle for the browser; the second command uses wrap-client.mjs to wrap it into a .dsh-plugin/client.js that is loadable by the DSH bundle.

Applicable Scenarios and Notes

dsh-sounds is suitable for users who want to be aware of task status on the DSH Web interface using lightweight alert sounds, for example:

  • Not wanting to frequently switch back to the page to confirm task completion;
  • Wanting immediate reminders when a task fails or a request errors out;
  • Wanting to reduce missed notifications when waiting for approval or Agent questions.

It is recommended to check the source code and license before installation. This plugin loads in the DSH plugin execution path and runs with the current dsh process permissions on the Host side, so you need to confirm the source is trustworthy. The license provided in the verified information is MIT © 2026.

Conclusion

The core value of dsh-sounds lies in: using short alert sounds synthesized in real-time in the browser to make DSH’s task completion, task failure, waiting for approval, and Agent question states more obvious, while not introducing audio file dependencies.

  • GitHub Repository: https://github.com/DNNCOVO/dsh-sounds
  • Community Directory Page: The verified information does not provide a clear URL, so this article does not invent a link.