OpenClaw kan een speciaal Chrome/Brave/Edge/Chromium-profiel uitvoeren dat de agent bestuurt. Het is geisoleerd van je persoonlijke browser en wordt beheerd via een kleine lokale controleservice binnen de Gateway (alleen loopback). Beginnersweergave:Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
- Zie het als een afzonderlijke browser alleen voor agents.
- Het
openclaw-profiel raakt je persoonlijke browserprofiel niet aan. - De agent kan tabbladen openen, pagina’s lezen, klikken en typen in een veilige baan.
- Het ingebouwde
user-profiel koppelt aan je echte aangemelde Chrome-sessie via Chrome MCP.
Wat je krijgt
- Een afzonderlijk browserprofiel met de naam openclaw (standaard met oranje accent).
- Deterministische tabbladbesturing (weergeven/openen/focussen/sluiten).
- Agentacties (klikken/typen/slepen/selecteren), snapshots, schermafbeeldingen, PDF’s.
- Een meegeleverde
browser-automation-skill die agents de herstelcyclus voor snapshots, stabiele tabbladen, verouderde referenties en handmatige blokkers leert wanneer de browser- Plugin is ingeschakeld. - Optionele ondersteuning voor meerdere profielen (
openclaw,work,remote, …).
Snel starten
openclaw browser volledig ontbreekt, of als de agent zegt dat de browsertool
niet beschikbaar is, ga dan naar Ontbrekende browseropdracht of tool.
Pluginbeheer
De standaardtoolbrowser is een meegeleverde Plugin. Schakel deze uit om hem te vervangen door een andere Plugin die dezelfde toolnaam browser registreert:
plugins.entries.browser.enabled als browser.enabled=true nodig. Alleen de Plugin uitschakelen verwijdert de openclaw browser-CLI, de Gateway-methode browser.request, de agenttool en de controleservice als een eenheid; je browser.*-configuratie blijft intact voor een vervanging.
Wijzigingen in de browserconfiguratie vereisen een herstart van de Gateway zodat de Plugin zijn service opnieuw kan registreren.
Agentrichtlijnen
Opmerking over toolprofiel:tools.profile: "coding" bevat web_search en
web_fetch, maar bevat niet de volledige browser-tool. Als de agent of een
gestarte subagent browserautomatisering moet gebruiken, voeg browser dan toe in de profiel-
fase:
agents.list[].tools.alsoAllow: ["browser"].
tools.subagents.tools.allow: ["browser"] alleen is niet genoeg, omdat subagent-
beleid wordt toegepast na profielfiltering.
De browser-Plugin levert twee niveaus van agentrichtlijnen:
- De toolbeschrijving van
browserbevat het compacte altijd-actieve contract: kies het juiste profiel, houd referenties op hetzelfde tabblad, gebruiktabId/labels voor tabblad- targeting en laad de browser-Skills voor werk met meerdere stappen. - De meegeleverde
browser-automation-Skills bevat de langere bedieningscyclus: controleer eerst status/tabbladen, label taak-tabbladen, maak een snapshot voor handelingen, maak opnieuw een snapshot na UI-wijzigingen, herstel verouderde referenties een keer, en rapporteer login/2FA/captcha of camera-/microfoonblokkers als handmatige actie in plaats van te gokken.
Ontbrekende browseropdracht of tool
Alsopenclaw browser onbekend is na een upgrade, browser.request ontbreekt, of de agent meldt dat de browsertool niet beschikbaar is, is de gebruikelijke oorzaak een plugins.allow-lijst die browser weglaat en geen root-browser-configuratieblok heeft. Voeg dit toe:
browser-blok, bijvoorbeeld browser.enabled=true of browser.profiles.<name>, activeert de meegeleverde browser-Plugin zelfs onder een beperkende plugins.allow, overeenkomstig het gedrag van kanaalconfiguratie. plugins.entries.browser.enabled=true en tools.alsoAllow: ["browser"] vervangen allowlist-lidmaatschap op zichzelf niet. plugins.allow volledig verwijderen herstelt ook de standaardinstelling.
Profielen: openclaw vs user
openclaw: beheerde, geisoleerde browser (geen extensie vereist).user: ingebouwd Chrome MCP-koppelprofiel voor je echte aangemelde Chrome- sessie.
- Standaard: gebruik de geisoleerde
openclaw-browser. - Geef de voorkeur aan
profile="user"wanneer bestaande aangemelde sessies belangrijk zijn en de gebruiker bij de computer is om op een koppelprompt te klikken of deze goed te keuren. profileis de expliciete override wanneer je een specifieke browsermodus wilt.
browser.defaultProfile: "openclaw" in als je standaard de beheerde modus wilt gebruiken.
Configuratie
Browserinstellingen staan in~/.openclaw/openclaw.json.
Poorten en bereikbaarheid
Poorten en bereikbaarheid
- De controleservice bindt aan loopback op een poort die is afgeleid van
gateway.port(standaard18791= gateway + 2). Het overschrijven vangateway.portofOPENCLAW_GATEWAY_PORTverschuift de afgeleide poorten binnen dezelfde familie. - Lokale
openclaw-profielen wijzencdpPort/cdpUrlautomatisch toe; stel deze alleen in voor externe CDP.cdpUrlgebruikt standaard de beheerde lokale CDP-poort wanneer niet ingesteld. remoteCdpTimeoutMsis van toepassing op externe enattachOnlyCDP HTTP-bereikbaarheids- controles en HTTP-verzoeken om tabbladen te openen;remoteCdpHandshakeTimeoutMsis van toepassing op hun CDP WebSocket-handshakes.localLaunchTimeoutMsis het budget voor een lokaal gestart beheerd Chrome- proces om zijn CDP HTTP-eindpunt beschikbaar te maken.localCdpReadyTimeoutMsis het vervolgbudget voor CDP-websocketgereedheid nadat het proces is ontdekt. Verhoog deze waarden op Raspberry Pi, low-end VPS of oudere hardware waarop Chromium langzaam start. Waarden moeten positieve gehele getallen tot120000ms zijn; ongeldige configuratiewaarden worden geweigerd.- Herhaalde fouten bij starten/gereedheid van beheerd Chrome worden per profiel met een circuit breaker onderbroken. Na meerdere opeenvolgende fouten pauzeert OpenClaw nieuwe start- pogingen kort in plaats van Chromium te starten bij elke browsertoolaanroep. Los het opstartprobleem op, schakel de browser uit als die niet nodig is, of herstart de Gateway na herstel.
actionTimeoutMsis het standaardbudget voor browser-act-verzoeken wanneer de aanroeper geentimeoutMsdoorgeeft. Het clienttransport voegt een klein slackvenster toe zodat lange wachttijden kunnen voltooien in plaats van bij de HTTP-grens te verlopen.tabCleanupis best-effort-opruiming voor tabbladen die zijn geopend door browsersessies van primaire agents. Subagent-, Cron- en ACP-levenscyclusopruiming sluit nog steeds hun expliciet gevolgde tabbladen aan het einde van de sessie; primaire sessies houden actieve tabbladen herbruikbaar en sluiten daarna inactieve of overtollige gevolgde tabbladen op de achtergrond.
SSRF-beleid
SSRF-beleid
- Browsernavigatie en tabblad openen worden vóór navigatie door SSRF bewaakt en daarna op basis van best effort opnieuw gecontroleerd op de uiteindelijke
http(s)-URL. - In strikte SSRF-modus worden externe CDP-eindpuntdetectie en
/json/version-probes (cdpUrl) ook gecontroleerd. - Gateway/provider-omgevingsvariabelen
HTTP_PROXY,HTTPS_PROXY,ALL_PROXYenNO_PROXYproxyen de door OpenClaw beheerde browser niet automatisch. Beheerd Chrome start standaard direct, zodat providerproxy-instellingen de SSRF-controles van de browser niet verzwakken. - Om de beheerde browser zelf via een proxy te laten lopen, geef je expliciete Chrome-proxyvlaggen door via
browser.extraArgs, zoals--proxy-server=...of--proxy-pac-url=.... Strikte SSRF-modus blokkeert expliciete browserproxyrouting tenzij browsertoegang tot het privénetwerk bewust is ingeschakeld. browser.ssrfPolicy.dangerouslyAllowPrivateNetworkstaat standaard uit; schakel dit alleen in wanneer browsertoegang tot het privénetwerk bewust wordt vertrouwd.browser.ssrfPolicy.allowPrivateNetworkblijft ondersteund als legacy-alias.
Profielgedrag
Profielgedrag
attachOnly: truebetekent dat er nooit een lokale browser wordt gestart; er wordt alleen gekoppeld als er al een actief is.headlesskan globaal of per lokaal beheerd profiel worden ingesteld. Waarden per profiel overschrijvenbrowser.headless, zodat het ene lokaal gestarte profiel headless kan blijven terwijl een ander zichtbaar blijft.POST /start?headless=trueenopenclaw browser start --headlessvragen een eenmalige headless-start aan voor lokaal beheerde profielen zonderbrowser.headlessof de profielconfiguratie te herschrijven. Bestaande sessies, attach-only-profielen en externe CDP-profielen weigeren de override omdat OpenClaw die browserprocessen niet start.- Op Linux-hosts zonder
DISPLAYofWAYLAND_DISPLAYschakelen lokaal beheerde profielen automatisch standaard over naar headless wanneer noch de omgeving noch de profiel-/globale configuratie expliciet voor headed-modus kiest.openclaw browser status --jsonrapporteertheadlessSourcealsenv,profile,config,request,linux-display-fallbackofdefault. OPENCLAW_BROWSER_HEADLESS=1dwingt lokaal beheerde starts voor het huidige proces naar headless.OPENCLAW_BROWSER_HEADLESS=0dwingt headed-modus af voor gewone starts en geeft een bruikbare fout terug op Linux-hosts zonder displayserver; een explicietstart --headless-verzoek wint nog steeds voor die ene start.executablePathkan globaal of per lokaal beheerd profiel worden ingesteld. Waarden per profiel overschrijvenbrowser.executablePath, zodat verschillende beheerde profielen verschillende op Chromium gebaseerde browsers kunnen starten. Beide vormen accepteren~voor de homedirectory van je besturingssysteem.color(top-level en per profiel) geeft de browser-UI een tint zodat je kunt zien welk profiel actief is.- Het standaardprofiel is
openclaw(beheerd standalone). GebruikdefaultProfile: "user"om te kiezen voor de aangemelde gebruikersbrowser. - Volgorde voor automatische detectie: systeemstandaardbrowser als die op Chromium is gebaseerd; anders Chrome → Brave → Edge → Chromium → Chrome Canary.
driver: "existing-session"gebruikt Chrome DevTools MCP in plaats van ruwe CDP. StelcdpUrlniet in voor die driver.- Stel
browser.profiles.<name>.userDataDirin wanneer een existing-session-profiel moet koppelen aan een niet-standaard Chromium-gebruikersprofiel (Brave, Edge, enz.). Dit pad accepteert ook~voor de homedirectory van je besturingssysteem.
Brave of een andere op Chromium gebaseerde browser gebruiken
Als je systeemstandaardbrowser op Chromium is gebaseerd (Chrome/Brave/Edge/enz.), gebruikt OpenClaw deze automatisch. Stelbrowser.executablePath in om
automatische detectie te overschrijven. Top-level en per-profiel executablePath-waarden accepteren ~
voor de homedirectory van je besturingssysteem:
- macOS
- Windows
- Linux
executablePath heeft alleen effect op lokaal beheerde profielen die OpenClaw
start. existing-session-profielen koppelen in plaats daarvan aan een al actieve browser,
en externe CDP-profielen gebruiken de browser achter cdpUrl.
Lokale versus externe bediening
- Lokale bediening (standaard): de Gateway start de loopback-besturingsservice en kan een lokale browser starten.
- Externe bediening (node-host): voer een node-host uit op de machine met de browser; de Gateway proxyt browseracties ernaartoe.
- Externe CDP: stel
browser.profiles.<name>.cdpUrl(ofbrowser.cdpUrl) in om te koppelen aan een externe op Chromium gebaseerde browser. In dit geval start OpenClaw geen lokale browser. - Voor extern beheerde CDP-services op loopback (bijvoorbeeld Browserless in
Docker gepubliceerd naar
127.0.0.1), stel ookattachOnly: truein. Loopback-CDP zonderattachOnlywordt behandeld als een lokaal door OpenClaw beheerd browserprofiel. headlessheeft alleen effect op lokaal beheerde profielen die OpenClaw start. Het herstart of wijzigt existing-session- of externe CDP-browsers niet.executablePathvolgt dezelfde regel voor lokaal beheerde profielen. Als je dit op een actief lokaal beheerd profiel wijzigt, wordt dat profiel gemarkeerd voor herstart/reconcile zodat de volgende start de nieuwe binary gebruikt.
- lokaal beheerde profielen:
openclaw browser stopstopt het browserproces dat OpenClaw heeft gestart - attach-only- en externe CDP-profielen:
openclaw browser stopsluit de actieve besturingssessie en geeft Playwright/CDP-emulatie-overrides vrij (viewport, kleurenschema, locale, tijdzone, offlinemodus en vergelijkbare status), ook al is er geen browserproces door OpenClaw gestart
- Querytokens (bijv.
https://provider.example?token=<token>) - HTTP Basic-auth (bijv.
https://user:pass@provider.example)
/json/*-endpoints en bij het verbinden
met de CDP-WebSocket. Geef de voorkeur aan omgevingsvariabelen of secrets managers voor
tokens in plaats van ze vast te leggen in configuratiebestanden.
Node-browserproxy (standaard zonder configuratie)
Als je een node-host uitvoert op de machine met je browser, kan OpenClaw browsertoolaanroepen automatisch naar die node routeren zonder extra browserconfiguratie. Dit is het standaardpad voor externe gateways. Opmerkingen:- De node-host maakt zijn lokale browserbesturingsserver beschikbaar via een proxyopdracht.
- Profielen komen uit de eigen
browser.profiles-configuratie van de node (hetzelfde als lokaal). nodeHost.browserProxy.allowProfilesis optioneel. Laat dit leeg voor het legacy-/standaardgedrag: alle geconfigureerde profielen blijven bereikbaar via de proxy, inclusief routes voor het aanmaken/verwijderen van profielen.- Als je
nodeHost.browserProxy.allowProfilesinstelt, behandelt OpenClaw dit als een least-privilege-grens: alleen profielen op de allowlist kunnen worden gericht, en permanente routes voor het aanmaken/verwijderen van profielen worden op het proxyoppervlak geblokkeerd. - Schakel dit uit als je het niet wilt:
- Op de node:
nodeHost.browserProxy.enabled=false - Op de Gateway:
gateway.nodes.browser.mode="off"
- Op de node:
Browserless (gehoste externe CDP)
Browserless is een gehoste Chromium-service die CDP-verbindings-URL’s via HTTPS en WebSocket beschikbaar maakt. OpenClaw kan beide vormen gebruiken, maar voor een extern browserprofiel is de eenvoudigste optie de directe WebSocket-URL uit de verbindingsdocumentatie van Browserless. Voorbeeld:- Vervang
<BROWSERLESS_API_KEY>door je echte Browserless-token. - Kies het regio-endpoint dat overeenkomt met je Browserless-account (zie hun documentatie).
- Als Browserless je een HTTPS-basis-URL geeft, kun je deze omzetten naar
wss://voor een directe CDP-verbinding of de HTTPS-URL behouden en OpenClaw/json/versionlaten ontdekken.
Browserless Docker op dezelfde host
Wanneer Browserless self-hosted in Docker draait en OpenClaw op de host draait, behandel Browserless dan als een extern beheerde CDP-service:browser.profiles.browserless.cdpUrl moet bereikbaar zijn vanuit het
OpenClaw-proces. Browserless moet ook een overeenkomend bereikbaar endpoint adverteren;
stel Browserless EXTERNAL in op dezelfde publiek-naar-OpenClaw WebSocket-basis, zoals
ws://127.0.0.1:3000, ws://browserless:3000 of een stabiel privé-Docker-
netwerkadres. Als /json/version webSocketDebuggerUrl teruggeeft dat naar
een adres wijst dat OpenClaw niet kan bereiken, kan CDP HTTP er gezond uitzien terwijl het koppelen via WebSocket
nog steeds mislukt.
Laat attachOnly niet unset voor een loopback-Browserless-profiel. Zonder
attachOnly behandelt OpenClaw de loopback-poort als een lokaal beheerd browserprofiel
en kan het melden dat de poort in gebruik is maar niet eigendom is van OpenClaw.
Directe WebSocket-CDP-providers
Sommige gehoste browserservices bieden een direct WebSocket-endpoint in plaats van de standaard op HTTP gebaseerde CDP-discovery (/json/version). OpenClaw accepteert drie
CDP-URL-vormen en kiest automatisch de juiste verbindingsstrategie:
- HTTP(S)-discovery —
http://host[:port]ofhttps://host[:port]. OpenClaw roept/json/versionaan om de WebSocket-debugger-URL te ontdekken en verbindt daarna. Geen WebSocket-fallback. - Directe WebSocket-endpoints —
ws://host[:port]/devtools/<kind>/<id>ofwss://...met een/devtools/browser|page|worker|shared_worker|service_worker/<id>- pad. OpenClaw verbindt rechtstreeks via een WebSocket-handshake en slaat/json/versionvolledig over. - Kale WebSocket-roots —
ws://host[:port]ofwss://host[:port]zonder/devtools/...-pad (bijv. Browserless, Browserbase). OpenClaw probeert eerst HTTP-/json/version-discovery (waarbij het schema wordt genormaliseerd naarhttp/https); als discovery eenwebSocketDebuggerUrlteruggeeft, wordt die gebruikt, anders valt OpenClaw terug op een directe WebSocket-handshake op de kale root. Als het geadverteerde WebSocket-endpoint de CDP-handshake weigert maar de geconfigureerde kale root deze accepteert, valt OpenClaw ook terug op die root. Hierdoor kan een kalews://die naar een lokale Chrome wijst nog steeds verbinden, omdat Chrome alleen WebSocket- upgrades accepteert op het specifieke per-target-pad uit/json/version, terwijl gehoste providers nog steeds hun root-WebSocket-endpoint kunnen gebruiken wanneer hun discovery- endpoint een kortlevende URL adverteert die niet geschikt is voor Playwright CDP.
Browserbase
Browserbase is een cloudplatform voor het uitvoeren van headless browsers met ingebouwde CAPTCHA-oplossing, stealth-modus en residentiële proxy’s.- Meld je aan en kopieer je API Key uit het Overview-dashboard.
- Vervang
<BROWSERBASE_API_KEY>door je echte Browserbase-API-sleutel. - Browserbase maakt automatisch een browsersessie aan bij WebSocket-verbinding, dus er is geen handmatige stap voor sessieaanmaak nodig.
- De gratis tier staat één gelijktijdige sessie en één browseruur per maand toe. Zie pricing voor limieten van betaalde abonnementen.
- Zie de Browserbase-docs voor volledige API- referentie, SDK-gidsen en integratievoorbeelden.
Beveiliging
Kernideeën:- Browserbediening is alleen via loopback; toegang loopt via de authenticatie van de Gateway of Node-koppeling.
- De zelfstandige loopback-browser-HTTP-API gebruikt alleen authenticatie met gedeeld geheim:
bearer-authenticatie met Gateway-token,
x-openclaw-password, of HTTP Basic-authenticatie met het geconfigureerde Gateway-wachtwoord. - Identiteitsheaders van Tailscale Serve en
gateway.auth.mode: "trusted-proxy"authenticeren deze zelfstandige loopback-browser-API niet. - Als browserbediening is ingeschakeld en er geen authenticatie met gedeeld geheim is geconfigureerd, genereert OpenClaw
bij het opstarten automatisch
gateway.auth.tokenen bewaart het in de configuratie. - OpenClaw genereert dat token niet automatisch wanneer
gateway.auth.modealpassword,noneoftrusted-proxyis. - Houd de Gateway en eventuele Node-hosts op een privénetwerk (Tailscale); vermijd publieke blootstelling.
- Behandel externe CDP-URL’s/tokens als geheimen; geef de voorkeur aan omgevingsvariabelen of een secretsmanager.
- Geef waar mogelijk de voorkeur aan versleutelde eindpunten (HTTPS of WSS) en kortlevende tokens.
- Vermijd het rechtstreeks opnemen van langlevende tokens in configuratiebestanden.
Profielen (multi-browser)
OpenClaw ondersteunt meerdere benoemde profielen (routeringsconfiguraties). Profielen kunnen zijn:- door OpenClaw beheerd: een dedicated Chromium-gebaseerde browserinstantie met een eigen gebruikersdatamap + CDP-poort
- extern: een expliciete CDP-URL (Chromium-gebaseerde browser die ergens anders draait)
- bestaande sessie: je bestaande Chrome-profiel via automatische verbinding met Chrome DevTools MCP
- Het profiel
openclawwordt automatisch aangemaakt als het ontbreekt. - Het profiel
useris ingebouwd voor Chrome MCP-koppeling aan een bestaande sessie. - Bestaande-sessieprofielen zijn opt-in naast
user; maak ze aan met--driver existing-session. - Lokale CDP-poorten worden standaard toegewezen vanuit 18800–18899.
- Als een profiel wordt verwijderd, wordt de lokale datamap ervan naar de Prullenmand verplaatst.
?profile=<name>; de CLI gebruikt --browser-profile.
Bestaande sessie via Chrome DevTools MCP
OpenClaw kan ook koppelen aan een actief Chromium-gebaseerd browserprofiel via de officiële Chrome DevTools MCP-server. Dit hergebruikt de tabbladen en aanmeldstatus die al in dat browserprofiel open zijn. Officiële achtergrond- en installatieverwijzingen: Ingebouwd profiel:user
- Het ingebouwde profiel
usergebruikt Chrome MCP-auto-connect, dat zich richt op het standaard lokale Google Chrome-profiel.
userDataDir voor Brave, Edge, Chromium of een niet-standaard Chrome-profiel.
~ wordt uitgebreid naar de thuismap van je besturingssysteem:
- Open de inspectiepagina van die browser voor extern debuggen.
- Schakel extern debuggen in.
- Houd de browser actief en keur de verbindingsprompt goed wanneer OpenClaw koppelt.
- Chrome:
chrome://inspect/#remote-debugging - Brave:
brave://inspect/#remote-debugging - Edge:
edge://inspect/#remote-debugging
statustoontdriver: existing-sessionstatustoonttransport: chrome-mcpstatustoontrunning: truetabsvermeldt je al geopende browsertabbladensnapshotgeeft refs terug uit het geselecteerde live tabblad
- de doelbrowser op basis van Chromium heeft versie
144+ - extern debuggen is ingeschakeld op de inspectiepagina van die browser
- de browser heeft de toestemmingsprompt voor koppeling getoond en je hebt die geaccepteerd
openclaw doctormigreert oude extensiegebaseerde browserconfiguratie en controleert of Chrome lokaal is geïnstalleerd voor standaardprofielen met automatische verbinding, maar het kan browser-side extern debuggen niet voor je inschakelen
- Gebruik
profile="user"wanneer je de aangemelde browserstatus van de gebruiker nodig hebt. - Als je een aangepast bestaande-sessieprofiel gebruikt, geef dan die expliciete profielnaam door.
- Kies deze modus alleen wanneer de gebruiker bij de computer is om de koppelingsprompt goed te keuren.
- de Gateway of Node-host kan
npx chrome-devtools-mcp@latest --autoConnectstarten
- Dit pad heeft een hoger risico dan het geïsoleerde profiel
openclaw, omdat het kan handelen binnen je aangemelde browsersessie. - OpenClaw start de browser niet voor deze driver; het koppelt alleen.
- OpenClaw gebruikt hier de officiële Chrome DevTools MCP-
--autoConnect-flow. AlsuserDataDiris ingesteld, wordt dit doorgegeven om die gebruikersdatamap te targeten. - Bestaande sessie kan koppelen op de geselecteerde host of via een verbonden browser-Node. Als Chrome ergens anders draait en er geen browser-Node is verbonden, gebruik dan externe CDP of een Node-host.
Aangepaste Chrome MCP-start
Overschrijf de gestarte Chrome DevTools MCP-server per profiel wanneer de standaardnpx chrome-devtools-mcp@latest-flow niet is wat je wilt (offline hosts,
vastgepinde versies, meegeleverde binaries):
| Veld | Wat het doet |
|---|---|
mcpCommand | Uitvoerbaar bestand om te starten in plaats van npx. Wordt ongewijzigd opgelost; absolute paden worden gerespecteerd. |
mcpArgs | Argumentarray die letterlijk aan mcpCommand wordt doorgegeven. Vervangt de standaardargumenten chrome-devtools-mcp@latest --autoConnect. |
cdpUrl is ingesteld op een bestaande-sessieprofiel, slaat OpenClaw
--autoConnect over en stuurt het eindpunt automatisch door naar Chrome MCP:
http(s)://...→--browserUrl <url>(DevTools HTTP-discovery-eindpunt).ws(s)://...→--wsEndpoint <url>(directe CDP-WebSocket).
userDataDir kunnen niet worden gecombineerd: wanneer cdpUrl is ingesteld,
wordt userDataDir genegeerd voor het starten van Chrome MCP, omdat Chrome MCP koppelt aan
de actieve browser achter het eindpunt in plaats van een profielmap
te openen.
Existing-session feature limitations
Existing-session feature limitations
Vergeleken met het beheerde profiel
openclaw zijn bestaande-sessiedrivers beperkter:- Schermafbeeldingen — pagina-opnames en
--ref-elementopnames werken; CSS---element-selectors niet.--full-pagekan niet worden gecombineerd met--refof--element. Playwright is niet vereist voor pagina- of ref-gebaseerde elementschermafbeeldingen. - Acties —
click,type,hover,scrollIntoView,dragenselectvereisen snapshotrefs (geen CSS-selectors).click-coordsklikt zichtbare viewportcoördinaten en vereist geen snapshotref.clickgebruikt alleen de linkermuisknop.typeondersteuntslowly=trueniet; gebruikfillofpress.pressondersteuntdelayMsniet.type,hover,scrollIntoView,drag,select,fillenevaluateondersteunen geen time-outs per aanroep.selectaccepteert één waarde. - Wachten / uploaden / dialoogvenster —
wait --urlondersteunt exacte patronen, deeltekenreeksen en glob-patronen;wait --load networkidlewordt niet ondersteund. Uploadhooks vereisenrefofinputRef, één bestand tegelijk, geen CSS-element. Dialoogvensterhooks ondersteunen geen time-outoverschrijvingen. - Alleen beheerde functies — batchacties, PDF-export, downloadonderschepping en
responsebodyvereisen nog steeds het beheerde browserpad.
Isolatiegaranties
- Dedicated gebruikersdatamap: raakt nooit je persoonlijke browserprofiel aan.
- Dedicated poorten: vermijdt
9222om botsingen met ontwikkelworkflows te voorkomen. - Deterministische tabbladbediening:
tabsgeeft eerstsuggestedTargetIdterug, daarna stabieletabId-handles zoalst1, optionele labels en de ruwetargetId. Agents moetensuggestedTargetIdhergebruiken; ruwe id’s blijven beschikbaar voor debuggen en compatibiliteit.
Browserselectie
Bij lokaal starten kiest OpenClaw de eerste beschikbare:- Chrome
- Brave
- Edge
- Chromium
- Chrome Canary
browser.executablePath.
Platformen:
- macOS: controleert
/Applicationsen~/Applications. - Linux: controleert gangbare Chrome/Brave/Edge/Chromium-locaties onder
/usr/bin,/snap/bin,/opt/google,/opt/brave.com,/usr/lib/chromiumen/usr/lib/chromium-browser. - Windows: controleert gangbare installatielocaties.
Bedienings-API (optioneel)
Voor scripts en debuggen stelt de Gateway een kleine alleen-via-loopback HTTP bedienings-API beschikbaar, plus een bijbehorendeopenclaw browser-CLI (snapshots, refs,
wait-power-ups, JSON-uitvoer, debugworkflows). Zie
Browserbedienings-API voor de volledige referentie.
Probleemoplossing
Voor Linux-specifieke problemen (vooral snap Chromium), zie Browserprobleemoplossing. Voor WSL2 Gateway + Windows Chrome split-host-opstellingen, zie Probleemoplossing voor WSL2 + Windows + externe Chrome CDP.CDP-opstartfout versus navigatie-SSRF-blokkade
Dit zijn verschillende foutklassen en ze wijzen naar verschillende codepaden.- CDP-opstart- of gereedheidsfout betekent dat OpenClaw niet kan bevestigen dat het besturingsvlak voor browserbediening gezond is.
- Navigatie-SSRF-blokkade betekent dat het besturingsvlak voor browserbediening gezond is, maar dat een doel voor paginanavigatie door beleid wordt geweigerd.
- CDP-opstart- of gereedheidsfout:
Chrome CDP websocket for profile "openclaw" is not reachable after startRemote CDP for profile "<name>" is not reachable at <cdpUrl>Port <port> is in use for profile "<name>" but not by openclawwanneer een loopback externe CDP-service is geconfigureerd zonderattachOnly: true
- Navigatie-SSRF-blokkade:
open-,navigate-, snapshot- of tabbladopeningsflows mislukken met een browser-/netwerkbeleidsfout terwijlstartentabsnog steeds werken
- Als
startmislukt metnot reachable after start, los dan eerst CDP-gereedheid op. - Als
startslaagt maartabsmislukt, is het besturingsvlak nog steeds ongezond. Behandel dit als een CDP-bereikbaarheidsprobleem, niet als een probleem met paginanavigatie. - Als
startentabsslagen maaropenofnavigatemislukt, is het besturingsvlak van de browser actief en zit de fout in het navigatiebeleid of de doelpagina. - Als
start,tabsenopenallemaal slagen, is het basispad voor beheerde browserbediening gezond.
- Browserconfiguratie gebruikt standaard een fail-closed SSRF-beleidsobject, zelfs wanneer je
browser.ssrfPolicyniet configureert. - Voor het beheerde local loopback-profiel
openclawslaan CDP-healthchecks bewust de afdwinging van browser-SSRF-bereikbaarheid over voor OpenClaw’s eigen lokale besturingsvlak. - Navigatiebescherming staat los hiervan. Een succesvol
start- oftabs-resultaat betekent niet dat een lateropen- ofnavigate-doel is toegestaan.
- Versoepel browser-SSRF-beleid standaard niet.
- Geef de voorkeur aan smalle hostuitzonderingen zoals
hostnameAllowlistofallowedHostnamesboven brede toegang tot privénetwerken. - Gebruik
dangerouslyAllowPrivateNetwork: truealleen in bewust vertrouwde omgevingen waar browsertoegang tot privénetwerken vereist en beoordeeld is.
Agenttools + hoe bediening werkt
De agent krijgt één tool voor browserautomatisering:browser— doctor/status/start/stop/tabs/open/focus/close/snapshot/screenshot/navigate/act
browser snapshotretourneert een stabiele UI-boom (AI of ARIA).browser actgebruikt de snapshot-ref-ID’s om te klikken/typen/slepen/selecteren.browser screenshotlegt pixels vast (volledige pagina, element of gelabelde refs).browser doctorcontroleert of Gateway, Plugin, profiel, browser en tabblad gereed zijn.browseraccepteert:profileom een benoemd browserprofiel te kiezen (openclaw, chrome of externe CDP).target(sandbox|host|node) om te selecteren waar de browser draait.- In sandboxsessies vereist
target: "host"agents.defaults.sandbox.browser.allowHostControl=true. - Als
targetwordt weggelaten: sandboxsessies gebruiken standaardsandbox, niet-sandboxsessies gebruiken standaardhost. - Als een browsergeschikte node is verbonden, kan de tool er automatisch naartoe routeren, tenzij je
target="host"oftarget="node"vastzet.
Gerelateerd
- Tooloverzicht — alle beschikbare agenttools
- Sandboxing — browserbesturing in sandboxomgevingen
- Beveiliging — risico’s en hardening van browserbesturing