Browser Harness: Giving LLMs raw CDP access to self-correct browser tasks

✍️ OpenClawRadar📅 Published: April 24, 2026🔗 Source
Browser Harness: Giving LLMs raw CDP access to self-correct browser tasks
Ad

Browser Harness is a self-healing harness that gives LLMs complete freedom to complete browser tasks by connecting directly to Chrome via a CDP websocket (~592 lines of Python). Instead of wrapping Chrome in predefined functions (like Playwright MCP or agent-browser), it provides a thin daemon that holds the websocket, basic helpers, and a SKILL.md file — and lets the agent write its own tools when needed.

How it works

The core concepts are:

  • A daemon that keeps the CDP websocket alive
  • Extremely basic tools in helpers.py (~195 lines)
  • A SKILL.md that explains usage

When the LLM needs a function that doesn't exist, it edits helpers.py and adds it. The authors report a case where the agent wanted to upload a file, found no upload_file() function, wrote it itself using DOM.setFileInputFiles, and continued — visible only in a git diff.

Ad

vs. other approaches

Other tools (Playwright MCP, browser-use CLI, agent-browser, Chrome DevTools MCP) wrap Chrome in predefined functions. Their worst failure mode is silent: click() returns success but nothing happened. Browser Harness aims to give the LLM perfect context and freedom to self-correct.

Setup and installation

Install with Claude Code or Codex by pasting:

Set up https://github.com/browser-use/browser-harness for me.

The agent reads install.md for bootstrap, then SKILL.md for normal usage, and always checks helpers.py for available functions.

Real examples

  • Plays Stockfish chess engine
  • Sets a world record in Tetris
  • Draws a heart with JavaScript

Contributing

Contributions welcome: add domain skills under domain-skills/ for sites like LinkedIn, Amazon, etc. Skills are generated by the harness, not hand-authored. Bug fixes, docs, and helper improvements also accepted.

License: MIT.

📖 Read the full source: HN LLM Tools

Ad

👀 See Also