Show HN: Browser4 – an open-source browser engine for agents and concurrency

Show HN (score: 6)
Found: December 13, 2025
ID: 2653

Description

Other
Show HN: Browser4 – an open-source browser engine for agents and concurrency Hi HN,

I’d like to share an open-source project we’ve been working on for a while: Browser4.

The motivation came from a recurring frustration: most browser automation tools (Playwright, Selenium, Puppeteer) are excellent for human-written scripts, but start to show friction when used as a core execution layer for AI agents or at very high concurrency.

So instead of building “another wrapper around Playwright”, we experimented with a different direction: designing a browser engine where AI agents are first-class citizens.

### What Browser4 is

Browser4 is a browser automation engine built on native Chrome DevTools Protocol (CDP), with a focus on:

* Coroutine-safe concurrency (designed to run many browser sessions in parallel)

* Agent-oriented APIs (navigation, interaction, extraction as composable actions)

* Hybrid extraction: ML agent driven extraction + LLM extraction + structured selectors + an SQL-like DOM query language (X-SQL)

* Low-level control without Playwright-style abstraction overhead

It’s written in Kotlin/JVM, mainly because we needed predictable concurrency behavior and long-running stability under load.

The project is fully open-source (Apache 2.0).

### What it’s not

* It’s not a drop-in Playwright replacement.

* It’s not a no-code RPA tool.

* It’s not “LLM magic” — LLMs sit outside the browser engine.

Browser4 intentionally stays close to the browser execution layer and leaves planning/reasoning to external agent loops.

### Current use cases we’re testing

* Large-scale web data extraction

* Agentic workflows (search → navigate → extract → summarize)

* Price / content monitoring with frequent revisits

* High-concurrency crawling where browser startup and context switching are bottlenecks

On a single machine, we can sustain very high daily page visits, though we’re still validating benchmarks across different workloads.

### Open questions (where I’d love feedback)

* For agentic systems, does it make sense to bypass Playwright entirely and work closer to CDP?

* Where do you see the biggest pain points when combining LLMs with browser automation today?

* Is JVM a reasonable choice here, or is Python still the better tradeoff despite concurrency limits

* What abstractions would you want in a browser engine built for AI agents?

### Links

* GitHub: https://github.com/platonai/browser4

* Website (light overview): https://browser4.io

Happy to answer technical questions or hear criticism — especially from people running browser automation or agent systems in production.

Thanks for reading.

More from Show

Show HN: Control Claude permissions using a cloud-based decision table UI

Show HN: Control Claude permissions using a cloud-based decision table UI We’ve been building visual rule engines (clear interfaces + API endpoints that help map input data to a large number of outcomes) for a while and had the fun idea lately to see what happens when we use our decision table UI with Claude’s PreToolUse hook.<p>The result is a surprisingly useful policy&#x2F;gating layer– these tables let your team:<p>- Write multi-factor, exception-friendly policies (e.g. deny rm -rf &#x2F; when --force; allow cleanup only in node_modules; ask on network calls like curl&#x2F;wget; block kubectl delete or SQL DROP, each with a clear reason)<p>- Roll out policy changes instantly (mid-run, flip a risky operation from allow → ask; the next attempt across devs and agents is gated immediately– no git pull, agent restart, or coordination)<p>- Adopt lightweight governance that is somewhat agent agnostic and survives churn (MCP&#x2F;skills&#x2F;etc)- just add columns&#x2F;rules as new tools and metadata show up<p>- Get a quick central utility to understand which tools are being used, which tools get blocked most often, and why

Show HN: Claude Code Scheduler

Show HN: Claude Code Scheduler I found myself frequently wanting to schedule tasks in Claude Code (both one-time and recurring) so I built a CC plugin to help with that.<p>To install: &#x2F;plugin marketplace add jshchnz&#x2F;claude-code-scheduler &#x2F;plugin install scheduler@claude-code-scheduler<p>Then just tell Claude what you want (some examples):<p>Every Wednesday at 3am find dead code: unused functions, unreachable branches, commented-out code, and unused imports. List by file with line numbers.<p>Schedule a code review every weekday at 9am. Review commits from the last 24 hours, check for bugs, security issues, error handling gaps, and code that needs comments. Summarize with file:line references.

Show HN: Webctl – Browser automation for agents based on CLI instead of MCP

Show HN: Webctl – Browser automation for agents based on CLI instead of MCP

Show HN: Tsonic – A TypeScript to native code compiler via CLR and NativeAOT

Show HN: Tsonic – A TypeScript to native code compiler via CLR and NativeAOT

No other tools from this source yet.