dsh-sonic
by xjwwjx
音效提醒插件(动态 Cordis Plugin)—— 当需要用户确认或任务完成时,在浏览器端播放提示音效。 面向 DeepSeek Harness Web。
Sound notification plugin for DeepSeek Harness Web: plays a chime when user confirmation is needed and a success sound when tasks complete
安装
dsh plugin --profile web add github:xjwwjx/dsh-sonicGitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试
安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗
安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。
README
音效提醒插件 —— 当需要用户确认或任务完成时,在浏览器端播放提示音效。 面向 DeepSeek Harness Web。
功能
- 需要用户确认时 播放「确认音」:审批请求(沙箱提权、插件运行授权、工具审批)、
ask_user_question等待作答 - 任务完成时 播放「完成音」:agent 由
running转为idle - 8 种音效 全部由 Web Audio API 实时合成,无需任何音频文件:
| 音效 | key | 特点 |
|---|---|---|
| 叮 | ding |
单音清脆 |
| 叮咚 | dingdong |
门铃双音 |
| 泡泡 | pop |
轻快气泡 |
| 风铃 | chime |
柔和三连音 |
| 成功 | success |
上扬琶音 |
| 哔 | beep |
电子短哔 |
| 注意 | alarm |
提醒双音 |
| 木琴 | marimba |
木琴敲击 |
- 设置面板(设置 → 通用):一键静音、音量滑块、分别挑选「确认音 / 完成音」,点击即试听;选择自动保存并同步给模型
- 模型工具:
sonic_play—— 立即播放指定音效(试听/演示)sonic_status—— 读取当前面板选择状态
工作原理
┌─ Host (宿主组合内静态插件) ───────────────────────┐
│ approval/request ─┐ │
│ ask_user_question ─┼─► 通知队列 ──┬─ GET /sonic/drain ──┐
│ agent/status idle ─┘ │ (webServer 路由) │
│ POST /sonic/state ◄── 面板选择 ─────────┤
│ sonic_play (工具) ─┘ │
└──────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────┐
│ 浏览器 (Client) │
│ 每 1s 轮询 /sonic/drain → 播放对应音效 │
│ Web Audio 合成 8 种音效 │
│ 设置 → 通用 内的选择面板(settings.general.item)│
└──────────────────────────────────────────────────┘
安装(永久挂载)
作为一个 bundle 插件随 Web profile 自动加载(机制与 @liustack/modlens 相同):
- 把本包链接进 profile:在
~/.dsh/profiles/web/package.json的dependencies加"dsh-sonic": "file:<本包路径>",并在dsh.profile.bundles列表加"dsh-sonic" - 在 profile 目录执行
pnpm install(生成本包的链接) - 重启 DeepSeek Harness Web —— 插件随组合自动加载,进程重启后依然在
cordis.patch.yml 会自动插入插件行(- id: dsh-sonic, name: dsh-sonic)。
动态版(会话内
cordis_define加载)的源码保留在examples/dynamic-host.js与examples/dynamic-client.js,仅作参考;动态版在进程重启后会丢失,静态版不会。
文件结构
dsh-sonic/
├── dsh/
│ ├── index.js # Host 半体(事件监听、通知队列、webServer 路由、模型工具)
│ └── client.js # 浏览器半体(Web Audio 音效、轮询、设置面板)
├── examples/ # 动态版源码(参考)
├── cordis.patch.yml # bundle 插件行补丁
├── package.json
├── README.md
└── LICENSE
自定义音效
音效是 Web Audio 合成的一组音符(PRESETS,见 dsh/client.js),每个音符支持:
freq/endFreq—— 起始/结束频率(滑音)at/dur—— 开始时间与时长type—— 波形(sine/triangle/square等)gain/attack—— 音量与起音
想加新音效,往 PRESETS 里加一个条目,并在 Host 端 sonic_play 的 enum 中补充即可。
License
原始 README: https://github.com/xjwwjx/dsh-sonic/blob/main/README.md ↗
同类插件
查看全部 →
dsh
将 DeepSeek Harness 的生命周期状态、错误与审批请求,桥接到本地运行的 OpenPets 桌面伙伴。

dsh-qqbot
让 QQ Bot 接入 DeepSeek Harness(dsh)的官方插件

dsh-open-in-vscode
从 Web GUI 一键在 VS Code 中打开工作区目录。

dsh-notification
回合完成桌面通知,按结果分控 + 关键词过滤。

dsh-notifier
DSH 统一通知推送与远程控制:一个 `notify()` API 打通 25+ 渠道(Telegram / 钉钉 / 飞书 / 企业微信 / QQ 机器人 / WxPusher / PushPlus / Server 酱 / Bark / Discord / Slack / ntfy / webhook 等),timeSensitive / active / passive 分级路由并重试;五通道反向审批(Telegram 按钮 / 飞书卡片 / QQ / WxPusher / 微信 iLink);QQ/钉钉/飞书官方扫码登录;本地 Web 管理台;多 agent 路由;系统桌面通知——以及**手机指挥中心**:在手机上发 `!status` / `!stop` / `!retry` 遥控 agent,通知带可操作按钮(查看结果 / 重试 / 日志,点击回调 agent)。密钥脱敏、工具限流、零运行时依赖。

chatccc
飞书(Lark)或微信(WeChat)聊天控制 DeepSeek Harness / Claude Code / Cursor / Codex / CCC Agent