Preface

DeepSeek Harness (DSH) is a plugin-based development framework. When debugging or using agents, developers sometimes need the system to read Agent replies aloud directly, or verify long-text output. Built-in browser speech synthesis is often limited and cannot be invoked directly through Agent tools. The dsh-speak plugin uses the macOS say command to play audio on the host machine running DSH, and provides a complete read-aloud toolchain.

Introduction

dsh-speak is a DeepSeek Harness plugin that runs on macOS. It allows the model to call the speak tool to read text aloud, and provides message action buttons and selection read-aloud functionality in the Web UI. All audio playback comes from the local host, does not go through network transmission, and does not depend on model downloads. The plugin supports automatic script detection for Chinese, English, Japanese, and Korean.

Core Features

  • Agent Tool (speak): The model can call the speak tool to read text aloud or stop reading.
  • Message Actions: A 🔊 button appears below each finalized assistant reply. Click it to read the reply, and click again to stop.
  • Selection Read-Audio: Select any non-input text on the page, and a read-aloud bubble appears. Click it to read.
  • Personalization: Supports configuring voice, speaking rate, and Han character bias by language.
  • Multilingual Support: Based on the macOS say command, it supports Chinese, English, Japanese, and Korean, with automatic script detection.

Installation and Setup

  1. Open DSH and go to Plugins (Plugins in Settings or the Plugins panel in the sidebar).
  2. Click Install bundle, and paste the following repository URL:
   https://github.com/RinChanNOWWW/dsh-speak
  1. The plugin automatically inserts the speak tool and loads browser-side code, without an extra build. If the button does not appear, just refresh the page.

Method 2: CLI Installation (Web Profile only)

For the dsh web profile, you can use CLI installation:

dsh plugin --profile web add https://github.com/RinChanNOWWW/dsh-speak

Method 3: Manual Installation

If you need to install the plugin outside the standard installation process:
1. Copy the package files to the profile directory:

   $DSH_HOME/profiles/<profile>/plugins/dsh-speak/{package.json, index.js, client.js}
  1. Add a line to $DSH_HOME/profiles/<profile>/cordis.patch.yml:
   - insert:
      - id: speak
        name: ./plugins/dsh-speak/index.js
  1. Restart DSH or reload the profile for changes to take effect.

Typical Usage

Let the Agent Read Aloud

You can directly ask the assistant in the conversation to read text aloud. Supported instructions include:
- “read this aloud”
- “read this section”
- “stop reading” / “don’t read”

speak Tool Parameters

Parameter Description
text Text to read aloud. Markdown will be stripped. Required unless stop is true
stop Set to true to stop the current read-aloud instead of starting a new one
language Preferred language (zh/en/ja/ko), used for Han character bias and voice fallback
voice Specifies a specific macOS voice name (e.g., Tingting, Kyoko, etc.)
rate Speaking rate, in words per minute, range 80-500
wait Whether to wait until the read-aloud is fully complete before returning

UI Interactions

  • Message Actions: Click the 🔊 icon below an assistant reply to start reading, and click again to stop. If other content is currently being read, clicking this icon switches to the current content.
  • Selection Read-Audio: Select text on the page, and click the popup bubble to read. The bubble persists and changes to a “Stop reading” state.
  • Settings: Click the gear icon in the editor toolbar, or the gear icon inside the selection bubble, to configure the voice and speaking rate for each language.

Notes

  • System Requirements: macOS only; depends on the say command. Linux support is not implemented.
  • Version Requirements: DSH 0.2.x is required (desktop app or browser profile).
  • Concurrency Limits: Only one read-aloud task can play at a time. New requests override previous ones.
  • Manual Installation: After manually modifying cordis.patch.yml, you must restart DSH or reload the profile for changes to take effect.
  • CLI Limits: The CLI dsh plugin command rejects desktop app profiles and supports Web Profile only.

Summary

The dsh-speak plugin leverages macOS system capabilities to provide native text read-aloud functionality for DSH. It can be called as an Agent tool, and also provides developers with convenient text verification through UI interactions. All operations are completed locally, without additional network requests or API keys.

Plugin directory | GitHub repository