Dictation for the Mac that ships no models, uploads nothing, and puts clean text wherever your cursor already is.
Shout transcribes “um so i think we should probably uh ship it on friday” and cleans it up on device to “I think we should ship it on Friday.”.
Apple’s Foundation Models framework is a language model — it can’t transcribe audio. So Shout uses two: one to hear, one to write. Both are OS resources shared across apps, which is why the app is smaller than a photograph.
The macOS 26 engine behind system dictation, streaming partial results as you speak. Apple reports it at roughly twice the speed of Whisper Large V3 Turbo, running entirely on device.
Apple's on-device ~3B model strips filler words and restores punctuation. Its output is constrained to a single typed field, which is what keeps it rewriting your words instead of answering them.
A keyboard event tap is gated on a separate permission from Accessibility. Grant only Accessibility and the trust check passes while the tap still refuses to open — the app looks broken for no visible reason. macOS also caches the answer per process, so a grant given while the app is running does nothing until it restarts. Shout detects that exact state and offers to relaunch itself.
Fn is also the modifier for the function row and the arrow cluster, so reaching for brightness opens the mic for a moment. Pressing any other key while Fn is held throws that recording away. Events are matched on keycode rather than the modifier flag, which cannot tell left Option from right, or a real Fn press from the Fn bit that arrow keys set on their own.
Every failure path in the cleanup pass returns the raw transcript — Apple Intelligence switched off, guardrails tripped, a result implausibly longer than the input. Losing what you said to a tidying step is far worse than leaving an “um” in.
Shout asks for all three on first launch and tells you which one is missing if you skip it.
MIT licensed. Signed and notarized with Apple, built by GitHub Actions on a tag push.