macOS 14+ · Apple Silicon · Free

Hold a key. Speak.
Your words type themselves.

Local voice-to-text dictation for macOS Apple Silicon. A free, MIT-licensed alternative to paid commercial dictation apps, with no telemetry and no cloud round-trips.

How it works

Three steps. No menus. No waiting.

The app sits in your menu bar. Trigger it from any text field. Slack, Notes, Mail, Messages, anywhere.

1

Hold the hotkey

Right Option by default. Switch it to another built-in preset: a bare modifier, a combo like ⌃⌥ Space, or a function key.

2

Speak naturally

Transcription runs entirely on the Apple Neural Engine, on-device. Zero cloud round-trips, zero telemetry, zero waiting.

3

Release

Your transcript types straight into whichever app has focus, word-by-word as you speak if you turn on Smart Typing.

Let’s ship the new onboarding flow this week.

Smart typing Words type into the focused app as you speak.

Also: two engines (Parakeet v2 + WhisperKit) · custom dictionary · everything on-device.

FAQ

Before you download.

Does my audio leave my Mac?

No. Recording, transcription, and post-processing all happen on-device (transcription runs on the Apple Neural Engine). Zero telemetry, and zero network calls after the initial model download.

Which mode is lowest-latency?

Parakeet (the default) with Smart Typing on, so words appear as you speak instead of on key release. Whisper can’t match it because it’s non-streaming.

What languages can I dictate in?

English with the default Parakeet engine. For other languages, switch to WhisperKit in Settings › Engine. It transcribes ~100 languages (auto-detected or pinned) and can optionally translate them to English.

Does meeting mode record the other people on my call?

Yes. It captures your mic and your Mac’s system audio together, so remote participants are transcribed too, still entirely on-device. System-audio capture needs macOS 14.2+; older systems record the mic only.

The mic icon isn’t visible in my menu bar.

On notched MacBooks the icon hides behind the notch when the menu bar is crowded. Hold Command and drag to reorder, quit a few menu bar apps, or use Ice / Bartender to manage overflow.

How big is the model download?

Parakeet TDT v2 is ~450 MB, fetched automatically on first launch. Whisper models range from ~140 MB (Tiny) to ~616 MB (Large V3 Turbo) if you switch engines.

Does it work without internet?

Yes, after the first model download. Everything runs on-device.

Can I change the hotkey?

Yes. Pick from a few built-in presets per feature in Settings (e.g. Right Option, F5, or ⌃⌥ Space for dictation). There’s no custom recorder yet, so keys outside the presets can’t be assigned.

Can I use it in any app?

Any standard text field. Voice editing works in Accessibility-supported fields (most native macOS apps); other apps fall back to paste injection.

How do I update Purr?

Open the menu bar › About Purr and it checks GitHub Releases automatically (or click “Check for Updates”). A new version downloads, verifies its checksum, and relaunches in place.

Why was I asked to grant permissions again after an update?

Either the bundle ID changed (e.g. you swapped in a different fork) or you revoked a permission in System Settings. Re-grant from the menu bar › Onboarding Setup.

About

Why I built this.

I type for a living. Most days my hands are on the keyboard for nine, ten, twelve hours. A few months ago my wrists started aching by mid-afternoon. Not crippling, but enough to make me close the laptop after dinner thinking, tomorrow is going to be worse.

I tried the obvious fix. WisprFlow is brilliant. SuperWhisper too. They work, they really do. But $15 a month for one of them, $8 a month for the other, and the audio leaves your machine on its way to a server somewhere. After enough years writing software you learn that the moment your voice goes to someone else’s logs, it lives there for as long as they care to keep it.

So I built Purr as a weekend hack. If Whisper runs on the Apple Neural Engine and CGEventTap can synthesize keystrokes, the rest is just plumbing. Turned out to be a lot of plumbing. Three months in, it’s the first thing I open every morning, before Slack, before mail, before anything else.

It is free. MIT licensed. It never sees the internet after you install it. No subscription. No telemetry. No account to make. The code is on GitHub if you want to read it, fork it, or rip out the parts you don’t like.

I built this for me. I’m putting it out because someone else might need it too.

QR code that downloads Purr.dmg

Get the app

Scan the code, or click the button.

The QR opens the latest release and starts the download automatically. macOS 14+ on Apple Silicon.