ctoldigital / axuse
git clone https://github.com/ctoldigital/axuse.git
Accessibility-first browser & computer use for AI agents — one MCP server for every harness (Codex, Claude Code, OpenCode, Antigravity). Instruments the DOM/accessibility tree via CDP instead of screenshot loops: diffed snapshots, stable element refs, trusted input, typed errors. Zero dependencies
—
stars, 24h
+104
stars, 7 days · #490
+104
stars, 30 days · #2,221
104
★ total · +104% this week
5
forks · 0 open issues
Star history starts 2026-10-20; the chart appears after the second daily snapshot.
LanguageJavaScript
License—
Created2026-10-14 (6d ago)
Last pushtoday
Watchers10
OwnerUser
GitHub topics
agentic-automationai-agentsbrowser-automationbrowser-usecdpchrome-devtools-protocolcomputer-usecuamcpmodel-context-protocolrpaweb-automation
Links
- GitHub: github.com/ctoldigital/axuse
- Homepage: https://ax-use.com
- Releases · Issues · Hacker News mentions
README excerpt
# axuse — browser & computer use, done right **Accessibility-first browser and computer use for agent harnesses.** One MCP server plugs into Codex, Claude Code, OpenCode, Antigravity, or any MCP-capable host. Zero dependencies (Node ≥ 22). Windows desktop driver is verified; macOS desktop control is available as an explicit opt-in with native TCC permission checks. The design is distilled from the two best implementations of this problem — OpenAI's Codex Chrome extension and the ZCode harness — and exists to prove a point: **a screenshot loop is not the right interface for a machine**. The DOM tree, the accessibility tree, and CDP are. axuse instruments the target instead of photographing it. If you are a journalist or other non-developer using Codex or ChatGPT Work, start with the non-developer onboarding guide. It explains the one-time connector setup, the first verification prompt, and copy-and-paste research prompts. The source repository's setup below is for developers and administrators. ## Proven in production axuse is maintained by **CTOL Digital Solutions** (ctol.digital), a leading AI, Strategy and IT consultancy. This work has been tested and used at large scale across many client engagements. CTOL Digital Solutions holds the copyright of all the code. ## Quick start You need **Node.js 22+** and a Chromium-family browser (Chrome, Edge, Chromium, or Chrome for Testing; found automatically, or set `AXUSE_BROWSER=/path/to/chrome`). Nothing else: axuse has no npm dependencies. **1. Get it and check the environment** [code] For a daily Chrome/Edge session, use the guided bridge setup. It registers the native host, opens the extensions page, prints the exact folder to load, and can print your harness configuration in the same command: [code] After clicking **Load unpacked** once, verify the connection with: [code] **2. Add it to your harness** (use your absolute path to `src/cli.js`) [code] **3. Ask for something in the browser** > Open https://example.com, find the "More information" link and tell me > where it goes. The agent calls `ax_open`, reads the accessibility snapshot, and acts on element refs like `[ref=e7]`. Each action returns only what changed. **Optional settings** (environment variables for the MCP server) | variable | effect | |---|---| | `AXUSE_HEADLESS=1` | launch the browser without a window (servers, CI) | | `AXUSE_BROWSER` | path to the browser binary | | `AXUSE_PROFILE_DIR` | where temporary browser profiles go (default: OS temp; they are deleted on exit) | | `AXUSE_BRIDGE_DIR` | override the local bridge state directory (default: `~/Library/Application Support/axuse` on macOS) | | `AXUSE_ENABLE_MACOS_CUA=1` | enable macOS desktop tools (Accessibility + Screen Recording grants are still required) | | `AXUSE_BRIDGE_DEBUG=1` | trace the extension bridge | To drive your own logged-in Chrome instead of a fresh browser, see Driving your daily browser. ## Benchmark On 16 server-scored browser tasks, run in the same ha