dsh-mic-dictation
DeepSeek Harness client plugin: mic dictation button next to the Full access control
- Stars
- 2
- Language
- JavaScript
- Created
- Aug 26, 2026
- Updated
- Aug 27, 2026
Introduction
🎤 dsh-mic-dictation
dsh-mic-dictation 是一个 DeepSeek Harness 原生客户端插件:它在 Web 提问栏的 Full access 左侧 加一个麦克风按钮,让你直接用电脑麦克风说话布置任务,识别出的文字会自动写进提问框。
- 🎙️ 浏览器原生语音识别,中文优先(
zh-CN) - 🔌 纯客户端插件,安装即用,无需改 DSH 源码
- 🔐 不索取、不存储任何 API Key 或账号信息
- ♻️ 自动跟随 React 重渲染,按钮始终待在 Full access 左边
- 🧹 HMR / 插件卸载时自动清理按钮、样式与监听器
效果演示
麦克风按钮出现在 Full access 左侧
安装后重启 dsh web 即可使用
说明:以上为产品演示图;实际界面以你的 DSH 版本与主题为准。
环境要求
| 项目 | 要求 |
|---|---|
| DeepSeek Harness | Web profile(dsh web) |
| 浏览器 | Chrome / Edge / Safari |
| 页面地址 | localhost 或 127.0.0.1(浏览器安全上下文要求) |
| 网络 | Chrome 语音识别依赖 Google 语音服务,需联网 |
| 包管理器 | 安装插件需要 pnpm(dsh plugin 内部调用 pnpm) |
安装
从 npm 安装(推荐)
dsh plugin --profile web add dsh-mic-dictation
从 GitHub 安装
# 安装最新 main 分支
dsh plugin --profile web add github:Kilganon725/dsh-mic-dictation
# 或安装指定版本
dsh plugin --profile web add github:Kilganon725/dsh-mic-dictation#v0.1.0
启动
dsh web
刷新页面后,提问栏 Full access 左侧 会出现麦克风按钮。首次点击时,浏览器会请求麦克风权限,选择 允许。
使用方法
- 点击提问栏左侧的 🎤 按钮。
- 直接说话,例如:
帮我整理一下桌面上的 DeepSeek Harness 项目。 - 识别中的文字会实时显示在按钮提示里,最终结果自动写入提问框。
- 再点一次按钮停止识别,然后正常按发送。
它是怎么工作的
浏览器 SpeechRecognition
│
▼
识别出文字
│
▼
原生 value setter + input 事件写入 textarea
│
▼
DSH React 状态机接管草稿,正常发送
插件通过 MutationObserver 定位 [data-composer-card] 里的 Full access / 访问模式按钮,并把麦克风按钮插到它的正前方,所以位置精确且稳定。
隐私说明
- 插件不收集你的语音、文字或任何会话数据。
- 语音识别由浏览器原生的
SpeechRecognition/webkitSpeechRecognition完成;Chrome 会把音频发送到 Google 语音服务进行识别。 - 如果你对语音数据敏感,请不要在使用本插件时口述敏感信息。
常见问题
按钮没有出现?
确认你运行的是 Web profile(dsh web),并且刷新了页面。检查插件是否已启用:设置 → 插件列表,应能看到 dsh-mic-dictation。
点击后提示麦克风权限被拒绝?
在浏览器地址栏左侧的权限图标里,把麦克风权限改为「允许」,然后刷新页面重试。
识别不到中文?
当前识别语言固定为 zh-CN。如果你的系统没有中文语音识别支持,可修改 lib/client.js 中的 rec.lang 后重新安装。
为什么 Firefox 用不了?
Firefox 对 SpeechRecognition 支持不完整,请使用 Chrome、Edge 或 Safari。
开发
本仓库是已构建好的客户端 bundle,不需要额外构建步骤。
dsh-mic-dictation/
├── package.json # 插件清单 + dsh.client / dsh.bundle 声明
├── cordis.patch.yml # bundle patch:把本插件插入 web profile
├── lib/
│ ├── index.js # host half(空 apply)
│ ├── client.js # 浏览器 half(lazy-CJS factory bundle)
│ └── *.d.ts # 类型声明
└── docs/images/ # 演示图
如果你想改按钮样式、识别语言或行为,编辑 lib/client.js,提交后发一个新版本即可。
发布新版本
# 更新版本号
npm version patch
# 推送到 GitHub
git push origin main --tags
# 发布到 npm(需要已登录 npm 且通过 2FA)
npm publish --access public