npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

dsh-voice-control

v1.0.0

Published

Voice control for DSH web: speech-to-text into the composer (with auto-send) and spoken playback of assistant replies via the Web Speech API

Readme

dsh-voice-control

DSH Web 声控插件:语音输入 + 语音播报,把 DeepSeek Harness 变成桌面 Jarvis。

  • 🎙 输入框麦克风:麦克风图标嵌在 composer 发送键左侧,样式与原生按钮统一,零额外占位
  • 说话即发送:Web Speech API 实时识别(Chrome/Edge 内置),说完直接发出;关闭自动发送则填入草稿供编辑
  • 🔊 回复播报:语音指令的回复自动朗读——1.5s 文本稳定去抖判定回复完成(流式输出、工具调用都不怕),Markdown 自动清洗成口语
  • 音色动态适配:音色列表按浏览器/系统实时获取(Edge 附赠微软在线自然语音),按语言分组,跨设备自动回落
  • ⚙ 按需设置:右键麦克风弹出设置(自动发送/自动朗读/语速/音色/试听),localStorage 持久化
  • Ctrl+M 全局快捷键;录音中麦克风两侧音波动效
  • 纯浏览器实现,零依赖、零后端、零 API Key

安装

dsh plugin --profile web add dsh-voice-control

也可以从 GitHub 源码安装:dsh plugin --profile web add github:SuCriss/dsh-voice-control

重启 dsh web 生效(新增 bundle 行需重组配置树;之后改源码刷新页面即可热载)。

语音识别使用浏览器内置服务(Chrome/Edge),需要网络;TTS 播报完全本地。不支持 Firefox(无 Web Speech 识别)。

卸载

dsh plugin --profile web remove dsh-voice-control

实现说明

  • 浏览器半区通过 data-composer-card / data-input-scroll 稳定属性定位 composer 工具行,portal 注入麦克风按钮,MutationObserver 兜底重挂
  • 发送走会话作用域 conversation.send();填入走 conversation.input.for().actions.setDraft()
  • 朗读源为会话快照中最新的助手文本节点,按指纹去抖触发

已知边界(v1.0)

  • 语音指令的回复自动朗读:发送后 3 分钟内到达的最后一条助手回复;长回复最多读 1200 字符
  • 推式(push-to-talk)而非常驻监听,避免拾取 TTS 声音形成回环
  • 未适配多会话并排视图下的非活动输入框

MIT © SuCriss