Show HN: Browser4 – an open-source browser engine for agents and concurrency
Show HN (score: 6)Description
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/gating layer– these tables let your team:<p>- Write multi-factor, exception-friendly policies (e.g. deny rm -rf / when --force; allow cleanup only in node_modules; ask on network calls like curl/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/skills/etc)- just add columns/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: /plugin marketplace add jshchnz/claude-code-scheduler /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.