openclaw browser
CLI ve betik oluşturma kalıpları (anlık görüntüler, referanslar, beklemeler, hata ayıklama akışları) için başvuru kaynağıdır.
Denetim API’si (isteğe bağlı)
Gateway, yalnızca yerel entegrasyonlar için küçük bir geri döngü HTTP API’si sunar. Bu bağımsız sunucu isteğe bağlıdır — gateway hizmeti ortamındaOPENCLAW_EAGER_BROWSER_CONTROL_SERVER=1 ortam değişkenini ayarlayın
ve HTTP uç noktalarının kullanılabilir hâle gelmesi için gateway’i yeniden başlatın. Bu
değişken olmadan tarayıcı denetim çalışma zamanı CLI ve
ajan araçları üzerinden çalışmaya devam eder, ancak geri döngü denetim bağlantı noktasında hiçbir şey dinlemez.
- Durum/başlatma/durdurma:
GET /,GET /doctor,POST /start,POST /stop,POST /reset-profile - Profiller:
GET /profiles,POST /profiles/create,DELETE /profiles/:name - Sekmeler:
GET /tabs,POST /tabs/open,POST /tabs/focus,DELETE /tabs/:targetId,POST /tabs/action - Anlık görüntü/ekran görüntüsü:
GET /snapshot,POST /screenshot - Eylemler:
POST /navigate,POST /act - Kancalar:
POST /hooks/file-chooser,POST /hooks/dialog - İndirmeler:
POST /download,POST /wait/download - İzinler:
POST /permissions/grant - Hata ayıklama:
GET /console,POST /pdf - Hata ayıklama:
GET /errors,GET /requests,GET /dialogs,POST /trace/start,POST /trace/stop,POST /highlight - Ağ:
POST /response/body - Durum:
GET /cookies,POST /cookies/set,POST /cookies/clear - Durum:
GET /storage/:kind,POST /storage/:kind/set,POST /storage/:kind/clear - Ayarlar:
POST /set/offline,POST /set/headers,POST /set/credentials,POST /set/geolocation,POST /set/media,POST /set/timezone,POST /set/locale,POST /set/device
POST /tabs/action, CLI’ın browser tab alt komutları
({"action":"new"|"label"|"select"|"close"|"list", ...}) için dâhilî olarak kullandığı toplu biçimdir;
doğrudan betik yazarken yukarıdaki tek amaçlı sekme rotalarını tercih edin.
Tüm uç noktalar ?profile=<name> kabul eder. POST /start?headless=true, kalıcı
tarayıcı yapılandırmasını değiştirmeden yerel yönetilen profiller için
tek seferlik başsız başlatma talep eder; yalnızca bağlanma, uzak CDP ve mevcut oturum
profilleri bu geçersiz kılmayı reddeder çünkü OpenClaw bu tarayıcı süreçlerini başlatmaz.
Sekme uç noktalarında targetId, uyumluluk alanı adıdır. GET /tabs veya
POST /tabs/open içinden suggestedTargetId iletmeyi tercih edin; etiketler ve t1
gibi tabId tanıtıcıları da kabul edilir. Ham CDP hedef kimlikleri ve benzersiz ham
hedef kimliği önekleri çalışmaya devam eder, ancak bunlar değişken tanılama tanıtıcılarıdır.
Paylaşılan gizli anahtarlı gateway kimlik doğrulaması yapılandırılmışsa tarayıcı HTTP rotaları da kimlik doğrulaması gerektirir:
Authorization: Bearer <gateway token>x-openclaw-password: <gateway password>veya bu parola ile HTTP Basic kimlik doğrulaması
- Bu bağımsız geri döngü tarayıcı API’si, güvenilir proxy veya Tailscale Serve kimlik üst bilgilerini kullanmaz.
gateway.auth.mode,noneveyatrusted-proxyise bu geri döngü tarayıcı rotaları, kimlik taşıyan bu modları devralmaz; bunları yalnızca geri döngüde tutun.
/act hata sözleşmesi
POST /act, rota düzeyindeki doğrulama ve
politika hataları için yapılandırılmış bir hata yanıtı kullanır:
code değerleri:
ACT_KIND_REQUIRED(HTTP 400):kindeksik veya tanınmıyor.ACT_INVALID_REQUEST(HTTP 400): eylem yükü normalleştirme veya doğrulamadan geçemedi.ACT_SELECTOR_UNSUPPORTED(HTTP 400):selectordesteklenmeyen bir eylem türüyle kullanıldı.ACT_EVALUATE_DISABLED(HTTP 403):evaluate(veyawait --fn) yapılandırma tarafından devre dışı bırakıldı.ACT_TARGET_ID_MISMATCH(HTTP 403): üst düzey veya toplutargetId, istek hedefiyle çakışıyor.ACT_EXISTING_SESSION_UNSUPPORTED(HTTP 501): eylem, mevcut oturum profilleri için desteklenmiyor.
code alanı olmadan da
{ "error": "<message>" } döndürebilir.
Playwright gereksinimi
Bazı özellikler (gezinme/eylem/AI anlık görüntüsü/rol anlık görüntüsü, öğe ekran görüntüleri, PDF) Playwright gerektirir. Playwright yüklü değilse bu uç noktalar açık bir 501 hatası döndürür. Playwright olmadan çalışmaya devam edenler:- ARIA anlık görüntüleri
- Sekme başına CDP WebSocket kullanılabilir olduğunda rol tarzı erişilebilirlik anlık görüntüleri
(
--interactive,--compact,--depth,--efficient). Bu, inceleme ve referans keşfi için bir geri dönüş seçeneğidir; Playwright birincil eylem motoru olmaya devam eder. - Sekme başına CDP WebSocket kullanılabilir olduğunda yönetilen
openclawtarayıcısının sayfa ekran görüntüleri existing-session/ Chrome MCP profillerinin sayfa ekran görüntüleri- Anlık görüntü çıktısından
existing-sessionreferans tabanlı ekran görüntüleri (--ref)
navigateact- Playwright’ın yerel AI anlık görüntü biçimine bağlı AI anlık görüntüleri
- CSS seçicili öğe ekran görüntüleri (
--element) - tam tarayıcı PDF dışa aktarımı
--full-page değerini reddeder; rota fullPage is not supported for element screenshots döndürür.
Playwright is not available in this gateway build görürseniz paketlenmiş
Gateway’de temel tarayıcı çalışma zamanı bağımlılığı eksiktir. OpenClaw’u yeniden yükleyin veya güncelleyin,
ardından gateway’i yeniden başlatın. Docker için aşağıda gösterildiği gibi Chromium
tarayıcı ikili dosyalarını da yükleyin.
Docker Playwright kurulumu
Gateway’iniz Docker’da çalışıyorsanpx playwright kullanmaktan kaçının (npm geçersiz kılma çakışmaları).
Özel imajlarda Chromium’u imaja dâhil edin:
PLAYWRIGHT_BROWSERS_PATH değerini (örneğin,
/home/node/.cache/ms-playwright) ayarlayın ve /home/node konumunun
OPENCLAW_HOME_VOLUME veya bir bağlama noktası aracılığıyla kalıcı olduğundan emin olun. OpenClaw, Linux’ta
kalıcı Chromium’u otomatik olarak algılar. Docker bölümüne bakın.
Çalışma biçimi (dâhilî)
Küçük bir geri döngü denetim sunucusu HTTP isteklerini kabul eder ve CDP aracılığıyla Chromium tabanlı tarayıcılara bağlanır. Gelişmiş eylemler (tıklama/yazma/anlık görüntü/PDF), CDP üzerinde Playwright aracılığıyla gerçekleştirilir; Playwright eksik olduğunda yalnızca Playwright gerektirmeyen işlemler kullanılabilir. Yerel/uzak tarayıcılar ve profiller altta serbestçe değişirken ajan tek bir kararlı arayüz görür.CLI hızlı başvuru
Tüm komutlar, belirli bir profili hedeflemek için--browser-profile <name> ve makine tarafından okunabilir çıktı için --json kabul eder.
Temel bilgiler: durum, sekmeler, açma/odaklama/kapatma
Temel bilgiler: durum, sekmeler, açma/odaklama/kapatma
Profiller: listeleme, oluşturma, silme
Profiller: listeleme, oluşturma, silme
İnceleme: ekran görüntüsü, anlık görüntü, konsol, hatalar, istekler
İnceleme: ekran görüntüsü, anlık görüntü, konsol, hatalar, istekler
Eylemler: gezinme, tıklama, yazma, sürükleme, bekleme, değerlendirme
Eylemler: gezinme, tıklama, yazma, sürükleme, bekleme, değerlendirme
Durum: çerezler, depolama, çevrimdışı, üst bilgiler, coğrafi konum, cihaz
Durum: çerezler, depolama, çevrimdışı, üst bilgiler, coğrafi konum, cihaz
- Aracıya yönelik
browseraracı,action=download(gereklirefvepath) ileaction=waitfordownload(isteğe bağlıpath) işlevlerini sunar. Her ikisi de kaydedilen indirme URL’sini, önerilen dosya adını ve korumalı yerel yolu döndürür. Yönetilen Playwright profilleri için açık indirme yakalama kullanılabilir; mevcut oturum profilleri desteklenmeyen işlem hatası döndürür. - Atomik seçici yüklemelerini tercih edin: OpenClaw’ın tek bir istekte hazırlanıp tıklaması için yüklemeyle birlikte tetikleyici
--refdeğerini iletin. Daha sonraki bir tetikleyici kasıtlıysa yalnızca yolları içerenuploaddesteklenmeye devam eder. Bir dosya girişini doğrudan ayarlamak için--input-refveya--elementkullanın.dialogbir hazırlama çağrısıdır; iletişim kutusunu tetikleyen tıklama/tuşa basma işleminden önce çalıştırın. Bir eylem kalıcı iletişim kutusu açarsa eylem yanıtıblockedByDialogvebrowserState.dialogs.pendingiçerir; doğrudan yanıt vermek için budialogIddeğerini iletin. OpenClaw dışında işlenen iletişim kutularıbrowserState.dialogs.recentaltında görünür. click/type/vb.,snapshotkaynağından birrefgerektirir (sayısal12, rol başvurusue12veya eyleme dönüştürülebilir ARIA başvurusuax12). CSS seçicileri eylemler için kasıtlı olarak desteklenmez. Görünür görüntü alanı konumu tek güvenilir hedef olduğundaclick-coordskullanın.- İndirme ve iz yolları OpenClaw geçici kökleriyle sınırlandırılmıştır:
/tmp/openclaw{,/downloads}(geri dönüş:${os.tmpdir()}/openclaw/...). upload, OpenClaw geçici yüklemeler kökünden ve OpenClaw tarafından yönetilen gelen medyadan dosya kabul eder. Yönetilen gelen medyayamedia://inbound/<id>, korumalı alanla görelimedia/inbound/<id>veya yönetilen gelen medya dizini içinde çözümlenmiş bir yol olarak başvurulabilir. İç içe medya başvuruları, dizin geçişi, sembolik bağlantılar, sabit bağlantılar ve rastgele yerel yollar yine reddedilir.upload, dosya girişlerini--input-refveya--elementaracılığıyla doğrudan da ayarlayabilir.
tabs kaynağındaki suggestedTargetId değerini tercih edin.
Anlık görüntü bayraklarına genel bakış:
--format ai(Playwright ile varsayılan): sayısal başvurular içeren yapay zekâ anlık görüntüsü (aria-ref="<n>").--format aria:axNbaşvurularını içeren erişilebilirlik ağacı. Playwright kullanılabildiğinde OpenClaw, izleyen eylemlerin bunları kullanabilmesi için arka uç DOM kimliklerine sahip başvuruları canlı sayfaya bağlar; aksi durumda çıktıyı yalnızca inceleme amaçlı kabul edin.--efficient(veya--mode efficient): kompakt rol anlık görüntüsü ön ayarı. Bunu varsayılan yapmak içinbrowser.snapshotDefaults.mode: "efficient"değerini ayarlayın (bkz. Gateway yapılandırması).--interactive,--compact,--depth,--selector,ref=e12başvurularına sahip bir rol anlık görüntüsünü zorunlu kılar.--frame "<iframe>", rol anlık görüntülerini bir iframe ile sınırlar.- Playwright ile
--labels, üstüne başvuru etiketleri bindirilmiş bir ekran görüntüsü (MEDIA:<path>yazdırır) ve her başvurunun sınırlayıcı kutusunu içeren birannotationsdizisi ekler.screenshotüzerinde Playwright destekli etiketler--full-page,--refve--elementile çalışır;snapshotüzerinde eşlik eden ekran görüntüsü yalnızca görüntü alanını kapsar. Mevcut oturum/chrome-mcp profilleri, sayfa ekran görüntülerinde üst katman etiketlerini işler ancakannotationsdöndürmez veya Playwright’ın tam sayfa/başvuru/öğe izdüşüm yardımcısını kullanmaz. Playwright veya chrome-mcp olmadan etiketli ekran görüntüleri kullanılamaz. --urls, keşfedilen bağlantı hedeflerini yapay zekâ anlık görüntülerine ekler.
Anlık görüntüler ve başvurular
OpenClaw iki “anlık görüntü” biçimini destekler:-
Yapay zekâ anlık görüntüsü (sayısal başvurular):
openclaw browser snapshot(varsayılan;--format ai)- Çıktı: sayısal başvurular içeren bir metin anlık görüntüsü.
- Eylemler:
openclaw browser click 12,openclaw browser type 23 "hello". - Başvuru, dahili olarak Playwright’ın
aria-refişlevi aracılığıyla çözümlenir.
-
Rol anlık görüntüsü (
e12gibi rol başvuruları):openclaw browser snapshot --interactive(veya--compact,--depth,--selector,--frame)- Çıktı:
[ref=e12](ve isteğe bağlı[nth=1]) içeren rol tabanlı bir liste/ağaç. - Eylemler:
openclaw browser click e12,openclaw browser highlight e12. - Başvuru, dahili olarak
getByRole(...)aracılığıyla (yinelenenler için ayrıcanth()) çözümlenir. - Üstüne
e12etiketleri bindirilmiş bir ekran görüntüsü eklemek için--labelsekleyin. Playwright destekli profillerde bu işlem ayrıca başvuru başına sınırlayıcı kutu meta verilerini (annotations[]) döndürür. - Bağlantı metni belirsiz olduğunda ve aracı somut
gezinme hedeflerine ihtiyaç duyduğunda
--urlsekleyin.
- Çıktı:
-
ARIA anlık görüntüsü (
ax12gibi ARIA başvuruları):openclaw browser snapshot --format aria- Çıktı: yapılandırılmış düğümler hâlinde erişilebilirlik ağacı.
- Eylemler: anlık görüntü yolu, başvuruyu Playwright ve Chrome arka uç DOM kimlikleri
üzerinden bağlayabildiğinde
openclaw browser click ax12çalışır.
-
Playwright kullanılamıyorsa ARIA anlık görüntüleri inceleme için yine
yararlı olabilir ancak başvurular eyleme dönüştürülemeyebilir. Eylem başvurularına ihtiyaç duyduğunuzda
--format aiveya--interactiveile yeniden anlık görüntü alın. -
Ham CDP geri dönüş yolu için Docker kanıtı:
pnpm test:docker:browser-cdp-snapshot, Chromium’u CDP ile başlatır,browser doctor --deepkomutunu çalıştırır ve rol anlık görüntülerinin bağlantı URL’lerini, imleçle eyleme dönüştürülebilir hâle getirilen öğeleri ve iframe meta verilerini içerdiğini doğrular.
- Başvurular gezinmeler arasında kararlı değildir; bir işlem başarısız olursa
snapshotkomutunu yeniden çalıştırın ve yeni bir başvuru kullanın. /act, değiştirme sekmesini kanıtlayabildiğinde eylemle tetiklenen değişimden sonra geçerli hamtargetIddeğerini döndürür. İzleyen komutlar için kararlı sekme kimliklerini/etiketlerini kullanmaya devam edin.- Rol anlık görüntüsü
--frameile alındıysa rol başvuruları bir sonraki rol anlık görüntüsüne kadar bu iframe ile sınırlıdır. - Bilinmeyen veya eski
axNbaşvuruları, Playwright’ınaria-refseçicisine geçmek yerine hemen başarısız olur. Bu gerçekleştiğinde aynı sekmede yeni bir anlık görüntü alın.
Tarayıcı toplu işlem CLI’si
openclaw browser batch, tek bir /act çağrısında iç içe /act eylemlerinden oluşan bir dizi çalıştırır
(aracı üzerinden erişilen aynı kind="batch" çalışma zamanı); böylece CLI
kullanıcıları ve betikler wait, click, type ve
evaluate gibi eylemleri, eylem başına gidiş dönüş olmadan yeniden yürütülebilir tek bir planda birleştirebilir. actions[] içindeki her
girdi bir BrowserActRequest öğesidir; bu, /act yolunun kabul ettiği kapalı birleşimdir
(click, clickCoords, type, press, hover,
scrollIntoView, drag, select, fill, resize, wait, evaluate,
close, batch); rastgele openclaw browser alt komutları değildir. batch,
profile="user" ve diğer mevcut oturum (chrome-mcp)
profillerinde desteklenmez; eylemleri bu profillere ayrı ayrı gönderin.
- CLI: JSON dizisini standart girdiden okumak için
openclaw browser batch --actions '<json>',openclaw browser batch --actions-file plan.jsonveyaopenclaw browser batch --actions-file -.--continue,stopOnError=falsedeğerini ayarlar; varsayılan davranış ilk hatada durmaktır.--target-id, toplu işlemin tamamını tek bir sekmeyle sınırlar. - Başvuru yaşam döngüsü: başvurular, toplu işlemden önceki bir
snapshotçalıştırmasından gelir (anlık görüntü iç içe bir eylem değildir). Gezinmeyi tetikleyen birclickveya DOM’u değiştiren birevaluategibi sayfa durumunu değiştiren iç içe bir eylem, toplu işlemin geri kalanı için önceki başvuruları geçersiz kılabilir. Durum değiştiren eylemleri önce yerleştirin veya yeniden anlık görüntü aldıktan sonra izleyen bir toplu işleme bölün. Gezinme ve yeniden anlık görüntü alma işlemleri toplu işlemin dışında gerçekleşir (openclaw browser navigate/snapshot); çünküopen,navigatevesnapshot,/acttürleri değildir. - Hedef kimliği çakışmaları: iç içe bir eylem
targetIddeğerini atlayabilir veya istek düzeyindekitargetIddeğerini yineleyebilir; farklı bir sekmeye çözümlenen açık bir iç içetargetId, herhangi bir eylem çalışmadan önceACT_TARGET_ID_MISMATCHile reddedilir. Toplu eylemler tasarım gereği isteğin sekmesini paylaşır. - Hata özeti: yanıt, sırasıyla her eylem için bir girdi içeren
{ "results": [{ "ok": true }, { "ok": false, "error": "<message>" }, ...] }değeridir.stopOnErrorvarsayılan olduğunda dizi ilk hatada sona erer;--continueile her eylemi kapsar. Başarısız olan herhangi bir girdi CLI’nin sıfır olmayan kodla çıkmasına neden olur; betikler için tam ve sıralı yanıtı korumak üzere--jsoniletin.
Gelişmiş bekleme seçenekleri
Yalnızca süreyi/metni değil, daha fazlasını bekleyebilirsiniz:- URL’yi bekleme (Playwright tarafından glob kalıpları desteklenir):
openclaw browser wait --url "**/dash"
- Yükleme durumunu bekleme:
openclaw browser wait --load networkidle- Yönetilen
openclawve ham/uzak CDP profillerinde desteklenir.existing-sessionsürücüsünü kullanan profiller (varsayılanuserprofili dâhil)networkidledeğerini reddeder; bunlarda--url,--text, bir seçici veya--fnbeklemelerini kullanın.
- Bir JS koşulunu bekleme:
openclaw browser wait --fn "window.ready===true"
- Bir seçicinin görünür hâle gelmesini bekleme:
openclaw browser wait "#main"
Hata ayıklama iş akışları
Bir eylem başarısız olduğunda (ör. “görünür değil”, “katı mod ihlali”, “üstü kapalı”):openclaw browser snapshot --interactiveclick <ref>/type <ref>kullanın (etkileşimli modda rol başvurularını tercih edin)- Yine başarısız olursa Playwright’ın neyi hedeflediğini görmek için
openclaw browser highlight <ref> - Sayfa olağan dışı davranıyorsa:
openclaw browser errors --clearopenclaw browser requests --filter api --clear
- Ayrıntılı hata ayıklama için bir iz kaydedin:
openclaw browser trace start- sorunu yeniden oluşturun
openclaw browser trace stop(TRACE:<path>yazdırır)
JSON çıktısı
--json, betikler ve yapılandırılmış araçlar içindir.
Örnekler:
refs ile küçük bir stats bloğu (satırlar/karakterler/başvurular/etkileşimli) içerir.
Durum ve ortam ayarları
Bunlar “siteyi X gibi davranacak şekilde ayarlama” iş akışlarında kullanışlıdır:- Çerezler:
cookies,cookies set,cookies clear - Depolama:
storage local|session get|set|clear - Çevrimdışı:
set offline on|off - Üst bilgiler:
set headers --headers-json '{"X-Debug":"1"}'(veya konumsal biçimset headers '{"X-Debug":"1"}') - HTTP temel kimlik doğrulaması:
set credentials user pass(veya--clear) - Coğrafi konum:
set geo <lat> <lon> --origin "https://example.com"(veya--clear) - Medya:
set media dark|light|no-preference|none - Saat dilimi / yerel ayar:
set timezone ...,set locale ... - Cihaz / görüntü alanı:
set device "iPhone 14"(Playwright cihaz ön ayarları)set viewport 1280 720
Güvenlik ve gizlilik
- openclaw tarayıcı profili, oturum açılmış oturumlar içerebilir; bunu hassas veri olarak değerlendirin.
browser act kind=evaluate/openclaw browser evaluatevewait --fnsayfa bağlamında rastgele JavaScript çalıştırır. İstem enjeksiyonu bunu yönlendirebilir. İhtiyacınız yoksabrowser.evaluateEnabled=falseile devre dışı bırakın.openclaw browser evaluate --fnbir işlev kaynak kodunu, ifadeyi veya deyim gövdesini kabul eder. Deyim gövdeleri asenkron işlevler olarak sarmalanır; bu nedenle geri almak istediğiniz değer içinreturnkullanın. Sayfa tarafındaki işlevin varsayılan değerlendirme zaman aşımından daha uzun sürmesi gerekebilirse--timeout-ms <ms>kullanın.- Oturum açma ve bot karşıtı önlemlere ilişkin notlar (X/Twitter vb.) için Tarayıcıda oturum açma + X/Twitter’da gönderi yayımlama bölümüne bakın.
- Gateway/Node ana makinesini özel tutun (yalnızca geri döngü veya tailnet).
- Uzak CDP uç noktaları güçlüdür; bunları tünelleyin ve koruyun.
İlgili
- Tarayıcı - genel bakış, yapılandırma, profiller, güvenlik
- Tarayıcıda oturum açma - sitelerde oturum açma
- Tarayıcı Linux sorunlarını giderme
- Tarayıcı WSL2 sorunlarını giderme