Push-to-talk dictation for macOS with visible transcription, cleanup, and paste feedback.
Murmur is a macOS menu bar app for fast voice dictation. Hold your hotkey, speak naturally, and Murmur records, transcribes, optionally cleans the text, then pastes it into the active app. It is designed to be usable with fully local models, API-backed models, or a mix of both.
- Menu bar dictation app for macOS
- Push-to-talk hotkey with custom shortcut capture
- Local transcription with WhisperKit
- Optional local transcription with Apple Speech on supported macOS versions
- Optional API transcription and cleanup with Groq
- Optional cleanup with Ollama, Gemini CLI OAuth, or ChatGPT via Codex CLI OAuth
- Per-app cleanup styles for prose, email, chat, notes, prompts, and code
- Microphone picker and in-app dictation test flow
- Visible runtime/setup state instead of silent failures
- Automatic update checks against GitHub Releases
Open the releases page and download Murmur.dmg from the latest published release:
https://github.com/Cryptic0011/murmur/releases
Install steps:
- Download
Murmur.dmg - Open the DMG
- Drag
Murmur.appintoApplications - Launch Murmur from
Applications - Grant microphone and accessibility permissions when prompted
Prerequisites:
- macOS 14 or newer
- Xcode
- Homebrew
xcodegen
Setup:
brew install xcodegen
xcodegen generate
open Murmur.xcodeprojOr build from Terminal:
xcodegen generate
xcodebuild -scheme Murmur -destination 'platform=macOS' buildFor a local install flow that rebuilds and copies the app into /Applications, use:
./scripts/install-dev.shMurmur always needs:
- Microphone permission
- Accessibility permission
- macOS 14+
Depending on how you configure providers, you may also need:
- A Groq API key for Groq transcription or cleanup
- Ollama installed locally for local cleanup with Gemma
- WhisperKit model download for local transcription
On first launch, Murmur walks through the required permissions and runtime checks.
Recommended first-run path:
- Launch Murmur
- Grant microphone access
- Grant Accessibility access so Murmur can monitor the hotkey and paste text
- Open Settings
- Choose your transcription and cleanup providers
- Use
Try Murmurto test microphone input and run a no-paste dictation test - Test your provider connection if using Groq, Gemini CLI, or ChatGPT OAuth
- Try the default hotkey and adjust it if needed
Murmur supports several practical setups.
- Transcription: WhisperKit
- Cleanup: Ollama / Gemma
Use this if you want to avoid external API calls.
You will need:
- a WhisperKit model
- Ollama installed and running on
localhost:11434
Download Ollama:
https://ollama.com/download/mac
- Transcription: WhisperKit
- Cleanup: Groq, Ollama, Gemini CLI, ChatGPT OAuth, or Apple Intelligence
This is a good default if you want local speech-to-text but stronger cleanup options.
- Transcription: Groq
- Cleanup: Groq
Use this if you want to avoid local model setup and you are fine with API usage.
- Transcription: WhisperKit or Groq
- Cleanup: Gemini CLI or ChatGPT via Codex CLI
Use this if you already use one of those CLIs and prefer OAuth sign-in over pasting API keys.
You only need a Groq key if you select a Groq provider in Murmur.
Steps:
- Create or sign into your Groq account
- Open the Groq keys page:
https://console.groq.com/keys
- Create a new API key
- Open Murmur
- Go to
Settings>Providers - Paste the key into the
Groq API keyfield - Click
Save Key - Click
Test Connection
Notes:
- Murmur stores the Groq key in the macOS keychain
- The same key is used for Groq transcription and Groq cleanup
- If you do not use Groq in your provider settings, you do not need a key
- If Groq is selected but no key is saved, the setup card shows an
Open Groq Keysaction that opens the Groq keys page
Basic flow:
- Hold the push-to-talk hotkey
- Speak
- Release the hotkey
- Murmur transcribes and optionally cleans the text
- Murmur pastes into the focused text field
If there is no editable field focused, Murmur shows the result state instead of silently failing.
Murmur checks GitHub Releases for updates on launch.
- If a newer release exists, the app prompts the user to download it
- The prompt opens the release DMG when available
- Users update by installing the newer app build
This is a download-and-replace update flow, not an in-place auto-installer.
Check:
- microphone permission is granted
- the hotkey is not paused
- the selected transcription provider is configured correctly
Check:
- Accessibility permission is granted
- the target app has an editable field focused
Check:
- your API key is saved
Test Connectionsucceeds inSettings>Providers- you selected a Groq-backed provider
Check:
- Ollama is installed
- Ollama is running locally
- it is reachable on
localhost:11434
Project generation:
xcodegen generateOpen in Xcode:
open Murmur.xcodeprojRun tests:
xcodebuild test -scheme Murmur -destination 'platform=macOS'- Design spec: docs/superpowers/specs/2026-04-13-voice-dictation-design.md
- Implementation plan: docs/superpowers/plans/2026-04-13-voice-dictation.md