~/renjfk $ open /artifacts/opencode-voice
artifact / active
opencode-voice
Speech-to-text and text-to-speech plugin for OpenCode
Orchestrates whisper-cpp for local STT, Piper TTS for speech synthesis, and LLM normalization for homophone correction and camelCase identifier splitting, with all transcription falling back to raw whisper output when the LLM is unreachable.
- created
- 16/04/2026
- updated
- 17/05/2026
> notes
If you use OpenCode in the terminal, opencode-voice may change the way you work. It did for me.
I built it to fix my own daily friction, and it ended up replacing habits I did not realize I had.
What it is
opencode-voice is a speech-to-text and text-to-speech plugin for OpenCode.
When I type, I tend to shorten prompts out of laziness. That looks efficient, but it often costs more time in back-and-forth because the AI misunderstood what I actually wanted.
Speaking takes roughly the same effort as typing a short prompt, but I end up giving much more context. That usually means I get the right answer on the first try more often.
How I use it
I hit a keybind, speak, and whisper-cpp transcribes locally. The transcription is then cleaned up by an LLM that is aware of the current session.
That context matters. The same spoken phrase can be normalized differently depending on what I am working on, and software-engineering homophones come out right: Jason becomes JSON, bullion becomes boolean, and so on.
The other direction
Responses can also be spoken aloud through Piper TTS.
The LLM decides whether to narrate short answers, summarize code-heavy ones, or simply notify me that the task is done. That keeps voice useful without turning every long response into a wall of audio.