ppy-web/dsh-plugin-xiaomi-mimo-tts
ppy-web/dsh-plugin-xiaomi-mimo-tts为 DSH 提供小米 MiMo、豆包、浏览器本地 TTS 语音朗读;自动播报、自定义音色、UI 音效、桌宠联动、QQBot 联动。
按工作区定制的任务完成铃声,以及审批、提问、计划评审、目标受阻、任务失败等需要人介入事件的注意提示音,支持内置合成音、语音播报与自定义音频。
English | 中文
A DeepSeek Harness (DSH) plugin for the Web UI: play a customizable ringtone when a task finishes — per workspace — and an attention sound whenever something needs a human.
running: true → false) or a background job completes.The following events always ring (they are not affected by the “quiet current session” option):
| Event | Detection | Default sound |
|---|---|---|
| Approval request | session pendingInteraction: approval | generic attention sound |
| User question | pendingInteraction: question | generic attention sound |
| Plan review | pendingInteraction: plan-review | generic attention sound |
| Goal blocked | goal projection enters blocked | generic attention sound |
| Background task failure | job status failed | Bell (dedicated failure sound) |
Each kind can override the generic attention sound, or use a shared TTS phrase (e.g. “需要你的确认” / “Your confirmation is needed”).
Master switch, “quiet when viewing the current session”, default completion sound, per-workspace completion sounds, generic + per-kind attention sounds, voice settings (voice / rate / preview / refresh), per-row preview and custom-audio upload.
Requires a DSH version with bundle-plugin support (dsh.profile.bundles + dsh.bundle.patch)
and pnpm on PATH (corepack enable or npm i -g pnpm).
# One command: pnpm installs the package and adds it to the profile's bundle layer
dsh plugin --profile web add dsh-plugin-notify-sound
# Restart the server (or refresh the page), then open Settings → 通知铃声
Other profiles work the same way: dsh plugin --profile <name> add dsh-plugin-notify-sound.
@deepseek-ai/schemastery,
@deepseek-ai/cosmokit, @standard-schema/spec) into
$DSH_HOME/profiles/web/node_modules/."dsh-plugin-notify-sound" to dsh.profile.bundles in
$DSH_HOME/profiles/web/package.json.dsh web.dsh-notify-sound:config), sanitizing every read and filling defaults.dsh-plugin-notify-sound settings namespace: on rc.6 the
settings API allowlist (WEB_SETTINGS_NAMESPACES in dsh-host-apiproxy) does not expose
third-party namespaces to browsers, so the client does not depend on settingsScope today;
the registration keeps the migration path open for future releases.npm test # 50+ assertions across host and client halves (Node only, no browser needed)
npm run check # syntax check
Layout:
lib/index.js — host half: registers the settings namespace (schema + defaults)lib/client.js — browser bundle: completion/attention event detection, sound engine
(Web Audio / TTS / Audio), settings panellib/types/index.d.ts — host-side type declarationscordis.patch.yml — bundle patch layer (inserts the notify-sound row)tools/ — tests and verification scripts (not shipped in the npm package)npm login # npm account (2FA recommended)
npm publish --access public