Permissions
On macOS, Echophrase asks for one or two system permissions. This page explains exactly what each one is for, why the system wording sounds broader than what Echophrase actually does, and how to grant, revoke, or change your mind about them at any time.This page covers macOS specifically. Windows and Linux do not use this
permission model.
The short version
- Microphone is required - Echophrase can’t transcribe your voice without it.
- Accessibility is optional - it’s only used to press Cmd+V so your transcript lands at your cursor automatically. If you’d rather not grant it, Echophrase falls back to copying transcripts to your clipboard instead, and you can change that choice later at any time.
Microphone permission
Echophrase needs to hear you to transcribe you. This uses the standard macOSAVCaptureDevice.requestAccess(for: .audio) API - the same permission every
voice or video app on your Mac requests. Audio is processed entirely on your
device and is never uploaded anywhere.
Without Microphone access, Echophrase cannot record at all.
Accessibility permission (optional)
Accessibility is what lets Echophrase paste your transcript automatically at your cursor, by simulating a Cmd+V keystroke after transcription finishes. If you decline it, nothing breaks - Echophrase switches to a clipboard-only mode: your transcript is copied to the clipboard instead, and you paste it yourself with Cmd+V whenever you’re ready. You can change this choice later at any time in Settings → Output, in either direction.Why Echophrase only needs a narrow slice of it
The macOS Accessibility permission bundles together a few different capabilities, and the system prompt (“Echophrase would like to control this computer”) describes the permission as a whole, not the specific thing an app actually does with it. Echophrase deliberately calls the narrowest API available for its use case:- It uses
CGPreflightPostEventAccess/CGRequestPostEventAccess- the API scoped specifically to sending synthetic input events. - It does not use
AXIsProcessTrusted, the broader API that also unlocks reading and driving other apps’ UI element trees.
The clipboard fallback
If you choose “Copy to clipboard, instead” when Echophrase asks for Accessibility access (or you simply never grant it), Echophrase does not nag you or repeatedly re-prompt. Every transcript is copied to your clipboard, ready to paste with Cmd+V wherever you need it. This is a preference, not a one-time decision - you can switch between auto-paste and clipboard-only mode any time in Settings → Output.Granting or revoking permissions
You can manage both permissions directly from macOS System Settings. Echophrase’s own prompts link straight to the right pane using these deep links:- Microphone:
x-apple.systempreferences:com.apple.preference.security?Privacy_Microphone - Accessibility:
x-apple.systempreferences:com.apple.preference.security?Privacy_Accessibility
1
Open System Settings
Go to System Settings → Privacy & Security.
2
Choose the permission
Select Microphone or Accessibility from the list.
3
Toggle Echophrase
Find Echophrase in the list and turn its switch on or off.
What Echophrase never does
To be explicit about the boundaries:- Echophrase never reads your screen contents.
- Echophrase never reads or logs your keystrokes.
- Echophrase never needs or requests Input Monitoring.
- Global hotkeys (for starting/stopping dictation) need no permission at
all - they’re registered with Carbon’s
RegisterEventHotKeythroughtauri-plugin-global-shortcut. - The dictation/F5 key remap is handled at the HID layer via
hidutil, which is also permission-free.
The three macOS permission services, plainly explained
macOS’s underlying permission system (TCC) actually tracks several distinct capabilities under names most people never see. Here’s what they mean and which one Echophrase actually uses:
Input Monitoring is the one apps like Discord request for push-to-talk with
modifier-only keys (like holding Right Option) - Echophrase’s hotkeys don’t
need that approach, so it never asks for that permission at all.
Common Issues
Back to general troubleshooting.