Installation
npx -y @deepseek-ai/dsh plugin --profile web add github:Nixz0824/dsh-sound-cueThis installation command is an unverified starting point generated from the GitHub repository address.
README
Maintainer-authored documentation snapshot.
dsh-sound-cue
DSH Web 提示音:需要你操作时,与任务完成时,各响一声不同的短音。
Two short Web Audio cues for DeepSeek Harness — one when you need to act, one when a task finishes.
试听 / Listen
点击即可试听默认风格 A 的两种提示音(与插件现场合成同一组音符)。若自动播放被浏览器拦住,页面上再点一次即可。
Click to hear the two default (style A) cues — the same notes the plugin synthesizes. If the browser blocks autoplay, click once more on the preview page.
| 中文 | English | Play |
|---|---|---|
| 需要操作(审批 / 提问 / 计划确认) | Needs attention (approval / question / plan review) | ▶ 试听 / Play |
| 任务完成 | Task done | ▶ 试听 / Play |
备用链接 / fallbacks:
中文
纯客户端实现,用 Web Audio 现场合成,无弹窗、无系统通知、无音频文件依赖。
行为
| 事件 | 触发条件 | 提示音(风格 A 默认) |
|---|---|---|
| 需要操作 | 会话出现待审批 / 待回答 / 待计划确认(pendingInteraction 从无到有) | 叮咚双音(880→1175Hz,约 0.3s) |
| 任务完成 | 当前会话回合结束(running true→false),或后台会话完成提醒翻转(completed) | 上行琶音(C5-E5-G5,约 0.45s) |
- 子代理会话的事件默认忽略(
skipSubagents: true) - 同一种音 400ms 内不重复播放
- 浏览器自动播放策略:首次点击/按键后解锁 AudioContext(此后一直有效)
- 完全本地合成:无网络请求、无文件依赖、无隐私外发
安装
dsh plugin --profile web add github:Nixz0824/dsh-sound-cue
# 或本地源码:
dsh plugin --profile web add "link:<本目录绝对路径>"
装完刷新浏览器页面即可生效(客户端 bundle 随页面加载)。
配置
写在本包 cordis.patch.yml 的 insert 行(也可在 profile 的 cordis.patch.yml 里覆盖):
| 配置 | 默认 | 说明 |
|---|---|---|
style | 'A' | A = 简约电子铃;B = 木质敲击(低频叩叩 + 咻—叮滑音) |
volume | 0.5 | 音量 0..1 |
needsOn | true | 「需要操作」提示音总开关 |
doneOn | true | 「任务完成」提示音总开关 |
skipSubagents | true | 忽略子代理会话事件 |
改配置后刷新页面生效。
结构
lib/index.js—— 宿主入口(纯客户端插件,宿主侧为空)lib/client.js—— 客户端 bundle(官方 ModuleLoader 格式,免构建)cordis.patch.yml—— bundle 装配层(insert + 默认配置)docs/—— 试听页与两种提示音的 WAV
lib/ 为手写维护的发布源;改完刷新页面即可。
开发
npm run check
python scripts/gen-preview-sounds.py # 重新生成 docs/sounds/*.wav
License
BSD-3-Clause.
English
Client-only. Cues are synthesized with the Web Audio API — no popups, no OS notifications, no audio files at runtime.
Behavior
| Event | When | Cue (style A, default) |
|---|---|---|
| Needs attention | A session gets a pending approval / question / plan review (pendingInteraction goes from absent to present) | Two-tone ding (880→1175 Hz, ~0.3s) |
| Task done | The current session turn ends (running true→false), or a background session flips completed | Rising arpeggio (C5-E5-G5, ~0.45s) |
- Subagent sessions are ignored by default (
skipSubagents: true) - The same cue will not replay within 400ms
- Browser autoplay policy: the first click or keypress unlocks
AudioContext; it stays unlocked after that - Fully local: no network, no file dependency, nothing leaves the machine
Install
dsh plugin --profile web add github:Nixz0824/dsh-sound-cue
# or from a local checkout:
dsh plugin --profile web add "link:<absolute-path-to-this-folder>"
Reload the browser page after install (the client bundle loads with the page).
Config
Set on the insert row in this package's cordis.patch.yml (or override from the profile cordis.patch.yml):
| Key | Default | Meaning |
|---|---|---|
style | 'A' | A = short electronic bell; B = wooden knock (low double-tap + glide) |
volume | 0.5 | 0..1 |
needsOn | true | Master switch for the "needs attention" cue |
doneOn | true | Master switch for the "task done" cue |
skipSubagents | true | Ignore subagent session events |
Reload the page after changing config.
Layout
lib/index.js— host entry (empty; this plugin is client-only)lib/client.js— client bundle (official ModuleLoader format, no build)cordis.patch.yml— bundle patch (insert + defaults)docs/— listen page and the two preview WAVs
lib/ is the hand-maintained source. Edit and reload.
Development
npm run check
python scripts/gen-preview-sounds.py # regenerate docs/sounds/*.wav
License
BSD-3-Clause.
Project files and signals
Shown items are public repository signals detected in the directory snapshot.
Repository information
- Language
- JavaScript
- License
- BSD-3-Clause
- Latest release
- v0.1.0
- Last updated
- Aug 17, 2026, 8:59 AM
Install deliberately
Review source code, permissions, lifecycle hooks, dependencies and network access. Test untrusted plugins in an isolated environment.