What macOS Input Monitoring permission is for
You installed something that automates a keystroke or reads a game controller, and macOS stopped you with a dialog: the app “would like to receive keystrokes from any application.” That is the Input Monitoring permission asking for consent. It sounds alarming, and the wording does it no favours. Here is what it really controls, which apps have a legitimate reason to ask, and how to grant or take it back without guessing.
What Input Monitoring actually grants
Input Monitoring is one of the privacy categories macOS keeps under System Settings, Privacy and Security. When you give an app this permission, you allow it to see low-level keyboard and mouse input across the whole system, not just inside its own window. That includes key presses you make in other apps, mouse movement, and clicks.
The reason macOS gates this is obvious once you say it plainly: an app that can read every keystroke can read what you type into a password field or a private message. Most software never needs that reach. A text editor sees your typing because the keys are aimed at its window; it does not need Input Monitoring for that. The permission is specifically about watching input meant for something else.
Technically this maps to a mechanism called an event tap, which lets an app sit in the stream of input events and observe or modify them. Apple put the whole capability behind an explicit switch after years of keyloggers and questionable “productivity” tools abusing it. So the prompt is not the system being paranoid. It is the one point where you decide whether a program earns that level of trust.
Which apps genuinely need it
A handful of categories have a real reason to ask. Knowing them helps you tell a reasonable request from one that should make you pause.
Keyboard remappers and macro tools need it because their entire job is to watch for a key and swap it for another action across every app. Text expanders that trigger on what you type in any window fall in the same group. Some game input tools and controller mappers read raw input this way. Screen recorders that draw your keypresses on screen for a tutorial use it too, as do a few accessibility tools that respond to global hotkeys or gestures.
Outside those cases, be skeptical. A note-taking app, a photo viewer, or a file mover has no honest reason to watch input aimed at other programs. If one asks and you cannot explain to yourself why it would need to, that is a good moment to deny and look for an alternative.
How to grant, check, or revoke it
You reach the list in one place. Open System Settings, choose Privacy and Security in the sidebar, and select Input Monitoring. You will see every app that has requested the permission, each with a switch. On means the app can monitor input; off means it cannot.
To grant it, flip the switch on. macOS may ask for your password and often asks you to quit and reopen the app so the change takes effect. To revoke it, flip the same switch off. Nothing about this is permanent, and turning it off is safe: the worst that happens is the feature that relied on it stops working, and the app usually tells you what broke.
A good habit is to read this list every few months. Apps you removed sometimes linger as stale entries, and seeing the full set of programs you have trusted with global input is a quick, honest security check. If you see a name you do not recognise, look it up before leaving it on.
When an app can skip the permission entirely
Here is the part many people miss: an app can offer a global keyboard shortcut without ever touching Input Monitoring. macOS provides an older, narrower mechanism for registering a single hotkey combination, one the system watches on the app’s behalf and only wakes the app when that exact combination is pressed. The app never sees your other keystrokes, so the risky category does not apply.
This is the route Ledge takes. Ledge is a shelf that drops down from the notch so you can set a file down while you move it between apps, and it opens with a global shortcut, Option and Space by default. That shortcut is registered through the narrow hotkey mechanism, not an event tap, so Ledge does not ask for Input Monitoring at all. It cannot read what you type, because it was never wired to.
Ledge does use one other permission, but only when you actually reach for the feature that needs it. If you drop a file onto a terminal, it can type the file’s path in for you, and typing into another app is what macOS Accessibility permission governs. That request appears the first time you use it, never at launch, and if you never auto-paste a path you are never asked. Everything else, the dragging, the shelf, the routing of a file to the right app, runs without any privacy prompt.
The lesson generalises past any one app. A permission prompt is a question, not an instruction. When something asks to monitor your input, the right response is to ask what feature depends on it, whether that feature is one you want, and whether a narrower design could have avoided the request. Often the answer is yes, and the most trustworthy tools are the ones that arranged never to have to ask.