Skip to content
← DeepDive Governance & Geopolitics · 中文
DEEPDIVE / [SECURITY] · Accessibility Permissions · Governance & Security ← DeepDive v1 · 2026-07-24 · Permission Frontline
SECURITY · Anatomy of an "Allow" Button

The switch built for the blind became AI's master key.

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.

2
System permissions required
for Claude to operate a computer
Accessibility + Screen Recording
~50ms
Reading the UI element tree once
40–100× faster than screenshots
Source: Fazm
us-east-2
AWS Ohio region where
Typeless uploads voice
not "local"
48.9%
Organizations completely blind
to their own agents' network traffic
1H 2026 report
TL;DR · 30 seconds
Accessibility permission is the most powerful authorization on macOS, yet the one that least looks like it. AI applications haven't made it more dangerous—they just gave everyone a reason to pull a trigger that was already loaded.
Counter-consensus insight The danger has never been AI. This trigger has been sitting out in the open for fifteen years—every clipboard manager, text expander, and window management tool you've installed has already held it. AI didn't expand this permission; it simply amplified both "the motivation to ask for it" and "the value behind the gate."
§ 01 / Convergence

Three completely unrelated apps,
crowding toward the same button

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.

§ 02 / The Key

What doors can
this key actually open

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

§ 03 / Case Study

A voice tool can access
far more than just voice

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:

  • URL  Scrapes browsing URLs—including pages inside Gmail and Google Docs
  • WINDOW  Reads window titles and the currently focused app name
  • CLIPBOARD  Reads clipboard content—"extremely unusual" for a speech-to-text tool
  • AUDIO  Voice is sent to AWS us-east-2 (Ohio) for transcription; "on-device" only means dictation history is stored locally, not that transcription happens locally

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."

§ 04 / Reversal

The ramp built for the visually impaired
is exactly the agent's highway

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.

§ 05 / Solution

The same system permission,
Claude gave a different answer

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:

Per-app authorization
Enabling computer use doesn't mean surrendering the entire machine; Claude must receive separate approval in the current session for each new app it needs.
Tiered control
Browsers and trading platforms are read-only; terminals and IDEs are click-only (no typing); other apps get full control.
Capability warnings
Apps like Terminal / Finder / System Settings that are "equivalent to shell privileges" or "can read/write any file" trigger an extra warning before authorization.
Abort anytime
During operation, a banner reads "Claude is using your computer · Press Esc to stop"; Esc immediately reclaims control from anywhere, and that keystroke is swallowed to prevent prompt injection from closing the dialog.
Single-session lock
Only one session may control the machine at a time; terminal windows are excluded from screenshots to prevent Claude from "seeing its own output" and forming a loop.

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.

§ 06 / The Gap

Consent fatigue meets
a new threat model

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

§ 07 / Synthesis

A loaded trigger,
sitting out in the open for fifteen years

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.

Sources

  1. Let Claude use your computer from the CLIClaude Code Docs (permissions, tiered control, Esc emergency stop, single-session lock)
  2. Typeless Privacy Issues: What Researchers FoundVoibe, compiling @medmuspg's Nov 2025 reverse-engineering analysis
  3. Typeless — Installation & Setup GuideOfficial: why Accessibility permission is needed
  4. AXUIElement.hApple Developer Documentation (Accessibility element tree)
  5. Allow accessibility apps to access your MacApple Support (warning about reading input devices)
  6. Why Do Some Mac Apps Need to "Control This Computer Using Accessibility Features?"How-To Geek
  7. macOS AI Agent: How Desktop Agents Work on Mac in 2026Fazm (AX tree ~50ms, 40–100× faster)
  8. Your UI Is Invisible to AI Agents. Here's How to Fix It.DEV Community (screen readers as AI interfaces)
  9. Honest Review of Cluely AI in 2026tl;dv (GPU hook invisibility, two-party consent laws, corporate bans)
  10. Undetectability — Cluely GuideCluely official documentation
  11. AI Meeting Tools Hit Privacy Inflection as Granola Default Exposes NotesThe Meridiem
  12. The Era of Agentic Security is Here — 1H 2026 ReportSecurity Boulevard (48.9% / 48.3%)
  13. Claude controlled my Mac for half an hour. It was a wild, worrisome ridePCWorld (first-person experience)

Revision history

First published 2026-07-24