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

@hxnnxs/opencode-voice

v0.1.9

Published

Local voice input plugin for OpenCode

Downloads

1,484

Readme


Installation

One command through OpenCode:

opencode plugin @hxnnxs/opencode-voice

Restart OpenCode after installing. First launch downloads the managed whisper.cpp engine and then the selected model. The user does not install whisper-cli manually.

Optional CLI installer. It runs the same OpenCode plugin install command and pre-downloads the managed engine:

npx @hxnnxs/opencode-voice install

Do not clone the repo unless you want to develop the plugin.

[!TIP] First launch opens a model picker. Choose a Whisper model, let it download, then use ctrl+r to dictate into the prompt.

Requirements

The plugin manages the STT engine and models:

  • downloads whisper.cpp from the opencode-voice GitHub Release registry
  • stores it in ~/.cache/opencode-voice/engines/whisper.cpp/<platform>-<arch>/
  • downloads the selected Whisper model on first setup

Manual whisper-cli install is optional. If a local binary already exists, opencode-voice can still import or use it.

Check your machine:

npx @hxnnxs/opencode-voice doctor

Install the managed engine without opening OpenCode:

npx @hxnnxs/opencode-voice engine install whisper.cpp

Usage

Commands:

  • /voice - toggle recording and append transcription
  • /voice-submit - toggle recording, append transcription, and submit
  • /voice-stop - cancel active recording or transcription
  • /voice-settings - open model, hotkey, microphone, and diagnostics settings

Default hotkey:

ctrl+r -> start recording
ctrl+r -> stop, transcribe, and append

Hold-to-talk is disabled by default because terminal release events vary by terminal. You can still configure a hold hotkey in /voice-settings.

Models

Available now through whisper.cpp:

| Model | Size | Notes | | -------------------- | ------ | ----------------------------- | | Whisper Small | 465 MB | default, multilingual | | Whisper Medium Q4_1 | 469 MB | better accuracy | | Whisper Turbo | 1.5 GB | large, faster than full large | | Whisper Large Q5_0 | 1.0 GB | accurate, slower |

Model downloads support resume, retry, progress, and SHA256 verification.

Planned sidecar models:

  • Parakeet V3
  • GigaAM v3
  • Moonshine V2 Small

Platform Status

| Platform | Status | | -------- | ------ | | Linux | one-command engine/model install; recording uses arecord, ffmpeg, or sox | | macOS | one-command engine/model install; recording uses ffmpeg AVFoundation until the native recorder sidecar ships | | Windows | one-command engine/model/recorder install; recording uses DirectShow through a managed cached ffmpeg.exe, with system/bundled ffmpeg fallback |

Architecture

The package follows the public OpenCode TUI plugin shape used by community plugins.

  • npm package exports ./tui
  • local development can point tui.json at an absolute path
  • published install uses opencode plugin @hxnnxs/opencode-voice
  • runtime settings live in OpenCode TUI plugin storage

Files:

  • index.js - TUI plugin entrypoint, commands, dialogs, keymap layer
  • lib/models.js - model registry, cache paths, default settings
  • lib/download.js - resumable model download and SHA256 verification
  • lib/engine.js - recorder selection, managed Windows recorder install, and whisper-cli transcription
  • lib/engines.js - managed native engine download, status, import, and removal
  • bin/opencode-voice.js - install wrapper and diagnostics CLI

Voice input needs native audio and STT binaries. The JS plugin manages OpenCode UI, settings, engine/model downloads, and prompt insertion. A future native sidecar should replace shell recorders and add fast VAD plus Handy-style models.

Roadmap

  • publish managed whisper-cli release assets before npm release
  • Rust recorder sidecar with cpal and VAD
  • Parakeet, GigaAM, SenseVoice, Canary, and Moonshine model support
  • Windows recorder stability and UX polish
  • faster streaming-style transcription

Development

Run checks:

npm run check
npm pack --dry-run

This MVP has no build step.

Development install from a checkout:

git clone https://github.com/ihxnnxs/opencode-voice.git opencode-voice
cd opencode-voice
opencode plugin "$(pwd)"

Project Status

This is an independent OpenCode plugin. It is not built by the OpenCode team and is not affiliated with OpenCode.

Credits

  • OpenCode wordmark SVG adapted from the public OpenCode repository. The voice mark was added for this plugin.
  • Local transcription uses whisper.cpp.
  • Model download metadata follows the local-first UX researched from Handy.

OpenCode Website | Docs | Discord