Introduction

The plugin-based architecture of DeepSeek Harness (DSH) allows functionality to be extended in the Web GUI. To address the efficiency of long-text input, dsh-voice-input-plugin provides a local, browser-side speech-to-text solution using the Web Speech API. It does not consume Host capabilities, nor upload audio to the backend; recognition and draft writing are completed directly on the browser side.

Core Positioning

This is a zero-dependency plugin with no build steps. The plugin registers the configuration layer through dsh.bundle and declares the browser-side implementation through dsh.client. It uses the browser’s native Web Speech API to convert audio captured from the microphone into text and writes it in real time into the input toolbar of the DeepSeek Harness Web GUI.

Core Features

  • Real-time word-by-word transcription: While speaking, the text appears in real time in the message input box.
  • Local processing: Audio is not uploaded to the backend, and no model tools or services are registered.
  • Editing compatibility: You can continue to edit the text with the keyboard during recognition.
  • Integrated input toolbar: A microphone button is added next to the send button of the input box.

Installation and Activation

Installing this plugin requires dsh version >=0.1.0-rc.5.

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

The Web Profile must be restarted after installation for changes to take effect, because the client module registry caches metadata.

Note: A package with the same name exists in the npm registry; it is a different implementation. Please install it using the GitHub address above.

Typical Usage

  1. Start recording: Click the microphone button in the input toolbar. The button turns red and shows a pulsing ring. The first time you use it, a microphone permission request will appear; you must allow it.
  2. Speak and edit: While speaking, the text appears in real time in the message input box. You can continue editing the text with the keyboard at any time.
  3. Stop recording: Click the button again (the icon changes to a stop square) to stop recording.
  4. Send: Click the existing send button to send the recognition result.

Use Cases and Notes

  • Browser compatibility: Only Chrome and Edge browsers are supported. Firefox and Safari lack SpeechRecognition support, so the button will be grayed out.
  • Network requirements: Chromium-based browsers use online recognition services and require an internet connection.
  • Permission management: If the browser denies microphone permission, the feature is unavailable; you must allow it again from the address bar controls.
  • Language and punctuation: The recognition language follows the browser setting (navigator.language), and defaults to zh-CN if it cannot be obtained. Spoken punctuation commands are not parsed; the text returned by the browser is used directly. UI copy is hardcoded in Chinese and does not support multiple languages.
  • Session isolation: One recording belongs only to the current session. Switching sessions stops recognition and releases the microphone; the recognized text remains in the current session’s draft.

Ecosystem Context

This plugin is licensed under the MIT License and maintained by community developer zRa1ny. The DSH philosophy is “everything is a plugin”; the community catalog is not affiliated with official DeepSeek.

  • Repository URL: https://github.com/zRa1ny/dsh-voice-input-plugin
  • Catalog page: https://www.skillhub.cn/plugins/zRa1ny/dsh-voice-input-plugin