Hacker News
Latest
My audio interface has SSH enabled by default
2026-04-24 @ 19:30:46Points: 31Comments: 7
The Classic American Diner
2026-04-24 @ 19:01:09Points: 57Comments: 21
SFO Quiet Airport (2025)
2026-04-24 @ 18:29:53Points: 85Comments: 44
OpenAI releases GPT-5.5 and GPT-5.5 Pro in the API
2026-04-24 @ 18:23:32Points: 140Comments: 79
CC-Canary: Detect early signs of regressions in Claude Code
2026-04-24 @ 17:53:37Points: 21Comments: 6
CSS as a Query Language
2026-04-24 @ 17:39:37Points: 32Comments: 14
Tesla (TSLA) discloses $2B AI hardware company acquisition buried
2026-04-24 @ 16:51:46Points: 60Comments: 41
Redesigning the Recurse Center application to inspire curious programmers
2026-04-24 @ 16:45:10Points: 44Comments: 9
SDL Now Supports DOS
2026-04-24 @ 16:20:15Points: 180Comments: 63
Diatec, known for its mechanical keyboard brand FILCO, has ceased operations
2026-04-24 @ 16:16:49Points: 58Comments: 18
I Cancelled Claude: Token Issues, Declining Quality, and Poor Support
2026-04-24 @ 15:59:19Points: 617Comments: 369
Refuse to let your doctor record you
2026-04-24 @ 15:48:16Points: 124Comments: 141
I'm done making desktop applications (2009)
2026-04-24 @ 15:44:03Points: 118Comments: 132
Norway Set to Become Latest Country to Ban Social Media for Under 16s
2026-04-24 @ 14:45:10Points: 337Comments: 345
Different Language Models Learn Similar Number Representations
2026-04-24 @ 14:34:23Points: 77Comments: 34
Show HN: Browser Harness – Gives LLM freedom to complete any browser task
2026-04-24 @ 14:31:38Points: 50Comments: 24
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?