Introduction

When debugging agents using dsh web, the prompt composer is the most frequently interacted-with point. When instructions are long—such as verbally describing a requirement or supplementing context—typing alone isn’t fast enough; relying on system dictation tools requires manually pasting and sending the transcribed text, which is disconnected from the Web UI’s input state.

dsh-web-speech-input incorporates this into the input field: click a button to start speaking, recognized text is written to the current draft in real-time; stop to review and edit at your discretion, then decide whether to submit. Below is an introduction to this plugin.

What is This

dsh-web-speech-input is the speech-to-text plugin for DeepSeek Harness Web UI, maintained by leozou320-ai, current version 1.0.0, license MIT. One-sentence definition: it converts voice to an editable prompt draft in real-time and never submits automatically.

Implementation-wise, it relies on the browser’s Web Speech API (SpeechRecognition / webkitSpeechRecognition). DSH’s philosophy is “everything is a plugin”; this plugin targets the current Web UI slot API injection interface, ultimately mounting a microphone button on the left side of the composer.

Core Features

  • One-click start/stop recording in the chat input box (composer);
  • Write interim and final recognition results into the existing draft; never auto-submit the prompt, and never click Send or directly call the DeepSeek API;
  • Language selection: prioritize page language, then browser language, finally fall back to zh-CN;
  • Provide clear status prompts for listening, browser not supported, permissions, microphone, network, etc.;
  • Support keyboard focus, ARIA labels, and reduced motion;
  • Clean up microphone recognition and injected styles when the plugin is uninstalled.

In summary, it is only responsible for the “speak → write to draft” phase; the submission action is always left to you.

Permissions and Privacy

  • Request microphone permission only after the user clicks the button;
  • The plugin itself has no server-side components, does not store audio, and does not send network requests;
  • Audio is processed by the browser’s speech recognition implementation, depending on the browser and operating system; it may use remote vendor services or may not work offline;
  • Since the plugin never submits automatically, the recognized text only enters the model request after you send the prompt yourself;
  • Before using voice with confidential content, it is recommended to check the browser vendor’s speech recognition privacy terms.

Installation and Activation

First, confirm three things:

  1. DeepSeek Harness Web profile is 0.1.0-rc.5, or a compatible developer-preview build;
  2. The browser implements SpeechRecognition or webkitSpeechRecognition. Chromium-based browsers currently have the widest compatibility, and the plugin does not guarantee availability; Firefox official version currently does not provide compatible APIs;
  3. Allow Harness Web origin to use the microphone.

After meeting these, execute the installation:

dsh plugin --profile web add github:leozou320-ai/dsh-web-speech-input

After installation, restart dsh web; a microphone button will appear on the left side of the prompt composer.

If you want to try a local version first, you can install from the directory:

dsh plugin --profile web add ./path/to/dsh-web-speech-input

Uninstall when not needed:

dsh plugin --profile web remove dsh-web-speech-input

When uninstalling, it will clean up microphone recognition and injected styles together. Add a meta info: package.json’s engines requires Node ^22.19.0 || >=24.0.0.

Typical Usage

  1. Click the microphone button on the left side of the composer;
  2. If the browser asks, authorize microphone access;
  3. Start speaking; interim recognition text appears in the current draft in real-time;
  4. Click stop, review and edit the draft yourself, then submit in the usual way.

Following the above steps, the plugin always only writes to the draft, never clicks Send, and never directly calls the DeepSeek API.

Applicable Scenarios and Notes

Suitable for developers who often input long prompts in dsh web, such as verbally describing requirements or supplementing long context; also suitable for workflows sensitive to automatic sending—the transcribed result lands in the draft first, ensuring the manual review step is not skipped.

Before using, you need to know:

  • Recognition quality, punctuation, supported languages, and whether it is processed locally, all depend on the browser/OS’s speech recognition service;
  • Company policies, insecure origins, browser settings, or denied authorization may disable microphone recognition;
  • Some browsers end continuous recognition after a pause, requiring the button to be clicked again to resume;
  • The plugin targets the current Web UI slot API, and Harness is in developer preview, so this API may change.

Finally, a general reminder: DSH plugins run with the permissions of the current dsh process. Before installing any third-party plugin, it is recommended to check the source code and license. This project’s license is MIT, consistent with the README and package.json.

Summary

dsh-web-speech-input brings “speak → transcribe → edit” into the composer, and the final submission step is still in your hands, with clear boundaries. See code and docs:

  • GitHub: https://github.com/leozou320-ai/dsh-web-speech-input
  • Community Directory Page: https://www.skillhub.cn/plugins/leozou320-ai/dsh-web-speech-input

The directory is an independent community site with no official affiliation with DeepSeek / Huafan.