Permissions
Every permission, explained.
HeyMate lives in your notch, hears you, sees your screen when you ask, and can act in other apps. That takes real access to your Mac, so here is every permission it can ask for, what each one is for, and what it never does with it.
Three are asked for at setup. The rest are asked only the first time you use the feature that needs them. You can turn any of them off in System Settings → Privacy & Security, and HeyMate keeps working without the ones you decline. The code is open source if you want to check.
| 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 takes one screenshot when you press the hotkey and your question needs the screen. Text-only chat skips it.
- 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.
- It is deleted after the answer and never written to chat history.
- 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. It runs on your Mac when your Mac supports it. Your voice only goes to a cloud service if you turn on a cloud voice in Settings.
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.
- Keychain. API keys and connector tokens are stored in your macOS Keychain.
- 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.