DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Voice Mini — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
V

dsh-voice-mini

Voice Mini

DeepSeek Harness 的语音反馈插件:提供 speak 工具、readReplies 朗读、LLM 语音转换流程、每个会话独立的声音、提示音、监控面板,以及原生 macOS 浮动宠物。支持 zh/en i18n。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:CroissanTTs/dsh-voice-mini#aab8bfbc95d9e9c0e946b2c04bb175412dc6bde5
README兼容性版本

兼容性与来源证明

Voice Mini 以 dsh-voice-mini 发布,当前版本为 0.3.10。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/9/18

版本

0.3.10stable
2026/9/18
0.3.8stable
2026/9/18
0.3.6stable
2026/9/17
查看其余 3 个版本收起版本
0.3.5stable
2026/9/17
0.3.4stable
2026/9/17
0.3.2stable
2026/9/16

相关插件

正在加载相关插件…

最新版
0.3.10
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 0
周下载
0
最近提交
2026/9/18
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 vision-media 分类下经过校验的插件。

Tool Describe Image@linxin666/dsh-tool-describe-image面向模型的 describe_image 工具,用于 dsh Web GUI:通过在兼容 OpenAI 的端点调用视觉语言模型,为文本模型提供图像理解能力,以描述一张图像(本地路径、http(s) URL 或附件引用)。可热插拔 —Modlens@liustack/modlens面向仅支持文本的 LLM 的插件视觉能力,由免费的 Antigravity CLI 提供支持Deepseek Ivideodeepseek-ivideoiPolloWork HyperFrames Video Studio,以及 27 个可编辑视频模板,以原生 DeepSeek Harness 对话视图呈现。Imagegen@dickpy/dsh-imagegendsh Web GUI 的 AI 图像生成插件:通过可配置的提供商渠道实现文生图和图生图(gpt-image-2 / grok-imagine-image / nanobanana series / seedream-5.0-pro / dall-e-3,支持原生 xAI Grok Imagine、Google Nano Banana a

README

dsh-voice-mini

A voice-feedback plugin for DeepSeek Harness (DSH) Desktop. The assistant speaks — in its own voice — about outcomes, decision points, and heads-ups, so you can follow along by ear instead of watching the screen.

中文文档

What it does

  • speak tool — the model decides, on its own, what to say aloud (a short line in its own voice, never a read-out of its written reply).
  • readReplies — narrate assistant messages verbatim (mutually exclusive with speak).
  • Verbalizer — after a turn, a lightweight LLM rewrites the reply into one spoken line with emotional framing ("好消息,测试全过了"); falls back to a template on failure. Streaming: spoken sentence-by-sentence as the LLM generates.
  • Status broadcasts — short spoken notices for approval/asked, ask_user_question, turn/start, turn/end, todo/write, with specific phrases for abnormal ends (aborted / blocked / error / max-tokens / interrupted).
  • Per-session voices — each session gets a distinct-but-subtle voice (FNV-1a hash → palette index + ±6% rate jitter), so you can tell conversations apart by ear without picking voices by hand.
  • Chimes — a system-notification-style earcon (the macOS Glass sound, or synthesized ding/ping/soft/none) rings once per burst, before speech content only. Quiet mode = chime-only, no speech.
  • Three presets — 即时 / 默认 / 少量 — bundle the granular toggles into one gear; any single field still overrides.
  • i18n — full zh / en switch for all UI text, spoken phrases, and the verbalizer prompt; auto-detected from the browser locale, overridable from the panel.
  • Monitoring panel — token / latency / system stats with SVG sparklines and per-kind breakdown.
  • Native floating pet (macOS) — a Swift NSPanel widget that hovers across all Spaces, reads live state from the plugin's loopback-gated /pet/* routes, and expands on hover to show the current utterance + pending attention.

Architecture

                          ┌── edge-tts   (default · cloud · zh+en, great)
model ── speak tool ──    ├── kokoro     (local 82M · English only)
                  ├─ synth ┤── say      (macOS offline · Tingting zh)
assistant msg ─ readReplies ┘  └── fake  (wiring tests)
                          │
approval/question/turn/todo events ──┴─► speech queue (single worker) ─► ① chime ② speech
                                   │
session-header SVG icon ──► centered settings modal ─┤
                                   └─► /voice-mini/*  (host routes) + runtime.json (origin+token)
native pet window pet/ ──► /voice-mini/pet/* ──

Who speaks: the assistant vs. a template (core design)

The same event can be handled two ways, kept deliberately separate:

Who composes the lineNatureUsed for
Assistant voice (default)the model itself, via speak in-band, full contexthumanized: "the thing you'd say to the person you're working for"results, progress, milestones
Template broadcasthost fixed stringmechanical but reliableblocking: approval pending, new question
Verbatim read (opt-in, default off)host reads the reply text aloudscriptwhen you'd rather hear than read

Principle: what has the model in the loop (results, progress) → let the model speak; what doesn't (approval, question) → use the template — the model is waiting on you then, and a mechanical alert fits better.

Three anti-double-speak rules (all tested): model already spoke this turn → the "turn done" template stays silent; model stayed silent → template backs it up; verbatim read on → the reply is the speech and the persona tells the model not to also call speak.

Communication presets

PresetSpeech rateWhat it announces
即时 Instant+18%every step: start / done / progress / tools
默认 Default0one line after delivering a result; alerts on blockers
少量 Quiet−5%, −30 volonly approvals/questions; assistant stays silent (chime-only)

TTS backends

idSourceChineseNotes
edge (default)Microsoft neural voices, cloud✅ excellentfree; rate works, volume applied at playback (afplay -v)
kokoroKokoro-82M, local❌ EN onlychild-process isolation sidesteps onnxruntime's abort-trap on Node 26
saymacOS say✅ (Tingting)offline
fake——wiring tests

Install (DSH Desktop)

  1. Build: npm run build (tsc → lib/, then esbuild bundles lib/client.js).
  2. Build the pet (macOS, optional):
    DEVELOPER_DIR=/Library/Developer/CommandLineTools swift build --package-path pet -c release
    
  3. Link into a DSH profile via package.json (link: dependency + bundle entry pointing at ./cordis.patch.yml), then restart DSH Desktop.

The bundle layer (cordis.patch.yml) ships neutral defaults; per-profile overrides go in the profile's own cordis.patch.yml (address this row by id).

Configuration

Key fields (all overridable from the settings modal or POST /voice-mini/config):

FieldDefaultPurpose
presetdefaultinstant / default / quiet
backendedgeedge / kokoro / say / fake
voiceModeper-sessionper-session auto-assign or fixed
voicePalette[]custom voice pool; empty = engine default (8 zh 4F4M + 2 en)
readRepliesfalsenarrate messages verbatim
chimeEnabled / chimeSpeech / chimeStatustrue / glass / softearcon system
statusSpeechtruequiet preset: chime-only (false) vs. spoken (true)
phraseTurnEnd""custom completion phrase; {title} = workspace dir name; empty = locale default
localezhzh / en — switches UI, spoken phrases, verbalizer prompt
summarizeResult / summarizeProvider / summarizeModeltrue / "" / ""verbalizer pass (empty provider = auto-detect first adapter; empty model = stays on the template phrase until you pick one in the panel)

Routes

MethodPathPurpose
GET/voice-mini/statelive snapshot (config + queue + recent + locale)
GET/POST/voice-mini/configread / patch config (whitelist + coerce)
POST/voice-mini/session-toggleenable/disable voice for a session
POST/voice-mini/testsynthesize + play a test line
GET/voice-mini/providers · /modelsLLM adapter + model enumeration
GET/voice-mini/metricscall ring buffer + system stats
GET/voice-mini/audio/*chime files
GET/voice-mini/pet/*native pet (loopback + bearer token gated)

Tests

npm test            # smoke: deferred injection, routes, pet auth
npm run test:summarize   # 8 verbalizer paths
npm run test:presets     # 6 preset-resolution cases
npm run test:agency      # 4 "who speaks" rules
npm run test:voices      # per-session determinism + spread
npm run test:i18n        # 21 cases: dict parity + locale switch of spoken phrases
npm run test:pet         # real plugin routes + real native binary

License

MIT — see LICENSE.