ctoldigital/axuse

AI Engineering

An MCP server that lets coding agents drive browsers and desktops through accessibility trees instead of screenshots.

494
25
JavaScript
NOASSERTION
10 days old

A capable, well-documented agent browser-automation server, but its source-available noncommercial license and commercial CAPTCHA-solver add-ons mean commercial users should settle licensing before wiring it into a workflow.

The problem

An agent asked to book a meeting, fill a procurement form or check a dashboard first needs a way to see and operate a real browser. The common approach loops screenshots through a vision model, then guesses pixel coordinates for each click. That burns tokens, stalls on slow pages, and breaks when layout or resolution shifts. axuse changes the step in the middle: the agent reads a text snapshot of the DOM and accessibility tree, and acts on named element references rather than coordinates. The result is fewer, cheaper steps for the same task.

What's different

The mechanism is deliberate instrumentation rather than photography. axuse attaches over the Chrome DevTools Protocol, emits a YAML-like accessibility snapshot, and by default returns only a diff of what changed between observations. Element refs are bound to element identity, so rows that stay unchanged keep their references even as new content is inserted. Input is dispatched as trusted CDP events, which is closer to what a real user's browser receives than synthetic DOM events. A single ax_fill call can set a whole form, and ax_scroll {until:"text"} handles infinite feeds, reducing the number of round trips per task.

The project publishes a benchmark against Codex's own Chrome extension and browser-use 0.13, all in the same Codex CLI harness and model. All three passed their server-scored tasks (28/28, 27/27, 27/27), while axuse reported a 17s median task time versus 26s and 56s, and 4.7M tokens versus 9.8M and 8.8M. Treat these as author-run figures: the task set is small, and accuracy was tied, so the gain shows up in cost and latency, not correctness. The harder extension set is described but its results are not in the excerpt.

Who should try it

Try it if you already drive a coding agent and want it to operate web apps as part of a workflow: reading a portal, filling repetitive forms, or checking a site without a public API. It also suits people running agents on headless Ubuntu servers, where the README describes booting a private Xvfb and running headed Chrome so anti-bot checks do not see a headless fingerprint. Non-developers have an easier path: a .mcpb bundle for the Claude desktop app, or an install prompt an agent can follow itself, documented in a separate onboarding guide.

Skip it if you need a permissively licensed component in a commercial product, or if your automation is mostly batch scraping where a purpose-built crawler is simpler. It is also a poor fit if your harness cannot speak MCP, since that is the only integration route described.

Requirements and limitations

You need Node.js 22 or newer and a Chromium-family browser, located automatically or via AXUSE_BROWSER. On a bare server without sudo, install-browser provisions a pinned Chrome for Testing under ~/.cache/axuse. The desktop-control side is uneven: Windows is verified, macOS is opt-in with native TCC permission checks, and Linux runs over X11/XWayland with XTEST. Daily Chrome or Edge sessions need a one-time "Load unpacked" extension step, after which bridge verify checks the connection; that manual step is the main setup friction.

The bigger boundary is licensing. The code is under the PolyForm Noncommercial License 1.0.0, so personal, research, education and charity use are free, but commercial use requires a separate license from CTOL Digital Solutions. The core ships no CAPTCHA solvers; Turnstile, hCaptcha and reCAPTCHA support comes from separately licensed commercial plugin packages. The README's claim that the code is "proven in production" is the vendor's own statement, not independent evidence.

HotRepo's take

HotRepo's stored coverage begins on 2026-10-24, and the repository was created on 2026-10-14. The only dated observation is a #23 position on the NEW-REPOSITORY board for JavaScript on 2026-10-25, at 494 total stars — a snapshot, not a daily growth figure. There is no comparable daily-board history, so persistence of interest cannot yet be judged. Before adopting, verify the commercial license terms directly, especially if CAPTCHA solving would be part of the workflow.

Project source and documentation

Written by AI from the project's README, updated October 25, 2026. The project's own docs are the source of truth.