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!