Skip to main content

a11y-computer-use

CI PyPI Python 3.11+ Apache-2.0

Computer use for AI agents that clicks real UI elements instead of guessed pixels. The model reads a pruned accessibility tree and says click e14. Works on macOS, Windows, Linux, and Chromium, through one MCP server.

Driving TextEdit through accessibility refs

Install

uvx a11y-computer-use doctor            # try it, no install
pip install a11y-computer-use           # extras: [browser] [windows] [linux]

Add it to Claude Code, Claude Desktop, Cursor, or any MCP host:

claude mcp add a11y-computer-use -- uvx a11y-computer-use mcp
{ "mcpServers": { "a11y-computer-use": { "command": "uvx", "args": ["a11y-computer-use", "mcp"] } } }

For a browser tab instead of the desktop, start Chrome with --remote-debugging-port=9222 and set A11Y_COMPUTER_USE_DRIVER=browser.

What the model sees

[snap-7] com.apple.TextEdit (window)
  e1 window "Untitled"
    e2 textarea ="Hello" (edit,focus)
    e3 button "Save" (click)

Then it acts: click(ref="e3"), type("hello"), set_value(ref="e2", value="..."). Ref clicks go through the accessibility API and leave your pointer alone. A stale ref comes back as stale_ref with the nearest live candidates. Re-observing as a diff costs about 10 tokens.

18 tools: desktop_snapshot, find, screenshot, zoom, click, type, key, scroll, drag, wait_for, act, set_value, scroll_to_find, app, window, clipboard, plus console and network on the browser. Details: docs/agent-loop.md and the tool docstrings.

Why not the alternatives

Comparison with other computer-use approaches

Approach Native desktop Any model Embeddable
Claude Desktop built-in pixel loop
browser-use, Playwright MCP a11y tree ❌ browser only
UI-TARS-desktop pixel / vision partial app
Windows-MCP, Terminator a11y (UIA) Windows only
a11y-computer-use a11y tree + vision fallback ✅ macOS, Linux, Windows*, Chromium ✅ local too ✅ MCP, CLI, Python

Same planner, 13 browser tasks, one round: refs finished 13/13 with 0 misclicks for $7.04; screenshot coordinates finished 7/13 with 27 misclicks for $11.74 (full results). Run it yourself with a11y-computer-use bench h2h.

Platforms

Four drivers under one core

Observe Ref actions Type, keys Coordinates, screenshot Verified
macOS (AX) live on a granted Mac
Linux (AT-SPI2) ✅ X11, ❌ Wayland CI + real desktop VM
Browser (CDP) CI, headless Chrome
Windows (UIA)* ◐ press only CI, Notepad

*Windows is partial: ref re-resolution, capture, and coordinate input are not implemented yet. Exact gates per platform: docs/ci.md, docs/windows-port.md, docs/linux-port.md.

Safety

Permission tier, confirmation gate, same-window recheck, execute, audit log

  • Per-app grants (read, click, full) in ~/.a11y-computer-use/permissions.json. No tool can grant itself access.
  • Clicks on destructive labels ask the host to confirm. No confirmation channel means the click is blocked.
  • Password fields are never read, typed into, or clicked. Every action is checked against the frontmost window right before it fires.
  • Everything is logged to ~/.a11y-computer-use/audit/ as JSONL, with secrets redacted.

Report security issues privately: SECURITY.md.

Embed it

from a11y_computer_use import safety, server

store = safety.PermissionStore()
store.set_tier("com.apple.TextEdit", safety.Tier.FULL)
rt = server.Runtime(store=store)
print(rt.desktop_snapshot("com.apple.TextEdit", mode="interactive"))
rt.click(ref="e3", verify=True)

Existing Anthropic or OpenAI computer-use loops can run through it unchanged via a11y_computer_use.adapters (docs/provider-adapters.md). A reference agent loop ships as a11y-computer-use agent --task "..." and works with Anthropic, OpenAI-compatible endpoints (Ollama included), or the Claude Code CLI.

Docs

Agent loop · Adapters · Observation cost · Benchmark · Browser backend · Linux · Windows · Real-desktop test bed · CI · Decision records · Changelog · Contributing

Apache-2.0. Copyright 2026 Perception Dynamics, Inc.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

a11y_computer_use-0.1.1.tar.gz (499.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

a11y_computer_use-0.1.1-py3-none-any.whl (248.3 kB view details)

Uploaded Python 3

File details

Details for the file a11y_computer_use-0.1.1.tar.gz.

File metadata

  • Download URL: a11y_computer_use-0.1.1.tar.gz
  • Upload date:
  • Size: 499.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for a11y_computer_use-0.1.1.tar.gz
Algorithm Hash digest
SHA256 add63439c834c3df8725e0d007ab4412f515fb5cb5c12b8a6976d34053a9251c
MD5 8cdb0f76498eecec5a28b8179cba88b0
BLAKE2b-256 7ec86cad6e22cd91cf36576d21399d5b2960ec54b84539f966d4641b26d469ea

See more details on using hashes here.

Provenance

The following attestation bundles were made for a11y_computer_use-0.1.1.tar.gz:

Publisher: release.yml on Perception-Dynamics-Inc/a11y-computer-use

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file a11y_computer_use-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for a11y_computer_use-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e3ede3f38f70fe370add6f1d4c05d87286a4a8ba744e08716b33d4fbe41f140f
MD5 ba9ee8f4c6b9ac91289600dfab656470
BLAKE2b-256 33c0ef71b6429b4d1ac7ec2ec298a5b7585b7820d04cf9afb68bb141adf64f15

See more details on using hashes here.

Provenance

The following attestation bundles were made for a11y_computer_use-0.1.1-py3-none-any.whl:

Publisher: release.yml on Perception-Dynamics-Inc/a11y-computer-use

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page