Content stays on your Mac
Dictation, transcripts, meeting audio and local indexes are processed and stored on your machine.
Included at launchWe reduce attack surface by architecture, not by marketing. Here's the technical truth.
Each step, in detail. If something you care about is missing, email us.
Captured by cpal into a temporary WAV file in your user-scoped temp directory. Never written to a shared location. Never uploaded.
whisper-rs with Apple-silicon Metal acceleration. Audio is read, transcribed, and the temp file is destroyed.
llama-cpp-2 against a local GGUF model. The prompt is constructed locally, the response stays local.
Cleaned text is typed into the active app via macOS accessibility APIs, with a clipboard-paste fallback if needed.
Periodic signed-JWT verification against our API. The request contains no content, only account email and app version.
The strongest privacy claim is the one you can check yourself. Other dictation apps ask you to trust a “privacy mode” you can't see. Penwright's privacy is in the architecture, so you can watch it work.
Turn off Wi-Fi and dictate. It keeps working. Transcription and cleanup run entirely on your Mac. A cloud dictation app stalls the moment it loses the network.
Run Little Snitch, LuLu, or Activity Monitor's Network tab while you dictate. Your audio and transcript generate zero outbound traffic. There is no code path in the app that uploads them. The only connections Penwright ever makes are content-free: license check, updates, and one-time model downloads.
Audio → whisper-rs → llama-cpp-2 → keystrokes, every step on-device. The one optional cloud path, bring-your-own-key cleanup, is off by default, sends text only (never audio), goes straight to your provider with your key, and is hard-blocked when Privacy Mode is on.

A privacy claim you can't enumerate is marketing. Here is the complete list of network calls Penwright makes:
That's the whole list. Dictation, cleanup, transforms and captures make zero network calls. Verify it yourself: turn Wi-Fi off and keep dictating, or watch the process in Little Snitch.
Voice transforms read the text you selected and, for context, the field it sits in. Both are processed on your Mac and discarded after the result is produced. They are never transmitted or stored.
No certifications yet, and no imaginary ones. Every claim here is checkable on your own machine.
Dictation, transcripts, meeting audio and local indexes are processed and stored on your machine.
Included at launchPenwright's servers handle accounts, licences and billing, not the audio or transcripts you create on your Mac.
Included at launchThe Penwright API has no route for your dictation audio or transcripts. A server cannot leak content it never receives.
Included at launchUse any network monitor you trust. The security page documents the traffic you should, and should not, see.
Included at launchTLS in transit. Bearer-token auth. Rate-limited. No personally identifying content in the payload, just account email, license ID, and app version.
In macOS Keychain, scoped to the Penwright app via security-framework. Other applications cannot read it.
License is cached locally with a grace period. Penwright works fully offline. License revalidates next time you're online.
No. There is no telemetry channel for transcripts or audio. We have no data corpus to train on.
Yes. Email hello@penwright.ai and we'll share the architecture doc and answer specific questions.