Back

Show HN: Open-source browser for AI agents

54 points4 hoursgithub.com

Hi HN, I forked chromium and built agent-browser-protocol (ABP) after noticing that most browser-agent failures aren’t really about the model misunderstanding the page. Instead, the problem is that the model is reasoning from a stale state.

ABP is designed to keep the acting agent synchronized with the browser at every step. After each action (click, type, etc), it freezes JavaScript execution and rendering, then captures the resulting state. It also compiles the notable events that occurred during that action loop, such as navigation, file pickers, permission prompts, alerts, and downloads, and sends that along with a screenshot of the frozen page state back to the agent.

The result is that browser interaction starts to feel more like a multimodal chat loop. The agent takes an action, gets back a fresh visual state and a structured summary of what happened, then decides what to do next from there. That fits much better with how LLMs already work.

A few common browser-use failures ABP helps eliminate: * A modal appears after the last Playwright screenshot and blocks the input the agent was about to use * Dynamic filters cause the page to reflow between steps * An autocomplete dropdown opens and covers the element the agent intended to click * alert() / confirm() interrupts the flow * Downloads are triggered, but the agent has no reliable way to know when they’ve completed

As proof, ABP with opus 4.6 as the driver scores 90.5% on the Online Mind2Web benchmark. I think modern LLMs already understand websites, they just need a better tool to interact with them. Happy to answer questions about the architecture, forking chrome or anything else in the comments below.

Try it out: `claude mcp add browser -- npx -y agent-browser-protocol --mcp` (Codex/OpenCode instructions in the docs)

Demo video: https://www.loom.com/share/387f6349196f417d8b4b16a5452c3369

webpolis35 minutes ago

Freezing JS execution between actions is the right call. Most CDP-based agent setups break because the DOM keeps mutating while the model reasons about the last screenshot. The "multimodal chat loop" framing maps cleanly to how agent frameworks already structure tool-use cycles.

Worth flagging: a forked Chromium with frozen-state semantics will behave differently from stock Chrome, and fingerprinting libraries will notice. We run browser automation on ephemeral cloud desktops at Cyqle (https://cyqle.in) and keeping the browser environment consistent across sessions was its own fight. Curious if ABP exposes hooks for controlling OS-level context — display resolution, font rendering, timezone — since those affect agent reliability almost as much as DOM staleness.

theredsix27 minutes ago

Great insight! ABP exposes display resolution controls right now. I've noticed almost zero reCAPTCHAs during testing compared puppeteer stealth or other packages. Regarding the freezing mechanic, virtualtime is paused as well and the entire browser clock is captured so it would be very hard for a page's JavaScript to notice the time drift unless they were querying an external API clock.

Retr0id3 hours ago

> As proof, ABP with opus 4.6 as the driver scores 90.5% on the Online Mind2Web benchmark

And what does opus score with "regular" browser harnesses?

9wzYQbTYsAIc2 hours ago

90% easy or 90% average?

theredsix2 hours ago

90% average with 85.51% hard!

9wzYQbTYsAIc2 hours ago

Nice! Will take a look at this for my homelab - was debating using crawl.cloudflare.com to try it out, as browser rendering was my next stretch goal.

Retr0id3 hours ago

Hm I can't see Opus 4.6 on there

theredsix2 hours ago

I tweeted at the OSUNLP and they're backed up on eval validation. In the meantime, here's the benchmark repo with the saved runs and also instructions on how to run it locally. https://github.com/theredsix/abp-online-mind2web-results

giancarlostoro3 hours ago

Interesting, I wonder if this would help with other projects too, one project that comes to mind is archivebox, I don't know if they still have the issue I'm thinking of, but archivebox eventually had the Chrome instances (as the meme goes) basically consume all available RAM. If by freezing execution this could stop that, it could be useful for more than just AI agents.

theredsix1 hour ago

Yeah, I noticed CPU use goes to near zero during the pausing phase. You can also trigger pause via REST/MCP so a script can take advantage of these abilities as well.

gregpr072 hours ago

Love it! From first principles: this kinda answers the "do we really even need CDP" I always have in my head building browser use...

theredsix2 hours ago

Totally, I feel that CDP was designed for a different category of automations.

theredsix4 hours ago

Op here, happy to answer any question!

esafak3 hours ago

How does it compare with https://agent-browser.dev/ ? It would be great if you could add it to your table: https://github.com/theredsix/agent-browser-protocol?#compari...

theredsix2 hours ago

agent-browser's biggest selling point is a CLI wrapper around CDP/puppeteer for context management. It'll have mostly the same pros/cons as CDP on the table.

theredsix54 minutes ago

Updated the table!

octoclaw59 minutes ago

[dead]

bhekanik2 hours ago

[dead]