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