1. Decide whether you are entering prose or executable shell syntax
Apple describes Terminal as a command-line interface for executing commands, tools, and shell scripts. A terminal emulator such as Apple Terminal or iTerm2 displays the shell; it is not itself a speech-to-text service. The current first-party Terminal and iTerm2 pages reviewed here do not document built-in voice typing.
A natural-language prompt inside an interactive coding agent is prose. A shell command such as a package install, file move, redirect, or deployment command is executable syntax. The same terminal window can contain both, so identify which program currently owns the prompt before speaking.
- Shell prompt: exact characters may execute local or remote operations.
- Interactive agent prompt: prose is interpreted by the active agent.
- Editor running in a terminal: its own modes and shortcuts control insertion.
- Password prompt: do not dictate or paste a secret.
2. Test with an unsent, harmless draft
Apple says Dictation can enter text anywhere you can type: place the insertion point, use the configured Dictation shortcut, speak, and stop with Escape, the Microphone key, or the same shortcut. Terminal accessibility and focused-field behavior can still vary by terminal, shell, interactive program, and macOS configuration.
Begin with a short harmless phrase that you will not execute. If text does not appear exactly where expected, stop and use TextEdit or another plain-text editor. Do not keep retrying around a production shell, remote host, privileged prompt, or running interactive program.
3. Stop Dictation before Return
Apple’s Terminal guide says to enter a command and press Return to execute it. Apple’s Dictation guide also says the spoken command “new line” is equivalent to pressing Return once. In a shell prompt, that can cross the boundary from drafting to execution.
Avoid spoken formatting commands such as “new line” while a shell owns the prompt. Stop Dictation first, then inspect the full command line and decide separately whether to press Return. Speech recognition finishing is not authorization to run a command.
- Stop Dictation before any execution key.
- Read from the beginning, not only the last recognized phrase.
- Confirm the current host, folder, user, shell, and active program.
- Clear the line instead of executing when anything is uncertain.
4. Do not trust speech with exact shell syntax
Shell meaning can change with one character. Check hyphens and long flags, uppercase letters, spaces, quotes, backslashes, forward slashes, periods, colons, pipes, redirects, ampersands, semicolons, asterisks, question marks, dollar signs, parentheses, and backticks. Verify filenames, package names, branch names, URLs, environment names, and every path.
Never dictate passwords, API keys, recovery codes, private tokens, or other secrets. Terminal history can retain entered commands, and Apple documents that commands from a session can be recalled with Up Arrow. Keep credentials out of spoken, pasted, and historical command lines.
5. Use an editor and clipboard for high-consequence input
For a long command, multiline script, migration, deletion, permission change, remote command, or deployment, draft outside the live shell. Use a plain-text editor with no automatic formatting, check the intended documentation, and validate the exact text before copying it.
Clipboard is a fallback, not a privacy guarantee. iTerm2 documents that copied or pasted text is added to Paste History and that users can optionally save that history to disk. Review Settings → General and the current Paste History before moving sensitive text through iTerm2.
6. Treat coding-agent prompts as a separate destination
Claude Code, Codex, GitHub Copilot CLI, Gemini CLI, and other terminal agents can expose an interactive natural-language prompt inside a terminal. Dictating prose there is different from dictating raw shell syntax, but the agent can still propose or perform consequential work under its own permission model.
State the goal, constraints, repository, files in scope, acceptance criteria, and commands the agent may or may not run. Stop, review the transcript, then submit. Use each agent’s native voice feature first when it already provides one and its processing boundary matches the task.
7. Troubleshoot the failing layer
If Dictation fails everywhere, test TextEdit and follow Apple’s Dictation checks for the enabled setting, active shortcut, language, microphone input, Voice Control, network requirements, and current macOS availability. If TextEdit works, the recognition layer is functioning.
Then test a harmless unsent phrase in the intended Terminal or iTerm2 session. A failure only there can come from focus, Accessibility exposure, the shell, a full-screen terminal program, an editor mode, a remote session, or the application currently reading input. Use the editor-and-paste path instead of weakening security settings.
8. Add IraVoice only for local drafting and guarded agent handoff
IraVoice 0.7.1 is a separate option for macOS 26+ Apple-silicon Macs when live speech recognition and supported formatting should run on the Mac. Dictate targets a supported focused editable field and falls back to the clipboard when direct insertion is uncertain. Voice-to-Spec creates a reviewable Markdown brief rather than raw shell syntax.
IraVoice does not read terminal output, infer the active shell, guarantee insertion into every terminal program, dictate credentials safely, or execute arbitrary shell commands from Dictate. If you explicitly choose Codex or Claude Code as the Prompt destination, it can open a visible interactive Terminal session in the detected repository and submit only a guard-accepted specification. It uses no unattended or permission-bypass flags, fails closed to the clipboard, and sends the finished brief—not microphone audio—to the selected agent.