main
pi-firefox-bidi
Estensione per pi agent: controllo bidirezionale di Firefox tramite
WebDriver BiDi (navigazione, screenshot allegati al contesto, eval JS,
eventi asincroni) e delegazione asincrona ad Antigravity CLI (agy).
Architettura
pi agent (questa estensione) ──HTTP JSON──► Browser Bridge (bridge.py)
└──WebSocket BiDi──► Firefox (ws://127.0.0.1:9222)
- Firefox ESR 128+: Remote Agent BiDi nativo con
--remote-debugging-port 9222(nessun geckodriver). Endpoint unicows://127.0.0.1:9222/session, loopback only. - Browser Bridge (
~/Dev/firefox-bidi/bridge/bridge.py, Python + websockets): possiede la sessione BiDi, espone HTTP JSON su:8787e un endpoint MCP minimale (/mcp) per Antigravity CLI. - Script di avvio (
~/Dev/firefox-bidi/start-firefox-bidi.sh):start→ profilo dedicatobidi-profile(automazione pulita)start-main→ profilo principale (login/cookie intatti; chiude l'istanza attiva se serve, lock esclusivo). Il toolbrowser_start(profile="main")usa automaticamenteFIREFOX_BIDI_FORCE=1: non può richiedere input interattivo.status/stop/foreground
Tool registrati
| Tool | Funzione |
|---|---|
browser_start / browser_stop / browser_status |
ciclo di vita Firefox + bridge |
browser_navigate(url) |
naviga e attende il carico |
browser_screenshot(path?, fullPage?) |
PNG su disco, allegato come immagine al contesto |
browser_eval(expression) |
script.evaluate |
browser_send(method, params) |
comando BiDi grezzo |
browser_events(action, module?) |
coda eventi asincroni (log, network, browsingContext) |
agy_delegate(prompt, conversation?, model?) |
pi → agy headless (--output-format stream-json) |
bridge_notify(event, payload) |
webhook locale :8790 (agy/bridge → pi) |
Installazione
pi install git:git.enne2.net/enne2/pi-firefox-bidi
# oppure in dev: pi -e /home/enne2/Dev/pi-firefox-bidi
Requisiti runtime (sulla macchina, non nel package):
firefox(ESR 128+) epython3conwebsockets(pip install --target <dir> websocketsse PEP 668 blocca--user)- Variabili opzionali:
FIREFOX_BIDI_BRIDGE(defaulthttp://127.0.0.1:8787),FIREFOX_BIDI_SCRIPT,FIREFOX_BIDI_BRIDGE_PY(default~/Dev/firefox-bidi/...)
Sicurezza
Il Remote Agent di Firefox ascolta solo su 127.0.0.1; con start-main il
controllo BiDi espone anche i login reali del profilo: non esporre mai la
porta 9222 fuori dalla macchina. Il bridge MCP richiede token
(FIREFOX_BIDI_TOKEN). Evitare --dangerously-skip-permissions per
l'orchestrazione generale.
Description
Estensione pi: controllo Firefox via WebDriver BiDi + delegazione asincrona ad Antigravity CLI (agy)
136 KiB
Languages
TypeScript
100%