Gemini CLI has its own experimental voice dictation: turn on experimental.voiceMode, then hold Space to speak. By default Google says recordings go to Google Cloud for transcription; a local Whisper backend is the alternative. OpenCode documents no voice input, so you use Apple Dictation or a push-to-talk app in its prompt. In every terminal agent, Enter submits, so read the prompt first.
Publisher note: SuprFlow publishes this guide and is one of the products discussed. Competitor details come from each company's own pages, checked on 1 October 2026. Prices and features change; confirm before you buy.
How does Gemini CLI's Voice Mode work?
Gemini CLI's configuration reference lists the settings. Voice Mode is off by default.
| Setting | What Google's docs say |
|---|---|
experimental.voiceMode | "Enable experimental voice dictation and commands (/voice, /voice model)." Default false |
experimental.voice.activationMode | "How to trigger voice recording with the Space key." push-to-talk (default) or toggle |
experimental.voice.backend | gemini-live (default) or whisper. "When using the Gemini Live backend, voice recordings are sent to Google Cloud for transcription." |
experimental.voice.whisperModel | "The Whisper model to use for local transcription." Default ggml-base.en.bin; larger models are listed |
experimental.voice.stopGracePeriodMs | How long to wait for the final transcript after you stop. Default 4,000 ms |
The keyboard shortcuts page lists app.voiceModePTT: "Hold to speak in Voice Mode", bound to Space. The changelog for v0.41.0 (5 May 2026) announced "real-time voice mode with cloud and local backends", and a later entry added "privacy/compliance UX warnings for the Gemini Live backend".
To try it:
- Set
experimental.voiceModetotruein your Gemini CLI settings. - Choose a backend. Keep
gemini-liveif sending audio to Google Cloud is acceptable; setwhisperfor local transcription. - Start Gemini CLI, hold Space, speak, and release.
- Read the prompt, then press Enter.
It is labelled experimental, so names and behaviour may change. The docs we opened do not cover setup steps for the Whisper backend; check the current Gemini CLI docs if it does not start.
Does OpenCode have voice input?
No. OpenCode's documentation does not describe built-in voice input as of 1 October 2026; see its keybinds and permissions pages. Its keybinds list input_submit as Return and input_newline as Shift-Return, Control-Return, Option-Return or Control-J.
What about Aider and other terminal agents?
Aider documents a /voice command in its voice-to-code guide: "Use the in-chat /voice command to start recording, and press ENTER when you're done speaking." It says your words "will be transcribed, as if you had typed them into the aider chat session", and its example shows the request going straight to the model, which edits and commits the file. On a Mac, Aider's optional steps say to install PortAudio with brew install portaudio. The page does not name the transcription service.
For Claude Code's /voice and Codex CLI, see Dictate to Claude Code and Cursor and Voice dictation for Codex CLI. For any other terminal agent, the two routes below work.
How do you use Apple Dictation with a terminal agent?
Apple's Dictation guide for macOS 27 says you can "speak to enter text anywhere you can type it".
- Turn Dictation on in System Settings → Keyboard → Dictation. On another macOS version, search System Settings for "Dictation".
- Click in the terminal at the agent's prompt.
- Press the Microphone key or your Dictation shortcut, speak, and stop.
- Read the prompt and press Enter.
Apple says the spoken "new line" command is "equivalent to pressing the Return key once". In Gemini CLI and OpenCode, Return submits, so do not say it. Dictation also stops after 30 seconds without speech. See how to use voice to text on a Mac and the Mac dictation shortcut guide.
What happens when a dictation app pastes into a terminal agent?
SuprFlow is one example of a push-to-talk app. It is a menu-bar app for Apple Silicon Macs on macOS 14 or later. Hold the Fn key, speak, release, and it pastes the text at the cursor in the focused field. Speech recognition runs on the Mac after a one-time model download; see https://suprflow.app/requirements. Default formatting is local cleanup of punctuation, capitalization and numbers. It costs $125 once (as of 1 October 2026), with no free tier or trial. It should work wherever you can paste text; test it in each agent with a harmless prompt.
The paste goes to whatever owns the prompt line. If the agent has exited, that is your shell. Gemini CLI's docs describe paste placeholders such as [Pasted Text: X lines], which Control-O expands. Your terminal may also warn on multi-line pastes; voice to text in the Mac terminal covers what Terminal, iTerm2, Warp and Ghostty document.
If Gemini CLI is your only agent, its own Voice Mode with the Whisper backend is a local option already built in. A separate app makes sense when you use several agents.
What is dictation good and bad at with terminal agents?
Good: describing a task, a bug or a refactor in full sentences; constraints; commit messages.
Needs a review pass or typing: file paths, function names, flags (--dry-run), package names and symbols. Describe the code and let the agent search, or type exact names. For recurring names, see teaching SuprFlow names and acronyms.
What should you check before pressing Enter?
These agents act quickly. OpenCode's permissions page says that if you configure nothing, "OpenCode starts from permissive defaults: Most permissions default to 'allow'", with .env reads denied. Gemini CLI's shortcuts page says Shift-Tab cycles "approval modes: default, auto-edit, and plan".
- You are at the agent's prompt, not the shell.
- Paths, names and flags are exact.
- "Don't", "without" and "only" survived.
- Deletion, force-push, migration or production steps were typed.
- No key, token or password was spoken.
- In OpenCode, set risky actions to
"ask"; in Gemini CLI, use plan mode for large changes.
Where does your speech go?
| Route | Audio |
|---|---|
Gemini CLI, gemini-live backend | Sent to Google Cloud for transcription, per Google's docs |
Gemini CLI, whisper backend | Local transcription, per Google's docs |
Aider /voice | Not stated on Aider's voice page |
| Apple Dictation | Check Keyboard settings, as Apple says |
| SuprFlow | Recognised on the Mac |
The prompt text then goes to whichever model provider the agent uses. A spoken prompt can contain proprietary code context; follow your employer's policy.
Questions people ask
Does Gemini CLI support voice input?
Yes, as an experimental Voice Mode. Set experimental.voiceMode to true and hold Space to speak.
Is Gemini CLI voice dictation processed locally?
Only with the whisper backend. Google says the default gemini-live backend sends recordings to Google Cloud.
Does OpenCode have a voice mode?
Its documentation does not describe one as of 1 October 2026. Use Apple Dictation or a dictation app.
Why did my dictated prompt send early?
Return submits in these agents, and Apple's "new line" command equals Return. Avoid it, and test paste-based apps first.
Related guides
- Vibe coding by voice on a Mac
- Voice to text in the Mac terminal
- Voice dictation for Codex CLI
- Dictate to Claude Code and Cursor
- Voice dictation for Zed