Works in any app — WhatsApp, Slack, VS Code, Notes, Terminal, browser, everywhere.
xattr -cr /Applications/VoiceType.app| It will ask for | Just click |
|---|---|
| Accessibility | Open Settings → Toggle VoiceType ON |
| Microphone | Allow |
| Speech Recognition | Allow |
| Automation (System Events) | Allow |
That's it. You're ready.
| Hold Right Option (⌥) key | Wait 0.5 seconds |
| Speak | Say whatever you want to type |
| Release the key | Text appears at your cursor |
Right Option (⌥) is the key to the right of your spacebar.
Click the ✻ icon in your menu bar to change the trigger key, hold duration, or turn it off.
Where is the app? It's in your menu bar (top-right of your screen). Look for the ✻ icon.
Nothing happens when I hold the key? Make sure Accessibility permission is granted: System Settings → Privacy & Security → Accessibility → Toggle VoiceType ON.
It records but doesn't paste? Grant Automation permission: System Settings → Privacy & Security → Automation → Allow VoiceType to control System Events.
Can I change the trigger key? Yes. Click ✻ in the menu bar and pick a different key.
Does it send my voice to the internet? No. Everything happens on your device. No accounts, no API keys, no cloud.
Developer Guide — build from source, architecture, contributing
# Clone
git clone https://github.com/charan7105/VoiceType.git
cd VoiceType
# Install XcodeGen (one-time)
brew install xcodegen
# Generate Xcode project and build
xcodegen generate
xcodebuild -scheme VoiceType -configuration Release buildThe built app will be at:
~/Library/Developer/Xcode/DerivedData/VoiceType-*/Build/Products/Release/VoiceType.app
- macOS 14.0 (Sonoma) or later
- Xcode 16+ (to build from source)
| Component | Technology |
|---|---|
| Key detection | NSEvent global monitor + CGEvent tap |
| Speech-to-text | Apple Speech framework (on-device) |
| Text injection | AppleScript → System Events |
| UI | SwiftUI MenuBarExtra |
| Recording overlay | NSPanel (floating, non-activating) |
Sources/
├── VoiceTypeApp.swift # App entry, MenuBarExtra
├── AppDelegate.swift # Lifecycle + service coordination
├── AppState.swift # Observable state
├── KeyMonitor.swift # Global key detection
├── SpeechService.swift # Apple Speech STT
├── TextInjector.swift # Clipboard + paste
├── MenuBarView.swift # Menu bar dropdown
└── RecordingOverlayWindow.swift # Floating indicator
- Whisper integration for better accuracy
- Custom keyboard shortcut picker
- Windows support via Tauri
- Multilingual support
- Auto-punctuation
PRs welcome. The codebase is ~500 lines of Swift. Fork, make changes, submit a PR.
MIT — do whatever you want with it.