the phone-home register
OpenWhispr
What OpenWhispr sends out of your computer by default, when, to whom, and the switch that stops it, version by version, with how we know.
The answer
Read at v1.10.2, not run: at each launch OpenWhispr asks auth.openwhispr.com for a session, even as a guest; its macOS, Windows and Linux AppImage builds ask github.com for updates 3 s after launch and every 4 hours, with a stored install ID (deb, rpm and tar.gz builds do not); it fetches each shown person's avatar from www.gravatar.com by a hash of their email, and an embedding model from huggingface.co on the assistant's first use; none of the four has a switch; it posts a usage record, transcript included, to api.openwhispr.com after each streaming dictation, only while you are signed in.
Builds and versions
not installed: source read at tag v1.10.2On by default?yes · read in code; when chosen · read in codeMeasured here?no · read in codeDate checked (UTC)2026-10-10
- Version
- 1.10.2 · every desktop build
- Where the evidence came from
- not run: the source applies to every desktop build
- On by default?
- yes · read in code: on the assistant's first use; yes · read in code: for any person shown with an email address; yes · read in code: also for a guest who never signs in; when chosen · read in code: only while signed in
- Measured here?
- no · read in code
- Date checked (UTC)
- 2026-10-10
- Why we say so
- src/helpers/localEmbeddings.js read at tag v1.10.2. The source at the tag; we did not check that the released build matches it.; src/components/ui/PersonAvatar.tsx read at tag v1.10.2; src/lib/auth.ts and src/hooks/useAuth.ts read at tag v1.10.2 (better-auth 1.6.27's session hook makes the request); src/helpers/ipcHandlers.js and src/helpers/audioManager.js read at tag v1.10.2
not installed: source read at tag v1.10.2On by default?yes · read in codeMeasured here?no · read in codeDate checked (UTC)2026-10-10
- Version
- 1.10.2 · the macOS, Windows and Linux AppImage builds (the deb, rpm and tar.gz builds have no updater)
- Where the evidence came from
- not run: the source applies to macOS, Windows and the Linux AppImage
- On by default?
- yes · read in code
- Measured here?
- no · read in code
- Date checked (UTC)
- 2026-10-10
- Why we say so
- src/updater.js read at tag v1.10.2, and electron-updater 6.8.9 (the version its lockfile pins) for the header. The source at the tag; we did not check that the released build matches it.
Each call out
assistant embedding model · 1.10.2
- Version · build
- 1.10.2 · every desktop build · not run: the source applies to every desktop build · not installed: source read at tag v1.10.2
- Sends by default
- yes · read in code: on the assistant's first use
- Kind
- fetches
- Trigger
- as a side effect of a local request
- When
- The code at v1.10.2 downloads the model on the assistant's first use, when it is not already on disk; not run.
- Where
- model hub · huggingface.co
- What it sends
- a download of a small embedding model (all-MiniLM-L6-v2: its model file and tokenizer) (request)
- The vendor's stated purpose
- “Whisper GGML, Parakeet, GGUF, and embedding model downloads.” — docs/network-allowlist.md at v1.10.2, the Purpose cell of the huggingface.co row (quoted whole), read 2026-10-10
- Grade and method
- read · src/helpers/localEmbeddings.js read at tag v1.10.2. The source at the tag; we did not check that the released build matches it. · read 2026-10-10
- Receipts
- the two download addresses · its network allowlist
avatars · 1.10.2
- Version · build
- 1.10.2 · every desktop build · not run: the source applies to every desktop build · not installed: source read at tag v1.10.2
- Sends by default
- yes · read in code: for any person shown with an email address
- Kind
- fetches
- Trigger
- as a side effect of a local request
- When
- The code at v1.10.2 requests an avatar image each time it shows a person with an email address; not run.
- Where
- third-party service · www.gravatar.com
- What it sends
- an MD5 hash of the person's email address, in the image address (identifier)
- The vendor's stated purpose
- none found in docs/network-allowlist.md and the README at v1.10.2, read 2026-10-10
- Also know
- If the request fails, the app shows the person's initial instead. — github.com · PersonAvatar.tsx, read 2026-10-10
- Grade and method
- read · src/components/ui/PersonAvatar.tsx read at tag v1.10.2 · read 2026-10-10
- Receipts
- the avatar request built from the email's hash
session check · 1.10.2
- Version · build
- 1.10.2 · every desktop build · not run: the source applies to every desktop build · not installed: source read at tag v1.10.2
- Sends by default
- yes · read in code: also for a guest who never signs in
- Kind
- checks
- Trigger
- on its own
- When
- The code at v1.10.2 asks for the account session when the app's window loads its account state, at every launch; whether its session library asks again later was not read. Not run.
- Where
- vendor API · auth.openwhispr.com
- What it sends
- a session request with no token (request)
- The vendor's stated purpose
- “Account sign-in and session refresh (Better Auth).” — docs/network-allowlist.md at v1.10.2, the Purpose cell of the auth.openwhispr.com row (quoted whole), read 2026-10-10
- Grade and method
- read · src/lib/auth.ts and src/hooks/useAuth.ts read at tag v1.10.2 (better-auth 1.6.27's session hook makes the request) · read 2026-10-10
- Receipts
- the sign-in service's address · the session hook · its network allowlist
signed in streaming usage · 1.10.2
- Version · build
- 1.10.2 · every desktop build · not run: the source applies to every desktop build · not installed: source read at tag v1.10.2
- Sends by default
- when chosen · read in code: only while signed in
- Kind
- cloud you chose
- Trigger
- only when you ask for it
- When
- The code at v1.10.2 posts a usage record after each streaming dictation while you are signed in, including when you use your own provider key; not run.
- Where
- vendor API · api.openwhispr.com
- What it sends
- the transcript text (content); the audio's duration, the speech-to-text provider and model, timings, and the app version (usage); a session ID and a transcription ID (identifier); the audio's size, format and language (usage); the local date, the dictation's time and its word count, when its analytics sync is on (usage)
- The vendor's stated purpose
- “Cloud API: transcription, sync, agent reasoning, settings, usage.” — docs/network-allowlist.md at v1.10.2, the Purpose cell of the api.openwhispr.com row (quoted whole), read 2026-10-10
- Grade and method
- read · src/helpers/ipcHandlers.js and src/helpers/audioManager.js read at tag v1.10.2 · read 2026-10-10
- Receipts
- the usage record and its fields · sent after each streaming dictation, your own provider key included · its network allowlist
update check · 1.10.2
- Version · build
- 1.10.2 · the macOS, Windows and Linux AppImage builds (the deb, rpm and tar.gz builds have no updater) · not run: the source applies to macOS, Windows and the Linux AppImage · not installed: source read at tag v1.10.2
- Sends by default
- yes · read in code
- Kind
- checks
- Trigger
- on its own
- When
- The code at v1.10.2 checks 3 s after launch and every 4 hours after, whether or not automatic updates are on (the setting stops only downloads); not run.
- Where
- code host · github.com
- What it sends
- requests for the release feed (request); an install ID header (x-user-staging-id) that its updater library stores once and sends on each check (identifier)
- The vendor's stated purpose
- “Application auto-update (release artifacts via electron-updater, GitHub provider).” — docs/network-allowlist.md at v1.10.2, the Purpose cell of the github.com row (quoted whole), read 2026-10-10
- Also know
- On Linux, the deb, rpm and tar.gz builds carry no updater, so they make no update check. — github.com · updater.js, read 2026-10-10
- Grade and method
- read · src/updater.js read at tag v1.10.2, and electron-updater 6.8.9 (the version its lockfile pins) for the header. The source at the tag; we did not check that the released build matches it. · read 2026-10-10
- Receipts
- the check at 3 s and every 4 hours · the updater runs only where it can replace the app · electron-updater 6.8.9 sets the install ID header · electron-updater 6.8.9 stores the ID · its network allowlist
Listens beyond the machine, and other cloud features
Listens beyond the machine by default
- not covered: no vendor document of its default binds read (1.10.2 every desktop build)
- not covered: no vendor document of its default binds read (1.10.2 the macOS, Windows and Linux AppImage builds (the deb, rpm and tar.gz builds have no updater))
Other cloud features
Brings in, and installed for you by
None on the register.
Vendor documents it? · public discussion
Vendor documents it?
- assistant embedding model · 1.10.2: partly · Its network allowlist lists huggingface.co for embedding model downloads; it does not say the assistant's first use starts one. · github.com · network-allowlist.md · read 2026-10-10
- avatars · 1.10.2: none found · None found: its network allowlist and README at v1.10.2 do not list the avatar service. · github.com · network-allowlist.md · github.com · README.md · read 2026-10-10
- session check · 1.10.2: partly · Its network allowlist lists the sign-in service for account sign-in and session refresh; it does not say a guest's launch also asks. · github.com · network-allowlist.md · read 2026-10-10
- signed in streaming usage · 1.10.2: partly · Its network allowlist lists the cloud API for usage among other things; it does not say the usage record carries the transcript text. · github.com · network-allowlist.md · read 2026-10-10
- update check · 1.10.2: partly · Its network allowlist lists github.com for application auto-update; it does not mention the install ID header or the 4-hour timing. · github.com · network-allowlist.md · read 2026-10-10
Public discussion
History
No dated changes yet.
Not yet checked
Nothing named.