leozou320-ai
dsh-web-speech-input
Voice-to-text for the DeepSeek Harness Web UI — live, editable, never auto-sends. | DeepSeek Harness 网页语音输入
- Stars
- 1
- Language
- JavaScript
- Created
- Aug 16, 2026
- Updated
- Aug 16, 2026
Introduction
dsh-web-speech-input
English | 简体中文
A microphone button for the DeepSeek Harness Web composer. It uses the browser's Web Speech API to turn live speech into editable prompt text, including interim results while you speak.
Features
- One-click start and stop from the conversation composer.
- Writes interim and final recognition results into the existing draft; it never submits a prompt automatically.
- Uses the page language, then the browser language, with
zh-CNas the fallback. - Clear listening, unsupported-browser, permission, microphone, and network states.
- Keyboard focus, ARIA labels, and reduced-motion support.
- Cleans up microphone recognition and injected styles when the plugin unloads.
Requirements
- DeepSeek Harness Web profile
0.1.0-rc.5or a compatible developer-preview build. - A browser implementing
SpeechRecognitionorwebkitSpeechRecognition. - Microphone permission for the Harness Web origin.
Browser support and recognition behavior vary. Chromium-based browsers currently provide the broadest compatibility; availability is not guaranteed by this plugin.
Install
dsh plugin --profile web add github:leozou320-ai/dsh-web-speech-input
Restart dsh web, then use the microphone button on the left side of the prompt composer. To remove it:
dsh plugin --profile web remove dsh-web-speech-input
How it works
- Click the microphone button.
- Grant microphone access if the browser asks.
- Speak; interim text appears in the current draft.
- Click stop, review or edit the draft, and submit it yourself.
The plugin never clicks Send and never calls a DeepSeek API directly.
Permissions and privacy
- The plugin requests microphone access only after you click its button.
- Audio is handled by the browser's speech-recognition implementation. Depending on the browser and operating system, recognition may use a remote vendor service and may not work offline.
- The plugin itself has no server component, stores no audio, and sends no network requests.
- Recognized text is inserted into the draft. It reaches the configured model provider only if you submit that prompt.
- Check your browser vendor's speech-recognition privacy terms before using confidential speech.
Known limitations
- Firefox does not currently expose a compatible API in normal releases.
- Corporate policies, insecure origins, browser settings, or denied permissions can disable microphone recognition.
- Some browsers end continuous recognition after a pause; click the button again to resume.
- Recognition quality, punctuation, supported languages, and whether processing is local depend on the browser/OS service.
- The plugin targets the current Web UI slot API, which may change during the Harness developer preview.
Troubleshooting
- Button disabled: use a browser with Web Speech API support.
- Permission denied: allow microphone access for the Harness origin in browser site settings, then reload.
- Network error: the browser's recognition service may require internet access even though this plugin has no backend.
- No text appears: verify that the active input draft is editable and that the browser detected the intended microphone.
Development
node --check host.mjs
node --check client.js
node --test
npm pack --dry-run
For a local install test:
dsh plugin --profile web add ./path/to/dsh-web-speech-input