Skip to content
Halopen

tutorials

Mac dictation not working? Start with the symptom

Four symptoms, four causes. The one nobody covers: dictation that works everywhere except one app is macOS Secure Input, and it is usually your terminal.

Halopen · · 9 min read

Most guides to this hand you eight fixes in a list and hope one of them lands. That works, eventually, but it is the wrong shape — because “dictation is broken” is four different faults with four different causes, and which one you have is obvious from the symptom.

So: find your symptom, and go to that section.

  1. Nothing happens at all. No indicator, no text. → permissions, or it is not on.
  2. It listens, but no text arrives. You see it working and the cursor stays empty. → Secure Input.
  3. It works in most apps and fails in one. → also Secure Input, and this is the one nobody writes about.
  4. It worked yesterday and not today. Nothing changed that you know of. → a permission attached to a binary that got replaced.

1. Nothing happens at all

Work through these in order; the list is ordered by how often it is the answer, not by effort.

Confirm it is actually on. System Settings → Keyboard → Dictation. If it is already on, toggle it off, wait a few seconds, and on again. This is the fix often enough to be worth doing first, and it costs nothing.

If it turns out it was never enabled — or you are not certain which key is supposed to start it, which is a real question because Apple ships no fixed dictation shortcut — set it up there first and come back if it still misbehaves.

Check the microphone permission for the app you are dictating INTO. macOS grants microphone access per application, so dictation can work perfectly in Notes and produce nothing in your editor. System Settings → Privacy & Security → Microphone.

If the app is not in that list at all, there is no toggle to switch and this is where most guides stop. The permission state has to be reset so macOS asks again:

tccutil reset Microphone com.apple.Terminal

Use the app’s own bundle id — com.googlecode.iterm2 for iTerm2, and for anything else osascript -e 'id of app "AppName"' will tell you. Then quit the app with Cmd+Q, not just close its window, and reopen it. macOS will not re-prompt a process that is already running, which is why this looks like it did not work if you skip the restart.

Do not run tccutil reset Microphone with no bundle id. It revokes microphone access from every application on the machine — including whatever video call you are about to join. Always name the app.

Check the input device. System Settings → Sound → Input. A Mac that has silently selected a disconnected interface, or an input level sitting at zero, produces exactly the same symptom as a broken dictation stack.

2. It listens, but nothing arrives at the cursor

This is the interesting one, and it has a specific name.

macOS Secure Input. When an application enables it, the operating system stops delivering synthetic keystrokes — to every app on the machine, not just the one that asked. That is the entire point of it: it is what stops a keylogger reading your password field.

The consequence is that dictation can hear you perfectly, transcribe correctly, and then have nothing to deliver the result with. Nothing on screen explains this. There is no error, because from the system’s point of view nothing failed.

Password fields turn it on, correctly, and turn it off again when you leave them. That case is working as designed and you do not need to do anything about it.

3. It works in most apps and fails in one

Same cause as above, and this is the variant that goes undiagnosed for months.

Check your terminal. Terminal and iTerm2 both have a Secure Keyboard Entry option in their application menu. It is a real security feature — it exists so a program cannot watch what you type into a shell — and plenty of people switched it on years ago, or inherited it from a dotfiles repo, and have not thought about it since.

While that terminal is frontmost, Secure Input is on for the whole system. So dictation works in Mail, works in Notes, works in your browser, and does nothing at all in the one window where you spend your day. That looks like “dictation hates my editor” and it is nothing of the kind.

Turn it off in the terminal’s menu, or accept that dictation will not type into that window while it is on. There is no third option, and no application can work around it: the block is in the OS and it applies to everything equally.

(This is why Halopen detects Secure Input and names the application holding it, rather than silently dropping what you said. Knowing which app is responsible is most of the fix, and the OS will not tell you.)

4. It worked yesterday and not today

The permission is attached to a copy of the binary, not to the idea of the app. Update the app, move it between folders, or replace it with a fresh download, and macOS can reasonably treat it as a different program — while the entry in System Settings still sits there looking granted.

The fix is to remove and re-add rather than to check and move on:

  1. System Settings → Privacy & Security → Accessibility. Select the app, press the minus button.
  2. Do the same under Input Monitoring.
  3. Quit the app with Cmd+Q. Reopen it. Grant both again when asked.

This is why “but I already gave it permission” is so frequently true and so frequently beside the point. The toggle is on. It is on for something else.

“Voice Control conflicts with Dictation.” You will see this stated as fact. Apple’s own Voice Control documentation does not say it, and I could not find it documented anywhere official. It may well be true — it is cheap to rule out, so turn Voice Control off under Accessibility and try again — but I am not going to assert a mechanism I cannot source, on a page whose whole job is to be reliable.

killall corespeechd. Also widely repeated. Restarting the speech daemon is plausible and probably harmless, but I have not verified either what it fixes or what it costs, so it is listed here as something people report rather than something I am recommending.

If you came here from a guide that stated both as fact, that is worth noticing. A great many results for this search are written by companies that sell dictation apps, and several are affiliate pages where the actual recommendation is “stop using Apple Dictation, here is a link”. We sell one too. That is exactly why the fixes above are the real ones, in the order that actually resolves it, and why this section exists.

If it is fixed, use it

Apple Dictation is free, built in, and on Apple Silicon it runs on-device. If toggling a permission got it working again, you are done and you do not need anything else.

The reason to look further is not that it is broken — it is if you want something it does not do: transcription that stays verbatim instead of tidying your sentence on the way out, a dictionary that survives the offline path, or local history and supported app events you can inspect. The history is not a complete network monitor.


Halopen is native macOS dictation, verbatim by default, with on-device speech recognition on Apple Silicon. Account checks, updates, diagnostics and destination apps have separate network behavior. It detects Secure Input and tells you which app is holding it. Try the time-limited no-card trial — halopen.com.

Current trial duration and paid plans

Pass it on

Try Halopen

Hold the function key. Speak.

Halopen is free for 14 days, no credit card. Pro is $19/mo or $179/yr — unlimited.

Questions

Answered here.

Why does Mac dictation work in some apps but not others?
Almost always macOS Secure Input. When any application turns it on, the OS stops delivering synthetic keystrokes system-wide — so dictation transcribes correctly and then nothing appears. Password fields turn it on legitimately, but the cause people never find is Terminal or iTerm2 with "Secure Keyboard Entry" enabled in its menu, which leaves it on for as long as that terminal is frontmost.
My terminal is not listed under Privacy & Security → Microphone. How do I grant it?
There is no toggle to enable, so you have to reset the permission state and let macOS ask again: run tccutil reset Microphone <bundle-id> — for example com.apple.Terminal or com.googlecode.iterm2 — then QUIT the app with Cmd+Q rather than closing its window, reopen it, and trigger dictation. macOS will not re-prompt a process that is already running. Never run tccutil reset Microphone without a bundle id: that revokes microphone access from every app on the machine, including whatever call you are on.
Dictation worked yesterday and stopped today. What changed?
The usual cause is that the permission is attached to a specific copy of the binary. Update the app, move it, or replace it and macOS can treat it as a different program while the old entry still sits in System Settings looking granted. Removing the app from Accessibility and Input Monitoring and adding it back fixes it, and it is the reason "but I already gave it permission" is so often true and so often irrelevant.
Does Halopen fix Apple Dictation?
No, and it does not try to. It is a separate dictation app with its own engine, so it replaces Apple Dictation rather than repairing it. If the fixes on this page get the built-in working for you, use it — it is free and it is already installed.

Power-user cheat sheet

Take Halopen with you.

The Halopen power-user cheat sheet by email — hotkeys, the right mode for each app, dictionary tips, voice patterns for prompting. Four short notes over two weeks can follow, only if you ask for them. Unsubscribe in one click.