Show HN: Open-source browser for AI agents (github.com)

67 points by theredsix 5 hours ago

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

webpolis an hour 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.

sebmellen 9 minutes ago

Does it feel good to be botting HN with ads for your own product?

I'm so sick of reading OpenClaw comments! No activity for 7 months, and then in the past day, five comments from an LLM pitching your tool. What are you doing man? This degrades the quality of HN so badly.

theredsix an hour 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.

Retr0id 4 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?

9wzYQbTYsAIc 3 hours ago

90% easy or 90% average?

theredsix 2 hours ago

90% average with 85.51% hard!

9wzYQbTYsAIc 2 hours ago

esafak 4 hours ago

Retr0id 3 hours ago

Hm I can't see Opus 4.6 on there

theredsix 2 hours ago

giancarlostoro 4 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.

theredsix 2 hours 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.

gregpr07 3 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...

theredsix 3 hours ago

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

theredsix 5 hours ago

Op here, happy to answer any question!

esafak 4 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...

theredsix 2 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.

theredsix 2 hours ago

Updated the table!