| Permission | Asked | Needed for |
|---|---|---|
| Microphone | At setup | Talking to HeyMate |
| Accessibility | At setup | The hotkey, pointing, typing dictation |
| Screen Recording | At setup | Questions about your screen |
| Speech Recognition | First time you talk | Turning your voice into text |
| Automation | First use, per app | Music, Mail, Notes, Messages, Shortcuts, Terminal |
| Calendars | If you turn it on | Next event in the notch |
| Reminders | If you turn it on | Voice reminders |
| Contacts | If you connect it | Sending drafts to the right person |
| Camera | If you open the mirror | The camera mirror |
| Bluetooth | If you turn it on | Headphone connect alerts |
| Notifications | First agent job | Telling you a job finished |
Microphone
So you can talk to HeyMate. The microphone is only on while you hold the hotkey or dictate. There is no wake word and nothing listens in the background. Audio is not saved; only the text of what you said goes into chat history.
Accessibility
This is the broadest permission, so here is everything it is used for:
- The hotkey. HeyMate watches key presses to notice when you hold ⌃ ⌥, press Esc to clear a drawing, or tap a modifier twice. It only checks for those keys. It does not record, store, or send what you type.
- Pointing. When it shows you where something is, it asks macOS for the real button's name and position instead of guessing from pixels.
- Dictation. It puts your dictated text into the field you are typing in. It never types into password fields; if it cannot tell what a field is, it stops.
- Doing things for you. It can click or type in another app, but only after you approve that exact action. When it must move the pointer, you watch its cursor fly there first.
- Media keys, only if you turn on the volume or brightness display in the notch.
- Screen-text Standing Orders, only if you create one. Every 30 seconds it reads the visible text of the app in front (not a screenshot) and checks it against your rule on your Mac. Excluded apps are skipped.
Screen Recording
So HeyMate can see what you are asking about. It captures relevant screen context during interactions that need it. A walkthrough can capture again between steps. Text-only chat does not need a screenshot.
- The screenshot is sent with your question to the AI you chose (Claude Code, Codex, OpenCode, or your own endpoint). That is the only place it goes.
- HeyMate chat history stores text, not screenshot bytes. Some integrations write temporary screenshots and clean them up when requests or processes end; interrupted cleanup can leave files behind. Provider retention and CLI history are separate. See the privacy details.
- Password managers and System Settings are never captured, and you can add more apps to that list.
- You can limit capture to just the window in front.
Speech Recognition
Turns your voice into text using Apple Speech, HeyMate's default way of listening. It runs on your Mac when your Mac supports it. If you download the on-device voice or pick ElevenLabs, HeyMate doesn't use Apple Speech, so it only asks for this as a fallback. Your voice only goes to a cloud service if you pick ElevenLabs with your own key.
Automation
Lets HeyMate control another app: play or skip a song in Music or Spotify, draft a mail, add a note, run a Shortcut, or open a coding job in Terminal. macOS asks separately for each app, the first time HeyMate actually needs it. Anything that sends, deletes, or pays asks you first.
Calendars
Shows your next event in the notch and creates events when you ask. Asked only when you turn on the calendar peek or connect Calendar.
Reminders
Saves reminders you say out loud and reads back what is due. Asked only when you turn on reminders or connect Reminders.
Contacts
Looks up a name so a draft goes to the right person. Asked only when you connect Contacts.
Camera
For the camera mirror in the notch, so you can check how you look before a call. The camera is on only while the mirror is open. Nothing is recorded.
Bluetooth
Shows "AirPods connected" style alerts in the notch. It only sees connect and disconnect events. Asked only when you turn that on.
Notifications
Tells you when a coding agent finishes or needs your approval while you are in another app.
Worth knowing
- Open at login is on by default, so the notch is there after a restart. Switch it off in HeyMate Settings; macOS also lists it under General → Login Items.
- Keys. API keys and connector tokens are stored in a private file only your Mac account can read. HeyMate no longer uses the Keychain, so updates never ask for your password.
- Coding agents run as you. Claude Code, Codex, and OpenCode run as your macOS user. Plan mode stops them writing files, but not reading them, and every plan waits for your approval.
- Not sandboxed. HeyMate runs outside the Mac App Store sandbox because it has to start those CLIs and control other apps. That is also why the permissions above matter.
- Not asked for: Full Disk Access, Location, or Photos.
Turning a permission off
Open System Settings → Privacy & Security, choose the permission, and switch HeyMate off. For Automation, open Automation and untick the app. HeyMate will ask again only if you use that feature again.
Something here unclear, or something HeyMate did that this page does not cover? Email umarsiddiqui3037+heymate@gmail.com or open an issue.