Privacy policy

Last updated 2026-08-28. Applies to Overhear, version 1.0 (com.overhear.captions), for Meta Horizon OS.

Overhear turns what is said around you — or what your headset itself is playing — into captions you can read. Everything it does, it does on the headset.

What it processes

Nothing else is read. The app does not use the cameras, does not read your files, does not read your account, your friends or your play history.

Where the audio goes: nowhere

Nothing the app hears, and nothing it writes down, ever leaves the headset. Speech is turned into text by models running on the device; the text, the translations, the speaker names and the sessions are written to storage only this app can read. There is no account, no sync, no cloud transcription, no backup and nothing to opt out of.

The app does use the network, for exactly two things and nothing else:

Both go through Meta's Platform SDK to Meta's own servers, which already know you own the app. No audio, no transcript, no caption line, no speaker name and no setting is sent, to Meta or to anyone else. There is no server of ours for anything to be sent to.

The complete list of permissions the app requests:

permissionwhy
RECORD_AUDIOthe captions
FOREGROUND_SERVICE, FOREGROUND_SERVICE_MICROPHONEkeep listening while the panel is not in front
FOREGROUND_SERVICE_MEDIA_PROJECTIONthe optional "Headset" audio source
INTERNET, ACCESS_NETWORK_STATEthe two things above: fetching a language pack you asked for, and the store's entitlement check

There is no location, no camera, no contacts, no storage-read and no account permission. (READ_MEDIA_AUDIO exists in development builds for a test hook that reads .wav files pushed by hand; it is not in the released app.)

No analytics, no third-party services

There is no analytics SDK, no crash reporter, no advertising identifier and no telemetry of any kind. Three third-party libraries are in the app: sherpa-onnx and ONNX Runtime, which run the speech models locally and open no connection at all; and Meta's Platform SDK, used only for the two things named above. The app never asks it for your user ID, your profile, your friends, your presence or your play history, and it stores nothing about you.

The models are other people's work, and they run unchanged on your headset. The translation directions between English, French, German and Spanish are OPUS-MT by the Language Technology Research Group at the University of Helsinki (Apache-2.0). The two Japanese directions are FuguMT by Satoshi Takahashi (CC BY-SA 4.0); the quantised copies the app downloads are a derivative work and carry the same licence.

What is stored on the headset, and how to delete it

whatwherehow to delete it
Sessions — one per Start: the caption lines, their times, translations and speaker namesapp-private storage (files/sessions/)Sessions → open one → Delete. Clear in the panel empties the current one.
Voice profiles — a name you gave a speaker plus a 192-number voiceprint, so that person is labelled again next timeapp-private storage (files/voices.json)SettingsRemembered voices → tap the × on a name
Kept audio — see belowapp-private storage (files/sessions/<id>/audio/)deleted automatically; also removed with the session
Settings — theme, typeface, text size, translate target, alert wordsapp-private preferencescleared with the app's data
Transcripts you export yourself with Save, Export .srt or ShareDownload/Captions/ on the headsetordinary files: delete them like any other

App-private storage is readable only by this app; uninstalling removes all of it. Nothing here is backed up off the device — the app sets android:allowBackup="false".

Kept audio

Audio is normally never written to disk. There is one exception, and it is off unless you turn it on: Settings → Improve transcript after Stop. With that on, each committed piece of speech in the sitting is kept as a .wav in app-private storage so that, after you press Stop, a larger model can read the sitting again and produce a better transcript. The audio is deleted as soon as that pass finishes. If a pass never runs, the kept audio is bounded to 300 MB across all sittings and the oldest is deleted first. It never leaves the headset, and turning the setting off stops any audio being kept at all.

Children

Overhear is not directed at children and collects no data from anyone.

Changes

Version 1.0 gained network access, for the on-demand model downloads described above. That is the only reason it has any, and if it ever gains another this policy will say so before that version ships — the app's permission list in the store always shows what it actually asks for.

Contact

Questions about this policy: file an issue at https://github.com/patoles/quest-caption.