DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

Voice — DSH Plugin for DeepSeek Harness
← Plugins

@goodandready/dsh-voice

Voice

Voice input for DeepSeek Harness: dictation chunked by pauses and voice messages, each with its own provider fallback chain (Deepgram, Groq, HuggingFace, local whisper.cpp, plus any OpenAI-compatible API of your own).

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add @goodandready/dsh-voice@0.8.33
READMECompatibilityVersions

Compatibility and provenance

Voice is published as @goodandready/dsh-voice and currently resolves to version 0.8.33. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
npm
Registry updated
9/20/2026

Versions

0.8.33
stable
9/19/2026
0.8.32stable
9/19/2026
0.8.31stable
9/18/2026
Show 42 more versionsCollapse versions
0.8.30stable
9/17/2026
0.8.29stable
9/17/2026
0.8.28stable
9/15/2026
0.8.27stable
9/15/2026
0.8.26stable
9/13/2026
0.8.25stable
9/12/2026
0.8.24stable
9/12/2026
0.8.23stable
9/11/2026
0.8.22stable
9/11/2026
0.8.21stable
9/11/2026
0.8.20stable
9/10/2026
0.8.19stable
9/9/2026
0.8.18stable
9/7/2026
0.8.17stable
9/6/2026
0.8.16stable
9/5/2026
0.8.15stable
9/4/2026
0.8.14stable
9/2/2026
0.8.13stable
9/2/2026
0.8.12stable
9/2/2026
0.8.11stable
9/2/2026
0.8.10stable
9/2/2026
0.8.9stable
8/30/2026
0.8.8stable
8/28/2026
0.8.7stable
8/27/2026
0.8.6stable
8/26/2026
0.8.5stable
8/26/2026
0.8.4stable
8/26/2026
0.8.3stable
8/26/2026
0.8.1stable
8/25/2026
0.8.2stable
8/25/2026
0.8.0stable
8/25/2026
0.7.3stable
8/23/2026
0.7.2stable
8/23/2026
0.7.1stable
8/23/2026
0.7.0stable
8/23/2026
0.6.1stable
8/21/2026
0.6.0stable
8/20/2026
0.5.0stable
8/20/2026
0.4.2stable
8/20/2026
0.4.1stable
8/20/2026
0.4.0stable
8/20/2026
0.3.0stable
8/19/2026

Related plugins

Loading related plugins…

Latest
0.8.33
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
276.2 kB
Files
19
Surface
web
License
MIT
Source
npm
GitHub
★ 6
Weekly downloads
1,364
Security scan
✓ v0.8.33 scan passed
Last push
9/19/2026
View source ↗Project homepage ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in

Related plugins

More verified plugins in vision-media.

Tool Describe Image@linxin666/dsh-tool-describe-imageModel-facing describe_image tool for the dsh web GUI: gives a text-only model image understanding by asking a vision-language model at an OpenAI-compatible endpoint to describe one image (local path, http(s) URL, or attachment reference). Hot-pluggable — Deepseek Ivideodeepseek-ivideoiPolloWork HyperFrames Video Studio and 27 editable video templates as a native DeepSeek Harness conversation view.Imagegen@dickpy/dsh-imagegenAI image generation plugin for the dsh web GUI: text-to-image and image-to-image through configurable provider channels (gpt-image-2 / grok-imagine-image / nanobanana series / seedream-5.0-pro / dall-e-3, with native xAI Grok Imagine, Google Nano Banana aVoice Modedsh-voice-modeFull-duplex voice plugin for DeepSeek Harness: local zipformer2 streaming ASR (no API key) → editable draft; Edge TTS or local VITS / Kokoro read-aloud with live captions; true barge-in; hardened HTTP surface + model SHA256 pinning; compatible with all ds

README

📦 @goodandready/dsh-voice

Zero-Latency Streaming Dictation & Multi-Provider Voice Input for DeepSeek Harness

🇬🇧 English • 🇷🇺 Русский • 🇨🇳 中文说明

⭐ If you like this plugin, please star it on GitHub — it shows me that the plugin is useful to you and motivates me to keep developing it.

🐛 If you find a bug or would like to request a feature, open a GitHub issue in any language — I will review your proposal and implement useful suggestions in a future plugin version.

⚡ Overview

dsh-voice brings voice superpowers to the DeepSeek Harness Web UI. Whether you need hands-free real-time streaming dictation segmented on natural breath pauses or crisp voice notes with keyboard/mouse Push-to-Talk gestures, dsh-voice ensures your audio is never lost thanks to automatic multi-provider fallback chains.

graph LR
    subgraph Client [Browser Web UI]
        Mic[🎙️ Dictation Mic] -->|VAD Cut on Pause| Stream[Audio Chunks]
        Wave[🌊 Voice Message] -->|Hold / Release| PTT[Push-to-Talk]
    end

    subgraph Host [DSH Host Backend]
        Stream --> FFMPEG[ffmpeg 16kHz Transcoder]
        PTT --> FFMPEG
        FFMPEG --> Chain{Fallback Chain}
        
        Chain -->|1st Priority| P1[Deepgram / Nova-2]
        Chain -.->|On Rate Limit / 429| P2[Groq / Whisper Turbo]
        Chain -.->|On Failure| P3[Local whisper.cpp / Offline]
    end

    subgraph Output [Target]
        P1 --> Composer[💬 Web Composer / Chat]
        P2 --> Composer
        P3 --> Composer
    end

    style Client fill:#1e1e2e,stroke:#89b4fa,stroke-width:2px,color:#cdd6f4
    style Host fill:#181825,stroke:#cba6f7,stroke-width:2px,color:#cdd6f4
    style Output fill:#11111b,stroke:#a6e3a1,stroke-width:2px,color:#cdd6f4

✨ Key Features

  • 🎙️ Streaming Dictation with VAD: Speech is automatically sliced at natural pauses (vadSilenceMs, default 700ms) and typed into the composer in real time.
  • 🌊 Voice Notes with Cancel Window: Record your thought and have it automatically dispatched to the agent after a safety countdown (autoSendMs, default 4000ms).
  • 🎮 Tactile Push-to-Talk:
    • Mouse: Hold the wave button — releasing sends the message; dragging pointer away discards.
    • Keyboard: Hold Ctrl (or custom hotkey) for hands-free speaking; press Esc to cancel.
  • ⚡ Zero-Latency In-Browser Captions (browser): Chrome Web Speech API recognition runs 100% locally with live floating captions as you speak.
  • 🛡️ Ironclad Multi-Provider Fallbacks: If your primary cloud provider runs out of credits or hits a 429 rate limit, requests seamlessly fail over down the chain.
  • 🧠 Context Glossary Injection: Automatically extracts code variables and identifiers from your composer draft to steer STT model accuracy on technical jargon.
  • 🎵 Embedded Audio Player: Preview, scrubber, and playback of your recorded voice message directly in chat and the composer dock.
  • 🔇 Hardware Noise Suppression Toggle: Configurable in settings to toggle browser-level noise suppression, echo cancellation, and auto gain control.
  • 📊 Provider Latency & Health Dashboard: Live visual telemetry of provider latency (ms), success rates, and errors directly within the settings UI.
  • 🔒 Zero API Key Leakage: Keys are resolved on the host via ctx.credentials (credentialRef) and never transmitted to browser clients.
  • 🖥️ Offline Local Whisper Server: Automatically boots and manages whisper.cpp (whisper-server) with on-the-fly ffmpeg transcode.
  • ⚡ SenseVoice-ONNX / Sherpa-ONNX (0.8.11, updated 0.8.32): Ultra-fast (~50–100ms) non-autoregressive local STT engine with 1-click automatic model installation to ~/.dsh/models/sensevoice.
  • 🎙️ Gated Turn-Taking & Echo Prevention (0.8.32): Automatically mutes the mic while the assistant is speaking (dsh:tts:start/stop) and supports speech-triggered Barge-In.

📝 What's New in 0.8.32

10-point feature epic & SenseVoice 1-Click Installer (Issue #129):

AreaFeatureDescription
Local ASR1-Click SenseVoice-SmallAutomated download and extraction of model.int8.onnx and tokens.txt directly to ~/.dsh/models/sensevoice via host loopback endpoint.
Turn-TakingGated ModeMicrophone input is muted when assistant audio starts (dsh:tts:start) and unmuted on dsh:tts:stop, eliminating acoustic feedback.
InterruptionBarge-InSpeaking immediately signals assistant TTS to pause and abort current speech playback.
FeedbackGhost Interim PreviewSemi-transparent live text preview in composer pill during recognition before sentence finalizing.
CountdownSVG Silence RingCircular SVG progress ring visually ticking down pending auto-send delay.
ControlHands-free ActionsSpoken control words ("send", "cancel", "clear", "new line") trigger actions instead of becoming message text.
PromptsStructured PromptsSpoken replies automatically match and submit options in active harness interactive prompts.
VocabularyIT Jargon NormalizerAuto-corrects spoken developer slang to canonical spelling (GitHub, Docker, Kubernetes, etc.) with custom dictionary in Settings.
ConfigurationIndividual TogglesDedicated switches for every enhancement in Settings card with native --dsw-alias-* token styling.

📝 What's New in 0.8.19

Quality batch after the v0.8.18 review (Gitea #79–#87, PR #88):

AreaChange
Settings placeholdersModel/path hints resolve through locale at render time — no frozen i18n keys (#79)
Model field hintswhisperModel / sensevoiceModel show path-to-model copy, not binary-autostart hints (#82)
VisualizerLiquid wave / dynamic orb read DSH theme tokens instead of hardcoded hex (#80)
Style isolationInjected CSS uses data-dsh-plugin="dsh-voice" so neighbour HMR cleanup cannot strip styles (#81)
Source languageCode comments, errors, and tests are English; EN edit-command phrases added. Spoken RU STT patterns remain for recognition (#86)
LocalesChanged: the full inline ru dictionary was removed. English is the only bundled locale. Install the translation plugin for Russian UI (#85)
Client sourceBrowser client is built from ordered lib/client-src/*.js fragments via npm run build:client (#87)
Process docsAdded docs/design/DESIGN.md, index.md, project AGENTS.md, docs/testing/unit.md (#83)

[!IMPORTANT] v0.8.19 locale behavior: without a translation plugin the Web UI stays in English. Session/edit spoken command phrases still match Russian speech for STT where documented; interface labels do not ship a second dictionary.


🎮 Four Ways to Speak

ModeGesture / TriggerBehavior
DictationClick 🎙️ MicSpeech is sliced on pauses (vadSilenceMs) and typed live into composer
Voice MessageClick 🌊 WaveRecords until stopped, then sends after cancel window (autoSendMs)
Mouse PTTHold 🌊 WaveRecords while held; release sends message, drag off button to discard
Keyboard PTTHold CtrlHands-free recording; release sends message, press Esc to discard

[!TIP] You can customize the keyboard modifier in settings (hotkey: Control, Alt, Shift, or any KeyboardEvent.code).


🛠️ Supported Providers Matrix

Provider KeyService BackendDefault ModelCredential RefFeatures & Notes
browserWeb Speech APINative BrowserNoneZero latency, floating live captions in Chrome
deepgramDeepgram APInova-2DEEPGRAM_API_KEYUltra-fast cloud transcription
groqGroq Whisperwhisper-large-v3-turboGROQ_API_KEYNear-instant inference speed
hfHuggingFace Inferenceopenai/whisper-large-v3HF_TOKENHigh-accuracy open Whisper
local-whisperLocal whisper.cppServer definedNone100% private, offline, no internet needed
sensevoiceSenseVoice-ONNX / Sherpa-ONNXSenseVoiceSmallNoneUltra-fast (~50ms) local non-autoregressive STT

🚀 Ready-Made Presets (Plug & Play)

Just specify the name in your fallback chain and add the corresponding API key:

  • openai (whisper-1) → OPENAI_API_KEY
  • siliconflow (SenseVoiceSmall) → SILICONFLOW_API_KEY
  • mistral (voxtral-mini-latest) → MISTRAL_API_KEY
  • openrouter (google/gemini-2.5-flash) → OPENROUTER_API_KEY
  • deepinfra (whisper-large-v3-turbo) → DEEPINFRA_API_KEY
  • fireworks (whisper-v3-turbo) → FIREWORKS_API_KEY

📦 Quick Installation

dsh plugin --profile web add @goodandready/dsh-voice

[!IMPORTANT] Restart DSH Web UI after installation (systemctl --user restart dsh-web) and refresh your browser tab.


⚙️ Configuration

Open Settings → Plugins → Plugin settings → Voice in the Web UI:

- id: dsh-voice
  config:
    dictation:
      language: ru
      vadSilenceMs: 700
      chain:
        - provider: deepgram
        - provider: groq
        - provider: local-whisper
    message:
      language: ru
      autoSendMs: 4000
      chain:
        - provider: openai
        - provider: local-whisper
    hotkey: Control
    autoStart: true
    whisperModel: /models/ggml-medium-q8_0.bin

🤖 Agent Tool & HTTP API

Agent Tool (transcribe_audio)

Registers transcribe_audio(file_path, language?) in ctx.tools, allowing agents to analyze audio files, interview recordings, and voice notes directly from disk.

Internal HTTP Endpoints

  • POST /dsh-voice/transcribe — { dataBase64, mimeType, mode } → { ok, text, provider, tookMs }
  • POST /dsh-voice/polish — { text } → { ok, text }
  • GET /dsh-voice/status — Returns daemon status, active chains, SenseVoice and realtime config.
  • GET /dsh-voice/realtime — WebSocket upgrade for low-latency audio streaming (OpenAI Realtime API / Sherpa-ONNX). Accepts binary audio chunks, returns JSON text deltas.

📄 License

MIT © GooDAnDReaDY

  • 👻 Live Ghost Interim Preview (0.8.32): Visual real-time preview of spoken words before final chunk transcription.
  • ⏱️ SVG Silence Ring Timer (0.8.32): Circular animated countdown indicator in the composer dock during the pending message delay.
  • 🗣️ Hands-free Voice Actions (0.8.32): Spoken commands ("send", "cancel", "clear", "new line") trigger UI actions directly.
  • 🧩 Structured Prompt Voice Selection (0.8.32): Spoken options automatically select buttons in interactive assistant choice prompts.
  • 📖 Developer Lexicon & IT Jargon Correction (0.8.32): Phonetic normalization for developer slang (GitHub, Docker, Kubernetes, pnpm) with customizable settings dictionary.
  • 🌐 Realtime Audio Streaming (0.8.11): Low-latency WebSocket bridge (/dsh-voice/realtime) for OpenAI Realtime API or local Sherpa-ONNX streaming. API keys stay securely on the host.
  • 🌊 Liquid Wave & Dynamic Orb Visualizer (0.8.12): Smooth animated audio visualization in the recording pill with real-time mic volume reactivity. Switch between organic multi-layer liquid waves, pulsating radiant orb, classic bars, or off.