127.0.0.1 for browser tool integration.bash
~/.openclaw/workspace/skills/chromium/scripts/start_chromium.sh
Environment variables (all optional):
VariableDefaultDescriptionCHROMIUM_PROFILE_DIR``$HOME/.openclaw/workspace/chromium-profileUser data directoryCHROMIUM_DEBUG_PORT``18801CDP remote debugging portCHROMIUM_LOG_FILE``$HOME/.openclaw/workspace/logs/chromium.logLog file pathCHROMIUM_BINauto-detect ( chromium, chromium-browser, google-chrome)Browser binary
bash
curl -s http://127.0.0.1:18801/json/version
If you get JSON with Browser and webSocketDebuggerUrl — it's ready.
text
browser navigate url=https://example.com
browser wait --load networkidle
browser snapshot
ActionCommandOpen pagebrowser navigate url=<URL>Wait for loadbrowser wait --load networkidleRead page contentbrowser snapshotClick elementbrowser click ref=<ref>Type textbrowser type ref=<ref> text=<text>Scroll to elementbrowser scrollintoview <ref>Take screenshotbrowser screenshotRun JavaScriptbrowser evaluate --fn "document.title"
Always use the default snapshot format (no extra parameters):
text
browser snapshot
Do NOT use:
refs=aria — returns accessibility tree without actionable refsdepth=2 or other depth limits — truncates DOM and hides contentThe default AI format returns full page text with refs (e12, e293, etc.) suitable for click/type.
Single-page apps (React, Next.js, etc.) continuously update the DOM. Refs become stale between snapshots.
After every navigation:
text
browser wait --load networkidle
browser snapshot
Before clicking:
text
browser scrollintoview <ref>
browser click <ref>
If click fails ("Element not found or not visible"):
browser snapshot — never reuse old refsbrowser screenshot to see the visual statebrowser evaluate --fn "document.querySelector('...').click()"To use a site that requires login, export cookies from a browser where you're already logged in and import them:
Step 1 — Export cookies (in your regular browser):
cookies.jsonscp cookies.json server:/tmp/Step 2 — Import:
bash
python3 ~/.openclaw/workspace/skills/chromium/scripts/import_cookies.py \
/tmp/cookies.json \
--domain example.com
Step 3 — Verify by navigating to the site and checking if you're logged in.
WhatPathBrowser profile$CHROMIUM_PROFILE_DIR (default: ~/.openclaw/workspace/chromium-profile)Launch log$CHROMIUM_LOG_FILE (default: ~/.openclaw/workspace/logs/chromium.log)
If CDP doesn't respond within 3 seconds after launch, check the log:
bash
cat ~/.openclaw/workspace/logs/chromium.log
Common issues:
pkill -f "chromium.*remote-debugging" manually.chromium binary — set CHROMIUM_BIN to the correct path (e.g., /usr/bin/google-chrome).