Wave is a lightweight, native macOS dictation app focused on fast voice-to-text workflows with minimal UI overhead. Press a shortcut, speak, and your words are instantly pasted at the cursor. Supports on-device transcription via Whisper and cloud transcription via Groq, plus an AI Mode that sends your voice to an LLM and pastes the response directly.
- Dictation — global shortcut triggers recording; transcription is pasted at the active cursor
- Push to Talk or Toggle — hold to record and release, or press once to start and again to stop
- Local transcription — on-device Whisper inference, no internet required
- Groq cloud transcription — faster cloud-based transcription via the Groq API
- AI Mode — separate shortcut sends your voice to an LLM and pastes a direct answer
- Snippets — save reusable text snippets; AI Mode is aware of them
- Dictation history — recent transcriptions with right-click copy
- Language selection — auto-detect or set a specific language (ISO 639-1)
- Custom vocabulary — bias the model toward specific words and names
- Microphone selection — choose any input device or use the system default
| Action | Default |
|---|---|
| Dictation | Fn |
| AI Mode | Right Option |
Both shortcuts are fully customizable in Settings → Shortcut.
Download the latest DMG from Releases.
Releases are distributed as signed, notarized DMGs.
make buildopen build/Build/Products/Release/Wave.appOr launch from Xcode — open Wave.xcodeproj, select the Wave scheme, and run.
GitHub Actions builds signed and notarized release DMGs for tags matching v*.*.*.
Required repository secrets:
BUILD_CERTIFICATE_BASE64— base64-encodedDeveloper ID Application.p12P12_PASSWORD— password for the.p12KEYCHAIN_PASSWORD— temporary CI keychain passwordAPPLE_ID— Apple ID email used for notarizationAPPLE_APP_SPECIFIC_PASSWORD— app-specific password for notarizationAPPLE_TEAM_ID— Apple Developer Team IDSPARKLE_PRIVATE_KEY— Sparkle EdDSA private key for appcast generation
- Toggle and Push to Talk recording modes
- Local offline transcription with Whisper
- Groq cloud transcription
- AI Mode with LLM response via Groq
- Custom dictionary / vocabulary
- Language selection
- Dictation history with copy
- Snippets with AI awareness
- Microphone selection
- App-specific behavior profiles
- Quality presets for speed vs accuracy
Join the Discord community for feedback and help. For bug reports and feature requests, open a GitHub issue.
- whisper.cpp — local speech-to-text inference
- Sparkle — macOS auto-update framework
- PhosphorSwift — icon library
Contributions are welcome. See CONTRIBUTING.md for local setup and expectations.