frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Show HN: Browser Harness – Gives LLM freedom to complete any browser task

https://github.com/browser-use/browser-harness
34•gregpr07•4h ago
Hey HN,

We got tired of browser frameworks restricting the LLM, so we removed the framework and gave the LLM maximum freedom to do whatever it's trained on. We gave the harness the ability to self correct and add new tools if the LLM wants (is pre-trained on) that.

Our Browser Use library is tens of thousands of lines of deterministic heuristics wrapping Chrome (CDP websocket). Element extractors, click helpers, target managemenet (SUPER painful), watchdogs (crash handling, file downloads, alerts), cross origin iframes (if you want to click on an element you have to switch the target first, very anoying), etc.

Watchdogs specifically are extremely painful but required. If Chrome triggers for example a native file popup the agent is just completely stuck. So the two solutions are to: 1. code those heuristics and edge cases away 1 by 1 and prevent them 2. give LLM a tool to handle the edge case

As you can imagine - there are crazy amounts of heuristics like this so you eventually end up with A LOT of tools if you try to go for #2. So you have to make compromises and just code those heuristics away.

BUT if the LLM just "knows" CDP well enough to switch the targets when it encounters a cross origin iframe, dismiss the alert when it appears, write its own click helpers, or upload function, you suddenly don't have to worry about any of those edge cases.

Turns out LLMs know CDP pretty well these days. So we bitter pilled the harness. The concepts that should survive are: - something that holds and keeps CDP websocket alive (deamon) - extremely basic tools (helpers.py) - skill.md that explains how to use it

The new paradigm? SKILL.md + a few python helpers that need to have the ability to change on the fly.

One cool example: We forgot to implement upload_file function. Then mid-task the agent wants to upload a file so it grepped helpers.py, saw nothing, wrote the function itself using raw DOM.setFileInputFiles (which we only noticed that later in a git diff). This was a relly magical moment of how powerful LLMs have become.

Compared to other approaches (Playwright MCP, browser use CLI, agent-browser, chrome devtools MCP): all of them wrap Chrome in a set of predefined functions for the LLM. The worst failure mode is silent. The LLM's click() returns fine so the LLM thinks it clicked, but on this particular site nothing actually happened. It moves on with a broken model of the world. Browser Harness gives the LLM maximum freedom and perfect context for HOW the tools actually work.

Here are a few crazy examples of what browser harness can do: - plays stockfish https://x.com/shawn_pana/status/2046457374467379347 - sets a world record in tetris https://x.com/shawn_pana/status/2047120626994012442 - figures out how to draw a heart with js https://x.com/mamagnus00/status/2046486159992480198?s=20

You can super easily install it by telling claude code: `Set up https://github.com/browser-use/browser-harness for me.`

Repo: https://github.com/browser-use/browser-harness

What would you call this new paradigm? A dialect?

Comments

syl5x•1h ago
That's pretty good, I've achieved pretty much the same thing using the vercel's agent-browser, but I've tried playwright and it worked easily as good. Its good for scraping, automating stuff in the browser.
debarshri•1h ago
I think the usecase here is to go beyond scraping. I think you can use it as a tool for agent harnesses and make it part of a larger workflow.
reaganhsu•11m ago
agent-browser uses playwright so it struggles with things like cross-origin-iframes - on the other hand, browser harness uses raw cdp, which is unrestrictive. It's discussed in this blog post! https://browser-use.com/posts/bitter-lesson-agent-harnesses
Amekedl•1h ago
I’d call it “open washing”, but it looks cool. Good luck with it
doublerabbit•1h ago
And that's how I woke up with an LLM roleplaying with itself while looking at porn.
mvelbaum•1h ago
Sawyer Hood's dev-browser[0] allows the browser to write playwright JS code directly. Do you have cases where his approach fails and yours works?

[0] https://github.com/SawyerHood/dev-browser

mattaustin•52m ago
I submitted a remote code execution to the browser-use about 40 days ago. GHSA-r2x7-6hq9-qp7v I am a bit stunned by the lack of response. Any safety concerns in this project?
embedding-shape•39m ago
> The new paradigm? SKILL.md + a few python helpers that need to have the ability to change on the fly. [...] What would you call this new paradigm? A dialect?

It's called "agentic coding" for all I know, and isn't a new paradigm, the whole purpose with agentic coding is that it uses tools to do their thing, then those tools could be structured as the good old JSON schema tools next to the implemented runtime, or as MCP, or HTTP API or whatever, the "paradigm" is the same: Have a harness, have a LLM, let the harness define tools that the LLM can use those.

amelius•29m ago
I was wondering when someone would finally build this.

Anyway, of course this will be superseded by a harness that provides freedom to complete any task within the OS.

reaganhsu•16m ago
it will be crazy when someone builds this

Sabotaging projects by overthinking, scope creep, and structural diffing

https://kevinlynagh.com/newsletter/2026_04_overthinking/
238•alcazar•4h ago•58 comments

SDL Now Supports DOS

https://github.com/libsdl-org/SDL/pull/15377
109•Jayschwa•2h ago•42 comments

I Cancelled Claude: Token Issues, Declining Quality, and Poor Support

https://nickyreinert.de/en/2026/2026-04-24-claude-critics/
426•y42•2h ago•231 comments

DeepSeek v4

https://api-docs.deepseek.com/
1638•impact_sy•15h ago•1280 comments

I'm done making desktop applications (2009)

https://www.kalzumeus.com/2009/09/05/desktop-aps-versus-web-apps/
94•claxo•2h ago•81 comments

Different Language Models Learn Similar Number Representations

https://arxiv.org/abs/2604.20817
64•Anon84•4h ago•25 comments

How to be anti-social – a guide to incoherent and isolating social experiences

https://nate.leaflet.pub/3mk4xkaxobc2p
203•calcifer•7h ago•212 comments

CSS as a Query Language

https://evdc.me/blog/css-query
14•evnc•1h ago•2 comments

Spinel: Ruby AOT Native Compiler

https://github.com/matz/spinel
255•dluan•10h ago•73 comments

Physicists revive 1990s laser concept to propose a next-generation atomic clock

https://phys.org/news/2026-04-physicists-revive-1990s-laser-concept.html
32•wglb•17h ago•5 comments

Diatec, known for its mechanical keyboard brand FILCO, has ceased operations

https://gigazine.net/gsc_news/en/20260424-filco-diatec/
14•gslin•2h ago•3 comments

Norway Set to Become Latest Country to Ban Social Media for Under 16s

https://www.bloomberg.com/news/articles/2026-04-24/norway-wants-kids-to-be-kids-with-social-media...
293•1vuio0pswjnm7•3h ago•271 comments

Show HN: Browser Harness – Gives LLM freedom to complete any browser task

https://github.com/browser-use/browser-harness
34•gregpr07•4h ago•11 comments

The operating cost of adult and gambling startups

https://orchidfiles.com/stigma-is-a-tax-on-every-operational-decision/
75•theorchid•6h ago•102 comments

US special forces soldier arrested after allegedly winning $400k on Maduro raid

https://www.cnn.com/2026/04/23/politics/us-special-forces-soldier-arrested-maduro-raid-trade
591•nkrisc•20h ago•635 comments

Mounting tar archives as a filesystem in WebAssembly

https://jeroen.github.io/notes/webassembly-tar/
95•datajeroen•8h ago•28 comments

Hear your agent suffer through your code

https://github.com/AndrewVos/endless-toil
147•AndrewVos•7h ago•74 comments

Machine Learning Reveals Unknown Transient Phenomena in Historic Images

https://arxiv.org/abs/2604.18799
34•solarist•4h ago•25 comments

An update on recent Claude Code quality reports

https://www.anthropic.com/engineering/april-23-postmortem
883•mfiguiere•1d ago•663 comments

Redesigning the Recurse Center application to inspire curious programmers

https://www.recurse.com/blog/192-redesigning-the-recurse-center-application
17•nicholasjbs•1h ago•1 comments

Bitwarden CLI compromised in ongoing Checkmarx supply chain campaign

https://socket.dev/blog/bitwarden-cli-compromised
834•tosh•1d ago•408 comments

8087 Emulation on 8086 Systems

https://www.os2museum.com/wp/learn-something-old-every-day-part-xx-8087-emulation-on-8086-systems/
53•ingve•7h ago•19 comments

GPT-5.5

https://openai.com/index/introducing-gpt-5-5/
1499•rd•1d ago•997 comments

Tesla (TSLA) discloses $2B AI hardware company acquisition buried

https://electrek.co/2026/04/23/tesla-tsla-quietly-discloses-2-billion-ai-hardware-acquisition-10q/
40•Bender•1h ago•21 comments

Tariffs Raised Consumers' Prices, but the Refunds Go Only to Businesses

https://www.nytimes.com/2026/04/24/us/politics/companies-consumers-tariff-refunds.html
22•duxup•1h ago•7 comments

Why I Write (1946)

https://www.orwellfoundation.com/the-orwell-foundation/orwell/essays-and-other-works/why-i-write/
248•RyanShook•16h ago•65 comments

Show HN: Atomic – Local-first, AI-augmented personal knowledge base

https://atomicapp.ai/
44•kenforthewin•6h ago•23 comments

Show HN: Gova – The declarative GUI framework for Go

https://github.com/NV404/gova
103•aliezsid•12h ago•20 comments

Refuse to let your doctor record you

https://buttondown.com/maiht3k/archive/why-you-should-refuse-to-let-your-doctor-record/
90•speckx•2h ago•104 comments

Composition shouldn't be this hard

https://www.cambra.dev/blog/announcement/
102•larelli•11h ago•67 comments