Skip to content
How to · Mac voice writing

Dictate to Gemini CLI, OpenCode and other terminal agents on Mac

How to dictate prompts to Gemini CLI's experimental Voice Mode, OpenCode, Aider and other terminal coding agents on a Mac, and what to check before Enter.

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.

SettingWhat 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.backendgemini-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.stopGracePeriodMsHow 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:

  1. Set experimental.voiceMode to true in your Gemini CLI settings.
  2. Choose a backend. Keep gemini-live if sending audio to Google Cloud is acceptable; set whisper for local transcription.
  3. Start Gemini CLI, hold Space, speak, and release.
  4. 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".

  1. Turn Dictation on in System Settings → Keyboard → Dictation. On another macOS version, search System Settings for "Dictation".
  2. Click in the terminal at the agent's prompt.
  3. Press the Microphone key or your Dictation shortcut, speak, and stop.
  4. 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?

RouteAudio
Gemini CLI, gemini-live backendSent to Google Cloud for transcription, per Google's docs
Gemini CLI, whisper backendLocal transcription, per Google's docs
Aider /voiceNot stated on Aider's voice page
Apple DictationCheck Keyboard settings, as Apple says
SuprFlowRecognised 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.

Sources

Keep going

Read next

More how to
Put the guide to work

Make the first useful sentence.

Set up SuprFlow on your Mac, then try this guide in the app where you actually write.

  1. 01Download a speech model
  2. 02Dictate a harmless sample
  3. 03Check the text in its destination
SPECIAL OFFER$29 once Original price: $125

One license. Up to 5 Macs you own.Special offer, down from $125.Apple Silicon · macOS 14+

Get SuprFlow for Mac

7-day no-questions-asked refund on your first purchase. Contact support within seven days for a full refund. Read the refund terms ↗