fundamentals
Why your dictation app rewrites what you said
Most dictation runs a silent cleanup pass after transcription. It is usually helpful, and it quietly costs you the words you actually chose.
You dictate a sentence. What appears on screen is not quite the sentence you said — a contraction expanded, a hedge removed, a comma inserted where you paused. Nothing is wrong, exactly. It reads better than you spoke. And you did not ask for any of it.
Here is the mechanism, because it is not mysterious once you see it.
Dictation is usually two steps, and the second one is invisible
The first step is transcription: audio in, text out. That part is now genuinely very good.
The second step is a cleanup pass. Depending on the tool, it removes disfluency, expands contractions, normalises punctuation, and nudges the register toward something more formal. It runs between the transcription and your cursor, and nothing on screen announces it. You see one result and have no way to compare it against what the transcriber actually heard.
That second step is a product decision, and for a lot of writing it is the right one. If you are dictating an email while walking, having “um, so, like, can we maybe move it” arrive as “Can we move it?” is a gift.
The problem is that it is a default rather than a choice, and defaults get applied to the cases they were never meant for.
What the cleanup pass actually costs
Four things, in roughly increasing order of annoyance.
Contractions. You said “it’s not working.” The tidied version says “it is not working.” Slightly more formal, slightly less you. On its own, trivial — but it is the register drifting away from the one you chose.
Intensifiers and hedges. “This is really broken” becomes “This is broken.” “I think we should probably wait” becomes “We should wait.” Cleanup treats those words as noise. They are not noise: one is you signalling severity, the other is you signalling uncertainty. Deleting them does not tighten the sentence, it changes what the sentence claims.
Code-switching. Bilingual speakers move between languages mid-clause constantly and deliberately. A normalising pass tends to resolve that toward one language, because a single-language sentence looks more like well-formed text.
Technical tokens. This is the one that turns dictation from imperfect to unusable. You say
--watch and get “dash dash watch.” You say useEffect and get “use effect.” A cleanup pass
optimises for prose, and a flag is not prose. The moment you dictate into a terminal or an editor,
the thing designed to make you sound better is actively working against you.
Why this got worse the moment we started talking to agents
When you write a prompt for a coding agent, the words you chose are the context.
A hedge is a constraint. “I think this might be a race condition” tells the model your confidence level, which changes what it does with the claim. A specific noun rules out a whole branch of interpretations. Even a false start is often you narrowing the problem in real time, and it is worth the model seeing.
So a tool that smooths your prompt on the way out is putting back exactly the thing you avoided by speaking. You skipped the self-editing that happens while you type, and it performed one for you anyway. What lands is a well-formed sentence that means slightly the wrong thing — and nothing about it looks wrong, which is why it costs you a round trip instead of an eyebrow raise.
How to tell if it is happening to you
Say this, in whatever you currently use:
“It’s really not working — run it with dash dash watch.”
Then look at what arrived. Three tells:
- “It’s” became “It is” → a normalising pass ran.
- “really” is gone → the pass is removing intensifiers.
- The flag arrived as words rather than
--watch→ the pass is optimising for prose, and any technical dictation is going to fight it.
If all three survive, you have a verbatim tool. If none do, you have a very polite one.
What verbatim actually means
Verbatim dictation means the transcription is what reaches your cursor. No second pass, no silent improvement, no register correction.
That is Halopen’s default. Contractions, intensifiers, the rhythm of how you actually build a sentence, and code-switching all survive to the text. Polish and Editorial modes exist and they are good — but they are opt-in, and Halopen will show you what the model wanted to change so the choice stays yours.
It also knows where it is. In Terminal, iTerm2, Warp, Ghostty, VS Code, Cursor, Zed and Xcode it drops any cleanup mode to verbatim automatically, because a shell command is not a sentence that benefits from being improved. In Terminal, iTerm2 and Warp specifically it goes further and tells the transcription engine to expect shell commands and file paths, and in VS Code and Cursor to expect code identifiers as recognition hints rather than relying only on ordinary English.
Move the cursor into Mail or Notes and your chosen mode applies again. You configure none of it.
The honest counter-argument
Verbatim is not automatically better. It is unedited, and unedited is worse for some things — a customer-facing email, a landing page, anything where the polish is the point.
The useful distinction is not verbatim-versus-polished, it is default-versus-choice. Polish applied after you have seen what you said is an edit. Polish applied before you see anything is a guess about what you meant, made by something that was not in the room.
You can always tidy a verbatim transcript. You cannot recover the word that was replaced before you saw it.
Halopen is native macOS dictation, verbatim by default. Try the time-limited no-card trial — halopen.com.
Try Halopen
Hold the function key. Speak.
Halopen is free for 14 days, no credit card. Pro is $19/mo or $179/yr — unlimited.
Read next
More from Halopen Learn
-
privacy
What on-device dictation means in Halopen
Understand local speech recognition on Apple Silicon, model setup, local history and the network activity that remains separate.
-
engineering
I fact-checked my own marketing. It did not go well.
Seven false claims about my own product, all written by me, none of them lies. What I found, and the check that had been quietly passing for four months without working.
-
workflow
A coding session with voice: what to check at each step
Evaluate a Mac dictation workflow for coding: choose the input, review the transcript, inspect the diff and check the result before accepting a change.