{"slug": "show-hn-brw-better-than-claude-chrome", "title": "Show HN: Brw - better than Claude chrome", "summary": "Brw, an open-source semantic browser control tool by Revitt, claims to outperform Claude-in-Chrome in pre-release head-to-head tests by using fewer turns and fewer tokens, acting from stable refs like 'e17' instead of screenshots or CSS selectors. It runs a real, visible Chrome browser exposed via MCP and HTTP, allowing any MCP or HTTP-speaking agent client to control it, and bridges to an installed, signed-in Chrome profile to access gated content. The tool is available as native installers for Windows, macOS, and Linux, with a public benchmark forthcoming.", "body_md": "### Fewer turns, fewer tokens\n\nPre-release head-to-heads vs Claude-in-Chrome: same tasks, fewer turns and fewer tokens. Agents act from stable refs, not a fresh screenshot each turn. Public benchmark on the way.\n\nopen source by Revitt\n\nSemantic browser control for agents.\n\nbrw runs a real, visible Chrome and exposes it over MCP and HTTP. Agents act from stable refs like `e17` instead of CSS selectors or screenshots, and get a plain observation back after every action — so they know what actually happened.\n\nwhy brw\n\nOther agent browsers burn tokens re-reading pixels, lock you to one vendor, and stall at the login wall. brw takes the other path.\n\nNot tied to one vendor's browser. Claude Code, Codex, Cursor, opencode, pi, Gemini or your own client — anything that speaks MCP or HTTP drives the same brw.\n\nBridges to your installed, signed-in Chrome. The sites you're logged into, brw is too — cookies and sessions stay on your machine.\n\nA real browser on your profile reaches any page you can — gated dashboards, signed-in apps, content a locked-down agent browser can't.\n\nwhat it is\n\nbrw controls headed Chrome/Chromium through CDP and exposes it as MCP tools and an HTTP JSON API. It is the actual web — signed-in tabs, real clicks and forms — not a sandboxed copy or a stack of screenshots.\n\nSnapshots combine DOM and accessibility data into stable refs like `e17`. Agents click, type, fill, select, scroll, drag, upload, wait and assert by ref — not by brittle CSS selectors or by re-reading a screenshot every turn.\n\nPull prose, links, headings, forms, tables and structured product data straight from the page. Screenshots are kept as a visual fallback, with optional Set-of-Marks overlays.\n\nEvery action returns a post-action observation, so the agent knows what changed instead of guessing. Acting from refs and observations means fewer turns, less token spend and less wall time than re-interpreting pixels.\n\nwhat's inside\n\nThe full MCP surface is large; run `brwd --mcp --mcp-tools core` to advertise just the common-flow tools while keeping everything callable.\n\nstdio MCP for agent harnesses and an HTTP JSON API for custom clients. The same real browser, reachable from wherever your agent runs.\n\nRemote control is a first-class path. The visible browser stays on the machine that owns the profile; SSH carries stdio MCP, so cookies, passkeys and downloads never leave home.\n\nA Chrome extension bridges to an already-authenticated installed Chrome profile — the auth you already have, without copying cookies or fighting Chrome's remote-debug lockdown.\n\nSnapshots combine DOM and accessibility data. Read prose, links, headings, forms, tables and structured product data. Find elements and act on them by stable ref.\n\nTabs and tab groups, downloads, console, network capture and request replay, plus cancellation. Organise visible Chrome work into named runs the human can watch.\n\nScreenshots are a visual fallback, not the main channel — with optional Set-of-Marks overlays that label elements with the same refs the agent acts on.\n\nquick start\n\nNative installers put `brwd`, `brwctl`,` brwcheck`, and `brw-devtools-mcp` on your PATH. Pick the release asset for your platform, then run the daemon as stdio MCP or expose the HTTP API on loopback.\n\nFor remote and installed-Chrome setups, see the [install docs](https://github.com/Don-Works/brw/blob/main/docs/install.md).\n\nrecommendedNative installers from GitHub releases\n\n`.msi` for amd64 or arm64.`.pkg`.`.deb` or `.rpm` for amd64 or arm64.\n\n``` bash\n# after installing from a release\n# run as an MCP server over stdio\n$ brwd --mcp --http off\n\n# or expose the HTTP API on loopback\n$ brwd --http 127.0.0.1:17310\nbash\n# open a page and read its controls\n$ curl -s 127.0.0.1:17310/api/browser/open \\\n    -H 'content-type: application/json' \\\n    -d '{\"url\":\"https://example.com\"}'\n\n$ curl -s 127.0.0.1:17310/api/page/snapshot | jq\nbash\n# source build if you need it\n$ git clone https://github.com/Don-Works/brw.git\n$ cd brw\n$ make build\n$ ./bin/brwd --mcp --http off\n```\n\ninstall\n\nStart with a native brw installer from GitHub releases. The extension is only needed when you want the daemon to bridge into an already-signed-in Chrome or Chromium profile over `ws://127.0.0.1`.\n\nbrw is open source — and so is [Chromium](https://www.chromium.org/Home), so it's what we champion. On Chromium you force-install the extension and get auto-updates from a single policy file pointed at brw's own update server — no Chrome Web Store, no review queue, no gatekeeping. It works on Chrome too.\n\nOne permanent extension ID, trusted by the daemon with zero config:\n\n`amocjcgddnoakjijfggdpnefdnboilpe`\n\ndaemonNative package installers\n\nGitHub releases ship `.msi` for Windows, a universal macOS `.pkg`, and Linux `.deb`/ `.rpm` packages. They put the brw commands on PATH and install the extension, tests, README, and licence into the platform share directory.\n\nrecommendedChromium — force-install + auto-update\n\nPoint Chromium at brw's self-hosted [update manifest](/updates.xml). It installs the signed [package](/brw.crx) and keeps it current automatically. Drop one policy file for your platform:\n\n`/etc/chromium/policies/managed/` — no MDM needed.\nNo policy at all? On Chromium, `brwd` can launch the browser with the extension already loaded — `--load-extension` still works on Chromium (Chrome 137+ dropped it), so there is nothing to click.\n\nalso worksChrome — load unpacked\n\n`make install-extension` (or open `chrome://extensions`).` extension/` folder.`brwd --bridge` and brw is on your real browser.\nA one-click Chrome Web Store build is in review; until it lands, load-unpacked installs the exact same extension and ID.\n\nsafety\n\nbrw uses a normal visible browser and a persistent user profile. It does **not** add stealth code, CAPTCHA bypass, MFA bypass, fraud-check bypass, consent bypass or cookie extraction. Browser-control HTTP binds to loopback by default; for remote use, prefer stdio MCP over SSH so the profile stays on the machine that owns it. Released under AGPL-3.0 — free to use, change and build on, with improvements shared back. If that doesn't fit your business, [talk to Revitt](https://revitt.co/?utm_source=brw.donworks.co.uk&utm_medium=referral&utm_campaign=brw_open_source&utm_content=safety_commercial) about a commercial licence.", "url": "https://wpnews.pro/news/show-hn-brw-better-than-claude-chrome", "canonical_source": "https://brw.donworks.co.uk", "published_at": "2026-09-07 23:56:50+00:00", "updated_at": "2026-09-08 00:32:00.037760+00:00", "lang": "en", "topics": ["ai-tools", "ai-agents", "developer-tools"], "entities": ["Revitt", "Brw", "Claude", "Chrome", "MCP", "HTTP"], "alternates": {"html": "https://wpnews.pro/news/show-hn-brw-better-than-claude-chrome", "markdown": "https://wpnews.pro/news/show-hn-brw-better-than-claude-chrome.md", "text": "https://wpnews.pro/news/show-hn-brw-better-than-claude-chrome.txt", "jsonld": "https://wpnews.pro/news/show-hn-brw-better-than-claude-chrome.jsonld"}}