Per configurazione, configurazione avanzata e risoluzione dei problemi, consulta Browser. Questa pagina è il riferimento per l’API HTTP di controllo locale, la CLIDocumentation Index
Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
openclaw browser
e i pattern di scripting (snapshot, riferimenti, attese, flussi di debug).
API di controllo (opzionale)
Solo per integrazioni locali, il Gateway espone una piccola API HTTP su local loopback:- Stato/avvio/arresto:
GET /,POST /start,POST /stop - Schede:
GET /tabs,POST /tabs/open,POST /tabs/focus,DELETE /tabs/:targetId - Snapshot/screenshot:
GET /snapshot,POST /screenshot - Azioni:
POST /navigate,POST /act - Hook:
POST /hooks/file-chooser,POST /hooks/dialog - Download:
POST /download,POST /wait/download - Autorizzazioni:
POST /permissions/grant - Debug:
GET /console,POST /pdf - Debug:
GET /errors,GET /requests,POST /trace/start,POST /trace/stop,POST /highlight - Rete:
POST /response/body - Stato:
GET /cookies,POST /cookies/set,POST /cookies/clear - Stato:
GET /storage/:kind,POST /storage/:kind/set,POST /storage/:kind/clear - Impostazioni:
POST /set/offline,POST /set/headers,POST /set/credentials,POST /set/geolocation,POST /set/media,POST /set/timezone,POST /set/locale,POST /set/device
?profile=<name>. POST /start?headless=true richiede un
avvio headless una tantum per i profili locali gestiti senza modificare la
configurazione persistente del browser; i profili attach-only, CDP remoto e
existing-session rifiutano tale override perché OpenClaw non avvia quei processi
browser.
Se l’autenticazione del gateway con segreto condiviso è configurata, anche le rotte HTTP del browser richiedono l’autenticazione:
Authorization: Bearer <gateway token>x-openclaw-password: <gateway password>o autenticazione HTTP Basic con quella password
- Questa API browser local loopback autonoma non consuma intestazioni di identità trusted-proxy o Tailscale Serve.
- Se
gateway.auth.modeènoneotrusted-proxy, queste rotte browser local loopback non ereditano quelle modalità con identità; mantienile solo su local loopback.
Contratto di errore di /act
POST /act usa una risposta di errore strutturata per la validazione a livello di rotta e
per gli errori di policy:
code attuali:
ACT_KIND_REQUIRED(HTTP 400):kindmancante o non riconosciuto.ACT_INVALID_REQUEST(HTTP 400): normalizzazione o validazione del payload dell’azione non riuscita.ACT_SELECTOR_UNSUPPORTED(HTTP 400):selectorè stato usato con un tipo di azione non supportato.ACT_EVALUATE_DISABLED(HTTP 403):evaluate(owait --fn) è disabilitato dalla configurazione.ACT_TARGET_ID_MISMATCH(HTTP 403):targetIddi livello superiore o in batch è in conflitto con il target della richiesta.ACT_EXISTING_SESSION_UNSUPPORTED(HTTP 501): azione non supportata per i profili existing-session.
{ "error": "<message>" } senza un
campo code.
Requisito Playwright
Alcune funzionalità (navigate/act/snapshot AI/snapshot dei ruoli, screenshot di elementi, PDF) richiedono Playwright. Se Playwright non è installato, questi endpoint restituiscono un chiaro errore 501. Cosa funziona comunque senza Playwright:- Snapshot ARIA
- Snapshot di accessibilità in stile ruolo (
--interactive,--compact,--depth,--efficient) quando è disponibile un WebSocket CDP per scheda. Questo è un fallback per ispezione e scoperta dei riferimenti; Playwright rimane il motore principale per le azioni. - Screenshot di pagina per il browser
openclawgestito quando è disponibile un WebSocket CDP per scheda - Screenshot di pagina per profili
existing-session/ Chrome MCP - Screenshot basati su riferimenti
existing-session(--ref) dall’output dello snapshot
navigateact- Snapshot AI che dipendono dal formato snapshot AI nativo di Playwright
- Screenshot di elementi con selettore CSS (
--element) - esportazione PDF completa del browser
--full-page; la rotta restituisce fullPage is not supported for element screenshots.
Se vedi Playwright is not available in this gateway build, nel Gateway confezionato
manca la dipendenza runtime core del browser. Reinstalla o aggiorna OpenClaw, quindi
riavvia il gateway. Per Docker, installa anche i binari del browser Chromium come
mostrato di seguito.
Installazione Playwright per Docker
Se il tuo Gateway gira in Docker, evitanpx playwright (conflitti di override npm).
Per immagini personalizzate, integra Chromium nell’immagine:
PLAYWRIGHT_BROWSERS_PATH (per esempio,
/home/node/.cache/ms-playwright) e assicurati che /home/node sia persistito tramite
OPENCLAW_HOME_VOLUME o un bind mount. OpenClaw rileva automaticamente il Chromium
persistito su Linux. Consulta Docker.
Come funziona (interno)
Un piccolo server di controllo local loopback accetta richieste HTTP e si connette ai browser basati su Chromium tramite CDP. Le azioni avanzate (click/type/snapshot/PDF) passano attraverso Playwright sopra CDP; quando Playwright manca, sono disponibili solo operazioni non Playwright. L’agente vede un’unica interfaccia stabile mentre browser e profili locali/remoti vengono scambiati liberamente sotto il cofano.Riferimento rapido CLI
Tutti i comandi accettano--browser-profile <name> per scegliere come target un profilo specifico e --json per output leggibile da macchina.
Basics: status, tabs, open/focus/close
Basics: status, tabs, open/focus/close
Inspection: screenshot, snapshot, console, errors, requests
Inspection: screenshot, snapshot, console, errors, requests
Actions: navigate, click, type, drag, wait, evaluate
Actions: navigate, click, type, drag, wait, evaluate
State: cookies, storage, offline, headers, geo, device
State: cookies, storage, offline, headers, geo, device
uploadedialogsono chiamate di arming; eseguile prima del click/pressione di tasto che attiva il selettore/file chooser o la finestra di dialogo.click/type/ecc. richiedono unrefdasnapshot(numerico12, riferimento ruoloe12o riferimento ARIA azionabileax12). I selettori CSS non sono intenzionalmente supportati per le azioni. Usaclick-coordsquando la posizione visibile nel viewport è l’unico target affidabile.- I percorsi di download, trace e upload sono vincolati alle radici temporanee di OpenClaw:
/tmp/openclaw{,/downloads,/uploads}(fallback:${os.tmpdir()}/openclaw/...). uploadpuò anche impostare direttamente gli input file tramite--input-refo--element.
suggestedTargetId da tabs.
Panoramica rapida dei flag snapshot:
--format ai(predefinito con Playwright): snapshot AI con riferimenti numerici (aria-ref="<n>").--format aria: albero di accessibilità con riferimentiaxN. Quando Playwright è disponibile, OpenClaw associa i riferimenti con ID DOM backend alla pagina live, così le azioni successive possono usarli; altrimenti considera l’output solo per ispezione.--efficient(o--mode efficient): preset compatto per snapshot dei ruoli. Impostabrowser.snapshotDefaults.mode: "efficient"per renderlo predefinito (vedi Configurazione Gateway).--interactive,--compact,--depth,--selectorforzano uno snapshot dei ruoli con riferimentiref=e12.--frame "<iframe>"limita gli snapshot dei ruoli a un iframe.--labelsaggiunge uno screenshot solo del viewport con label dei riferimenti sovrapposte (stampaMEDIA:<path>).--urlsaggiunge agli snapshot AI le destinazioni dei link scoperte.
Snapshot e riferimenti
OpenClaw supporta due stili di “snapshot”:-
Snapshot AI (riferimenti numerici):
openclaw browser snapshot(predefinito;--format ai)- Output: uno snapshot testuale che include riferimenti numerici.
- Azioni:
openclaw browser click 12,openclaw browser type 23 "hello". - Internamente, il riferimento viene risolto tramite
aria-refdi Playwright.
-
Snapshot dei ruoli (riferimenti ruolo come
e12):openclaw browser snapshot --interactive(o--compact,--depth,--selector,--frame)- Output: un elenco/albero basato su ruoli con
[ref=e12](e[nth=1]opzionale). - Azioni:
openclaw browser click e12,openclaw browser highlight e12. - Internamente, il riferimento viene risolto tramite
getByRole(...)(piùnth()per i duplicati). - Aggiungi
--labelsper includere uno screenshot del viewport con labele12sovrapposte. - Aggiungi
--urlsquando il testo del link è ambiguo e l’agente ha bisogno di target di navigazione concreti.
- Output: un elenco/albero basato su ruoli con
-
Snapshot ARIA (riferimenti ARIA come
ax12):openclaw browser snapshot --format aria- Output: l’albero di accessibilità come nodi strutturati.
- Azioni:
openclaw browser click ax12funziona quando il percorso dello snapshot può associare il riferimento tramite Playwright e gli ID DOM del backend Chrome.
-
Se Playwright non è disponibile, gli snapshot ARIA possono comunque essere utili per
l’ispezione, ma i riferimenti potrebbero non essere eseguibili. Esegui di nuovo lo snapshot con
--format aio--interactivequando ti servono riferimenti per le azioni. -
Prova Docker per il percorso di fallback raw-CDP:
pnpm test:docker:browser-cdp-snapshotavvia Chromium con CDP, eseguebrowser doctor --deepe verifica che gli snapshot dei ruoli includano URL dei link, elementi cliccabili promossi dal cursore e metadati iframe.
- I riferimenti non sono stabili tra le navigazioni; se qualcosa fallisce, esegui di nuovo
snapshote usa un riferimento nuovo. /actrestituisce l’attualetargetIdraw dopo una sostituzione attivata dall’azione quando può provare la scheda sostitutiva. Continua a usare ID/etichette di schede stabili per i comandi successivi.- Se lo snapshot dei ruoli è stato acquisito con
--frame, i riferimenti dei ruoli hanno ambito limitato a quell’iframe fino allo snapshot dei ruoli successivo. - I riferimenti
axNsconosciuti o obsoleti falliscono rapidamente invece di ricadere sul selettorearia-refdi Playwright. Esegui uno snapshot nuovo sulla stessa scheda quando accade.
Funzioni avanzate di attesa
Puoi attendere più di solo tempo/testo:- Attendi l’URL (glob supportati da Playwright):
openclaw browser wait --url "**/dash"
- Attendi lo stato di caricamento:
openclaw browser wait --load networkidle
- Attendi un predicato JS:
openclaw browser wait --fn "window.ready===true"
- Attendi che un selettore diventi visibile:
openclaw browser wait "#main"
Flussi di lavoro di debug
Quando un’azione fallisce (ad es. “non visibile”, “violazione della strict mode”, “coperto”):openclaw browser snapshot --interactive- Usa
click <ref>/type <ref>(preferisci i riferimenti di ruolo in modalità interattiva) - Se continua a fallire:
openclaw browser highlight <ref>per vedere cosa sta puntando Playwright - Se la pagina si comporta in modo anomalo:
openclaw browser errors --clearopenclaw browser requests --filter api --clear
- Per debug approfondito: registra una traccia:
openclaw browser trace start- riproduci il problema
openclaw browser trace stop(stampaTRACE:<path>)
Output JSON
--json è per scripting e strumenti strutturati.
Esempi:
refs più un piccolo blocco stats (lines/chars/refs/interactive) così gli strumenti possono ragionare su dimensione e densità del payload.
Controlli di stato e ambiente
Questi sono utili per flussi di lavoro “fai comportare il sito come X”:- Cookie:
cookies,cookies set,cookies clear - Storage:
storage local|session get|set|clear - Offline:
set offline on|off - Header:
set headers --headers-json '{"X-Debug":"1"}'(il legacyset headers --json '{"X-Debug":"1"}'resta supportato) - Autenticazione HTTP basic:
set credentials user pass(o--clear) - Geolocalizzazione:
set geo <lat> <lon> --origin "https://example.com"(o--clear) - Media:
set media dark|light|no-preference|none - Fuso orario / locale:
set timezone ...,set locale ... - Dispositivo / viewport:
set device "iPhone 14"(preset dispositivo Playwright)set viewport 1280 720
Sicurezza e privacy
- Il profilo del browser openclaw può contenere sessioni autenticate; trattalo come sensibile.
browser act kind=evaluate/openclaw browser evaluateewait --fneseguono JavaScript arbitrario nel contesto della pagina. La prompt injection può indirizzarlo. Disabilitalo conbrowser.evaluateEnabled=falsese non ti serve.- Per accessi e note anti-bot (X/Twitter, ecc.), consulta Accesso browser + pubblicazione X/Twitter.
- Mantieni privato l’host Gateway/node (local loopback o solo tailnet).
- Gli endpoint CDP remoti sono potenti; crea tunnel e proteggili.
Correlati
- Browser - panoramica, configurazione, profili, sicurezza
- Accesso browser - accesso ai siti
- Risoluzione dei problemi del browser su Linux
- Risoluzione dei problemi del browser WSL2