A task-completion chime for the DeepSeek Harness (DSH) Web GUI.
The moment a root agent turn finishes, it rings — even while the tab is in the background. Stop watching the task list; it will tell you the second you're done.
Contents
Features · Quick Start · Usage · How It Works · Presets · FAQ · Support · Agent Install
You kicked off a 20-minute task, then switched tabs to watch a video. 20 minutes later you come back: the task finished long ago — and you have no idea when.
— dsh-chime exists to fill that one second.
Features
| ⏱ Rings in the background Web Audio playback; works when the tab is hidden |
🎵 10 curated presets Seeded on first run, ready out of the box |
📂 Bring your own sound wav / mp3 / ogg — use your own audio |
| 🔊 Volume control 0–100% slider, preview on release |
⚙️ One panel, everything Settings → Plugins, preferences persist |
♻️ Survives restarts Auto-starts with DSH; settings shared across Web & DSH Desktop |
Quick Start
Option 1 — npm
dsh plugin --profile web add @hto404/dsh-chime
Option 2 — local folder
dsh plugin --profile web add link:C:\path\to\dsh-chime
Option 3 — manual
Place dsh-chime under node_modules/@hto404/ in your web profile, then append to ~/.dsh/cordis.patch.yml:
- insert:
- id: chime
name: '@hto404/dsh-chime'
Restart DSH (start-dsh.bat).
Using DSH Desktop? Install into the desktop profile instead:
dsh plugin --profile desktop add @hto404/dsh-chime
Settings are stored host-side (~/.dsh/dsh-chime/prefs.json), so your volume, mute state and chosen sound are shared across every environment — switch between the Web profile and DSH Desktop without re-configuring.
Usage
Live demo — try the controls yourself: docs/demo.html

- Restart DSH and open the Web GUI.
- Go to Settings → Plugins →「🔔 任务完成提示音」.
- Pick a preset, import your own sound, drag the volume, or mute — all applied and saved instantly.
- From then on, every finished task rings — even in a background tab.
Didn't hear anything the first time? Click 测试声音 once to unlock the browser's autoplay policy — everything works after that.
How It Works
| Role | What it does |
|---|---|
Host lib/index.js |
Listens to agent/status; queues a notification when a root agent turns idle; serves /dsh-chime/poll, /dsh-chime/presets, /dsh-chime/preset-audio |
Client lib/client.js |
Polls /dsh-chime/poll every 2s; plays the selected sound with Web Audio; the control panel lives in the settings.plugin.item slot |
Rule of thumb: only root agents (main sessions) trigger the chime — intermediate subagent completions don't. A long task with a dozen subagents won't ping you mid-way; you hear it only when the final result lands.
Presets
Preset directory: $DSH_HOME/dsh-chime/sounds (default ~/.dsh/dsh-chime/sounds). The 10 bundled sounds are seeded there on first run. Drop any mp3/wav/ogg into that folder and restart the plugin to add your own.
| Preset | Vibe |
|---|---|
| 01-欢快铃声 · Cheerful Bell | Light and pleasant, like good news arriving |
| 02-双声蜂鸣 · Double Beep | Classic electronic, no-nonsense |
| 03-消息弹出 · Message Pop | Short and light, presence without noise |
| 04-确认音 · Confirmation | Steady and assured, the ritual of finishing |
| 05-数字短音 · Quick Tone | One crisp note, unmistakable |
| 06-快速叮咚 · Fast Ding | Bright and loud, hardest to miss |
| 07-气泡通知 · Bubble Pop | Playful, a little cute |
| 08-清亮提示音 · Clear Chime | Airy and mellow, for softer tastes |
| 09-吉他通知 · Guitar Alert | A warm chord, like someone calling you |
| 10-游戏成功 · Game Win | A rising sense of victory — task done! |
Bundled sounds come from Mixkit Free Sound Effects under the Mixkit License (free for commercial use).
FAQ
The task finished but nothing rang — why?Check, in order:
- Is Mute on, or the volume dragged to 0?
- Was it a subagent? dsh-chime only rings for root agents (main sessions).
- Did the browser block autoplay? Click 测试声音 once to unlock it.
Yes. Web Audio playback doesn't depend on page visibility — that's the whole point of dsh-chime.
How do I use my own sound?Two ways: click 导入声音 in the panel and pick a local audio file, or drop an mp3/wav/ogg into the preset directory — it appears in the dropdown after a plugin restart.
Do I need to re-enable it after a DSH restart?No. dsh-chime is a static, composition-mounted plugin — it starts automatically with DSH, and your sound settings persist.
My settings don't carry over between the Web profile and DSH Desktop?They do — since v0.1.2 the plugin keeps its preferences host-side in ~/.dsh/dsh-chime/prefs.json (exposed via /dsh-chime/prefs), so volume, mute and the chosen sound are shared by every environment that mounts the plugin. If an old page still shows defaults, reload the page (or restart DSH Desktop).
Agent Install
Running an AI agent and want it to install this plugin for you? Point it at the instructions:
👉 AGENT-INSTALL.md — starts with "Agent,看这里" and walks any agent through installing this repo into DSH end-to-end.
Support
If it saved you from one extra glance at the task list —
give it a ⭐ so more people who've been walked around by their agents find it.
The point of a tool is to give your attention back to yourself. The eyes that used to watch the task list can rest now.
Apache-2.0 · Made for DeepSeek Harness · Sounds from Mixkit
No comments yet. Be the first to write one.