Browser (dikelola openclaw)
OpenClaw dapat menjalankan profil Chrome/Brave/Edge/Chromium khusus yang dikendalikan agen. Profil ini terisolasi dari browser pribadi Anda dan dikelola melalui layanan kontrol lokal kecil di dalam Gateway (hanya loopback). Tampilan pemula:- Anggap ini sebagai browser terpisah, khusus agen.
- Profil
openclawtidak menyentuh profil browser pribadi Anda. - Agen dapat membuka tab, membaca halaman, mengeklik, dan mengetik di jalur yang aman.
- Profil bawaan
userterhubung ke sesi Chrome asli Anda yang sudah login melalui Chrome MCP.
Yang Anda dapatkan
- Profil browser terpisah bernama openclaw (aksen oranye secara default).
- Kontrol tab deterministik (daftar/buka/fokus/tutup).
- Tindakan agen (klik/ketik/seret/pilih), snapshot, tangkapan layar, PDF.
- Dukungan multi-profil opsional (
openclaw,work,remote, …).
Mulai cepat
openclaw browser sama sekali tidak ada, atau agen mengatakan tool browser
tidak tersedia, lompat ke Perintah atau tool browser hilang.
Kontrol plugin
Toolbrowser default sekarang adalah plugin bawaan yang dikirim dalam keadaan aktif secara
default. Artinya Anda dapat menonaktifkan atau menggantinya tanpa menghapus seluruh
sistem plugin OpenClaw:
browser yang sama. Pengalaman browser default memerlukan keduanya:
plugins.entries.browser.enabledtidak dinonaktifkanbrowser.enabled=true
openclaw browser),
metode gateway (browser.request), tool agen, dan layanan kontrol browser
default semuanya hilang bersama-sama. Config browser.* Anda tetap utuh agar dapat digunakan kembali oleh plugin pengganti.
Plugin browser bawaan juga sekarang memiliki implementasi runtime browser.
Core hanya menyimpan helper Plugin SDK bersama ditambah compatibility re-exports untuk
jalur impor internal lama. Dalam praktiknya, menghapus atau mengganti paket plugin browser
menghapus set fitur browser alih-alih menyisakan runtime kedua milik core.
Perubahan config browser tetap memerlukan restart Gateway agar plugin bawaan
dapat mendaftarkan ulang layanan browsernya dengan pengaturan baru.
Perintah atau tool browser hilang
Jikaopenclaw browser tiba-tiba menjadi perintah yang tidak dikenal setelah upgrade, atau
agen melaporkan bahwa tool browser hilang, penyebab yang paling umum adalah
daftar plugins.allow yang ketat dan tidak menyertakan browser.
Contoh config yang rusak:
browser ke allowlist plugin:
browser.enabled=truesaja tidak cukup ketikaplugins.allowdisetel.plugins.entries.browser.enabled=truesaja juga tidak cukup ketikaplugins.allowdisetel.tools.alsoAllow: ["browser"]tidak memuat plugin browser bawaan. Itu hanya menyesuaikan kebijakan tool setelah plugin sudah dimuat.- Jika Anda tidak memerlukan allowlist plugin yang ketat, menghapus
plugins.allowjuga memulihkan perilaku browser bawaan default.
openclaw browseradalah perintah yang tidak dikenal.browser.requesthilang.- Agen melaporkan tool browser tidak tersedia atau hilang.
Profil: openclaw vs user
openclaw: browser terkelola dan terisolasi (tidak memerlukan extension).user: profil attach Chrome MCP bawaan untuk sesi Chrome asli Anda yang sudah login.
- Default: gunakan browser
openclawyang terisolasi. - Pilih
profile="user"saat sesi login yang sudah ada penting dan pengguna sedang berada di depan komputer untuk mengeklik/menyetujui prompt attach. profileadalah override eksplisit saat Anda menginginkan mode browser tertentu.
browser.defaultProfile: "openclaw" jika Anda ingin mode terkelola sebagai default.
Konfigurasi
Pengaturan browser ada di~/.openclaw/openclaw.json.
- Layanan kontrol browser melakukan bind ke loopback pada port yang diturunkan dari
gateway.port(default:18791, yaitu gateway + 2). - Jika Anda mengoverride port Gateway (
gateway.portatauOPENCLAW_GATEWAY_PORT), port browser turunannya bergeser agar tetap berada dalam “keluarga” yang sama. cdpUrldefault ke port CDP lokal yang dikelola saat tidak disetel.remoteCdpTimeoutMsberlaku untuk pemeriksaan keterjangkauan CDP jarak jauh (bukan loopback).remoteCdpHandshakeTimeoutMsberlaku untuk pemeriksaan keterjangkauan WebSocket CDP jarak jauh.- Navigasi browser/buka-tab dilindungi SSRF sebelum navigasi dan diperiksa ulang sebisanya pada URL
http(s)final setelah navigasi. - Dalam mode SSRF ketat, penemuan/probe endpoint CDP jarak jauh (
cdpUrl, termasuk lookup/json/version) juga diperiksa. browser.ssrfPolicy.dangerouslyAllowPrivateNetworkdefault ketrue(model jaringan tepercaya). Setel kefalseuntuk penelusuran ketat hanya publik.browser.ssrfPolicy.allowPrivateNetworktetap didukung sebagai alias lama untuk kompatibilitas.attachOnly: trueberarti “jangan pernah meluncurkan browser lokal; hanya attach jika browser sudah berjalan.”color+colorper profil memberi warna pada UI browser sehingga Anda dapat melihat profil mana yang aktif.- Profil default adalah
openclaw(browser mandiri yang dikelola OpenClaw). GunakandefaultProfile: "user"untuk memilih browser pengguna yang sudah login. - Urutan deteksi otomatis: browser default sistem jika berbasis Chromium; jika tidak maka Chrome → Brave → Edge → Chromium → Chrome Canary.
- Profil
openclawlokal mengalokasikan otomatiscdpPort/cdpUrl— setel itu hanya untuk CDP jarak jauh. driver: "existing-session"menggunakan Chrome DevTools MCP alih-alih CDP mentah. Jangan setelcdpUrluntuk driver itu.- Setel
browser.profiles.<name>.userDataDirsaat profil existing-session harus attach ke profil pengguna Chromium non-default seperti Brave atau Edge.
Gunakan Brave (atau browser berbasis Chromium lainnya)
Jika browser default sistem Anda berbasis Chromium (Chrome/Brave/Edge/dll), OpenClaw menggunakannya secara otomatis. Setelbrowser.executablePath untuk mengoverride
deteksi otomatis:
Contoh CLI:
Kontrol lokal vs jarak jauh
- Kontrol lokal (default): Gateway memulai layanan kontrol loopback dan dapat meluncurkan browser lokal.
- Kontrol jarak jauh (host node): jalankan host node pada mesin yang memiliki browser; Gateway memproksikan tindakan browser ke host itu.
- CDP jarak jauh: setel
browser.profiles.<name>.cdpUrl(ataubrowser.cdpUrl) untuk attach ke browser berbasis Chromium jarak jauh. Dalam hal ini, OpenClaw tidak akan meluncurkan browser lokal.
- profil terkelola lokal:
openclaw browser stopmenghentikan proses browser yang diluncurkan OpenClaw - profil attach-only dan CDP jarak jauh:
openclaw browser stopmenutup sesi kontrol aktif dan melepas override emulasi Playwright/CDP (viewport, skema warna, locale, timezone, mode offline, dan status serupa), meskipun tidak ada proses browser yang diluncurkan oleh OpenClaw
- Token query (misalnya,
https://provider.example?token=<token>) - Autentikasi HTTP Basic (misalnya,
https://user:pass@provider.example)
/json/* dan saat terhubung
ke CDP WebSocket. Pilih env var atau secrets manager untuk
token alih-alih meng-commit-nya ke file config.
Proksi browser node (default tanpa config)
Jika Anda menjalankan host node di mesin yang memiliki browser Anda, OpenClaw dapat secara otomatis merutekan panggilan tool browser ke node tersebut tanpa config browser tambahan. Ini adalah jalur default untuk gateway jarak jauh. Catatan:- Host node mengekspos server kontrol browser lokalnya melalui proxy command.
- Profil berasal dari config
browser.profilesmilik node sendiri (sama seperti lokal). nodeHost.browserProxy.allowProfilesbersifat opsional. Biarkan kosong untuk perilaku lama/default: semua profil yang dikonfigurasi tetap dapat dijangkau melalui proksi, termasuk rute buat/hapus profil.- Jika Anda menyetel
nodeHost.browserProxy.allowProfiles, OpenClaw memperlakukannya sebagai batas least-privilege: hanya profil dalam allowlist yang dapat ditargetkan, dan rute buat/hapus profil persisten diblokir pada permukaan proksi. - Nonaktifkan jika Anda tidak menginginkannya:
- Pada node:
nodeHost.browserProxy.enabled=false - Pada gateway:
gateway.nodes.browser.mode="off"
- Pada node:
Browserless (CDP jarak jauh terhosting)
Browserless adalah layanan Chromium terhosting yang mengekspos URL koneksi CDP melalui HTTPS dan WebSocket. OpenClaw dapat menggunakan keduanya, tetapi untuk profil browser jarak jauh opsi paling sederhana adalah URL WebSocket langsung dari dokumentasi koneksi Browserless. Contoh:- Ganti
<BROWSERLESS_API_KEY>dengan token Browserless asli Anda. - Pilih endpoint region yang sesuai dengan akun Browserless Anda (lihat dokumentasinya).
- Jika Browserless memberi Anda base URL HTTPS, Anda dapat mengubahnya menjadi
wss://untuk koneksi CDP langsung atau tetap menggunakan URL HTTPS dan biarkan OpenClaw menemukan/json/version.
Penyedia CDP WebSocket langsung
Beberapa layanan browser terhosting mengekspos endpoint WebSocket langsung alih-alih penemuan CDP berbasis HTTP standar (/json/version). OpenClaw mendukung keduanya:
- Endpoint HTTP(S) — OpenClaw memanggil
/json/versionuntuk menemukan URL debugger WebSocket, lalu terhubung. - Endpoint WebSocket (
ws:///wss://) — OpenClaw terhubung langsung, melewati/json/version. Gunakan ini untuk layanan seperti Browserless, Browserbase, atau penyedia mana pun yang memberi Anda URL WebSocket.
Browserbase
Browserbase adalah platform cloud untuk menjalankan browser headless dengan penyelesaian CAPTCHA bawaan, mode stealth, dan proxy residensial.- Daftar dan salin API Key Anda dari dashboard Overview.
- Ganti
<BROWSERBASE_API_KEY>dengan kunci API Browserbase asli Anda. - Browserbase otomatis membuat sesi browser saat koneksi WebSocket dibuka, jadi tidak perlu langkah pembuatan sesi manual.
- Tingkat gratis mengizinkan satu sesi bersamaan dan satu jam browser per bulan. Lihat pricing untuk batas paket berbayar.
- Lihat dokumentasi Browserbase untuk referensi API lengkap, panduan SDK, dan contoh integrasi.
Keamanan
Gagasan utama:- Kontrol browser hanya loopback; akses mengalir melalui autentikasi Gateway atau pairing node.
- API HTTP browser loopback mandiri menggunakan autentikasi shared-secret saja:
autentikasi bearer token gateway,
x-openclaw-password, atau HTTP Basic auth dengan password gateway yang dikonfigurasi. - Header identitas Tailscale Serve dan
gateway.auth.mode: "trusted-proxy"tidak mengautentikasi API browser loopback mandiri ini. - Jika kontrol browser diaktifkan dan tidak ada autentikasi shared-secret yang dikonfigurasi, OpenClaw
otomatis membuat
gateway.auth.tokensaat startup dan menyimpannya ke config. - OpenClaw tidak otomatis membuat token itu saat
gateway.auth.modesudahpassword,none, atautrusted-proxy. - Simpan Gateway dan host node apa pun di jaringan pribadi (Tailscale); hindari eksposur publik.
- Perlakukan URL/token CDP jarak jauh sebagai rahasia; pilih env var atau secrets manager.
- Pilih endpoint terenkripsi (HTTPS atau WSS) dan token berumur pendek jika memungkinkan.
- Hindari menyematkan token berumur panjang langsung di file config.
Profil (multi-browser)
OpenClaw mendukung beberapa profil bernama (routing config). Profil dapat berupa:- dikelola openclaw: instance browser berbasis Chromium khusus dengan direktori data pengguna + port CDP sendiri
- jarak jauh: URL CDP eksplisit (browser berbasis Chromium yang berjalan di tempat lain)
- sesi yang ada: profil Chrome Anda yang ada melalui koneksi otomatis Chrome DevTools MCP
- Profil
openclawdibuat otomatis jika belum ada. - Profil
userbersifat bawaan untuk attach existing-session Chrome MCP. - Profil existing-session selain
userbersifat opt-in; buat dengan--driver existing-session. - Port CDP lokal dialokasikan dari 18800–18899 secara default.
- Menghapus profil memindahkan direktori data lokalnya ke Trash.
?profile=<name>; CLI menggunakan --browser-profile.
Existing-session melalui Chrome DevTools MCP
OpenClaw juga dapat attach ke profil browser berbasis Chromium yang sedang berjalan melalui server Chrome DevTools MCP resmi. Ini menggunakan kembali tab dan status login yang sudah terbuka di profil browser tersebut. Latar belakang resmi dan referensi penyiapan: Profil bawaan:user
- Profil
userbawaan menggunakan koneksi otomatis Chrome MCP, yang menargetkan profil Google Chrome lokal default.
userDataDir untuk Brave, Edge, Chromium, atau profil Chrome non-default:
- Buka halaman inspect browser tersebut untuk remote debugging.
- Aktifkan remote debugging.
- Biarkan browser tetap berjalan dan setujui prompt koneksi saat OpenClaw attach.
- Chrome:
chrome://inspect/#remote-debugging - Brave:
brave://inspect/#remote-debugging - Edge:
edge://inspect/#remote-debugging
statusmenampilkandriver: existing-sessionstatusmenampilkantransport: chrome-mcpstatusmenampilkanrunning: truetabsmenampilkan daftar tab browser Anda yang sudah terbukasnapshotmengembalikan ref dari tab live yang dipilih
- browser berbasis Chromium target versinya
144+ - remote debugging diaktifkan di halaman inspect browser itu
- browser menampilkan prompt persetujuan attach dan Anda menerimanya
openclaw doctormemigrasikan config browser berbasis extension lama dan memeriksa bahwa Chrome terpasang secara lokal untuk profil koneksi otomatis default, tetapi tidak dapat mengaktifkan remote debugging di sisi browser untuk Anda
- Gunakan
profile="user"saat Anda memerlukan status browser pengguna yang sudah login. - Jika Anda menggunakan profil existing-session kustom, teruskan nama profil eksplisit tersebut.
- Pilih mode ini hanya saat pengguna sedang berada di depan komputer untuk menyetujui prompt attach.
- Gateway atau host node dapat menjalankan
npx chrome-devtools-mcp@latest --autoConnect
- Jalur ini berisiko lebih tinggi daripada profil
openclawyang terisolasi karena dapat bertindak di dalam sesi browser Anda yang sudah login. - OpenClaw tidak meluncurkan browser untuk driver ini; OpenClaw hanya attach ke sesi yang sudah ada.
- OpenClaw menggunakan alur
--autoConnectChrome DevTools MCP resmi di sini. JikauserDataDirdisetel, OpenClaw meneruskannya untuk menargetkan direktori data pengguna Chromium eksplisit tersebut. - Tangkapan layar existing-session mendukung tangkapan halaman dan tangkapan elemen
--refdari snapshot, tetapi tidak mendukung selector CSS--element. - Tangkapan layar halaman existing-session berfungsi tanpa Playwright melalui Chrome MCP.
Tangkapan layar elemen berbasis ref (
--ref) juga berfungsi di sana, tetapi--full-pagetidak dapat digabungkan dengan--refatau--element. - Tindakan existing-session masih lebih terbatas daripada jalur browser terkelola:
click,type,hover,scrollIntoView,drag, danselectmemerlukan ref snapshot alih-alih selector CSSclickhanya untuk tombol kiri (tanpa override tombol atau modifier)typetidak mendukungslowly=true; gunakanfillataupresspresstidak mendukungdelayMshover,scrollIntoView,drag,select,fill, danevaluatetidak mendukung override timeout per panggilanselectsaat ini hanya mendukung satu nilai
- Existing-session
wait --urlmendukung pola exact, substring, dan glob seperti driver browser lainnya.wait --load networkidlebelum didukung. - Hook upload existing-session memerlukan
refatauinputRef, mendukung satu file dalam satu waktu, dan tidak mendukung penargetan CSSelement. - Hook dialog existing-session tidak mendukung override timeout.
- Beberapa fitur masih memerlukan jalur browser terkelola, termasuk tindakan batch,
ekspor PDF, intersepsi download, dan
responsebody. - Existing-session bersifat lokal terhadap host. Jika Chrome berada di mesin lain atau namespace jaringan lain, gunakan CDP jarak jauh atau host node.
Jaminan isolasi
- Direktori data pengguna khusus: tidak pernah menyentuh profil browser pribadi Anda.
- Port khusus: menghindari
9222untuk mencegah bentrokan dengan alur kerja dev. - Kontrol tab deterministik: targetkan tab berdasarkan
targetId, bukan “tab terakhir”.
Pemilihan browser
Saat meluncurkan secara lokal, OpenClaw memilih yang pertama tersedia:- Chrome
- Brave
- Edge
- Chromium
- Chrome Canary
browser.executablePath.
Platform:
- macOS: memeriksa
/Applicationsdan~/Applications. - Linux: mencari
google-chrome,brave,microsoft-edge,chromium, dll. - Windows: memeriksa lokasi instalasi umum.
API Kontrol (opsional)
Hanya untuk integrasi lokal, Gateway mengekspos API HTTP loopback kecil:- Status/start/stop:
GET /,POST /start,POST /stop - Tab:
GET /tabs,POST /tabs/open,POST /tabs/focus,DELETE /tabs/:targetId - Snapshot/tangkapan layar:
GET /snapshot,POST /screenshot - Tindakan:
POST /navigate,POST /act - Hook:
POST /hooks/file-chooser,POST /hooks/dialog - Download:
POST /download,POST /wait/download - Debugging:
GET /console,POST /pdf - Debugging:
GET /errors,GET /requests,POST /trace/start,POST /trace/stop,POST /highlight - Jaringan:
POST /response/body - Status:
GET /cookies,POST /cookies/set,POST /cookies/clear - Status:
GET /storage/:kind,POST /storage/:kind/set,POST /storage/:kind/clear - Pengaturan:
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>.
Jika autentikasi gateway shared-secret dikonfigurasi, rute HTTP browser juga memerlukan autentikasi:
Authorization: Bearer <gateway token>x-openclaw-password: <gateway password>atau HTTP Basic auth dengan password tersebut
- API browser loopback mandiri ini tidak menggunakan header trusted-proxy atau identitas Tailscale Serve.
- Jika
gateway.auth.modeadalahnoneatautrusted-proxy, rute browser loopback ini tidak mewarisi mode pembawa identitas tersebut; tetap pertahankan hanya loopback.
Persyaratan Playwright
Beberapa fitur (navigate/act/snapshot AI/role snapshot, tangkapan layar elemen, PDF) memerlukan Playwright. Jika Playwright tidak terpasang, endpoint tersebut mengembalikan error 501 yang jelas. Yang tetap berfungsi tanpa Playwright:- Snapshot ARIA
- Tangkapan layar halaman untuk browser
openclawterkelola saat tersedia WebSocket CDP per tab - Tangkapan layar halaman untuk profil
existing-session/ Chrome MCP - Tangkapan layar existing-session berbasis ref (
--ref) dari output snapshot
navigateact- Snapshot AI / role snapshot
- Tangkapan layar elemen selector CSS (
--element) - Ekspor PDF browser penuh
--full-page; rute mengembalikan fullPage is not supported for element screenshots.
Jika Anda melihat Playwright is not available in this gateway build, instal paket
Playwright penuh (bukan playwright-core) dan mulai ulang gateway, atau instal ulang
OpenClaw dengan dukungan browser.
Instalasi Playwright di Docker
Jika Gateway Anda berjalan di Docker, hindarinpx playwright (konflik override npm).
Gunakan CLI bawaan sebagai gantinya:
PLAYWRIGHT_BROWSERS_PATH (misalnya,
/home/node/.cache/ms-playwright) dan pastikan /home/node dipertahankan melalui
OPENCLAW_HOME_VOLUME atau bind mount. Lihat Docker.
Cara kerjanya (internal)
Alur tingkat tinggi:- Sebuah server kontrol kecil menerima permintaan HTTP.
- Server ini terhubung ke browser berbasis Chromium (Chrome/Brave/Edge/Chromium) melalui CDP.
- Untuk tindakan lanjutan (klik/ketik/snapshot/PDF), server ini menggunakan Playwright di atas CDP.
- Saat Playwright tidak tersedia, hanya operasi non-Playwright yang tersedia.
Referensi cepat CLI
Semua perintah menerima--browser-profile <name> untuk menargetkan profil tertentu.
Semua perintah juga menerima --json untuk output yang dapat dibaca mesin (payload stabil).
Dasar:
openclaw browser statusopenclaw browser startopenclaw browser stopopenclaw browser tabsopenclaw browser tabopenclaw browser tab newopenclaw browser tab select 2openclaw browser tab close 2openclaw browser open https://example.comopenclaw browser focus abcd1234openclaw browser close abcd1234
openclaw browser screenshotopenclaw browser screenshot --full-pageopenclaw browser screenshot --ref 12openclaw browser screenshot --ref e12openclaw browser snapshotopenclaw browser snapshot --format aria --limit 200openclaw browser snapshot --interactive --compact --depth 6openclaw browser snapshot --efficientopenclaw browser snapshot --labelsopenclaw browser snapshot --selector "#main" --interactiveopenclaw browser snapshot --frame "iframe#main" --interactiveopenclaw browser console --level error
- Untuk profil attach-only dan CDP jarak jauh,
openclaw browser stoptetap merupakan perintah pembersihan yang tepat setelah pengujian. Ini menutup sesi kontrol aktif dan membersihkan override emulasi sementara alih-alih mematikan browser dasarnya. openclaw browser errors --clearopenclaw browser requests --filter api --clearopenclaw browser pdfopenclaw browser responsebody "**/api" --max-chars 5000
openclaw browser navigate https://example.comopenclaw browser resize 1280 720openclaw browser click 12 --doubleopenclaw browser click e12 --doubleopenclaw browser type 23 "hello" --submitopenclaw browser press Enteropenclaw browser hover 44openclaw browser scrollintoview e12openclaw browser drag 10 11openclaw browser select 9 OptionA OptionBopenclaw browser download e12 report.pdfopenclaw browser waitfordownload report.pdfopenclaw browser upload /tmp/openclaw/uploads/file.pdfopenclaw browser fill --fields '[{"ref":"1","type":"text","value":"Ada"}]'openclaw browser dialog --acceptopenclaw browser wait --text "Done"openclaw browser wait "#main" --url "**/dash" --load networkidle --fn "window.ready===true"openclaw browser evaluate --fn '(el) => el.textContent' --ref 7openclaw browser highlight e12openclaw browser trace startopenclaw browser trace stop
openclaw browser cookiesopenclaw browser cookies set session abc123 --url "https://example.com"openclaw browser cookies clearopenclaw browser storage local getopenclaw browser storage local set theme darkopenclaw browser storage session clearopenclaw browser set offline onopenclaw browser set headers --headers-json '{"X-Debug":"1"}'openclaw browser set credentials user passopenclaw browser set credentials --clearopenclaw browser set geo 37.7749 -122.4194 --origin "https://example.com"openclaw browser set geo --clearopenclaw browser set media darkopenclaw browser set timezone America/New_Yorkopenclaw browser set locale en-USopenclaw browser set device "iPhone 14"
uploaddandialogadalah panggilan arming; jalankan keduanya sebelum klik/tekan yang memicu chooser/dialog.- Jalur output download dan trace dibatasi ke root temp OpenClaw:
- trace:
/tmp/openclaw(fallback:${os.tmpdir()}/openclaw) - download:
/tmp/openclaw/downloads(fallback:${os.tmpdir()}/openclaw/downloads)
- trace:
- Jalur upload dibatasi ke root upload temp OpenClaw:
- upload:
/tmp/openclaw/uploads(fallback:${os.tmpdir()}/openclaw/uploads)
- upload:
uploadjuga dapat menyetel input file secara langsung melalui--input-refatau--element.snapshot:--format ai(default saat Playwright terpasang): mengembalikan snapshot AI dengan ref numerik (aria-ref="<n>").--format aria: mengembalikan pohon aksesibilitas (tanpa ref; hanya untuk inspeksi).--efficient(atau--mode efficient): preset role snapshot ringkas (interactive + compact + depth + maxChars lebih rendah).- Default config (hanya tool/CLI): setel
browser.snapshotDefaults.mode: "efficient"untuk menggunakan snapshot efisien saat pemanggil tidak meneruskan mode (lihat Konfigurasi gateway). - Opsi role snapshot (
--interactive,--compact,--depth,--selector) memaksa role-based snapshot dengan ref sepertiref=e12. --frame "<iframe selector>"membatasi role snapshot ke iframe (berpasangan dengan role ref sepertie12).--interactivemenghasilkan daftar datar elemen interaktif yang mudah dipilih (terbaik untuk mendorong tindakan).--labelsmenambahkan tangkapan layar khusus viewport dengan label ref yang dioverlay (mencetakMEDIA:<path>).
click/type/dll memerlukanrefdarisnapshot(baik numerik12maupun role refe12). Selector CSS sengaja tidak didukung untuk tindakan.
Snapshot dan ref
OpenClaw mendukung dua gaya “snapshot”:-
Snapshot AI (ref numerik):
openclaw browser snapshot(default;--format ai)- Output: snapshot teks yang menyertakan ref numerik.
- Tindakan:
openclaw browser click 12,openclaw browser type 23 "hello". - Secara internal, ref diresolusikan melalui
aria-refmilik Playwright.
-
Role snapshot (role ref seperti
e12):openclaw browser snapshot --interactive(atau--compact,--depth,--selector,--frame)- Output: daftar/pohon berbasis role dengan
[ref=e12](dan opsional[nth=1]). - Tindakan:
openclaw browser click e12,openclaw browser highlight e12. - Secara internal, ref diresolusikan melalui
getByRole(...)(ditambahnth()untuk duplikat). - Tambahkan
--labelsuntuk menyertakan tangkapan layar viewport dengan labele12yang dioverlay.
- Output: daftar/pohon berbasis role dengan
- Ref tidak stabil antar navigasi; jika sesuatu gagal, jalankan ulang
snapshotdan gunakan ref baru. - Jika role snapshot diambil dengan
--frame, role ref dibatasi ke iframe tersebut sampai role snapshot berikutnya.
Peningkatan wait
Anda dapat menunggu lebih dari sekadar waktu/teks:
- Tunggu URL (glob didukung oleh Playwright):
openclaw browser wait --url "**/dash"
- Tunggu status load:
openclaw browser wait --load networkidle
- Tunggu predikat JS:
openclaw browser wait --fn "window.ready===true"
- Tunggu selector menjadi terlihat:
openclaw browser wait "#main"
Alur kerja debugging
Saat tindakan gagal (misalnya “not visible”, “strict mode violation”, “covered”):openclaw browser snapshot --interactive- Gunakan
click <ref>/type <ref>(pilih role ref dalam mode interactive) - Jika masih gagal:
openclaw browser highlight <ref>untuk melihat apa yang ditargetkan Playwright - Jika halaman berperilaku aneh:
openclaw browser errors --clearopenclaw browser requests --filter api --clear
- Untuk debugging mendalam: rekam trace:
openclaw browser trace start- reproduksi masalahnya
openclaw browser trace stop(mencetakTRACE:<path>)
Output JSON
--json ditujukan untuk skrip dan tool terstruktur.
Contoh:
refs plus blok stats kecil (lines/chars/refs/interactive) agar tool dapat menalar ukuran dan kepadatan payload.
Kenop status dan environment
Ini berguna untuk alur kerja “buat situs berperilaku seperti 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"}'(legacyset headers --json '{"X-Debug":"1"}'tetap didukung) - HTTP basic auth:
set credentials user pass(atau--clear) - Geolokasi:
set geo <lat> <lon> --origin "https://example.com"(atau--clear) - Media:
set media dark|light|no-preference|none - Timezone / locale:
set timezone ...,set locale ... - Device / viewport:
set device "iPhone 14"(preset perangkat Playwright)set viewport 1280 720
Keamanan & privasi
- Profil browser openclaw dapat berisi sesi yang sudah login; perlakukan sebagai sesuatu yang sensitif.
browser act kind=evaluate/openclaw browser evaluatedanwait --fnmengeksekusi JavaScript arbitrer dalam konteks halaman. Prompt injection dapat mengarahkan ini. Nonaktifkan denganbrowser.evaluateEnabled=falsejika Anda tidak membutuhkannya.- Untuk login dan catatan anti-bot (X/Twitter, dll.), lihat Login browser + posting X/Twitter.
- Simpan Gateway/host node tetap privat (hanya loopback atau tailnet).
- Endpoint CDP jarak jauh sangat kuat; tunnel dan lindungi endpoint tersebut.
Pemecahan masalah
Untuk masalah khusus Linux (terutama snap Chromium), lihat Pemecahan masalah browser. Untuk penyiapan host-terpisah WSL2 Gateway + Chrome Windows, lihat Pemecahan masalah WSL2 + Windows + CDP Chrome jarak jauh.Tool agen + cara kerja kontrol
Agen mendapatkan satu tool untuk otomatisasi browser:browser— status/start/stop/tabs/open/focus/close/snapshot/screenshot/navigate/act
browser snapshotmengembalikan pohon UI yang stabil (AI atau ARIA).browser actmenggunakan IDrefdari snapshot untuk klik/ketik/seret/pilih.browser screenshotmenangkap piksel (halaman penuh atau elemen).browsermenerima:profileuntuk memilih profil browser bernama (openclaw, chrome, atau CDP jarak jauh).target(sandbox|host|node) untuk memilih tempat browser berada.- Dalam sesi sandboxed,
target: "host"memerlukanagents.defaults.sandbox.browser.allowHostControl=true. - Jika
targetdihilangkan: sesi sandboxed default kesandbox, sesi non-sandbox default kehost. - Jika node yang mendukung browser terhubung, tool dapat otomatis diarahkan ke node itu kecuali Anda mengunci
target="host"atautarget="node".
Terkait
- Ikhtisar Tools — semua tool agen yang tersedia
- Sandboxing — kontrol browser dalam environment sandboxed
- Keamanan — risiko kontrol browser dan hardening