Hold a key, speak, and your words are transcribed and pasted into any app. Optionally, a local LLM polishes the text. 100% local, no cloud.
4 built-in modes — Normal, Message, Email, and Instructions/Prompt. Each tailors LLM processing to match the context.
Automatically picks the right mode based on your active app. Slack becomes Message, Mail becomes Email, VS Code becomes Prompt. Zero config.
Say "email:" or "message:" at the start of your dictation to override the mode on-the-fly. No menus, just speak.
Switch modes directly from the recording nudge panel without opening settings. Quick, contextual control.
Option to copy to clipboard without auto-pasting. Review and edit before pasting into your app.
Choose your transcription language in settings for more accurate speech-to-text results.
All processing happens on your Mac. No cloud, no subscriptions, no data leaves your machine.
Ollama improves transcriptions with mode-aware grammar, punctuation, and formatting. Works great without it too.
Right Option, Caps Lock, Fn, or any key combo. Hold to record, or press-to-toggle for Caps Lock.
Searchable dictation history with audio playback. Pick any input device from the menu bar.
Grab the latest release, unzip, and drag Parrote.app to your Applications folder.
Parrote is not notarized by Apple, so macOS will block it on first launch. You need to do one of these:
Parrote.app → select Open → click Open in the dialog.xattr -cr /Applications/Parrote.app
You only need to do this once. After that, it opens normally.
The onboarding flow will guide you through granting Accessibility (for hotkey detection) and Microphone (for recording) permissions. Then you're all set — hold Right Option and speak!
Parrote works out of the box with raw Whisper transcriptions. But if you want cleaner results — better grammar, punctuation, and formatting — install Ollama and pull a model. Parrote will automatically use it to improve transcriptions.
ollama serve
ollama pull gemma3:12b
You can toggle this on/off in Settings → LLM → "Skip text processing".
Contributions welcome! View the source on GitHub →