dsh-voice-input-en
Minimal, English-only voice input plugin for DeepSeek Harness Web UI — a mic button in the composer using the browser's native SpeechRecognition API. Zero dependencies, no subprocess, no tracking.
- Stars
- 0
- Language
- JavaScript
- Created
- Sep 1, 2026
- Updated
- Sep 1, 2026
Introduction
dsh-voice-input-en
Minimal, English-only voice input for the DeepSeek Harness Web UI.
Adds a mic button to the composer's tool row. Click it, speak, and the
transcript streams into your message draft live via the browser's native
SpeechRecognition API (Chrome / Edge). Click again (or the "Done" button)
to stop.
Written from scratch, not derived from any third-party plugin, specifically to stay small enough to read end to end in one sitting:
client.js— the entire UI and speech-recognition logic (~230 lines, zero dependencies beyondreact, which the host already provides).lib/index.js— a no-op host-side stub required only so the loader mounts the client bundle.
No language picker, no localStorage, no auto-send, no text-to-speech, no
subprocess execution, no network calls beyond whatever the browser's own
speech backend makes on its own. Recognition language follows the browser's
locale (navigator.language).
Install
Add it to your DSH web profile's dependencies:
dsh plugin --profile web add -w dsh-voice-input-en
Then insert it as a Loader entry via cordis.patch.yml (installing the
dependency alone isn't enough — the loader only picks up packages that
appear as a Loader entry):
# ~/.dsh/profiles/web/cordis.patch.yml
- insert:
- id: dsh-voice-input-en
name: 'dsh-voice-input-en'
Restart dsh web and refresh the page. For local development instead of the
published npm package, point the dependency at a local path with
"dsh-voice-input-en": "file:/absolute/path/to/dsh-voice-input-en".
Compatibility
- Requires Chrome, Edge, or another browser that implements
webkitSpeechRecognition. Firefox does not support the Web Speech API. - Must be served from
localhost/127.0.0.1or HTTPS (browser security requirement). - Speech recognition requires network access — the browser calls its own underlying speech service to do the recognition.
License
MIT