Tap right ⌘, talk, tap again. Your words land wherever your cursor is, near instantly, because everything runs on your Mac. No account, no cloud, no minutes, free forever.
You need a Mac with Apple Silicon (M1 or newer). That's it.
1. Install Homebrew if you don't have it. Paste this in Terminal:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
2. Install Yap. Paste this in Terminal:
git clone https://github.com/dertuman/yap && cd yap && ./install.sh
This downloads the speech model (574 MB, one time), builds the app, and puts it in Applications. Takes a few minutes.
3. Allow the two permissions when macOS asks: Microphone and Accessibility. If you missed the prompts, go to System Settings > Privacy & Security and turn Yap on in both lists.
4. Tap right ⌘ and start talking. Tap again to stop. Done.
- Tap right ⌘ to start, yap, tap again to stop. The text is at your cursor before you can look for it.
- Or hold right ⌘ and speak, release to transcribe, walkie-talkie style.
- Press any other key while holding and it cancels, so real shortcuts still work.
- The menu bar mic turns red while recording.
Click the menu bar mic for the settings:
- Trigger Key. Right ⌘ by default. Pick either side of ⌘, ⌥, ⌃, ⇧, or Fn instead. Sides are separate, so left ⇧ can still be shift while right ⇧ dictates.
- Start / Stop Sounds. The little ticks when recording opens and closes. Turn them off if you'd rather work in silence.
- Chat Style. Makes dictations read like a typed chat message instead of formal writing: lowercase sentence starts, no ¿ ¡ or closing periods, your slang and shorthand. Hold ⌥ and click Edit Chat Style… to open the two files that define it under
~/Library/Application Support/Yap/style:prompt.txtis a short sample of how you type (Whisper picks up its spelling, slang and punctuation), andwords.txtholdsspoken -> writtenswaps likeno te preocupes -> ntp. Edits apply on the next dictation. - History. Every dictation is saved (transcript plus audio) under
~/Library/Application Support/Yap/history. Click an entry to copy it back to the clipboard; hold ⌥ to play the recording instead; hover for the full text, date, and duration. Turn off Save History to stop saving transcripts and audio, and Clear History wipes what's there. - Stats. See your total words, characters (including spaces and punctuation), successful recordings, and recording time. Starts with your existing saved history, then keeps counting, even with Save History off or after clearing history. Only totals are stored, locally on your Mac. Older recordings already removed from history can't be counted. Reset Stats starts the counters over without deleting history.
Want Yap to start when your Mac starts? System Settings > General > Login Items, add Yap.
I was using a paid dictation app and ran out of minutes. So I built this: the same thing with most features stripped away. It runs Whisper large-v3-turbo locally through whisper.cpp.
A handful of small Swift files. A menu bar app watches your trigger key with an event tap, records 16 kHz audio, sends it to a local whisper-server (kept running so the model stays loaded and transcription is basically instant), then pastes the result at your cursor and restores your clipboard. Nothing ever leaves your Mac.
Want a different model? Grab any ggml model from Hugging Face, put it in ~/Library/Application Support/Yap/models/, and change the filename in Sources/Transcriber.swift.
MIT