Bundle
dsh-web-speech-input
Microphone speech-to-text input for the DeepSeek Harness Web UI
- Source
- leozou320-ai
- stars
- 1 stars
- License
- MIT
- Updated
- Updated 5 days ago
Readme
# dsh-web-speech-input English | [简体中文](README.zh-CN.md) A microphone button for the [DeepSeek Harness](https://github.com/deepseek-ai/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-CN` as 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.5` or a compatible developer-preview build. - A browser implementing `SpeechRecognition` or `webkitSpeechRecognition`. - 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 ```sh 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: ```sh dsh plugin --profile web remove dsh-web-speech-input ``` ## How it works 1. Click the microphone button. 2. Grant microphone access if the browser asks. 3. Speak; interim text appears in the current draft. 4. 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 ```sh node --check host.mjs node --check client.js node --test npm pack --dry-run ``` For a local install test: ```sh dsh plugin --profile web add ./path/to/dsh-web-speech-input ``` ## License [MIT](LICENSE)
Install
dsh plugin --profile web add github:leozou320-ai/dsh-web-speech-input
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-web-speech-input from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.