What runs where, what leaves the machine, and how to check every claim on this page yourself.
Listen has no server and no account. There is nothing of yours for us to hold, lose, or be compelled to hand over: the only thing it can ever send is anonymous statistics whose complete dictionary is public, and never your content.
Recording, transcription, speaker identification and search all run on your own hardware. None of this page has to be taken on trust, and the way to check it is from outside the app rather than inside it: put a firewall in front of Listen and watch what it tries to reach, or pull the network connection and see that nothing stops working.
~/Library/Application Support/Listen, one folder per
recording, no database.SpeechTranscriber on iOS 26,
which reads ten languages, and the same FluidAudio diarization the Mac
uses. Audio has no network path there either. A language it does not read
is left for the Mac rather than guessed at.The repository ships
InternetAccessPolicy.plist inside the application bundle, at
Listen.app/Contents/Resources/: a machine-readable list of every
outbound connection, which firewall tools such as Little Snitch read and
display. It is in the copy you downloaded, so it is checkable without taking
anybody's word for what the shipped build does.
An organisation can force the last three off with a device profile: see MANAGED.md.
Sync goes through your own private CloudKit database. There is no Listen server in the path, and Apple stores ciphertext it cannot read.
What CloudKit can see, exactly: record counts, change timestamps, asset
sizes, and three plaintext coordination fields (claimedBy,
claimExpires, audioOn) whose values are opaque
device identifiers. That is the complete list, and
listen sync inspect prints the container's actual shape so you
can confirm it against a live account.
~/Backups/Listen are created owner-only
(mode 700), keep 7 daily clones and 30 sidecar archives, then age out.completeUntilFirstUserAuthentication, chosen so a recording
survives a locked screen), and whether it rides device backups is a
setting in Storage.listen forget is the CLI
verb.Every MCP tool call, agent run, export, deletion and backup leaves one
line in activity.jsonl beside the library: the event and
recording ids, never transcript text, names or questions. It exists because
an agent that can read your whole library should not be able to do so
tracelessly. listen activity reads it back.
Honesty about the boundary is part of the design. Anyone who can run code as your user account can read the library, exactly as they could read your documents; the MCP server is a pipe available to processes on your Mac, which is the point of it, and connecting an agent to it is a decision you make. A person holding your unlocked phone can read what the phone holds. The protections above are about the network, other people's clouds, and devices at rest, not about an already-compromised session.
For HIPAA-regulated deployments, the technical safeguards of 45 CFR 164.312 map to Listen and the OS as follows. The deployment guide turns this into a checklist.
| Safeguard | Where it lands |
|---|---|
| Access control, unique user identification | One library per OS account; macOS login and FileVault. No Listen account exists to be shared. |
| Automatic logoff | OS screen lock, required by the deployment guide. |
| Audit controls | activity.jsonl and listen activity. |
| Integrity | AEAD authentication on every sealed payload; compare-and-swap on concurrent note edits. |
| Transmission security | End-to-end sealing for sync; https required for hosted Ask endpoints; a profile can force Ask local-only. |
Under GDPR, the operator of Listen is the controller of what they record; no personal data reaches the maker of the software. Erasure is real deletion propagated across devices, voiceprints included; portability is the file layout itself, open WAV and JSON on disk; and privacy by design is the architecture on this page: every network connection is declared, and every one of them is yours to turn off.
# every outbound host, for your firewall
open InternetAccessPolicy.plist
# what the container actually holds, without decrypting it
Listen.app/Contents/MacOS/Listen sync inspect
# the whole sync design, proved offline in about a second
Listen.app/Contents/MacOS/Listen sync --fake
# who touched the library
Listen.app/Contents/MacOS/Listen activity
This page is engineering documentation, not legal advice. If you are deploying Listen under a regulatory framework, have counsel review your configuration; the architecture makes that review short.