A native macOS app for local voice transcription powered by Whisper and Parakeet
MacTalk is a menu-bar app with two local ASR providers: Whisper and Parakeet. After a model is explicitly provisioned, transcription runs locally on the Mac; model downloaders use network URLs and verify catalog SHA-256 values before installation. See the dated verified status baseline for command results and external release gates.
The repository targets macOS 26.0, Swift 6.0, and FluidAudio 0.15.5 as declared in project.yml. This README does not claim notarization, hardware/TCC validation, or a universal offline installation.
📝 Read the full story: MacTalk Was My ASR Playground — and It Led to Ora · Project page on Futurelab Studio
- Dual Engine Support - Choose Whisper for accuracy or Parakeet for its provider-specific finalization behavior
- Incremental transcription - Whisper processes bounded chunks; Parakeet uses final-only processing to avoid inference overlap
- Dual Capture Modes - Mic-only or mic + app audio (for calls/meetings)
- Local Inference - Captured audio is processed locally after model provisioning; model downloads are explicit network operations
- Metal Accelerated - Optimized for Apple Silicon
- Swift 6 Concurrency - Built with Swift 6 strict concurrency for thread-safe, responsive performance
- Menu Bar App - Lightweight, always accessible
- Multiple Models - Choose from tiny (fast) to large (accurate)
- Auto-Paste - Transcripts copied to clipboard and optionally pasted
- Release tooling - Archive, signing, notarization, and verification scripts with explicit Apple/GitHub prerequisites
- Customizable Hotkeys - Configure your own keyboard shortcuts for hands-free control
Menu bar dropdown with recording modes, settings, and quick controls. Keyboard shortcuts for all major actions.
Compact HUD while recording, with elapsed time and live activity indicator.
Expanded HUD during transcription with partial text preview and one-click stop control.
- macOS 26.0 or later
- Apple Silicon (M1 or newer) recommended
- 8 GB RAM minimum
- Download the versioned
MacTalk-<version>.dmgfrom Releases - Open the DMG and drag
MacTalk.appto your Applications folder - Right-click and select "Open" the first time you launch it
- Grant permissions when prompted:
- Microphone when you start recording
- Screen Recording when you use Mic + App Audio
- Accessibility only if you enable auto-paste
- Select a model to download (recommended: Whisper
smallor Parakeet)
See docs/development/SETUP.md for build instructions. Maintainers should follow the reproducible archive/notarization release workflow for signed DMGs.
- Click the menu bar icon and select a transcription mode
- For call transcription, choose "Mic + App Audio" and select the app
- Press the hotkey or click "Start" to begin recording
- Speak - your words appear in real-time in the HUD overlay
- Press the hotkey or click "Stop" when done
- Transcript is automatically copied to clipboard
MacTalk supports two transcription engines:
FluidAudio-backed local transcription. The current provider path performs final-only processing to avoid inference overlap; see ASREngine.swift and the status baseline for validated behavior.
| Model | Size | Speed | Use Case |
|---|---|---|---|
| Parakeet TDT 0.6B | ~600 MB | Not measured | Finalized transcription path |
High-accuracy batch transcription with multiple model sizes:
| Model | Size | Speed | Use Case |
|---|---|---|---|
| tiny | ~32 MB | Fastest | Quick dictation |
| base | ~60 MB | Very Fast | Everyday use |
| small | ~190 MB | Fast | Recommended default |
| medium | ~539 MB | Moderate | High accuracy |
| large-v3-turbo | ~574 MB | Slower | Maximum accuracy |
Models download automatically when selected. No manual setup required.
- Local transcription path - Captured audio is not sent to a cloud ASR provider by the transcription pipeline; model provisioning uses the documented downloaders
- No telemetry - No analytics or tracking
- Open source - Review the code yourself
Microphone and Screen Recording permissions are required for transcription. Accessibility permission enables auto-paste.
A: Once a model is downloaded and verified, the transcription path can run without a network connection. Model provisioning itself requires network access unless the artifact is already present.
A: Select the provider for your workload. Whisper exposes incremental chunk processing and multilingual catalog models; Parakeet is backed by FluidAudio. Do not infer latency or accuracy from this README—hardware/model measurements are not part of the current baseline.
A: Yes, using Mode B (Mic + App Audio). Requires Screen Recording permission.
A: Yes, Whisper supports 99+ languages. The app defaults to English for best accuracy.
A:
- After a model is provisioned, MacTalk's transcription path runs locally without network access; model provisioning remains an explicit network operation
- Supports app audio capture for transcribing calls
- Choice of multiple models (speed vs. accuracy tradeoff)
- Privacy-focused with no analytics or tracking
- Built with Swift 6 and AppKit for native macOS performance with strict concurrency
- Powered by whisper.cpp with Metal acceleration
- Parakeet engine via FluidAudio; the current provider path uses final-only processing
- Based on OpenAI Whisper and NVIDIA Parakeet
MIT License - see the root MIT License for details.
- Issues: GitHub Issues
- Discussions: GitHub Discussions


