Repository navigation
Agent Browser v0.2.0 - See what your agent sees, from any MCP client
Important
Evidence-packaging notice: The v0.2.0 tag has not been moved, and the package provenance remains bound to that original release commit. However, the tag was created before the later v0.2.0 evidence-rebind and manifest commits, so its source archive does not contain that final evidence state. v0.2.1 corrects the ordering and is the recommended release for a source tree, package set, and exact-tag evidence bundle that all agree.
An 18-second presentation of the takeover flow. It shows the agent signing in over the API, stopping at a 2FA prompt, a human taking over the same displayed session to type the code, and control returning to the agent. The capture operator recorded it as one continuous run; the public repository does not contain the raw capture or action log needed to independently prove single-take or no-replay provenance.
Agent Browser is now an MCP server
Point Claude Code, Claude Desktop, Cursor or Windsurf at the session a human is watching:
docker compose up --build
claude mcp add agent-browser -- npx -y aether-browser@0.2.0 mcpAlready have the Python client? aether-browser mcp serves the same nine tools.
Nine tools — browser_open, browser_navigate, browser_read, browser_click, browser_type, browser_press, browser_scroll, browser_status, browser_close — shipped in both clients under the same names, with a test asserting the two toolsets cannot drift apart.
Neither client gains a runtime dependency. The JSON-RPC stdio transport is implemented directly in clients/node/src/mcp.js and clients/python/src/aether_browser/mcp.py.
browser_open returns the live view URL and every later response repeats it, so the human always knows where to look. The server tells the model, on connect, to stop and ask for a takeover at a login, a payment, or a 2FA prompt rather than guessing — the loop shown in the recording above.
Setup and limits: docs/MCP.md.
A demo that is actually a demo
The 0.1.0 demo was a montage of three static frames with no live motion, linked as a relative .mp4 that GitHub renders as a link rather than a player. The v0.2.0 asset is an inline GIF that presents a continuous x11grab capture of the flow. The current evidence statement—including the retained-evidence limits—is in docs/DEMO_EVIDENCE.md at v0.2.1.
Breaking-ish
Important
GET /browser/health now reports "version": "0.2.0". The field is a schema Literal, so this is visible in the contract. api_version is untouched and remains v1.
Also in this release
- The Node MCP server reads its version from its own
package.jsonrather than hardcoding it, with a test per client asserting the advertised version matches the package. A future bump cannot leave a server introducing itself as a stale version. docs/ARCHITECTURE.mdno longer lists "MCP server" among the things this project does not have. It states the boundary instead: the MCP server is a client of the API contract, not an extension of it — no new route, no widened authority.docs/SOURCE-RECOVERY.mdno longer claims no client SDK ships;docs/llms.txtno longer announces a release candidate;SECURITY.mdnames the current release line.- Documentation describing an ongoing property of the pre-1.0 line now says
v0.xrather thanv0.1, so it stays true across releases.
Full changelog: https://github.com/AetherAI3/agent-browser/blob/v0.2.0/CHANGELOG.md
Compare: v0.1.0...v0.2.0
