workflow
How to run a whole coding session by voice on Mac
An end-to-end session with an AI agent, dictated rather than typed — the setup, the four moments voice actually wins, and the two where the keyboard is still faster.
A coding session driven by an AI agent is mostly prose. You are not writing code so much as writing instructions about code — the constraint, the file path, the thing that must not break, the reason the last attempt was wrong. Halopen is a native macOS dictation app that types what you said into whatever app your cursor is in, so those instructions can be spoken instead of typed. This is what a full session looks like when you work that way, including the parts where voice is the wrong tool.
What does a voice-driven agent session actually look like?
You hold the function key, you say the thing, you let go, and the words land at the cursor. There is no window to open and nothing to click. The whole interaction is one key.
In practice a session alternates. Long prose to the agent gets spoken. Short
mechanical work — moving the cursor, hitting enter, a two-character fix —
stays on the keyboard. Nobody dictates cd ... The reason hold-to-talk matters
more than it sounds is that switching between the two modes has to be free, and
a key you hold is free in a way that a mode you toggle is not.
Where does speaking actually beat typing?
Four moments, consistently.
The long spec. The instruction that has six constraints attached to it. Typed, you shorten it — not deliberately, but because typing has a cost and your hands get tired of paying it. Spoken, the sixth constraint is free, so you include it. This is the single biggest difference, and it does not show up as speed. It shows up as the agent doing the right thing on the first attempt because you actually told it everything.
The explanation of what went wrong. Pasting an error is easy. Explaining what you expected instead is the part people skip. It is much easier to say.
Thinking out loud. A spoken prompt keeps the false starts and the qualifications — “actually no, the problem is upstream of that.” Those are not noise; they narrow the search space for the model.
Anything you would otherwise not write down. The reason a decision was made. The thing you would have kept in your head. Voice lowers the cost of putting it in the prompt, and context in the prompt is the whole game.
Where is the keyboard still better?
Two places, and it is worth being honest about them.
Precision editing. Changing one character, adjusting an argument, fixing a typo in a path. Speaking it takes longer than typing it and is more likely to be misheard.
Commands you already know. Muscle memory beats articulation. If your fingers already know it, use them.
A voice workflow that claims to replace the keyboard is describing a product demo, not a working day.
Why does verbatim matter more here than in normal writing?
Because the audience is a model, not a person.
When you dictate an email, a tool that cleans up your phrasing is doing you a small favour. When you dictate a prompt, the same tool is deleting your instructions. The hedge you put in was a constraint. The specific noun you chose disambiguated something. The emphasis told the model which part was non-negotiable. Tidy those away and the agent receives a shorter, smoother, less useful prompt — and you will not notice, because what you see is a well-formed sentence that means slightly the wrong thing.
Halopen’s default is verbatim for exactly this reason. Cleanup modes exist — Polish and Editorial — and both are a choice you make rather than a default you have to undo.
How does it handle file paths and shell commands?
By knowing where it is.
Before transcribing, Halopen checks which app your cursor sits in. In Terminal, iTerm2, Warp, Ghostty, VS Code, Cursor and Xcode it does two things: it tells the transcription engine to expect shell syntax, file paths and code identifiers, so those land on the first pass rather than being guessed at from ordinary English; and it forces the output to verbatim regardless of your global setting, because a shell command is not a sentence that benefits from being improved.
Move the cursor into Notes or Mail and your chosen cleanup mode applies again.
You configure none of this. The menu bar shows you what it decided —
Cleanup: Editorial → Verbatim (Terminal) — so it is never quietly doing
something you did not ask for.
What does a session cost you in setup?
One key, and no configuration. Halopen runs in the menu bar: no window, no dock icon, nothing occupying the screen until you hold the key. While it is working after you release, the waveform stays visible so you know it is still going rather than stuck. Then the screen is clear again.
A single hold runs up to ten minutes on Pro, three on the free tier. The free tier is 8,000 words a month, forever, and takes no card to download — enough to run a great many real sessions before you find out whether this belongs in your workflow.
The honest summary
Voice does not make you a faster programmer. It makes you a more complete communicator to the thing that is writing the code — and in an agent-driven workflow, the quality of what you communicate is most of the outcome. The constraint you would not have typed is the one that saves the afternoon.
Try Halopen
Hold the function key. Speak.
Halopen Free is 8,000 words a month, forever. Pro is $19/mo or $179/yr — unlimited.
Read next
More from Halopen Learn
-
developers
Voice typing for Claude Code on Mac
Voice typing for Claude Code on Mac. Halopen captures your prompt verbatim — every constraint, every modifier, every file path — at the cursor in milliseconds.
-
developers
Voice typing patterns for Claude Code on Mac
Seven reusable voice patterns Halopen users hit when prompting Claude Code daily — refactors, file paths, error paste. The muscle memory of voice-shaped prompting.
-
developers
Voice typing in the terminal on Mac — patterns
Voice patterns for Mac terminal work — shell aliases, multi-flag commands, git commits, tmux, Aider, and Codex CLI prompts. Halopen lands the verbatim command.