From the voice input tool Typeless, to meeting overlays Cluely and Granola, to Claude which can directly operate your computer—the new generation of AI applications differ wildly in functionality, yet they all ask you for the same permission: macOS "Accessibility" access. It was created twenty years ago for screen readers, for visually impaired users; today, it is the master switch for agents to read your entire digital life and act with your hands.
If you've installed a few trendy AI tools recently, you'll notice a strange coincidence: they do wildly different things, yet the first system authorization prompt they pop up is identical.
Voice input.Typeless lets you hold the Fn key and speak, and the text drops into whatever input field is currently active. To insert dictation results into Google Docs, Notion, Gmail, or Slack, it needs "Accessibility" permission—because only it can write text into other apps' fields.
Screen assistant.Cluely is a desktop overlay: it uses OCR to read your screen, captures system audio via speech-to-text, feeds it to a large model, and floats answers on top. It asks for Screen Recording + Accessibility.
Desktop agent.Claude's computer use is more direct—it wants to click your mouse, type on your keyboard, and scroll pages for you. Anthropic's documentation states plainly: on first use, the system will ask you to grant two permissions: Accessibility (click, type, scroll) and Screen Recording (see the screen).
Dictation, peeking, acting on your behalf—three tasks with completely different product forms, business models, and target users. But the operating system gives them only one door to enter. This isn't a coincidence; it's structural: on macOS, "Accessibility access" is the only universal interface between all "apps that don't have APIs." If an AI application wants to understand your screen or act across applications, there is almost no other path than this door.
When three completely different products are all asking you for the same key, the question is no longer "is this company trustworthy," but "how big is the lock this key fits." We'll dismantle it in the next section.
Most people press "Allow" thinking they're authorizing "let this app type for me." The actual scope of authorization is far larger.
The core of macOS's accessibility framework is something called AXUIElement. It exposes the interface of every running program as a structured tree: each button, text box, menu, label, slider, and table carries its own role, label, current value, coordinates, and dimensions (Apple Developer Documentation).
The key point: this tree is cross-application. Once an app gets Accessibility permission, it can query not just its own interface, but any UI element in any running program on the system—including web page content rendered in browsers. In other words, what you think is a "voice input tool" can technically read the body of your Gmail draft, the numbers on your banking page, and the words in your chat windows.
Furthermore, Accessibility permission also allows apps to intercept and generate input events—reading your keyboard input, simulating clicks and keystrokes. Apple's own support documentation warns, in measured but heavy terms: apps with Accessibility permission "can not only control your computer but also read everything on your input devices" (Apple Support). Technically, this has no difference from the capability boundary of a keylogger.
And all of this is a binary switch. At the system level, there is no granularity like "only allow reading this one app" or "only allow writing, not reading." You either hand over the interface of the entire machine, or the app can't function at all. How-To Geek noted this awkwardness years ago: Accessibility permission is one of the few "all-or-nothing" authorizations on Mac.
You think you're authorizing "type for me." What you're actually authorizing is "read and manipulate everything on my screen."
— The true semantics of Accessibility permission
The theoretical "can read everything" became concrete, verifiable behavior in the Typeless case.
In November 2025, a researcher (@medmuspg) reverse-engineered Typeless and laid its true permission boundaries on the table. The conclusions, compiled by Voibe's analysis, show that a voice input tool marketed as "privacy-first / on-device processing" actually does the following:
The researcher's judgment: the permission surface Typeless requests (screen recording, camera, Bluetooth, full Accessibility) is far broader than what a voice input tool strictly needs, constituting "a privacy profile inconsistent with 'privacy-first' marketing."
To be clear: we have no evidence that Typeless is maliciously abusing this data. The point is not motive, but capability—once that button is pressed, these capabilities objectively exist. Whether they are used, where they are transmitted, and how long they are retained is a black box for the user. The nature of Accessibility permission swaps "trusting a company" for "trusting a binary file's every current and future update."
This is not just Typeless's problem; it's a problem with the entire permission model: one authorization prompt cannot express "I trust you to do dictation, but I don't trust you to read my banking page." Users can only give "all" or "nothing," and apps always get "all."
Here lies the deepest irony of the whole affair.
The Accessibility API wasn't designed for AI. It was born over twenty years ago with a single purpose: to let screen readers (VoiceOver on macOS) "read" the interface aloud to people who can't see the screen. To accomplish this, the system had to decompose the interface into a machine-understandable semantic structure—what each element is, what it's called, what its current value is. A widely circulated engineering article makes this point clear: you spent years making your UI friendly to screen readers, and as a result you were also paving the way for AI agents—you just didn't know it at the time.
Why do agents prefer it so much? Because it's fast. Fazm's benchmarks provide the numbers: reading the Accessibility element tree takes roughly 50 milliseconds, 40 to 100× faster than "screenshot + visual model recognition" approaches, and what you get is clean semantics ("this is a button named 'Send' at coordinates X,Y"), not a pile of pixels requiring further inference.
Thus an infrastructure built for people with disabilities—one that should symbolize inclusivity and goodwill—was discovered twenty years later to be the most efficient entry point for automation. The tactile paving became the racetrack. This isn't anyone's malice; it's technological path dependency: when you need a "universal interface that can understand any UI," there's already one lying around in the operating system, and its original design goal happens to overlap heavily with yours.
You thought you were doing accessibility for screen readers all these years. You were actually building interfaces for AI agents all along—you just didn't know it yet.
— Adapted from the dev.to engineering community
The irony has a second layer: precisely because this interface was born for "assistance," its permission model carries assumptions from that era—that the object receiving permission is a local, service-oriented, trusted assistive program. It never anticipated that the applicant would be connected to a cloud-based large model, would auto-update, and would send what it reads to Ohio. Today's threat model is twenty years removed from the world in which this lock was designed.
It's worth noting: Claude's computer use holds the exact same two system permissions as Typeless and Cluely—Accessibility + Screen Recording. But on top of that, it re-invented granularity that the operating system didn't provide.
The OS level is "all or nothing"; Anthropic chopped it up in user space. According to official documentation, its constraints include:
The subtext of this design is clear: OS permission primitives are no longer sufficient. When the object of authorization is no longer "a trusted local utility" but "an autonomously acting agent," "all or nothing" is a dangerous binary choice. The responsible approach is to补回 the layer of granularity the OS lacks at the application layer—per app, per action type, per session, with a circuit breaker available at any time.
But this also exposes today's fragility: this granularity is voluntary. Claude setting browsers to read-only is Anthropic's product decision, not a system enforcement. A less disciplined app, holding the same two permissions, can do everything and tell you nothing. Cluely is the counterexample: it uses GPU-level hooks (DirectX on Windows, Metal on macOS) to render its overlay as invisible to Zoom, Meet, and Teams screen sharing—the same permissions, but used for deliberate concealment. It has been banned by Amazon, Anthropic, and dozens of Fortune 500 companies (tl;dv review).
With the same key, Claude built a cockpit with brakes, partitions, and an emergency stop; Cluely built invisible contact lenses. The system can't tell the two apart—the difference falls entirely on the app maker's self-restraint, and whether you choose to trust it.
The other half of the problem lies with users. Behind the authorization prompt is a mechanism called TCC (Transparency, Consent, and Control), which assumes that the person pressing "Allow" can judge whether this authorization is worthwhile.
This assumption is breaking down in the AI era. The permission pop-ups an ordinary person faces in a day are already too many—location, notifications, microphone, photo library, clipboard… By the time "allow this app to control your computer" appears, most people have already entered an consent fatigue state of automatic clicking. Yet this single authorization is more dangerous than all the previous ones combined. It's not "read a certain category of your data"; it's "read and manipulate everything happening on your screen."
Meanwhile, new legal boundaries are being pushed to the forefront. Cluely's ability to "capture meeting content undetected" may directly constitute a violation in the 13 US states that adopt two-party consent recording laws (California, Florida, Illinois, Pennsylvania, Washington, etc.) (tl;dv). Meeting notes tool Granola tripped legal mines in another direction: it was accused of defaulting every note to a shareable link and defaulting user notes to AI training, unless you dug deep into settings to manually turn it off (The Meridiem).
At the organizational level, the blind spots are even larger. An industry report from the first half of 2026 shows that 48.9% of organizations are completely blind to what their non-human (agent) traffic is doing, and 48.3% cannot distinguish legitimate AI agents from malicious bots (Security Boulevard). When an employee casually grants Accessibility permission to an AI tool on their Mac, IT departments often have no idea which corporate screen contents have already flowed beyond the perimeter.
Permission prompts were designed for "a human judging a local tool." They were never prepared to let you decide in three seconds whether an agent plus a cloud backend should get God mode.
— The generational gap between TCC and agents
The easiest conclusion to draw is "AI applications have become too greedy, too dangerous." This conclusion isn't entirely wrong, but it points in the wrong direction.
The truth is: Accessibility permission has always been this powerful. Before AI, your machine's clipboard manager, text expander (TextExpander), window manager (Rectangle), quick launcher (Raycast, Alfred)—they all already held the same key, with capability boundaries identical to today's AI tools. This loaded trigger has been sitting conspicuously in macOS's settings panel for fifteen years; it's just that no one ever had a strong motivation to pull it on a massive scale.
AI didn't change the permission itself; it changed two things: the motivation to ask for it, and the value behind the gate. When a voice tool, a meeting overlay, and an autonomously acting agent all urgently need to "understand your entire screen," requesting this permission became a standard feature for mainstream products for the first time; and when what's connected behind is a large model that can understand, remember, and transmit content to the cloud, the consequences of "what was read" also became incalculable for the first time.
So what really needs upgrading are three things. Operating systems need to design new permission primitives for the agent era—per app, per action, observable, revocable, rather than a binary switch from twenty years ago. App makers, before the OS catches up, have an obligation to self-build granularity and brakes in user space like Claude did, rather than silently requesting a permission surface far beyond what's needed like Typeless. Users need to relearn that the "allow this app to control your computer" prompt is the most significant security decision an ordinary person makes in their daily life—worth pausing for three seconds to think about who this key connects to and where it leads after pressing "Allow."
Next time you see that "please allow me to use Accessibility" prompt, remember its true meaning isn't "help me type," but "hand over everything on my screen to me and the servers behind me." AI didn't give you a new key—it just finally made everyone want to turn that old key that was always sitting in the keyhole.
First published 2026-07-24