openclaw browser
Beheer het browserbesturingsvlak van OpenClaw en voer browseracties uit (levenscyclus, profielen, tabbladen, snapshots, screenshots, navigatie, invoer, statusemulatie en debugging).
Gerelateerd:
- Browsertool + API: Browsertool
Algemene vlaggen
--url <gatewayWsUrl>: Gateway WebSocket-URL (standaard uit config).--token <token>: Gateway-token (indien vereist).--timeout <ms>: aanvraagtime-out (ms).--expect-final: wacht op een definitieve Gateway-respons.--browser-profile <name>: kies een browserprofiel (standaard uit config).--json: machineleesbare uitvoer (waar ondersteund).
Snel starten (lokaal)
browser({ action: "doctor" }).
Snelle probleemoplossing
Alsstart mislukt met not reachable after start, los dan eerst de CDP-gereedheid op. Als start en tabs slagen maar open of navigate mislukt, is het browserbesturingsvlak gezond en is de fout meestal navigatie-SSRF-beleid.
Minimale reeks:
Levenscyclus
doctor --deepvoegt een live snapshot-probe toe. Dit is nuttig wanneer de basis-CDP-gereedheid groen is, maar je bewijs wilt dat het huidige tabblad kan worden geïnspecteerd.- Voor
attachOnly- en externe CDP-profielen sluitopenclaw browser stopde actieve besturingssessie en wist het tijdelijke emulatie-overschrijvingen, zelfs wanneer OpenClaw het browserproces niet zelf heeft gestart. - Voor lokaal beheerde profielen stopt
openclaw browser stophet gestarte browserproces. openclaw browser start --headlessgeldt alleen voor die startaanvraag en alleen wanneer OpenClaw een lokaal beheerde browser start. Het herschrijftbrowser.headlessof profielconfig niet, en het heeft geen effect op een browser die al draait.- Op Linux-hosts zonder
DISPLAYofWAYLAND_DISPLAYdraaien lokaal beheerde profielen automatisch headless, tenzijOPENCLAW_BROWSER_HEADLESS=0,browser.headless=falseofbrowser.profiles.<name>.headless=falseexpliciet om een zichtbare browser vraagt.
Als de opdracht ontbreekt
Alsopenclaw browser een onbekende opdracht is, controleer dan plugins.allow in ~/.openclaw/openclaw.json.
Wanneer plugins.allow aanwezig is, vermeld dan expliciet de gebundelde browser-Plugin, tenzij de config al een hoofdblok browser heeft:
browser, bijvoorbeeld browser.enabled=true of browser.profiles.<name>, activeert ook de gebundelde browser-Plugin onder een beperkende Plugin-toelatingslijst.
Gerelateerd: Browsertool
Profielen
Profielen zijn benoemde browserrouteringsconfigs. In de praktijk:openclaw: start of koppelt aan een dedicated door OpenClaw beheerde Chrome-instantie (geïsoleerde map met gebruikersgegevens).user: bestuurt je bestaande aangemelde Chrome-sessie via Chrome DevTools MCP.- aangepaste CDP-profielen: verwijzen naar een lokaal of extern CDP-eindpunt.
Tabbladen
tabs retourneert eerst suggestedTargetId, daarna de stabiele tabId zoals t1, het optionele label en de ruwe targetId. Agents moeten suggestedTargetId teruggeven aan focus, close, snapshots en acties. Je kunt een label toewijzen met open --label, tab new --label of tab label; labels, tabblad-id’s, ruwe doel-id’s en unieke voorvoegsels van doel-id’s worden allemaal geaccepteerd.
Het aanvraagveld heet voor compatibiliteit nog steeds targetId, maar accepteert deze tabbladverwijzingen. Behandel ruwe doel-id’s als diagnostische handles, niet als duurzaam agentgeheugen.
Wanneer Chromium het onderliggende ruwe doel tijdens navigatie of formulierverzending vervangt, houdt OpenClaw de stabiele tabId/het label gekoppeld aan het vervangende tabblad wanneer het de match kan bewijzen. Ruwe doel-id’s blijven vluchtig; geef de voorkeur aan suggestedTargetId.
Snapshot / screenshot / acties
Snapshot:--full-pageis alleen voor pagina-opnames; het kan niet worden gecombineerd met--refof--element.existing-session- /user-profielen ondersteunen paginascreenshots en--ref-screenshots uit snapshotuitvoer, maar geen CSS---element-screenshots.--labelslegt huidige snapshotrefs over de screenshot heen. Op profielen met Playwright-ondersteuning werkt dit met--full-page(labeloverlay voor volledige pagina),--ref(labeloverlay voor elementclip op ARIA-ref) en--element(labeloverlay voor elementclip op CSS-selector); in elementclipmodi worden labels relatief aan het element geprojecteerd. De respons bevat ook eenannotations-array met de bounding box van elke ref. Elk item heeftref,number,role, optioneelnameenbox: {x, y, width, height}; coördinaten staan in de ruimte van de vastgelegde afbeelding (viewport / volledige pagina / relatief aan element). Het veld wordt weggelaten wanneer het leeg is.existing-session-profielen renderen een chrome-mcp-overlay op paginascreenshots, maar gebruiken de Playwright-projectiehelper niet en bevatten geenannotations; CSS---element-screenshots worden daar niet ondersteund. Zonder Playwright of chrome-mcp zijn gelabelde screenshots niet beschikbaar. Eerdere releases negeerden--full-page,--refen--elementop gelabelde Playwright-screenshots en retourneerden altijd een viewportopname; gelabelde screenshots respecteren nu die scopes.snapshot --urlsvoegt ontdekte linkbestemmingen toe aan AI-snapshots zodat agents directe navigatiedoelen kunnen kiezen in plaats van alleen uit linktekst te gokken.
evaluate --fn accepteert een functiebron, een expressie of een statement-body.
Statement-body’s worden verpakt als async functions, dus gebruik return voor de waarde die je terug wilt. Gebruik evaluate --timeout-ms <ms> wanneer de functie aan de paginazijde mogelijk langer nodig heeft dan de standaard evaluate-time-out.
Actieresponsen retourneren de huidige ruwe targetId na door een actie getriggerde paginavervanging wanneer OpenClaw het vervangende tabblad kan bewijzen. Scripts moeten nog steeds suggestedTargetId/labels opslaan en doorgeven voor langlopende workflows.
Bestands- en dialooghelpers:
/tmp/openclaw/downloads standaard, of de geconfigureerde tijdelijke hoofdmap). Gebruik waitfordownload of download wanneer de agent op een specifiek bestand moet wachten en het pad ervan moet retourneren; die expliciete wachters bezitten de volgende download.
Uploads accepteren bestanden uit de tijdelijke uploadshoofdmap van OpenClaw en door OpenClaw beheerde inkomende media, inclusief media://inbound/<id>- en sandbox-relatieve media/inbound/<id>-verwijzingen. Geneste mediarefs, traversal en willekeurige lokale paden blijven geweigerd.
Wanneer een actie een modaal dialoogvenster opent, retourneert de actierespons blockedByDialog met browserState.dialogs.pending; geef --dialog-id door om het direct te beantwoorden. Dialogen die buiten OpenClaw worden afgehandeld, verschijnen onder browserState.dialogs.recent.
Status en opslag
Viewport + emulatie:Debugging
Bestaande Chrome via MCP
Gebruik het ingebouwdeuser-profiel, of maak je eigen existing-session-profiel:
--cdp-url door zodat Chrome MCP in plaats daarvan aan dat eindpunt koppelt.
Gebruik voor Docker, Browserless of andere externe setups waar Chrome MCP-semantiek niet nodig is een CDP-profiel.
Huidige beperkingen van bestaande sessies:
- snapshotgestuurde acties gebruiken refs, geen CSS-selectors
browser.actionTimeoutMsstelt ondersteundeact-verzoeken standaard in op 60000 ms wanneer aanroeperstimeoutMsweglaten;timeoutMsper aanroep heeft nog steeds voorrang.clickis alleen linksklikkentypeondersteunt geenslowly=truepressondersteunt geendelayMshover,scrollintoview,drag,select,fillenevaluateweigeren timeout-overschrijvingen per aanroepselectondersteunt slechts één waardewait --load networkidlewordt niet ondersteund op profielen met bestaande sessies (werkt op beheerde en raw/remote CDP)- bestandsuploads vereisen
--ref/--input-ref, ondersteunen geen CSS--elementen ondersteunen momenteel één bestand tegelijk - dialooghooks ondersteunen geen
--timeout - screenshots ondersteunen pagina-opnamen en
--ref, maar geen CSS--element responsebody, downloadinterceptie, PDF-export en batchacties vereisen nog steeds een beheerde browser of raw CDP-profiel
Externe browserbesturing (nodehostproxy)
Als de Gateway op een andere machine draait dan de browser, voer dan een nodehost uit op de machine met Chrome/Brave/Edge/Chromium. De Gateway proxyt browseracties naar die node (geen aparte browserbesturingsserver vereist). Gebruikgateway.nodes.browser.mode om automatische routering te beheren en gateway.nodes.browser.node om een specifieke node vast te zetten als er meerdere zijn verbonden.
Beveiliging + externe configuratie: Browsertool, Externe toegang, Tailscale, Beveiliging