Free, open-source, two-way voice for your Mac.
A dictation app that rivals Wispr Flow — and talks back in your own voice.
⬇ Download Rhapsode.dmg — signed & notarized, drag to Applications, done.
Built on FreeFlow by @zachlatta · macOS 13+ · Apple Silicon & Intel
Hold Fn, talk, release — clean text lands wherever your cursor is, in well under a second. Under the hood, every dictation runs a pipeline tuned far past basic Whisper-and-paste:
- Fast cloud transcription (Groq
whisper-large-v3-turbo, ~0.6–0.9s round trip on a prewarmed connection) with automatic on-device fallback: if the provider is down, erroring, or just slow for 4 seconds, local whisper.cpp races it and the winner pastes. Wi-Fi off? Dictation still works, fully polished by Apple Intelligence — on-device, ~2s. - Hallucination defense that actually verifies: Whisper's infamous trailing "Thank you." is stripped using audio evidence — if there was no voice energy during that segment's window, it never happened. Deliberate sign-offs survive.
- Content-aware modes — casual register in Messages/Slack, terse and code-safe in terminals, formal in Mail, standard elsewhere. Every mode is editable (Dashboard → Modes): your own prompt snippets, app and browser-tab routing, even a different cleanup model per mode. Custom modes outrank built-ins.
- A dictionary that learns. Add names once — or don't: after each paste the app watches (locally, via Accessibility) for your respellings and adds them automatically. Vocabulary flows into the Whisper prompt, a deterministic phonetic corrector ("grok" → "Groq", "duncan" → "Dunkin'"), and the cleanup LLM.
- History you can audit — every dictation browsable with Heard-vs-Cleaned comparison, original audio playback, one-click re-transcription, and failure badges. Stats, streaks, and WPM on the Dashboard.
- Voice Bank → your voice, anywhere (the two-way part, opt-in): dictations build a local voice dataset; clone it via ElevenLabs, then select any text anywhere and press
⌥⌘Sto hear it read back in your voice. - Voice Profile → AI that writes like you. Your dictation history is your voice, captured at scale — so Tools/voice-profile distills it into a voice pack: your full corpus, your vocabulary with real counts, and verbatim passages of how you actually reason. Hand it to any AI agent and it writes copy that sounds like you, not like a model. Privacy filters keep anything you'd rather exclude out of every regeneration, and a ready-made
/write-as-meskill wires it into Claude Code. - Prompt-injection hardened: dictating "write a poem about the moon" pastes those words — the cleanup layer is guarded against executing your speech as instructions, on both the cloud and on-device paths.
Download (recommended): Rhapsode.dmg — signed and notarized, so it opens without Gatekeeper hoops. Drag to Applications and launch; first run walks you through everything — a free Groq API key (groq.com), microphone, accessibility, shortcuts, and a test dictation.
Or build from source (Xcode command-line tools):
git clone https://github.com/vishk23/rhapsode.git
cd rhapsode
make CODESIGN_IDENTITY=- ARCH=$(uname -m) # ad-hoc signed dev build
open "build/Rhapsode Dev.app"Ad-hoc signing means macOS re-asks for permissions after each rebuild. If you have a Developer ID certificate, pass
CODESIGN_IDENTITY=<cert hash>for grants that stick.make releasebuilds a production-named app and a signed DMG (brew install create-dmg fileiconfirst).
Optional offline fallback: Settings → Offline Fallback shows the two pieces — brew install whisper-cpp and a one-click 547 MB model download. Once both are green, network loss costs you ~1.5s per dictation instead of your dictation.
Fn press ──▶ record (16kHz WAV) ──▶ trim trailing silence
│ │
│ (connection prewarms while ▼
│ you speak) Groq whisper ◀──races after 4s──▶ local whisper.cpp
│ │
▼ ▼
mode resolution hallucination filter (audio-energy evidence)
(app / browser tab) │
│ ▼
└────────────▶ vocabulary corrector (phonetic, deterministic)
│
cleanup LLM (mode-aware, injection-guarded)
└─ offline: filler strip + Apple Intelligence
│
▼
smart-spaced paste (clipboard preserved & restored)
Every dictation is also browsable in the History tab — raw "Heard" text vs the cleaned output side by side, with audio playback and one-click re-transcription.
The short version: cloud-fast when the network is good, on-device when it isn't, learns your vocabulary like the commercial apps, and it's the only one that gives your voice back.
| Rhapsode | Wispr Flow | VoiceInk | Handy | OpenWhispr | |
|---|---|---|---|---|---|
| Price | Free (BYO API key, ~pennies/mo) | $12–15/mo | Freemium | Free | Free |
| Transcription | Cloud + auto on-device fallback + 4s hedge | Cloud only | Local-first + cloud | Local only | Local + BYOK |
| Works offline | Yes — transcribed and polished on-device | No | Yes | Yes | Yes |
| Self-learning dictionary | Yes | Yes | No | No | Yes |
| Editable per-app modes | Yes, incl. browser-tab routing + per-mode model | Automatic only | Yes | No | Scoped prompts |
| Hallucination filtering | Audio-energy evidence per segment | Opaque | Regex | VAD prevention | Multi-guard |
| History w/ audio replay & re-transcribe | Yes | History | Yes | Basic | Yes |
| Text → your cloned voice | Yes (⌥⌘S anywhere) | No | No | No | No |
| Platforms | macOS | Mac/Win/iOS/Android | macOS | Mac/Win/Linux | Mac/Win |
Each of those projects is good at what it optimizes for — Handy for fully-local purity, VoiceInk for local-first Mac polish, Wispr Flow for multi-platform convenience. Rhapsode optimizes for one person's daily-driver on a Mac: lowest latency available at any moment, no subscription, every dictation auditable, and a voice that goes both directions.
No app server. Audio goes to your configured transcription provider (Groq by default) and text to your cleanup LLM — that's the entire data flow, and with the offline fallback installed you can dictate with zero network at all. The Voice Bank is off by default and local-only: nothing is ever uploaded unless you explicitly create an ElevenLabs voice clone, which is a separate deliberate action with your own API key.
- macOS 13+ (Apple Intelligence offline polish needs macOS 26+; ScreenCaptureKit context capture needs 14+)
- A free Groq API key (or any OpenAI-compatible endpoint — configurable base URLs and models)
- Optional: ElevenLabs key for voice cloning,
whisper-cppvia Homebrew for offline
This project is built on FreeFlow and periodically merges its upstream improvements. Everything in "What it does" above beyond basic dictate-clean-paste — the resilience stack, learning dictionary, editable modes, offline pipeline, history browser, and the entire voice-bank/cloning direction — is this project. Both are MIT licensed; thanks to @zachlatta and the FreeFlow contributors for the excellent foundation.
MIT — see LICENSE.


