deepseek-harness-voice-input
Local voice typing and speech-to-text plugin for DeepSeek Harness (dsh), powered by multilingual Whisper.
- Stars
- 0
- Language
- JavaScript
- Created
- Aug 22, 2026
- Updated
- Aug 22, 2026
Introduction
Voice Input and Speech-to-Text for DeepSeek Harness
Add voice typing, microphone dictation, and local speech-to-text to the
DeepSeek Harness (dsh) Web UI.
This DeepSeek Harness plugin records speech in the browser and transcribes it locally
with multilingual Whisper. It works across Firefox, Chrome, Chromium, Edge, and Safari
without a browser extension or a cloud speech-recognition service.
Use it when you want to dictate prompts instead of typing them in the DeepSeek Harness conversation composer. Audio stays on the computer running Harness.
Features
- One microphone button integrated into the DeepSeek Harness prompt input.
- Local, private voice-to-text powered by Whisper, Transformers.js, and ONNX Runtime.
- Multilingual speech recognition, including English and Russian voice input.
- Cross-browser recording through
getUserMediaand the Web Audio API. - A visible first-run model download with percentage, bytes, speed, cancel, and retry controls.
- Persistent setup state: refreshing the page does not start a duplicate model download.
- No Python, pip, ffmpeg, administrator access, browser extension, or external speech API.
Install the DeepSeek Harness voice input plugin
Install the package into the standard web profile:
dsh plugin --profile web add github:wkfedor/deepseek-harness-voice-input
This package is a Cordis plugin rather than a profile bundle. Add it to the YAML list in
$DSH_HOME/profiles/web/cordis.patch.yml (normally ~/.dsh/profiles/web/cordis.patch.yml):
- insert:
- id: voice-input
name: deepseek-harness-voice-input
If that file already contains other entries, merge this insert entry into the existing
top-level YAML array instead of overwriting the file. Restart the DeepSeek Harness Web UI,
then open its usual local address:
dsh web
Use voice typing
- Open a DeepSeek Harness conversation.
- Click the microphone button in the prompt composer.
- On first use, click Install and wait for the local Whisper model to reach 100%.
- Click the microphone to start recording.
- Click it again to stop and transcribe. The recognized text is inserted into the prompt.
The plugin only prepares text. It does not automatically submit the prompt, so you can review or edit the transcription before sending it.
How local speech recognition works
- The browser records mono PCM audio and produces a 16 kHz WAV payload.
- The payload is sent only to the local DeepSeek Harness server.
- A separate worker runs multilingual Whisper through Transformers.js and ONNX Runtime.
- The downloaded model is stored in the Harness data directory, outside the plugin package.
- Temporary audio is deleted after transcription.
No recording is sent to DeepSeek, Google, Microsoft, OpenAI, or another cloud transcription provider by this plugin.
First use
On the first microphone click, the plugin opens its own installer card. The user can start or cancel the model download. The card shows:
- current installation stage;
- downloaded and total bytes;
- percentage and transfer speed;
- a clear error and retry action if setup fails.
The setup endpoint is idempotent: repeated requests attach to the same job and cannot start parallel downloads. Setup state is persisted and survives page reloads.
Runtime
- Node.js (already required by DeepSeek Harness)
@huggingface/transformersonnx-community/whisper-tiny, q4 multilingual weights (about 100 MB)
The model cache defaults to $DSH_HOME/voice-input/models. If DSH_HOME is not set, it uses ~/.cache/deepseek-harness-voice-input/models.
Browser support
The recording path uses getUserMedia and the Web Audio API, not the inconsistent browser SpeechRecognition service. It is intended for current Firefox, Chromium, Edge, and Safari builds that support microphone capture and Web Audio.
The page must have permission to use the microphone. Local Harness pages served from
http://127.0.0.1 are supported by current desktop browsers.
Голосовой ввод для DeepSeek Harness
Этот плагин добавляет голосовой ввод и локальное распознавание русской речи в веб-интерфейс
DeepSeek Harness (dsh). Нажмите кнопку микрофона, продиктуйте запрос и остановите запись —
распознанный текст появится в поле сообщения. Поддерживаются Firefox, Chrome, Chromium и Edge.
Для преобразования речи в текст используется локальная multilingual-модель Whisper. Аудио не отправляется во внешние сервисы. Не требуются Python, ffmpeg, браузерное расширение или платный API распознавания речи. При первом запуске интерфейс показывает загрузку модели, процент, скорость и объём данных.
Плагин подходит для диктовки запросов в DSH, локального voice typing и преобразования русской речи в текст без облачного API.
Files
lib/client.js— microphone, WAV recording, installer card, and progress UIlib/index.js— status/setup/cancel/transcription HTTP routesscripts/stt-worker.js— isolated model loader and transcription worker