Back to home

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-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

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

  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

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

License

MIT