Vocca is an open-source macOS dictation tool. Press a hotkey, talk, and polished text types itself into any app. Two local ASR engines, deterministic cleanup, no network calls by default, your audio never leaves your Mac. Apache-2.0, Apple Silicon.
I built Vocca because I wanted Wispr Flow's daily habit hold a key, talk, watch polished text land in whatever app I'm in without renting it, and without my voice going to someone else's servers.
What it does today: press ⌥Space, talk, press again. Your speech is transcribed on-device and typed into the focused field of any app editor, browser, Slack, terminal. Two local ASR engines ship (Parakeet via FluidAudio by default, whisper.cpp large-v3-turbo as a real second engine, switchable without a restart). Cleanup filler removal, punctuation, your own dictionary runs as deterministic local rules by default. A local Ollama model or your own API key are both opt-in, and badged on screen whenever text would leave your Mac.
The privacy claim is enforced, not promised. The default configuration makes zero network calls, and that's asserted by a CI test that intercepts connect(2) it's a permanent release blocker, so it can't quietly stop being true.
⚠️ Read this before installing. Vocca is signed but not notarized I haven't bought the Apple Developer Program yet. Strip the quarantine flag before the first launch:
xattr -dr com.apple.quarantine /Applications/Vocca.app open /Applications/Vocca.app
Opening it while still quarantined doesn't just warn macOS deletes the app, and not to the Trash. Please run the command first.
What's honest about the state: the dictation loop works and is tested, but this is early. The system-wide injection matrix is only partially run the harness and its run logs are in the repo, so you can see exactly which apps are confirmed and which aren't, rather than taking a number from me. Apple Silicon only.
Where it's going: a spoken reply loop through local Kokoro TTS, real endpointing and barge-in, and eventually voice → actions via MCP. Dictation has to be excellent first.
It's Apache-2.0, the core stays free and local, and I'd genuinely like to know where injection breaks for you that's the hardest part of this problem and the one I most need real machines for.
I built Vocca because I wanted Wispr Flow's daily habit hold a key, talk, watch polished text land in whatever app I'm in without renting it, and without my voice going to someone else's servers.
What it does today: press ⌥Space, talk, press again. Your speech is transcribed on-device and typed into the focused field of any app editor, browser, Slack, terminal. Two local ASR engines ship (Parakeet via FluidAudio by default, whisper.cpp large-v3-turbo as a real second engine, switchable without a restart). Cleanup filler removal, punctuation, your own dictionary runs as deterministic local rules by default. A local Ollama model or your own API key are both opt-in, and badged on screen whenever text would leave your Mac.
The privacy claim is enforced, not promised. The default configuration makes zero network calls, and that's asserted by a CI test that intercepts connect(2) it's a permanent release blocker, so it can't quietly stop being true.
⚠️ Read this before installing. Vocca is signed but not notarized I haven't bought the Apple Developer Program yet. Strip the quarantine flag before the first launch:
xattr -dr com.apple.quarantine /Applications/Vocca.app
open /Applications/Vocca.app
Opening it while still quarantined doesn't just warn macOS deletes the app, and not to the Trash. Please run the command first.
What's honest about the state: the dictation loop works and is tested, but this is early. The system-wide injection matrix is only partially run the harness and its run logs are in the repo, so you can see exactly which apps are confirmed and which aren't, rather than taking a number from me. Apple Silicon only.
Where it's going: a spoken reply loop through local Kokoro TTS, real endpointing and barge-in, and eventually voice → actions via MCP. Dictation has to be excellent first.
It's Apache-2.0, the core stays free and local, and I'd genuinely like to know where injection breaks for you that's the hardest part of this problem and the one I most need real machines for.