Preface

When running agents in DeepSeek Harness (DSH), the assistant’s replies are often lengthy. Staring at the screen to read segment by segment, or switching to another window and then returning, makes it easy to miss key information. The browser’s built-in reading capabilities are scattered and cannot be controlled at the message granularity, let alone integrate with DSH’s conversation flow or approval events.

The dsh-plugin-tts introduced below is a client-side plugin for the DSH web configuration profile: it connects Microsoft Edge’s free online TTS to the conversation interface, allowing each assistant message to be read aloud on click or automatically, with adjustable voice and speed in the settings panel. For custom voice lines, it can also integrate with a local RVC model. The Edge TTS path requires no API Key; the RVC path runs locally without uploading to the cloud.

What This Is

dsh-plugin-tts (GitHub: 1624318455/dsh-plugin-tts) is published by maintainer 1624318455 and categorized as a client plugin in the SkillHub community directory. The current version is 0.3.0, licensed under MIT, with 10 GitHub stars.

The plugin adopts a Host + Web UI dual-side architecture: the Host side registers TTS and RVC-related routes and runs a worker; the Client side injects read-aloud buttons, an auto-read toggle, and a voice settings panel into the DSH Web interface. In one sentence: It reads out assistant replies in DSH Web, with optional RVC custom voice lines.

Core Features

The following capabilities are derived from the plugin’s README and package.json, organized by usage frequency.

Message Reading and Auto-Read

  1. Read Button: Each completed assistant message has a read button next to the copy/feedback/branch operation line. Click to start reading (button displays a dynamic equalizer animation), click again to stop.
  2. Auto-Read Toggle: Located in the input area tool row (between command and access mode buttons). When enabled, each newly completed assistant reply is automatically read (toggle has a circular highlight); when disabled, auto-read stops, but it does not interrupt ongoing manual reads.
  3. Read Selected Text: Select text within a message, and a floating “Read Selected” chip appears. Click to read only the selected portion.

Voice Settings

Path: Settings → Plugins → Voice.

  • TTS Provider: Edge TTS (free, no API Key required) or custom RVC voice line.
  • Voice: 22 live-verified Edge TTS voices, with the default being Xiaoxuan (zh-CN-XiaoxuanNeural). Covers Simplified Chinese, Taiwan/Hong Kong/Macau, English, and some other languages. Some older voices have been removed by Edge endpoints (1007 Unsupported voice), and the plugin automatically prunes them and falls back to the default voice.
  • Effect Adjustment: Speed / Pitch / Volume (0 is default).
  • Preview: Enter text and click the play button; a loading animation is shown during synthesis or playback, with inline error messages if it fails.
  • Voice packs: One-click installation of voice packs from the registry (for the RVC path, see project documentation).

Long Text and Playback Control

  • Seamless Chunked Playback: Long replies use adaptive chunking, synthesizing while playing, with precise Web Audio concatenation between chunks and no gaps (design notes in the repository’s docs/adaptive-chunked-playback.md). Pure Edge TTS long text also follows this pipeline, without waiting for full synthesis.
  • Mini Player: Displays pause/resume and 1x / 1.25x / 1.5x speed controls in the message operation line during reading; chunked long reads show a chunk x/y counter.
  • Download Audio: Each message can download the synthesized result as MP3, reusing the session’s cache, allowing immediate download of recently read content.

RVC Custom Voice (Optional)

In addition to Edge TTS, the plugin supports reading aloud using a locally trained RVC model (local inference, requires preparing the RVC environment yourself). The repository provides a portable RVC runtime, which can be used without installing the full RVC WebUI, or in conjunction with rvc-server.py. Detailed steps are in the RVC Custom Voice Guide and User Guide.

Approval Voice Notification (Optional, Disabled by Default)

When enabled, Agent approval events are announced using Edge TTS (independent of the RVC service, using a dedicated notification voice). approval/asked interrupts the current reading; approval/decided is announced only when idle. Deduplication is performed by approval ID.

Installation and Enabling

Requirements (from README):

  • DeepSeek Harness web configuration profile (dsh web)
  • Node.js >= 22 (worker uses native WebSocket)
  • Only when using RVC custom voice lines: Local RVC inference environment (RVC WebUI or portable runtime) and a running rvc-server.py

The official installation command is as follows. Before installing, please review the repository source code and MIT license; the plugin runs with the permissions of the current dsh process.

dsh plugin --profile web add "github:1624318455/dsh-plugin-tts#main"

For local development, you can point to a directory:

dsh plugin --profile web add "file:/path/to/dsh-plugin-tts"

After installation, restart dsh web, and the plugin will automatically load as part of the profile bundle.

Typical Usage

1. Install and Open the Web Interface

Install the plugin using the command from the previous section, restart dsh web, and open the DSH Web conversation page in a browser.

2. Read a Single Reply

On any completed assistant message, click the read button in the operation line. During reading, the button displays an equalizer animation; click again to stop. If the message is being auto-read, clicking the same button will also stop it.

3. Enable Auto-Read

Find the auto-read toggle in the input area tool row and enable it. From then on, each newly completed assistant reply will start reading automatically; new messages will interrupt the current read. Switching conversations only stops auto-read and does not affect other logic (see README “Edge cases handled”).

4. Configure Voice and Preview

Go to Settings → Plugins → Voice:

  1. Select Edge TTS as the provider (no API Key required).
  2. Choose the desired voice from the list (e.g., default Xiaoxuan, or Simplified Chinese voices like Yunxi or Yunyang).
  3. Adjust speed, pitch, and volume as needed.
  4. Enter text in the preview box and click the play button to confirm the effect.

5. Read a Selected Segment

Drag to select a segment of text in the message body, click the “Read Selected” chip that appears, and only the selected content will be read.

6. Download MP3

After reading a message (or while the synthesis cache is still valid), use the download button in the message operation line to save the audio as MP3.

7. Use RVC Voice (Advanced)

If you need a custom voice line, follow the repository’s User Guide and RVC Guide to start the local RVC service; in voice settings, switch the provider to RVC, and either upload a model or install a voice pack from the registry as per the documentation. macOS users should refer to User Guide §4.2 and the RVC Guide’s “Starting a Local RVC Service”.

Use Cases and Notes

Who Is This For

  • Developers who spend long hours using DSH Web for conversations and want to free their eyes or listen to replies while doing other tasks.
  • Users who need Chinese and multilingual Edge TTS and prefer not to apply for a third-party TTS API Key.
  • Users who already have RVC models and want to use the same voice to read assistant replies in DSH.

Please Note Before Use

  • The plugin is only applicable to the dsh web configuration profile, not a universal extension for CLI or other profiles.
  • Edge TTS relies on Microsoft’s online endpoints; network or endpoint changes may cause individual voices to become unavailable, and the plugin will prune invalid voices and fall back to the default.
  • The RVC path requires local GPU/CPU resources and an additional service process, with higher configuration complexity than pure Edge TTS.
  • The plugin runs with the permissions of the dsh process that installed it. Before installing, please review the source code and MIT license to ensure you accept its Host routes (e.g., /dsh-tts-api/speak, /dsh-tts-audio/<id>, etc.) and worker behavior.
  • SkillHub (https://www.skillhub.cn/plugins/1624318455/dsh-plugin-tts) is a community directory site and has no official affiliation with DeepSeek / High-Flyer; the DSH ecosystem philosophy is “everything is a plugin,” and this plugin is an independent extension maintained by the community.

Conclusion

dsh-plugin-tts integrates Edge TTS and optional RVC voice lines into DSH Web: message-level reading, auto-read, settings panel, and seamless long-text chunking, all without needing an Edge TTS API Key. If you are already using dsh web, you can install it using the official command and complete the initial configuration in Settings → Plugins → Voice.

  • Community directory: https://www.skillhub.cn/plugins/1624318455/dsh-plugin-tts
  • GitHub: https://github.com/1624318455/dsh-plugin-tts
  • Chinese README: https://github.com/1624318455/dsh-plugin-tts/blob/main/README.zh.md
  • User Manual: https://github.com/1624318455/dsh-plugin-tts/blob/main/docs/USER-GUIDE.md