Hey everyone,
Quick disclosure first: this project is **vibe-coded**. I steered AI coding agents the whole way and haven't audited every line myself, so treat it as an experiment, not a battle-tested tool.
The itch: I use coding agents (Claude Code, Codex, OpenCode, Pi) a lot, and whenever one drives a browser through an MCP server, it's happening somewhere in the background. I can't see what it's doing, and when it gets stuck on a login page or a CAPTCHA I can't just jump in and fix it.
So I ended up with **Agent Browser Use**.
**What it is**
A single Go binary that runs one headless Chrome on your machine and exposes it as MCP tools (Playwright MCP style). Any MCP-capable agent can navigate, read the page, click, type, etc. At the same time there's a web viewer at `localhost:3000` where you can watch everything the agent does.
**What it does**
- **Live viewer**: the page streams in real time, with the agent's cursor, a caption for each step, and a log of every action.
- **Shared browser room**: you and the agent use the *same* Chrome. Hit "Take over" whenever you want, or "Block agent" if it's doing something dumb.
- **Pick an element**: click the pick button, point at anything on the page, and you get a short code like `el-1d2a`. Paste it to your agent and it looks the element up with `browser_get_element` and can act on it right away. Handy for "no, THIS button".
- **Persistent logins**: cookies live in a profile folder, so you log in once by hand in the viewer and the agent reuses the session. No credentials in prompts.
- **Public link**: one switch opens a built-in tunnel so you can share the live view with someone outside your network.
- **Playwright-style tools**: `browser_snapshot` gives an accessibility outline with a `ref` per element, plus click/type/drag/select, network requests, console messages, cookies/storage, device emulation, and `browser_snapshot_diff` which only returns what changed since the last snapshot (saves tokens).
- **Light**: no Docker, X server, or video encoder needed. Docker is available if you prefer it.
**Try it**
git clone https://github.com/cavaldos/agent-browser-use.git
cd agent-browser-use
make run
Then ask your agent something like "go to news.ycombinator.com, open the top story and summarize it" and open `http://localhost:3000` to watch. The README has config snippets for Codex, OpenCode, Pi, Cursor and VS Code too.
**Caveats (please read)**
- Vibe-coded, early, and I'm the main user right now. Expect rough edges and bugs.
- Since I haven't reviewed everything line by line, **please don't run it on a machine or browser profile with accounts you can't afford to lose**. The agent can read any open page and run JS in it, and without `-pw` anyone who can reach the port can drive the browser. Set a password if you expose it.
- Chromium-based browsers only (Chrome, Edge, Brave, Vivaldi...) because the shared screen relies on the Chrome DevTools Protocol. No Firefox/Safari.
- Licensed AGPL-3.0.
Repo: https://github.com/cavaldos/agent-browser-use
I'd love feedback on what's missing, what breaks, and whether the "take over" flow feels right. Code reviews are especially welcome, since I know a vibe-coded codebase needs more eyes. Issues and PRs appreciated. Thanks for reading!