--- title: 'Voice Dictation for the macOS Terminal' excerpt: 'Dictate into Terminal, iTerm2, Warp, or Ghostty. Keebye detects terminals and uses chunked typing so long commands and prompts arrive intact.' date: '2026-07-14' author: 'Teodor Deleanu' tags: ['terminal', 'dictation', 'macos'] keywords: ['dictation for terminal mac', 'voice to text terminal', 'speech to text iterm'] faq: - question: 'Which terminal apps does Keebye support?' answer: 'Any of them. There is no per-app integration — Keebye detects that the focused app is a terminal and switches to chunked synthetic typing. Terminal, iTerm2, Warp, and Ghostty all receive text the same way.' - question: 'Why chunked typing instead of paste?' answer: 'Terminals are a special case for text insertion, and long pasted text can get mangled on the way in. Chunked synthetic typing sends the text as keystrokes in measured pieces, so a long prompt arrives intact.' - question: 'Does it work over SSH or inside tmux?' answer: 'It does — Keebye inserts the text as synthetic keystrokes into whichever terminal has focus, so an SSH session or a tmux pane receives it exactly as it would your own typing.' - question: 'Can I run commands by voice?' answer: 'No — Keebye is dictation, not voice control. It has no voice commands or command modes; it transcribes what you say into text at your cursor, and you decide what to run.' - question: 'Does it work offline?' answer: 'Fully. Once the model download completes (a one-time step), speech-to-text runs on-device, dictation needs no network connection, and there is no telemetry.' --- ## Why dictate into a terminal Terminals are where the typing load moved. Agent CLIs like [Claude Code](/dictation-for/claude-code) live there, and driving them means writing paragraph-length prompts into a shell input dozens of times a day. Long commands, commit messages, and instructions to an agent are all faster to speak than to type — if the text can survive the trip into a TTY. That's the catch. Terminals are hostile territory for naive text insertion: what works fine in a text editor can arrive mangled in a shell. Most dictation tools weren't built with this in mind. Keebye was — terminal insertion is the workload it was designed around. ## How it works Focus your terminal, hold Right ⌘, speak, and release. Keebye detects that the focused app is a terminal and switches to chunked synthetic typing: instead of pasting one large block, it types the text as keystrokes in measured chunks, so a long multi-sentence prompt arrives intact instead of overflowing or garbling the input. Because synthetic typing is just keystrokes, it doesn't matter what's on the other side of the prompt — a local shell, an SSH session, a tmux pane, or an agent CLI waiting for instructions all receive the text like normal typing. There is no per-app integration to configure and none is needed. Terminal.app, iTerm2, Warp, Ghostty — Keebye treats them all as what they are: a terminal. Speech-to-text runs [on-device](/dictation-for/mac) (Parakeet for English by default), works offline after the one-time model download, and sends no telemetry. ## Setup in two minutes Install Keebye and grant it Accessibility (so it can type into your shell) plus microphone access. The hotkey defaults to Right ⌘; Fn and Right ⌥ are the built-in alternatives if that key is taken. Turn on launch-at-login so it's ready when your first shell is. Then feed the custom dictionary. Terminals are jargon-dense: repo names, branch names, CLI tools, and flags you say all day. A minute spent adding them up front means the transcript gets them right. ## Limits, honestly The transcript lands only after you release the key — Keebye transcribes in batch, not as live captions scrolling into your shell while you talk. Keebye types text; it is not a voice-command layer. There are no spoken commands or macros — what you say becomes text at the cursor, and running it stays your call. Keebye is macOS only.