Skip to content

Agent Browser v0.2.0 - See what your agent sees, from any MCP client

Choose a tag to compare

@AetherAI3 AetherAI3 released this 03 Sep 21:09
· 14 commits to main since this release
0573702

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 agent signs in through the Agent Browser JSON API, stops at a two-factor prompt it cannot answer, a human takes over the same live session and types the code, and the agent resumes and reads the dashboard

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 mcp

Already 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.json rather 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.md no 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.md no longer claims no client SDK ships; docs/llms.txt no longer announces a release candidate; SECURITY.md names the current release line.
  • Documentation describing an ongoing property of the pre-1.0 line now says v0.x rather than v0.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