A voice assistant can run in a native Mac window and still send audio, prompts, or memory somewhere else. I do not treat "private" as a model label. I treat it as a property of the entire data path.
That path includes audio capture, transcription, planning, speech generation, retained history, permissions, and every optional network integration.
Five questions I ask
- Where does raw microphone audio go?
- Is transcription local, external, or configurable?
- Can screen context or conversation history leave the device?
- What is stored, for how long, and how can it be cleared?
- Does the interface show an off-device request before it happens?
If the product cannot answer these clearly, the privacy claim is doing more work than the architecture.
The local path
For Pace, the local path can include speech recognition, planning, vision, text-to-speech, and retrieval on Apple Silicon.
Conversation memory, research history, screen observations, app-usage journals, taught skills, and meeting artifacts stay on the Mac under bounded policies exposed by the app and documentation. The user can choose which sources exist and clear them.
Optional external paths should stay visible
A local-first assistant can still offer optional external capabilities. Pace can use Apple Foundation Models, installed Codex or Claude command-line tools, or providers configured by the user.
Those choices should never become silent fallbacks. An external planner requires consent, shows an off-device state, and writes a local audit record. Scheduled background work remains local unless its own consent and operating conditions allow the configured external route.
Meeting-note synthesis has a stricter boundary: it remains pinned to local processing even when another planner tier is enabled elsewhere.
Permissions are part of privacy
A local application may need microphone, accessibility, screen recording, contacts, calendar, reminders, or other macOS permissions to complete a requested task.
Local processing reduces data transfer. It does not remove the need to explain, grant, review, and revoke access. I prefer requesting the smallest permission at the point where the corresponding capability becomes useful.
The honest boundary
No local assistant can promise that every optional integration is network-free. Downloading a model, fetching a requested URL, calling an external MCP server, or selecting a cloud planner uses the network.
The useful promise is narrower: the boundary is explicit, controllable, and auditable.
I documented Pace's current voice, storage, permission, and network boundaries at https://heypace.app/private-voice-assistant-mac/.
Top comments (0)