Voice input for Codex CLI and Gemini CLI on a Mac

, 2 min read

Terminal agents are great until you have to explain something complicated to them. Then you're typing a paragraph into a prompt box that wasn't designed for paragraphs, and you start cutting corners.

You don't need a plugin for each agent to fix this. You need one way to get spoken words onto your clipboard, cleanly, and the discipline to read them before you press Return.

The setup

This works the same in Codex CLI, Gemini CLI, OpenCode, Claude Code, Aider, or any prompt that accepts pasted text.

  1. Focus the agent's prompt in your terminal: Terminal, iTerm2, Ghostty, Warp, whatever you use.
  2. Press ⌥ Space and say what you want.
  3. Press Return to finish. Whisp copies the text.
  4. ⌘V into the agent, check it, send it.

Whisp never presses Return for you. In a terminal that's not a nice-to-have. A prompt half-sent, or a sentence pasted into a shell instead of an agent, is the kind of mistake you only make once.

It works over SSH

Because the speech recognition happens on your Mac and the result is plain text on your clipboard, it doesn't matter where the agent runs. A dev box over SSH, a container, a tmux session on a server: if you can paste into it, you can talk to it. Nothing gets installed on the remote machine.

Getting file names right

Terminal agents care about exact names more than chat tools do, because they'll go looking for the file. Whisp normalizes the usual suspects after recognition:

  • "package dot json" becomes package.json
  • "cargo dot toml" becomes Cargo.toml
  • "pyproject dot toml" becomes pyproject.toml
  • "requirements dot txt" becomes requirements.txt
  • "agents dot md" becomes AGENTS.md

Spoken punctuation works too. Say "new line" for a line break, or "question mark" when you're asking. Acronyms like CLI, SDK, SSH and JSON come out in capitals.

For anything specific to your repo, add it under Vocabulary & Replacements. Saved file names also support @ mentions: say "at sign" before the name.

A tip for long prompts

Agents in the terminal are often doing long jobs, so the prompt is worth getting right. Try speaking in this order:

  1. What you want done.
  2. What it must not change.
  3. How you'll know it worked.

Add a retry with backoff to the upload client. Don't change the public function names. It's done when the flaky upload test passes ten times in a row.

That's three sentences you'd probably never type. Spoken, it takes about ten seconds.

Privacy, briefly

Whisp uses Apple's on-device speech recognition and refuses to fall back to a server. There's no account and no backend. Your history is stored locally, and the temporary recording is removed once the transcript is saved.

Try it

Seven days free on the Mac App Store, no card. Then $9.99 once, not a subscription.