1. What OpenCode itself offers for voice
Nothing yet. OpenCode’s TUI, keybinds and ecosystem documentation describe no microphone, dictation or speech-to-text feature as of October 2026. In November 2025 a contributor proposed speech-to-text for the TUI, with keybind-triggered recording, a choice of Groq Whisper, OpenAI Whisper or local whisper.cpp, and insertion into the prompt. The maintainers closed the request as not planned on June 4, 2026.
So every voice option for OpenCode works from the outside: a plugin that adds commands to the TUI, or something that types into the terminal for you. Choose based on where OpenCode runs and where you want the audio processed.
2. The community opencode-voice plugin
@renjfk/opencode-voice is an MIT-licensed community plugin, updated as recently as September 2026, that adds speech-to-text and text-to-speech to the TUI. It captures the microphone with sox and transcribes locally with whisper.cpp’s whisper-cli and a model you download; the README’s example is ggml-large-v3-turbo-q5_0. You install it by adding it to the plugin list in ~/.config/opencode/tui.json.
Read two details before you install. It records on Ctrl+R, which OpenCode assigns to session rename by default, so the README sets session_rename to none and leaves renaming to /rename. And it requires an OpenAI-compatible LLM endpoint to clean up transcripts, so the transcribed text goes to that endpoint unless you point it at a local server such as Ollama. An optional mode sends the recording to an OpenAI-compatible speech-to-text API instead of running whisper.cpp locally.
- macOS: brew install whisper-cpp sox, then allow the microphone prompt.
- Linux and WSL2: sudo apt install sox libsox-fmt-pulse pulseaudio-utils build-essential cmake, then build whisper.cpp from source.
- On WSL2, WSLg must be running; audio goes through PulseAudio because there is no /dev/snd.
- Pick a microphone with /stt-mic and a language with /stt-language.
3. Use your operating system’s dictation in the terminal
macOS Dictation enters text anywhere you can type, including a terminal running OpenCode. Turn it on under System Settings → Keyboard → Dictation, place the cursor in the OpenCode prompt, press the Microphone key or your Dictation shortcut, and speak. Apple says you can check Keyboard settings to see whether general dictation is processed on your device, and Dictation stops after 30 seconds without speech.
On Windows, voice typing starts with the Windows logo key + H. Microsoft documents it as online speech recognition powered by Azure Speech services, so it needs an internet connection, a working microphone and a cursor in a text box. Say “press Enter” only when you want the prompt sent.
Neither knows your code. Expect file and function names to arrive as ordinary words, and read the prompt before OpenCode acts on it.
4. Compose long prompts in your editor with /editor
OpenCode’s /editor command, bound to Ctrl+X E, opens the editor set in your EDITOR environment variable for composing a message. For GUI editors such as VS Code, Cursor, Windsurf or Zed, OpenCode says to include --wait so the command blocks until you close the file, for example export EDITOR="code --wait" on macOS or Linux, or $env:EDITOR = "code --wait" in PowerShell.
That turns any dictation that works in your editor into OpenCode input. Dictate a multi-paragraph brief there, fix names and numbers with a real editor, close the file, and review the result in OpenCode. It is slower than speaking into the prompt, but useful for specs and bug reports you want to edit before the agent sees them.
5. On Windows, WSL or native changes your voice options
OpenCode recommends running it inside WSL on Windows for file-system performance and terminal support, installed in the distribution with curl -fsSL https://opencode.ai/install | bash, though it can also run directly on Windows. Its desktop app can connect to a server started in WSL with opencode serve.
Where OpenCode runs decides what a voice tool can do. A plugin inside WSL needs WSLg’s audio bridge to reach the Windows microphone. A Windows dictation tool types into the WSL window without any setup, but it cannot see the Linux processes behind that window, so anything that depends on knowing your project stops at the WSL boundary.
6. Speak into OpenCode with IraVoice
IraVoice 1.2.2 is a dictation app, not an OpenCode plugin. It types into whatever window has focus, so there is nothing to add to tui.json, no keybind to free up, and no LLM endpoint to configure. It runs on macOS 13+ on Apple silicon, Windows 10 or 11 (64-bit), and Linux (beta), recognizes speech on-device with NVIDIA Parakeet after a one-time model download, and works the same whether OpenCode runs locally, over SSH, or in WSL.
In the terminals IraVoice recognizes on a Mac (Terminal, iTerm2, Ghostty, Warp, kitty, Alacritty, WezTerm and Hyper) and on Windows (Windows Terminal, PowerShell, pwsh, cmd, WezTerm and Alacritty), it finds the Git project OpenCode is working in and types names the way the code spells them, so “get user by ID” becomes getUserById. Expect plain dictation without code names in three places: inside WSL, on Linux, where IraVoice is a beta, and in the OpenCode desktop app, which is not on the recognized list.
Hold Right Command on a Mac, Right Ctrl on Windows or Ctrl+Space on Linux, speak, release, and check the prompt; IraVoice does not press Enter unless you turn on auto submit. IraVoice Local is $79 once for one computer, after a free trial.