Report it privately through this repository's Security → Report a vulnerability page. Please do not include transcript text, audio recordings, or full diagnostic logs in a public issue — they may contain whatever you dictated.
Voicy has no account, no server, and no cloud transcription service. It holds three macOS permissions, and that is the whole attack surface worth thinking about:
- Microphone — records only while dictation is active.
- Accessibility — reads the focused element and inserts text into it.
- Input Monitoring — observes the configured global hotkey.
Transcripts, statistics and settings are stored unencrypted in the user's
preferences domain (~/Library/Preferences/com.helpsolution.voicy.plist), with
runtime state under ~/Library/Application Support/Voicy. Any process running
as the same user can read them; Voicy does not add protection beyond the file
permissions macOS applies. See PRIVACY.md for the full list of
paths.
The only network access in the app is the one-time speech-model download
performed by FluidAudio from Hugging Face. Voicy contains no other networking
code, no update check, and no telemetry. FluidAudio honours the
REGISTRY_URL / MODEL_REGISTRY_URL environment variables to redirect that
download; Voicy treats either of them being set as a tampered launch
environment, logs it, shows a blocking alert, and refuses to start.
The published .dmg is ad-hoc signed and not notarized by Apple. Two
consequences you should know before installing it:
- macOS will refuse the first launch. Opening it requires an explicit System Settings → Privacy & Security → Open Anyway, which is exactly the warning Gatekeeper is supposed to give for software Apple has not checked.
- An ad-hoc signature has no stable designated requirement, so macOS treats each new build as a different program: granted permissions have to be re-approved after an update.
Every release lists the SHA-256 of its .dmg. Verify it before opening:
shasum -a 256 ~/Downloads/Voicy-*.dmgIf you would rather not trust a prebuilt binary, build from source —
README.md documents scripts/install-local.sh, which signs with
your own Apple Development identity. Neither path disables Gatekeeper for you,
and no Voicy script ever calls xattr to strip the quarantine flag or
tccutil to reset permissions.