Local browser bridge for Remote AI Maestro — runs a Playwright-managed Chromium and exposes BROWSER_* commands over WebSocket.
Project description
maestro-browser-bridge
Local browser bridge for Remote AI Maestro.
The bridge is the companion app you install on the same laptop where you keep your real browser. It launches a Playwright-managed Chromium in an isolated profile and exposes it over a WebSocket so an AI agent running inside a Maestro sandbox can drive it — navigate, click, type, screenshot, read DOM, capture console logs.
This is the Phase 2 counterpart to the simpler Phase 1 maestro browser open <url> command, which only pops URLs in your already-open browser via the
frontend's window.open. The bridge gives Claude (or any agent) real browser
control without ever touching your logged-in Chrome profile.
Why a separate process
The AI agent runs on a remote machine (or an EC2 sandbox) but the browser to
be controlled lives on your local desktop. There is no other process that runs
on the user's actual laptop in a known-good location — the agent daemon runs
on whichever machine the sandbox is bound to, which may be EC2. So we ship a
dedicated bridge process that runs on the user's laptop, maintains an
outbound WebSocket to the relay, and translates BROWSER_* messages into
Playwright calls.
The bridge is per-user (one bridge per laptop) — distinct from the agent
daemon, which is per-machine. Relay routing maps user_id → bridge.
Install
pip install maestro-browser-bridge
# Pre-download the Playwright Chromium binary (~200MB)
playwright install chromium
# Configure once
maestro-browser-bridge configure \
--relay-url wss://relay.thesavvydeveloper.com \
--user-id YOUR_USER_UUID \
--user-token YOUR_BRIDGE_TOKEN
# Start
maestro-browser-bridge start
--detach is wired but not yet implemented; for now run the bridge in the
foreground (or wrap it in your own service manager — launchd / systemd
unit shipping is planned).
Status
This package is the scaffold for the Phase 2 work tracked in
_reference/11_BROWSER_CONTROL.md and implementation_plan.md's
"BC — Browser Control (Phase 2)" section. The protocol models, dispatch
shell, and CLI surface are in place; the actual Playwright handlers raise
NotImplementedError and will be wired in subsequent commits (BC.1.2 in the
plan).
Development
# Editable install with test deps (from the repo root)
pip install -e ./bridge[test]
# Run tests
cd bridge && pytest
# Smoke check the CLI
maestro-browser-bridge --version
maestro-browser-bridge --help
References
- Architecture & wire protocol:
_reference/11_BROWSER_CONTROL.md - Milestone plan:
_reference/12_BROWSER_PHASE2_PLAN.md - Pip package contract:
implementation_plan.md§ BC.1
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file maestro_browser_bridge-1.18.0.tar.gz.
File metadata
- Download URL: maestro_browser_bridge-1.18.0.tar.gz
- Upload date:
- Size: 32.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cc5de09c16f217674e847df7d3ee823d4f3b2bd0b5f32faa6f954a1c1256e2a1
|
|
| MD5 |
cf4408e2f19d393e83e0a39c2b1c7ae9
|
|
| BLAKE2b-256 |
d19a19cd29d399fd1b12dfcba2e929d11f59f048040e943d7c18b1221a326ae8
|
Provenance
The following attestation bundles were made for maestro_browser_bridge-1.18.0.tar.gz:
Publisher:
release.yml on shaunchew/remote-ai-maestro
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
maestro_browser_bridge-1.18.0.tar.gz -
Subject digest:
cc5de09c16f217674e847df7d3ee823d4f3b2bd0b5f32faa6f954a1c1256e2a1 - Sigstore transparency entry: 1524950706
- Sigstore integration time:
-
Permalink:
shaunchew/remote-ai-maestro@73c218f88fe3004a71c28d45ede9bb15357a8d52 -
Branch / Tag:
refs/tags/v1.18.0 - Owner: https://github.com/shaunchew
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@73c218f88fe3004a71c28d45ede9bb15357a8d52 -
Trigger Event:
push
-
Statement type:
File details
Details for the file maestro_browser_bridge-1.18.0-py3-none-any.whl.
File metadata
- Download URL: maestro_browser_bridge-1.18.0-py3-none-any.whl
- Upload date:
- Size: 28.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4d35b49730e4ecfff9af1d06e5cd193ba7244332e4fc05372fb370f4267dc53f
|
|
| MD5 |
ae8524efdaca364e038fd04cec959458
|
|
| BLAKE2b-256 |
c1f510369bfc4727fae34f1f6716ba12b9a1331aa8966f7d262259beed6669e0
|
Provenance
The following attestation bundles were made for maestro_browser_bridge-1.18.0-py3-none-any.whl:
Publisher:
release.yml on shaunchew/remote-ai-maestro
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
maestro_browser_bridge-1.18.0-py3-none-any.whl -
Subject digest:
4d35b49730e4ecfff9af1d06e5cd193ba7244332e4fc05372fb370f4267dc53f - Sigstore transparency entry: 1524950752
- Sigstore integration time:
-
Permalink:
shaunchew/remote-ai-maestro@73c218f88fe3004a71c28d45ede9bb15357a8d52 -
Branch / Tag:
refs/tags/v1.18.0 - Owner: https://github.com/shaunchew
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@73c218f88fe3004a71c28d45ede9bb15357a8d52 -
Trigger Event:
push
-
Statement type: