In memory
Audio is captured while the hotkey is active, transcribed locally, then discarded.
Presspeech is local-first in the strict sense: no analytics SDK, no accounts, no crash reporter, no transcript sync, and no cloud transcription endpoint.
Audio is captured while the hotkey is active, transcribed locally, then discarded.
The finished text normally goes through the general pasteboard and ⌘ V. If that setup fails, Presspeech falls back to direct Unicode key events.
Presspeech deliberately does not restore your previous clipboard contents — racing to round-trip them fights with clipboard managers. The trade-off: the last dictation stays on the system pasteboard, visible to clipboard managers and Universal Clipboard, until you copy something else.
Logs include timing and length metadata only. Transcript content is not written to disk.
This is the complete network surface of Presspeech itself and its install/update path.
| When | Destination | Purpose | User control |
|---|---|---|---|
| Model download | huggingface.co |
FluidAudio downloads the Parakeet TDT v3 CoreML model weights, about 500-600 MB, into the local support cache. Runs on first launch, again if the cached model fails its integrity check, and again when you choose Reset Speech Model Cache. If HF_TOKEN, HUGGING_FACE_HUB_TOKEN, or HUGGINGFACEHUB_API_TOKEN is set in the environment, FluidAudio attaches it as an Authorization header to huggingface.co (most users have none set). |
Required once for local transcription. |
| Periodic update check | api.github.com/repos/rcourtman/presspeech/releases/latest |
Release lookup every six hours, plus one check shortly after launch; it only notifies. The GET carries a fixed User-Agent header, exactly presspeech-update-check — no version, device, or user identifiers. |
Disable update notifications from Settings. |
| User-triggered install/update | github.com/rcourtman/presspeech/releases/download/..., formulae.brew.sh, github.com/rcourtman/homebrew-presspeech, Homebrew's own update endpoints (github.com / api.github.com) |
When the user downloads Presspeech directly, the browser fetches the signed GitHub release archive. When the user chooses to install or update through Homebrew, Homebrew refreshes its metadata and the tap, then downloads the same signed release archive. | Only runs when the user installs or updates. |
Machine-readable version: privacy/network-calls.json.
The notarised app uses two hardened-runtime entitlements: audio input and microphone. macOS also requires user-granted Accessibility and Input Monitoring permissions for the hotkey and paste workflow.
Presspeech does not add JIT, unsigned executable memory, library-validation, network-client, contacts, calendar, location, camera, or file-provider entitlements.