Dicto - Push-to-Talk Dictation for macOS
🚧 Work in Progress
Free, open-source push-to-talk dictation for macOS — hold a hotkey, speak, release, and cleaned-up text appears wherever you're typing
About This Project
Dicto is an open-source alternative to apps like Wispr Flow. Hold a hotkey, speak, and release — Dicto transcribes your speech, cleans it up, and pastes the result into whatever app you're using. It runs entirely on-device by default using whisper.cpp with CoreML acceleration on Apple Silicon, so your audio never leaves your Mac. For higher-accuracy cloud models, you can optionally bring your own API keys (Groq, OpenAI, or Anthropic).
Key Features
- •Push-to-talk hotkey — hold any key chord, including modifier-only chords like Right Option or Fn
- •Local Whisper by default, so your audio never leaves your Mac
- •Optional bring-your-own-key support for Groq, OpenAI, and Anthropic cloud models
- •Smart cleanup that strips filler words, fixes capitalization, and adds punctuation
- •Apple Intelligence on-device LLM cleanup on macOS 26+
- •Floating recording indicator while the hotkey is held
- •Custom vocabulary to bias Whisper toward your jargon and names
- •Text replacements and a searchable history of recent transcripts
- •Privacy-first — no telemetry, no accounts, API keys stored in the macOS Keychain
Challenges & Solutions
- ⚡Capturing global hold-to-talk hotkeys reliably via a custom CGEventTap
- ⚡Injecting transcribed text into other apps using CGEvent and NSPasteboard
- ⚡Running whisper.cpp efficiently on-device with CoreML acceleration
- ⚡Balancing local privacy with optional cloud accuracy through a BYOK model
- ⚡Shipping an unsigned macOS app and guiding users through Gatekeeper
What I Learned
- 💡Building native macOS apps with Tauri v2 and a Rust backend
- 💡Real-time audio capture and resampling with cpal
- 💡Integrating on-device speech models via whisper-rs
- 💡Designing a privacy-first architecture with no telemetry or cloud sync
- 💡Packaging and distributing desktop software outside the App Store