Introduction

When writing long prompts, organizing commands, or completing code descriptions in DSH, keyboard input is sometimes not convenient enough. dsh-dictate uses voice input as a way to input into Composer: record first, then transcribe, and finally paste the text into Composer, where the user can review, modify, and send it.

It is not a real-time voice conversation plugin: it does not read aloud the model’s replies, nor does it start a bidirectional voice session. Below is an introduction to its positioning, capabilities, installation method, and operational boundaries that need attention.

What is this

dsh-dictate is a context-aware voice input plugin for the DeepSeek Harness (DSH) Composer, maintained by franksong2702.

It defaults to using browser Web Speech recognition, and is usable immediately after installation; on supported platforms, you can also choose local SenseVoice enhanced transcription. After stopping recording, the transcription result remains in Composer; if model polishing is enabled, it references the visible user/Assistant text in the current Session to refine wording and punctuation; the sending action is always controlled by the user.

Core Capabilities

Default Browser Recognition

  • The microphone entry is located in the DSH Composer toolbar, and recording and status are displayed above the Composer.
  • Under Web Speech mode, real-time transcription is displayed during recording, and the final text is written into Composer.
  • Requires the Web Speech API from Chrome or Edge.
  • Microphone permission is required for the first use.
  • The audio for the Web Speech API is processed by the browser’s speech service and does not go through the DSH server.

Optional Local SenseVoice

  • Local SenseVoice is an experimental enhanced transcription, suitable for Apple Silicon Mac and Windows x64.
  • You can install, start, stop, and check status from the plugin settings page.
  • You can explicitly enable “Auto-start with DSH”; this option is disabled by default.
  • The first installation requires downloading the ~253 MB SenseVoice Q8 model.
  • The runtime program is provided with the plugin package and is SHA-256 verified.
  • Local recognition is the final transcription after stopping recording, providing VAD voice confirmation and about 600 ms tail protection, but does not provide real-time temporary text.

Context Enhancement

  • Context vocabulary extraction is based on the current Session and Composer; rule-based vocabulary is used when the model is unavailable.
  • When selecting Mandarin, Cantonese, or Traditional Chinese, you can enable “Optimize Mixed Chinese-English Recognition”.
  • Optional model polishing uses the currently available DSH model, referencing the most recent 6 visible user/Assistant texts to refine wording and punctuation.
  • Original transcription is retained if model polishing fails.

Send Control

  • Model polishing and auto-send are disabled by default.
  • Auto-send is submitted only when the user actively ends the recording.
  • Auto-send does not occur when the browser ends recognition on its own.
  • It does not silently fall back to browser recognition when local recognition is unavailable; the user must explicitly choose to use browser recognition for this session.
  • If transcription of the recorded audio fails, it will not be sent to other services.

Installation and Enabling

First, install it to the Web profile:

dsh plugin --profile web add dsh-dictate@latest

After installation, restart the corresponding DSH Web process:

dsh web

The current package.json version is:

0.4.0-alpha.9

The compatibility range given by the quick install instructions is:

DSH >=0.1.2-alpha.3 <0.2.0

The configuration entry point is as follows:

设置 → 插件 → 插件配置 → 上下文语音输入

You can keep browser speech recognition as default; no need to install the local model. Local SenseVoice is installed and started from the plugin settings page on supported platforms.

DSH Web prints a local URL with an authentication token upon first start. You should use the full URL from the startup output when accessing; do not copy or share the token within it.

dsh-dictate loads and runs as a DSH plugin, accessing local files, loopback interfaces, and system resources according to the current dsh process permissions; you should check source code, LICENSE, THIRD_PARTY_NOTICES.md, etc., before installation.

Typical Usage

  1. Click the microphone in the Composer toolbar to start recording; click the microphone again or the same right modifier key to end recording.
  2. On macOS, click the right Command key while Composer is focused; on Windows/Linux, click the right Control key. Press once to start, press again to end.
  3. After enabling “Hold Mouse to Record”, press and hold the mouse for 500 ms inside Composer to start recording, release to end, and write the final result into the input box.
  4. After Local SenseVoice mode detects continuous speech, it displays “Speech Detected”; after stopping, SenseVoice returns the final text.
  5. After enabling model polishing, the plugin will wait for the selected model to finish polishing before filling it into Composer; if polishing fails, the original transcription is retained.
  6. After enabling auto-send, it will only auto-submit when the user actively ends recording; auto-send will not occur when the browser ends recognition on its own.

Data Scope and Runtime Environment

Model polishing sends the original transcription and the most recent 6 visible user/Assistant texts in the current Session to the selected model provider. It does not read system prompts, tool calls, tool results, images, or Assistant reasoning content; the context is limited to 12 KB.

The local endpoint mode converts mono audio to 16 kHz PCM WAV and sends it to the OpenAI-compatible interface at a loopback address:

/v1/audio/transcriptions

The local runtime program is installed to the current DSH_HOME:

DSH_HOME

It does not modify system Python, PATH, or global packages.

Starting from 0.4.0-alpha.8, local ASR supports Apple Silicon Mac and Windows x64; macOS Intel, Windows ARM64, and Linux continue to use Web Speech.

The macOS runtime program provided in the package uses ad-hoc signing and has not yet used Apple Developer ID certification; the Windows .exe is explicitly unsigned and displays a command prompt window.

The plugin’s auxiliary model calls do not write to DSH Session logs.

Applicable Scenarios and Notes

dsh-dictate is suitable for scenarios where you want to input long sentences, commands, prompts, or code descriptions into DSH Composer using voice and then edit and send them. It is not suitable for scenarios requiring reading out model replies, bidirectional voice sessions, or real-time voice conversations.

When using browser recognition, the Web Speech API of Chrome or Edge is required; when using local recognition, browser microphone and Web Audio capabilities are required. Microphone permission is needed for the first use of both modes.

The materials do not specify the license type, only showing the LICENSE file and THIRD_PARTY_NOTICES.md. Before installation, you should check the source according to local security policies and licensing requirements.

Conclusion

The value of dsh-dictate lies in putting dictation into Composer while retaining the user’s control over editing and sending. The confirmed GitHub address is:

https://github.com/franksong2702/dsh-dictate

The provided materials do not give a confirmed directory page URL.