Gemini CLI Voice Input on Mac
By Kiran Jd
Published
By Kiran Jd
Published
To dictate into Gemini CLI on Mac, run gemini in your project folder, keep the cursor in the input box at the bottom of the terminal, and dictate with your Speakmac shortcut. Read the text before pressing Enter, because Enter sends. Gemini CLI also has an experimental /voice mode of its own, covered at the end.
Gemini CLI is Google's open-source coding agent for the terminal. It is not the Gemini app for Mac, and it is not Gemini Live, Google's spoken conversation mode. Since 18 June 2026 it only serves paid API keys and Gemini Code Assist Standard or Enterprise licences; free, Google AI Pro and Ultra accounts were moved to Antigravity CLI. Speakmac supplies the words; Gemini does the work after you send.
You type in the input box under the conversation. The folder you start gemini in decides which files it can reach, and Gemini CLI loads GEMINI.md instruction files from your home folder, the project and its parent folders (context docs).
These keys matter more for voice than for typing (keyboard shortcuts):
| Key | What it does in Gemini CLI |
|---|---|
Enter | Sends the prompt |
Ctrl+J, Shift+Enter or Alt+Enter | New line without sending |
\ then Enter | New line, typed at the end of a line |
Ctrl+G | Opens the prompt in your external editor |
Tab | Queues the prompt until the current task finishes |
Shift+Tab | Cycles approval modes: default, auto-edit and plan |
Google's docs say Shift+Enter is not supported in Apple's Terminal app, so use Ctrl+J there.
cd into the project and run gemini. Authenticate the way your organisation or API key requires.@ file references, then press Enter.Leave Speakmac's Send After Dictation shortcut unused while you are learning this. It presses Return after inserting the text, and in Gemini CLI that sends straight away.
Say the outcome and the check:
The export button times out on projects with more than 500 rows. Make the export stream rows instead of building the whole file in memory. Keep the CSV format exactly as it is. Add a test with a large fixture and run the existing export tests.
For larger work, plan first. Press Shift+Tab until plan mode is shown, or type /plan before your request. Plan mode is read-only, and Gemini CLI asks you to approve a written plan before editing:
Read the billing module and propose how to move invoice rounding into one function. List the files that change, the order, and what could break. Do not edit anything until I approve the plan.
These are example briefs, not claims that Gemini completed or tested the work. Read the diff and run the checks yourself.
| Speak the explanation | Type or attach the exact evidence |
|---|---|
| What you expected and what happened | @ file and folder references |
| Constraints, scope and edge cases | ! shell commands such as !git status |
| Why the change matters | Error messages, symbol names and flags |
Per the command reference, @path adds a file's contents to the prompt and skips git-ignored files by default, and ! runs a shell command without leaving Gemini CLI. Type those yourself; spoken "at" will not become a path. Put standing rules such as test commands in GEMINI.md (/init drafts one) rather than repeating them in every prompt.
Do not dictate credentials or private customer data. Speakmac transcribes on your Mac, but once you press Enter, Google processes the prompt under the terms of your API key or licence. See Speakmac's privacy explanation for the transcription side.
Click back into the terminal and try a short sentence. If Speakmac produced a transcript but it did not land, use Copy Last Transcript or Paste Last Transcript from History and recovery.
A long paste can look as though your words have gone. Gemini CLI collapses large pastes into a placeholder such as [Pasted Text: 6 lines]. Press Ctrl+O with the cursor on it to expand it, or Ctrl+G to read it in your editor. If no transcript was produced at all, check the microphone and model in the Help Center.
Yes, as an experiment since version 0.41 in May 2026. Set experimental.voiceMode to true in ~/.gemini/settings.json, run /voice, then hold Space to talk (configuration reference). Text lands in the prompt for you to edit; it is not sent automatically. It records with SoX (brew install sox). The default backend streams audio to Google's Gemini Live service and needs a GEMINI_API_KEY. A local Whisper backend needs whisper-cpp and a downloaded model.
That is enough if Gemini CLI is the only place you dictate. Antigravity CLI has its own /voice too. A system-wide app makes more sense if you also write in your editor, browser and chat apps and want one shortcut, custom words and on-device transcription everywhere. The Gemini app for Mac can also dictate into other apps by holding fn, but it needs an internet connection.
Try Speakmac for Mac, or see the same workflow for Claude Code and Codex.