Introduction

In the DeepSeek Harness Web UI, the input box remains the primary workspace. dsh-voice-input supplements a voice entry point for this location: adding a microphone button before the composer’s send button, using the browser Web Speech API for speech-to-text, and streaming the recognized results into the current draft. It is not responsible for sending messages; the final decision to send remains with the operator.

What is it

forrestahha/dsh-voice-input is a speech-to-text plugin for the DeepSeek Harness Web UI, maintained by forrestahha, and licensed under MIT. It adds to the official conversation.input.right extension slot, providing voice input capability to the Web UI input box, while not changing the behavior of agent-loop, model, session-log, or Host API.

Key Features

  • Adds a microphone button before the composer’s send button.
  • Adds to the official conversation.input.right extension slot.
  • Uses the browser Web Speech API to stream recognized results into the current draft.
  • Does not automatically submit messages.
  • Supports standard SpeechRecognition and WebKit prefix implementations.
  • Uses the browser language, with a fallback language of zh-CN.
  • Preserves natural spaces for Chinese, Japanese, Korean, and Latin text.
  • Clicking the microphone button again stops recording; recognition is aborted when the component unmounts.
  • No additional API keys or host-side services are required.

Installation and Usage

First, install it to the Web profile:

dsh plugin --profile web add github:forrestahha/dsh-voice-input

Then start the Web UI:

dsh web

If you need to pin a version:

dsh plugin --profile web add github:forrestahha/dsh-voice-input#v0.1.1

Typical Usage

  1. Open the Web UI and select a workspace.
  2. Click the microphone button to the right of the composer, before the send button. On first use, the browser will ask for microphone access permission.
  3. After starting to speak, the recognized results will be written to the current draft. Clicking the microphone button again stops recording.
  4. After confirming the draft content, manually send it. The plugin will not submit the message for you.

Browser Support

The plugin requires SpeechRecognition or webkitSpeechRecognition. Chromium-based browsers offer broad support.

Browsers that are not supported will not cause startup failure; instead, a disabled microphone button will be displayed.

localhost is treated as a secure context by modern browsers. If Harness is accessed from another machine, using HTTPS might be safer; otherwise, the browser may refuse microphone access.

Privacy and Permissions

The plugin does not save audio and does not make additional network requests. The specific implementation of the Web Speech API is controlled by the browser, and browser vendors may send audio to their speech services. Before handling sensitive content, it is recommended to check the browser’s privacy policy.

The plugin runs with the permissions of the current dsh process; you should check the source code and MIT license before installing.

Use Cases

  • Need to dictate thoughts into a draft in the Web UI before manually organizing and sending them.
  • Using Chromium-based browsers or browsers that support the Web Speech API.
  • Do not want to introduce additional voice service API keys or host-side services.
  • Teams or individuals who accept the browser’s own speech recognition strategies and privacy policies.

If the browser does not support the relevant API, the plugin will only display a disabled button and will not provide voice input capability.

Local Development and Integration Testing

Local development requires Node.js ^22.19.0 || >=24.0.0 and pnpm 11. If you already have a local checkout, you can install it to the Web profile for integration testing:

dsh plugin --profile web add /absolute/path/to/dsh-voice-input
dsh web

Conclusion

The value of dsh-voice-input is clear: adding a controllable voice draft entry point to the DeepSeek Harness Web UI, without changing the message sending flow or introducing additional voice services. GitHub Repository: https://github.com/forrestahha/dsh-voice-input