Back to appsv0.3.0 · Source available
macOS 26 · on device · open source

Hold Fn.
Speak. Let go.

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.”.

676 KB
App bundle
No weights to ship
0
Bytes uploaded
No network code
30
Languages
From the OS
2
Apple models
Both preinstalled

Two models, both already sitting on your Mac.

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.

Hears
SpeechTranscriber

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.

Writes
FoundationModels

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.

The parts that took the longest.

Input Monitoring is not Accessibility

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.

The Fn key has other jobs

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.

Cleanup must never cost you words

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.

Three permissions, once.

Shout asks for all three on first launch and tells you which one is missing if you skip it.

Input Monitoring
Sees the Fn key while you are working in another app.
Accessibility
Puts the finished text into the field you are typing in.
Microphone
Hears you, and only while the key is held down.

Your voice never leaves the machine.

MIT licensed. Signed and notarized with Apple, built by GitHub Actions on a tag push.

github.com/jasonzh0/shout