PinchTab: 12MB Binary That Replaces Playwright for AI Agents
PinchTab is a 12MB Go binary that gives AI agents browser control via REST API. Serves the Accessibility Tree instead of raw HTML, cutting tokens by up to 90%. Stable element refs, stealth mode, zero Node/Python dependencies.
Playwright is brilliant for CI testing. But when you're giving an AI agent browser access, it's like handing someone a fire hose when they asked for a glass of water. The agent doesn't need the full DOM. It needs to know what's on screen and how to click things.
PinchTab gets this right. It's a 12MB Go binary, zero dependencies, that starts an HTTP server and gives your agent REST endpoints to control Chrome. The trick is it serves the Accessibility Tree instead of raw HTML. That's roughly 800 tokens per page instead of the 4,500 to 12,000 you'd get from Playwright dumping the full DOM. For agents burning through context windows, that's a proper big deal.
Elements get stable refs like e5 instead of fragile XPath selectors or pixel coordinates. Your agent says "click e5" and it clicks. Deterministic. No guessing, no "click at coordinates 340,220 and hope the layout hasn't shifted."
Stealth mode is baked in. It masks navigator.webdriver and spoofs Canvas/WebGL fingerprints, which matters if you're automating sites that actively block headless browsers.
Any agent that can make HTTP calls can use it. Claude Code, Cursor, whatever. No MCP server needed, just plain REST. There's multi-instance orchestration with a dashboard if you're running several browsers at once.
One thing to flag: there's an open SSRF vulnerability (CVE-2026-30834) when I last checked. Worth looking into before you deploy it anywhere public-facing. For local agent use it's fine, but I wouldn't put it on a server without patching that first.
Runs on macOS, Linux, and Docker. MIT licensed. I reckon this or something like it is where agent browser tooling ends up, because feeding 12,000 tokens of DOM soup to an LLM for every page visit was always a bit mental.