dsh-voice
其他 活跃维护

dsh-voice

johndfowler/dsh-voice

为网页端代码编辑区提供语音输入能力,右上角悬浮显示麦克风按钮,点击即可将语音转写为文本录入编辑区,无需手动敲代码,轻量集成直接可用

0
Stars 标星
0
Forks 分支
0
Watchers 关注
0
Open Issues
JavaScript
主要语言
None
开源协议
8 KB
仓库大小
26 天前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:johndfowler/dsh-voice
git clone https://github.com/johndfowler/dsh-voice.git
git clone git@github.com:johndfowler/dsh-voice.git
README.md master

dsh-voice

Voice dictation for the DeepSeek Harness Web GUI composer.

A 🎙 button floats at the composer textarea's top-right corner. Tap it, speak, watch your words land in the draft — tap again to stop. Works on desktop Chrome and iOS Safari (the phone-tailnet workflow), which is the whole point.

How it works

  • Web Speech API (SpeechRecognition / webkitSpeechRecognition) — no backend, no keys, no upload beyond what the browser's speech service already does
  • Continuous recognition with interim results shown as a floating preview
  • Final transcripts append to the current draft (React-safe writes through the native value setter + input event, so the draft store picks them up — the pattern React's onChange actually listens for)
  • Hides itself on browsers without the API (Firefox)

Safety design

  • Zero DOM mutation inside React's tree — the mic is position: fixed, computed from the textarea's rect (the file-mentions crash class avoided)
  • Position re-tracks on resize/scroll/visualViewport changes and composer remounts

Install

cd ~/.dsh/profiles/web
pnpm add file:~/path/to/dsh-voice

Add dsh-voice to the profile's dsh.profile.bundles in package.json, restart the GUI, and the mic appears above the composer.

Permissions

The browser asks for microphone permission on first use (per origin — the localhost GUI and the tailnet URL are separate grants).

License

MIT