dsh-read-aloud
Manifest validA speaker button beside the Like button: read any DeepSeek Harness reply aloud with the browser's own speech engine. · 在点赞旁加一个小喇叭,朗读 DSH 的回复。
dsh-read-aloud
English | 中文
A speaker button beside the Like button: read any DeepSeek Harness reply aloud.
Every finalized assistant message gets one extra action in the row it already has, immediately to the right of 👍👎:
copy · 👍 👎 · 🔊 · branch
Click it and the reply is spoken by your browser's own speech engine. Nothing is uploaded, no API key is involved, and no host-side code runs.
Install
dsh plugin --profile web add dsh-read-aloud
Or install it from Settings → Plugin Market. Most installs go live after a page refresh.
Use
| Action | Result |
| --- | --- |
| Click the speaker | Starts reading this reply from the top |
| Click again while reading | Pauses; the icon becomes ▶ |
| Click again while paused | Resumes from the same sentence |
| Click another message's speaker | Stops the current one and starts that one |
| Esc | Stops immediately, wherever the pointer is |
| Hover the speaker | Opens the speed and voice panel |
The button shows three states: 🔈 idle, ⏸ reading, ▶ paused. Reading ends by itself, and the icon returns to 🔈.
Speed and voice
Hovering the button opens a small panel that stays with the message you are listening to:
Speed [0.5×] [0.75×] [1×] [1.25×] [1.5×] [1.75×] [2×]
Voice [ System default ▾ ]
Both choices take effect on the sentence being read and are remembered in the browser's local storage. Voices come from your operating system; the list is sorted with Chinese voices first, and System default picks a voice matching your interface language.
What gets read
Replies are Markdown, and reading Markdown literally sounds terrible — URLs get spelled out character by character and code blocks become noise. So the text is cleaned first:
| Kept | Dropped |
| --- | --- |
| Prose and headings | Fenced code blocks (silently) |
| List items, with their markers removed | Table rows |
| Inline code content, without the backticks | Image syntax |
| Link labels | Link targets and bare URLs |
| Emphasis text, without ** and * | HTML tags, file paths, emoji |
Long replies are read in full — nothing is truncated. The text is queued in sentence-sized pieces rather than handed to the engine in one lump, because several engines silently cut short or drop a single very long utterance.
Requirements
- DeepSeek Harness 0.1.2-rc.1 or newer
- A browser with the Web Speech API. Speech comes from your operating system's installed voices, so an OS with no voice for the reply's language will stay silent — Windows and macOS both ship usable voices, and Edge exposes additional natural voices.
- If the engine is missing entirely, the button says so instead of failing silently.
Privacy
- No network requests. The plugin never contacts a server.
- No API keys, no accounts, no telemetry.
- No host-side code:
lib/index.jsis an emptyapplythat exists only so the plugin appears in the profile's loader. - Speed and voice live in your browser's local storage under
dsh-read-aloud/settings. Clearing site data resets them to1×and System default; nothing else is affected.
Compatibility
The plugin declares engines.dsh >= 0.1.2-rc.1 and registers one entry in the
conversation.chat.assistant-actions slot at order: 20, so it sits beside the
shipped feedback entry (order: 10) without replacing it. It reads the reply
text through the slot's own useChat standard prop, so it needs no host RPC and
no DOM scraping.
Development
npm test
The bundle is hand-written in the client-module format the web shell loads, so
there is no build step and no bundler — lib/client.js is shipped as authored.
The test loads that shipped file with a stubbed module graph and exercises the
text-cleaning, chunking, message-lookup and voice-listing helpers.
License
MIT
Comments
Loading…
Similar plugins
by zhuiyueya
Voice for DeepSeek Harness(dsh) — speech-to-text input + read-aloud TTS for text-only DeepSeek, zero API key.
★ 4
↓ 440/wk
MIT
JavaScript
Aug 15, 2026
dsh plugin --profile web add dsh-voiceby NakamuraIA
Read assistant replies aloud in DeepSeek Harness: text-to-speech providers with streaming playback.
★ 4
MIT
TypeScript
Sep 14, 2026
dsh plugin --profile web add @nakamuraia/dsh-plugin-speechby kittcat-lab
Voice for the DeepSeek Harness: speak to the agent, hear it back, and see what it is doing from a floating window that stays on top of whatever you are running.
★ 0
↓ 386/wk
MIT
JavaScript
Sep 9, 2026
dsh plugin --profile web add dsh-kitt-voiceby PolinniZhong
DeepSeek Harness 语音朗读插件:沉浸式听朗读,用豆包 TTS 自然音色读 AI 回复(BYOK · 点读/暂停/继续)
★ 73
MIT
Swift
Aug 28, 2026
dsh plugin --profile web add dsh-omi-voiceby NewDaNew
DeepSeek Harness 语音输入插件:在 Web GUI 输入框添加麦克风按钮,基于浏览器 Web Speech API 的语音转文字输入,支持可选自动发送。
★ 0
MIT
JavaScript
Aug 15, 2026
dsh plugin --profile web add @local/dsh-plugin-voice-inputby Vim0x3c
DeepSeek Harness (dsh web) 语音播报插件:用 Edge TTS 微软神经语音朗读每个助手回复的最终结果。只读最终答复、长文自动分段、输入框喇叭一键开关、审批提示朗读与自定义提示音,全程本地零第三方依赖。 Text-to-speech for dsh web via Edge TTS.
★ 3
MIT
TypeScript
Aug 20, 2026
dsh plugin --profile web add dsh-tts