For Claude Code, Codex, Cursor, and any agent with a shell

Hand your agent one tab. Nothing else.

Agent Browser Gateway lets a local AI agent read and operate only the Chrome tab you share, over loopback, with every operation written to an audit log.

Install with Homebrew
brew tap arcmanagement/agent-browser-gateway https://github.com/arcmanagement/agent-browser-gatewaybrew trust --cask arcmanagement/agent-browser-gateway/agent-browser-gatewaybrew install --cask agent-browser-gateway
Chrome extension
  • Per-tab consent
  • Loopback only
  • No telemetry
  • Public source
Product demo Animated demo. The agent runs abg tabs and sees no permitted tabs. In Chrome, the user opens the ABG popup on the Checkout tab and chooses Share this tab with agents. The tab lights up, the gate opens over 127.0.0.1, and the agent lists the tab as t1 and reads it as Markdown. The read is written to the audit log. The user presses Option+Shift+S, the share is revoked, and the next read fails with tab_not_permitted.
02Local only

A small local bridge.An optional Cloud connection.

Local mode uses a Chrome extension, a menu bar Gateway, and the abg CLI. The desktop Gateway binds only to 127.0.0.1 and accepts WebSocket connections only from browser-extension origins. Cloud mode instead connects the extension to your selected service and authorized AI clients.

Your Mac
  1. Chrome extension Shares the tabs you choose
  2. Gateway app Permissions · audit log
  3. abg CLI Read, screenshot, operate
  4. Your agent Claude Code, Codex, Cursor, Cline, scripts
ABG-operated servers in local mode None
  • No analytics
  • No crash reporter
  • No auto-update phone-home
  • No account in local mode

Local mode does not send browser data to an ABG server. Optional Cloud mode uses an account and relays shared data through your selected service. If your agent sends prompts to a model provider, that transfer is made by the agent under its own terms.

Check the listeners yourself
lsof -nP -iTCP -sTCP:LISTEN
03Token-efficient reads

Clean Markdown,not a wall of HTML.

Raw page HTML drags scripts, styles, and framework wrappers into the prompt. abg read returns the page as Markdown with headings, links, and lists intact, and per-domain plugins trim app chrome further.

abg read t1 --selector article --format markdown
# Reset your password
Open Settings, then choose Security.

## Steps
1. Choose **Reset password**
2. Check your inbox for the link
- [Contact support](https://example.com/support)
Tokens to read one article page
  1. Playwright page.content() ~50,000 124,476 chars · structure kept, heavy overhead
  2. Playwright article innerHTML() ~17,000 42,070 chars · structure kept, with overhead
  3. abg read --format markdown ~5,900 11,780 chars · structure kept, clean
  4. Playwright article innerText() ~3,800 6,543 chars · headings, links, and lists lost
~88% fewer input tokens than full HTML, with structure preserved

README benchmark on a Japanese WordPress post. Token counts are approximate (~2 chars/token).

04Annotations

Point at the page,like you would in chat.

Annotation mode lets you drag a box or select text, add a comment, and hand the agent structured context: selectors, text anchors, and coordinates. Reload the page and the annotations wait in session storage until you restore them.

staging.example.com/checkout

Order summary

PlanTeam plan
Seats3
Total$96.00 / month
Place order 1Total should include tax 2Wrong plan name

$abg annotate t1
{ "ok": true, "count": 2,
  "annotations": [
    { "kind": "dom", "comment": "Total should include tax",
      "selector": ".summary .total" },
    { "kind": "text", "comment": "Wrong plan name",
      "text": "Team plan" } ] }
$abg annotate t1
{ "ok": true, "count": 0,
  "saved": { "count": 2, "urlMatches": true },
  "nextCommand": "abg annotate t1 --restore" }
$abg annotate t1 --restore
{ "ok": true, "count": 2,
  "restore": { "status": "restored",
    "restored": [ … 2 ], "unrestored": [],
    "alreadyPresent": 0 } }
  • Area and Text annotations, auto-classified as dom, screenshot, or text
  • Stored per tab in Chrome session storage, which page scripts cannot read
  • Restored only when the target can still be identified
05Audit log

Every actionleaves a line.

The Gateway appends a JSON line for each read, operation, permit, and revoke to a local, owner-only log. Review it in the Gateway window, with abg audit, or open the file.

  • abg audit --lines 50
  • abg activity --period day

Pasted values and clipboard payloads are recorded as byte lengths, not content.

~/Library/Logs/AgentBrowserGateway/audit.jsonl 0600 · owner-only
Audit log
timeactiontabagentdetail
09:41:02 permit 418 — accessMode: manual
09:41:06 read_dom 418 cli staging.example.com/checkout
09:41:09 screenshot 418 cli staging.example.com/checkout
09:41:15 click 418 cli staging.example.com/checkout
09:41:21 paste 418 cli selector · textBytes: 42
09:41:30 revoke 418 — reason: user_revoked
{"ts":"2026-10-03T09:41:06Z","extensionId":"…","tabId":418,"url":"https://staging.example.com/checkout","action":"read_dom","agent":"cli"}
06Where it fits

Not a test runner.Not a hosted assistant.

ABG is for handing a human-owned, already-open tab to an agent workflow. Playwright remains the better fit when automation should own the whole browser lifecycle.

OptionBest fitTradeoffWhere ABG differs
Agent Browser Gateway AI-assisted work in a tab you are already using Requires explicit local setup and tab sharing Per-tab consent, local transport, CLI-first workflow, local audit log
Playwright Deterministic E2E tests, CI, screenshots, clean browser profiles Automation owns the browser session ABG uses your everyday Chrome tab with your current login and context
Claude in Chrome Provider-integrated browser assistance Tied to that provider's product surface and data path ABG is agent-agnostic and designed around local-first browser access
Browser MCP tools MCP-native browser control and structured snapshots Often targets a dedicated or broader browser context ABG keeps the human's selected tab as the permission boundary

Works with the agent you already use

  • Claude Code
  • Codex
  • Cursor
  • Cline
  • Your own scripts

Anything that can run a shell command can run abg. MCP clients can use abg mcp-server, a stdio wrapper over the same CLI.

07Download

Install in a minute.Verify before you trust it.

Chrome extension v1.3.6 supports Cloud login without a desktop app. For local mode, install macOS v0.5.2 with Homebrew or the signed DMG, then add the extension.

  1. 1Install the Gateway and CLI
  2. 2Add the Chrome extension
  3. 3Share a tab and run abg tabs

Homebrew

Tap the repository, trust the cask when Homebrew asks for tap trust, then install.

brew tap arcmanagement/agent-browser-gateway https://github.com/arcmanagement/agent-browser-gatewaybrew trust --cask arcmanagement/agent-browser-gateway/agent-browser-gatewaybrew install --cask agent-browser-gateway

Already installed? brew info --cask agent-browser-gateway or abg --help confirms it. Use brew reinstall --cask agent-browser-gateway only to force a fresh install.

macOS DMG

v0.5.2 · macOS 14+ · Apple Silicon
macOS DMG · v0.5.2
4469b7d9e69b4bfe48329facd269381bf011660d3db1b9d638a2799f4cd35732

Verify the checksum before opening the DMG.

Chrome Web Store

v1.0.0
Chrome Web Store

Chrome Web Store review and publication are separate from the v1.3.6 GitHub ZIP release. Check the Store listing's version before installing.

Cloud extension ZIP · v1.3.6

Cloud mode needs no desktop app. Extract the ZIP, load it in Chrome, then sign in on the Web and authorize the browser. Store review and publication are separate.

CLI and agent skills

The installer puts abg on your PATH. Claude Code and Codex skills come from the skills CLI:

npx skills add arcmanagement/agent-browser-gateway -g

Uninstall. Remove the app from /Applications, delete abg from your PATH if you linked it manually, and remove the Chrome extension.

Published by ArcManagement, Inc. Release artifacts are served from GitHub Releases.

Free for personal use, non-profits, and small companies under the ArcManagement Source License. License details