Voice-to-text that runs entirely on your Mac
Features • Installation • Usage • Configuration • License
LocalFlow is a privacy-first voice dictation app for macOS. Speech recognition runs 100% locally using OpenAI's Whisper model, no internet connection required, no data ever leaves your device.
- Double-tap to dictate: Double-tap Option key, hold and speak, release to transcribe
- Works in any app: Text is inserted wherever your cursor is
- Auto-updates: Built-in update system keeps you current
- Visual feedback: Minimal floating pill with live waveform and timer; hover it to see the live text
- Self-corrections: Say "John, I mean Sarah" and only "Sarah" is kept
- Battery friendly: Live transcription only runs while you hover the pill
- Clipboard friendly: Your clipboard is restored and dictations stay out of clipboard managers
- Punctuation mode: Automatically add punctuation
- Clipboard mode: Copy to clipboard without auto-pasting
- History: Access your recent transcriptions
- Custom hotkey: Configure your preferred trigger key
- Sound feedback: Audio cues for recording start/stop
- Auto-launch: Start LocalFlow when you log in
- Fast: Sub-second transcription on Apple Silicon
- Private: No cloud, no telemetry, no data collection
- macOS 14.0+ (Sonoma)
- Apple Silicon (M1/M2/M3/M4)
-
Download the latest DMG from Releases
-
Open the DMG and drag LocalFlow to Applications
-
First launch: Right-click LocalFlow.app and select "Open"
macOS will warn that the app is from an unidentified developer. Click "Open" to proceed. This only happens once.
-
Grant permissions when prompted:
- Accessibility: Required for hotkey detection and text insertion
- Microphone: Required for voice recording
-
Download a model: Go to Settings > Model and download your preferred model
That's it! Double-tap Option to start dictating.
Since LocalFlow isn't notarized with Apple, macOS shows a warning on first launch. Two ways to handle this:
Option A: Right-click to Open
- Right-click (or Control-click) on LocalFlow.app
- Select "Open" from the menu
- Click "Open" in the dialog
Option B: System Settings
- Try to open LocalFlow normally (it will be blocked)
- Go to System Settings > Privacy & Security
- Scroll down to find "LocalFlow was blocked"
- Click "Open Anyway"
For developers who want to build from source, see docs/INSTALL.md.
| Action | How |
|---|---|
| Start recording | Double-tap Option key, then hold |
| Stop & transcribe | Release the key |
| Open menu | Click waveform icon in menu bar |
| Settings | Click menu bar icon → Settings |
| Check for updates | Click menu bar icon → Check for Updates |
Access settings via the menu bar icon.
| Setting | Description |
|---|---|
| Model | Choose Whisper model (tiny/base/small/medium) |
| Hotkey | Configure trigger key (Option, Control, Fn) |
| Punctuation | Auto-add punctuation |
| Clipboard mode | Copy only, don't paste |
| Sound feedback | Play sounds on record start/stop |
| Launch at login | Start automatically |
| Model | Size | Speed | Accuracy |
|---|---|---|---|
| tiny | 75MB | ★★★★★ | ★★☆☆☆ |
| base | 142MB | ★★★★☆ | ★★★☆☆ |
| small | 466MB | ★★★☆☆ | ★★★★☆ |
| medium | 1.5GB | ★★☆☆☆ | ★★★★★ |
Recommendation: Start with small for the best balance of speed and accuracy.
- Installation Guide: Build from source
- Model Comparison: Choose the right model
- Troubleshooting: Common issues
- Privacy Policy: How your data is handled
LocalFlow is designed with privacy as a core principle:
- All speech recognition happens on-device using whisper.cpp
- No internet connection required for transcription
- No data is ever sent to external servers
- No analytics or telemetry
- Update checks only fetch a small XML file from GitHub
See our full Privacy Policy.
MIT License: see LICENSE for details.
Made with Swift for macOS
