openclaw browser
Gestisci la superficie di controllo del browser di OpenClaw ed esegui azioni del browser (ciclo di vita, profili, schede, snapshot, screenshot, navigazione, input, emulazione dello stato e debug).
Correlato:
- Strumento browser + API: Strumento browser
Flag comuni
--url <gatewayWsUrl>: URL WebSocket del Gateway (predefinito dalla configurazione).--token <token>: token del Gateway (se richiesto).--timeout <ms>: timeout della richiesta (ms).--expect-final: attendi una risposta finale del Gateway.--browser-profile <name>: scegli un profilo browser (predefinito dalla configurazione).--json: output leggibile da macchina (dove supportato).
Avvio rapido (locale)
browser({ action: "doctor" }).
Risoluzione rapida dei problemi
Sestart fallisce con not reachable after start, risolvi prima la prontezza CDP. Se start e tabs riescono ma open o navigate falliscono, il piano di controllo del browser è integro e l’errore di solito riguarda la policy SSRF di navigazione.
Sequenza minima:
Ciclo di vita
doctor --deepaggiunge una sonda snapshot live. È utile quando la prontezza CDP di base è verde ma vuoi una prova che la scheda corrente possa essere ispezionata.- Per i profili
attachOnlye CDP remoti,openclaw browser stopchiude la sessione di controllo attiva e cancella gli override temporanei di emulazione anche quando OpenClaw non ha avviato direttamente il processo del browser. - Per i profili gestiti locali,
openclaw browser stoparresta il processo del browser avviato. openclaw browser start --headlesssi applica solo a quella richiesta di avvio e solo quando OpenClaw avvia un browser gestito locale. Non riscrivebrowser.headlesso la configurazione del profilo, ed è un no-op per un browser già in esecuzione.- Sugli host Linux senza
DISPLAYoWAYLAND_DISPLAY, i profili gestiti locali vengono eseguiti automaticamente headless a meno cheOPENCLAW_BROWSER_HEADLESS=0,browser.headless=falseobrowser.profiles.<name>.headless=falserichiedano esplicitamente un browser visibile.
Se il comando manca
Seopenclaw browser è un comando sconosciuto, controlla plugins.allow in
~/.openclaw/openclaw.json.
Quando plugins.allow è presente, elenca esplicitamente il Plugin browser in bundle
a meno che la configurazione abbia già un blocco radice browser:
browser esplicito, ad esempio browser.enabled=true o
browser.profiles.<name>, attiva anche il Plugin browser in bundle con una
allowlist restrittiva dei Plugin.
Correlato: Strumento browser
Profili
I profili sono configurazioni denominate di routing del browser. In pratica:openclaw: avvia o si collega a un’istanza Chrome dedicata gestita da OpenClaw (directory dati utente isolata).user: controlla la tua sessione Chrome esistente con accesso effettuato tramite Chrome DevTools MCP.- profili CDP personalizzati: puntano a un endpoint CDP locale o remoto.
Schede
tabs restituisce prima suggestedTargetId, poi il tabId stabile come t1,
l’etichetta facoltativa e il targetId grezzo. Gli agenti devono passare
suggestedTargetId di nuovo a focus, close, snapshot e azioni. Puoi
assegnare un’etichetta con open --label, tab new --label o tab label; etichette,
ID scheda, ID target grezzi e prefissi univoci di target-id sono tutti accettati.
Il campo della richiesta si chiama ancora targetId per compatibilità, ma accetta
questi riferimenti di scheda. Considera gli ID target grezzi come handle diagnostici, non come memoria
durevole dell’agente.
Quando Chromium sostituisce il target grezzo sottostante durante una navigazione o l’invio di un modulo,
OpenClaw mantiene il tabId/l’etichetta stabile collegato alla scheda sostitutiva
quando può dimostrare la corrispondenza. Gli ID target grezzi restano volatili; preferisci
suggestedTargetId.
Snapshot / screenshot / azioni
Snapshot:--full-pageè solo per acquisizioni di pagina; non può essere combinato con--refo--element.- I profili
existing-session/usersupportano screenshot di pagina e screenshot--refdall’output snapshot, ma non screenshot CSS--element. --labelssovrappone i riferimenti snapshot correnti allo screenshot. Sui profili basati su Playwright funziona con--full-page(sovrapposizione etichette su pagina intera),--ref(sovrapposizione etichette su clip elemento per riferimento ARIA) e--element(sovrapposizione etichette su clip elemento per selettore CSS); nelle modalità clip elemento, le etichette sono proiettate relativamente all’elemento. La risposta include anche un arrayannotationscon il riquadro di delimitazione di ogni riferimento. Ogni elemento haref,number,role,namefacoltativo ebox: {x, y, width, height}; le coordinate sono nello spazio dell’immagine acquisita (viewport / pagina intera / relativo all’elemento). Il campo viene omesso quando è vuoto. I profiliexisting-sessionrenderizzano un overlay chrome-mcp sugli screenshot di pagina ma non usano l’helper di proiezione Playwright e non includonoannotations; gli screenshot CSS--elementnon sono supportati lì. Senza Playwright o chrome-mcp, gli screenshot etichettati non sono disponibili. Le versioni precedenti ignoravano--full-page,--refe--elementsugli screenshot Playwright etichettati e restituivano sempre un’acquisizione viewport; ora gli screenshot etichettati rispettano tali ambiti.snapshot --urlsaggiunge le destinazioni dei link rilevati agli snapshot AI così gli agenti possono scegliere target di navigazione diretti invece di dedurli dal solo testo del link.
evaluate --fn accetta il sorgente di una funzione, un’espressione o il corpo di uno statement.
I corpi statement vengono incapsulati come funzioni async, quindi usa return per il valore
che vuoi ricevere. Usa evaluate --timeout-ms <ms> quando la funzione lato pagina può
richiedere più tempo del timeout evaluate predefinito.
Le risposte delle azioni restituiscono il targetId grezzo corrente dopo una sostituzione della pagina
innescata dall’azione quando OpenClaw può dimostrare la scheda sostitutiva. Gli script devono comunque
memorizzare e passare suggestedTargetId/etichette per workflow di lunga durata.
Helper per file + dialoghi:
/tmp/openclaw/downloads per impostazione predefinita, o la radice temporanea
configurata). Usa waitfordownload o download quando l’agente deve attendere un
file specifico e restituirne il percorso; quei waiter espliciti possiedono il download successivo.
Gli upload accettano file dalla radice temporanea degli upload di OpenClaw e media inbound
gestiti da OpenClaw, inclusi riferimenti media://inbound/<id> e
media/inbound/<id> relativi alla sandbox. Riferimenti media annidati, traversal e percorsi
locali arbitrari restano rifiutati.
Quando un’azione apre un dialogo modale, la risposta dell’azione restituisce
blockedByDialog con browserState.dialogs.pending; passa --dialog-id per
rispondere direttamente. I dialoghi gestiti fuori da OpenClaw appaiono sotto
browserState.dialogs.recent.
Stato e archiviazione
Viewport + emulazione:Debug
Chrome esistente tramite MCP
Usa il profilouser integrato, oppure crea il tuo profilo existing-session:
--cdp-url così Chrome MCP si collega invece a quell’endpoint.
Per Docker, Browserless o altre configurazioni remote in cui la semantica Chrome MCP non è necessaria, usa un
profilo CDP.
Limiti attuali di existing-session:
- le azioni basate su snapshot usano riferimenti, non selettori CSS
browser.actionTimeoutMsimposta per impostazione predefinita le richiesteactsupportate a 60000 ms quando i chiamanti omettonotimeoutMs;timeoutMsper chiamata ha comunque la precedenza.clickè solo clic sinistrotypenon supportaslowly=truepressnon supportadelayMshover,scrollintoview,drag,select,filledevaluaterifiutano le sostituzioni del timeout per chiamataselectsupporta un solo valorewait --load networkidlenon è supportato sui profili di sessione esistenti (funziona su CDP gestito e raw/remoto)- i caricamenti di file richiedono
--ref/--input-ref, non supportano--elementCSS e attualmente supportano un file alla volta - gli hook di dialogo non supportano
--timeout - gli screenshot supportano le acquisizioni della pagina e
--ref, ma non--elementCSS responsebody, l’intercettazione dei download, l’esportazione PDF e le azioni batch richiedono ancora un browser gestito o un profilo CDP raw
Controllo remoto del browser (proxy host Node)
Se il Gateway viene eseguito su una macchina diversa dal browser, esegui un host Node sulla macchina che ha Chrome/Brave/Edge/Chromium. Il Gateway inoltrerà tramite proxy le azioni del browser a quel nodo (non è richiesto un server separato per il controllo del browser). Usagateway.nodes.browser.mode per controllare l’instradamento automatico e gateway.nodes.browser.node per fissare un nodo specifico se ne sono connessi più di uno.
Sicurezza + configurazione remota: Strumento browser, Accesso remoto, Tailscale, Sicurezza