A minimal macOS menubar app for local, private speech-to-text dictation.
Hold a key, speak, release — your words appear wherever the cursor is. No cloud, no subscription, no data leaving your machine.
- Hold trigger key → microphone starts recording (in memory, no files written to disk)
- Release → WhisperKit transcribes on-device
- Transcribed text is typed at your cursor via the clipboard
The Whisper small.en model (~150 MB) downloads automatically on first launch and is cached locally.
- Download
LocalTalk.dmgfrom the releases page - Open the DMG, drag LocalTalk into Applications
- Launch it from Applications
- Grant Accessibility and Microphone permissions when prompted
- The mic icon appears in your menubar — you're ready
The app is signed with a Developer ID and notarized by Apple, so it should open without Gatekeeper warnings. Updates install automatically through Sparkle (verified with an EdDSA signature) — when a new version is available, you'll see a prompt with a "Install and Relaunch" button.
Requirements: macOS 14+, Xcode command line tools, Swift 5.9+
git clone https://github.com/rusackas/localtalk
cd localtalk
make run # builds, bundles, and launchesOr build a distributable DMG:
make dmg # produces LocalTalk.dmgClick the menubar icon → Settings… (or press ⌘,) to:
- Change trigger key — default is fn/Globe; also supports Right Option (⌥) or Right Control (⌃)
- View usage stats — total time recorded and characters typed
- Reset stats — clears the counters
| Permission | Why |
|---|---|
| Accessibility | Detect the trigger key and type text at the cursor |
| Microphone | Record your voice while the trigger key is held |
Both are requested on first launch. If you accidentally deny one, open System Settings → Privacy & Security to re-enable.
| Icon | State |
|---|---|
| Spinner | Loading / downloading Whisper model |
| Mic | Ready |
| Mic (red, filled) | Recording |
| Waveform (orange) | Transcribing |
| Warning triangle | Error — check Accessibility/Mic permissions |
- Suppresses the trigger key so macOS Dictation / Globe menu doesn't interfere
- Audio is captured in memory — no temporary files are written to disk
- Clipboard is saved and restored after each injection
- Works in any app that supports paste (text editors, terminals, browsers, messaging apps, etc.)