CLI commands
المتصفح
openclaw browser
إدارة سطح التحكم في المتصفح في OpenClaw وتشغيل إجراءات المتصفح (دورة الحياة، الملفات التعريفية، علامات التبويب، اللقطات، لقطات الشاشة، التنقل، الإدخال، محاكاة الحالة، وتصحيح الأخطاء).
ذات صلة:
- أداة المتصفح + API: أداة المتصفح
العلامات الشائعة
--url <gatewayWsUrl>: عنوان URL لـ WebSocket في Gateway (يستخدم الإعدادات افتراضياً).--token <token>: رمز Gateway (إذا كان مطلوباً).--timeout <ms>: مهلة الطلب (ms).--expect-final: الانتظار لاستجابة Gateway نهائية.--browser-profile <name>: اختيار ملف تعريفي للمتصفح (الافتراضي من الإعدادات).--json: إخراج قابل للقراءة آلياً (حيثما يكون مدعوماً).
البدء السريع (محلي)
openclaw browser profilesopenclaw browser --browser-profile openclaw startopenclaw browser --browser-profile openclaw open https://example.comopenclaw browser --browser-profile openclaw snapshotيمكن للوكلاء تشغيل فحص الجاهزية نفسه باستخدام browser({ action: "doctor" }).
استكشاف الأخطاء سريعاً
إذا فشل start مع not reachable after start، فاستكشف جاهزية CDP أولاً. إذا نجح start وtabs لكن فشل open أو navigate، فإن مستوى التحكم في المتصفح سليم ويكون الفشل عادةً بسبب سياسة SSRF للتنقل.
الحد الأدنى من التسلسل:
openclaw browser --browser-profile openclaw doctoropenclaw browser --browser-profile openclaw startopenclaw browser --browser-profile openclaw tabsopenclaw browser --browser-profile openclaw open https://example.comإرشادات مفصلة: استكشاف أخطاء المتصفح
دورة الحياة
openclaw browser statusopenclaw browser doctoropenclaw browser doctor --deepopenclaw browser startopenclaw browser start --headlessopenclaw browser stopopenclaw browser --browser-profile openclaw reset-profileملاحظات:
- يضيف
doctor --deepفحص لقطة حي. يكون مفيداً عندما تكون جاهزية CDP الأساسية خضراء لكنك تريد دليلاً على أن علامة التبويب الحالية قابلة للفحص. - بالنسبة إلى ملفات
attachOnlyوملفات CDP البعيدة، يغلقopenclaw browser stopجلسة التحكم النشطة ويمسح تجاوزات المحاكاة المؤقتة حتى عندما لا يكون OpenClaw قد شغّل عملية المتصفح بنفسه. - بالنسبة إلى الملفات التعريفية المحلية المُدارة، يوقف
openclaw browser stopعملية المتصفح التي تم إنشاؤها. - يطبّق
openclaw browser start --headlessعلى طلب البدء هذا فقط و فقط عندما يشغّل OpenClaw متصفحاً محلياً مُداراً. لا يعيد كتابةbrowser.headlessأو إعدادات الملف التعريفي، ولا يفعل شيئاً لمتصفح يعمل بالفعل. - على مضيفي Linux من دون
DISPLAYأوWAYLAND_DISPLAY، تعمل الملفات التعريفية المحلية المُدارة بوضع headless تلقائياً ما لم يطلبOPENCLAW_BROWSER_HEADLESS=0أوbrowser.headless=falseأوbrowser.profiles.<name>.headless=falseمتصفحاً مرئياً صراحةً.
إذا كان الأمر مفقوداً
إذا كان openclaw browser أمراً غير معروف، فتحقق من plugins.allow في
~/.openclaw/openclaw.json.
عندما يكون plugins.allow موجوداً، أدرج Plugin المتصفح المضمّن صراحةً
ما لم تكن الإعدادات تحتوي بالفعل على كتلة browser جذرية:
{ plugins: { allow: ["telegram", "browser"], },}كتلة browser جذرية صريحة، مثل browser.enabled=true أو
browser.profiles.<name>، تنشّط أيضاً Plugin المتصفح المضمّن ضمن
قائمة سماح Plugins مقيّدة.
ذات صلة: أداة المتصفح
الملفات التعريفية
الملفات التعريفية هي إعدادات توجيه متصفح مسماة. عملياً:
openclaw: يشغّل مثيل Chrome مخصصاً تديره OpenClaw أو يتصل به (دليل بيانات مستخدم معزول).user: يتحكم في جلسة Chrome الحالية المسجَّل دخولك إليها عبر Chrome DevTools MCP.- ملفات CDP التعريفية المخصصة: تشير إلى نقطة نهاية CDP محلية أو بعيدة.
openclaw browser profilesopenclaw browser create-profile --name work --color "#FF5A36"openclaw browser create-profile --name chrome-live --driver existing-sessionopenclaw browser create-profile --name remote --cdp-url https://browser-host.example.comopenclaw browser delete-profile --name workاستخدام ملف تعريفي محدد:
openclaw browser --browser-profile work tabsعلامات التبويب
openclaw browser tabsopenclaw browser tab new --label docsopenclaw browser tab label t1 docsopenclaw browser tab select 2openclaw browser tab close 2openclaw browser open https://docs.openclaw.ai --label docsopenclaw browser focus docsopenclaw browser close t1يعيد tabs أولاً suggestedTargetId، ثم tabId المستقر مثل t1،
والتسمية الاختيارية، وtargetId الخام. يجب على الوكلاء تمرير
suggestedTargetId مرة أخرى إلى focus وclose واللقطات والإجراءات. يمكنك
تعيين تسمية باستخدام open --label أو tab new --label أو tab label؛ وتُقبل التسميات
ومعرّفات علامات التبويب ومعرّفات الأهداف الخام وبادئات target-id الفريدة كلها.
لا يزال حقل الطلب مسمى targetId للتوافق، لكنه يقبل
مراجع علامات التبويب هذه. تعامل مع معرّفات الأهداف الخام كمقابض تشخيصية، لا كذاكرة
وكيل دائمة.
عندما يستبدل Chromium الهدف الخام الأساسي أثناء تنقل أو إرسال نموذج،
تبقي OpenClaw tabId/التسمية المستقرة مرتبطة بعلامة التبويب البديلة
عندما تستطيع إثبات التطابق. تبقى معرّفات الأهداف الخام متقلبة؛ فضّل
suggestedTargetId.
اللقطة / لقطة الشاشة / الإجراءات
لقطة:
openclaw browser snapshotopenclaw browser snapshot --urlsلقطة شاشة:
openclaw browser screenshotopenclaw browser screenshot --full-pageopenclaw browser screenshot --ref e12openclaw browser screenshot --labelsملاحظات:
--full-pageمخصص لالتقاط الصفحات فقط؛ لا يمكن دمجه مع--refأو--element.- تدعم ملفات
existing-session/userالتعريفية لقطات شاشة للصفحة ولقطات شاشة--refمن إخراج اللقطة، لكنها لا تدعم لقطات شاشة CSS--element. - يضيف
--labelsطبقة تراكب لمراجع اللقطة الحالية على لقطة الشاشة. في الملفات التعريفية المدعومة بـ Playwright، يعمل مع--full-page(طبقة تسمية لكامل الصفحة)، و--ref(طبقة تسمية لقص عنصر حسب مرجع ARIA)، و--element(طبقة تسمية لقص عنصر حسب محدد CSS)؛ في أوضاع قص العناصر، تُسقط التسميات نسبياً إلى العنصر. تتضمن الاستجابة أيضاً مصفوفةannotationsتحتوي على مربع الإحاطة لكل مرجع. يحتوي كل عنصر علىref، وnumber، وrole، وnameاختياري، وbox: {x, y, width, height}؛ تكون الإحداثيات في مساحة الصورة الملتقطة (منفذ العرض / الصفحة الكاملة / نسبية إلى العنصر). يُحذف الحقل عندما يكون فارغاً. تعرض ملفاتexisting-sessionالتعريفية طبقة تراكب chrome-mcp على لقطات شاشة الصفحة لكنها لا تستخدم مساعد إسقاط Playwright ولا تتضمنannotations؛ لقطات شاشة CSS--elementغير مدعومة هناك. من دون Playwright أو chrome-mcp، لا تتوفر لقطات الشاشة ذات التسميات. كانت الإصدارات السابقة تتجاهل--full-pageو--refو--elementفي لقطات شاشة Playwright ذات التسميات وتعيد دائماً التقاطاً لمنفذ العرض؛ أصبحت لقطات الشاشة ذات التسميات الآن تحترم تلك النطاقات. - يضيف
snapshot --urlsوجهات الروابط المكتشفة إلى لقطات AI بحيث يستطيع الوكلاء اختيار أهداف تنقل مباشرة بدلاً من التخمين من نص الرابط وحده.
التنقل/النقر/الكتابة (أتمتة واجهة المستخدم المستندة إلى المرجع):
openclaw browser navigate https://example.comopenclaw browser click <ref>openclaw browser click-coords 120 340openclaw browser type <ref> "hello"openclaw browser press Enteropenclaw browser hover <ref>openclaw browser scrollintoview <ref>openclaw browser drag <startRef> <endRef>openclaw browser select <ref> OptionA OptionBopenclaw browser fill --fields '[{"ref":"1","value":"Ada"}]'openclaw browser wait --text "Done"openclaw browser evaluate --fn '(el) => el.textContent' --ref <ref>openclaw browser evaluate --fn 'const title = document.title; return title;'openclaw browser evaluate --timeout-ms 30000 --fn 'async () => { await window.ready; return true; }'يقبل evaluate --fn مصدر دالة، أو تعبيراً، أو جسم عبارة.
تُغلّف أجسام العبارات كدوال async، لذا استخدم return للقيمة
التي تريد إرجاعها. استخدم evaluate --timeout-ms <ms> عندما قد تحتاج الدالة
على جانب الصفحة إلى وقت أطول من مهلة evaluate الافتراضية.
تعيد استجابات الإجراءات targetId الخام الحالي بعد استبدال الصفحة
المشغّل بالإجراء عندما تستطيع OpenClaw إثبات علامة التبويب البديلة. ينبغي للسكربتات مع ذلك
تخزين وتمرير suggestedTargetId/التسميات لسير العمل طويل الأمد.
مساعدات الملفات + مربعات الحوار:
openclaw browser upload /tmp/openclaw/uploads/file.pdf --ref <ref>openclaw browser upload media://inbound/file.pdf --ref <ref>openclaw browser waitfordownloadopenclaw browser download <ref> report.pdfopenclaw browser dialog --acceptopenclaw browser dialog --dismiss --dialog-id d1تحفظ ملفات Chrome التعريفية المُدارة التنزيلات العادية الناتجة عن النقر في دليل
تنزيلات OpenClaw (/tmp/openclaw/downloads افتراضياً، أو جذر temp
المُعد). استخدم waitfordownload أو download عندما يحتاج الوكيل إلى انتظار
ملف محدد وإرجاع مساره؛ تمتلك أدوات الانتظار الصريحة هذه التنزيل التالي.
تقبل عمليات الرفع الملفات من جذر الرفع المؤقت في OpenClaw والوسائط الواردة
المُدارة من OpenClaw، بما في ذلك مراجع media://inbound/<id> و
media/inbound/<id> النسبية إلى sandbox. تظل مراجع الوسائط المتداخلة، واجتياز المسارات، والمسارات المحلية
العشوائية مرفوضة.
عندما يفتح إجراء مربع حوار modal، تعيد استجابة الإجراء
blockedByDialog مع browserState.dialogs.pending؛ مرر --dialog-id للإجابة
عنه مباشرة. تظهر مربعات الحوار التي تمت معالجتها خارج OpenClaw ضمن
browserState.dialogs.recent.
الحالة والتخزين
منفذ العرض + المحاكاة:
openclaw browser resize 1280 720openclaw browser set viewport 1280 720openclaw browser set offline onopenclaw browser set media darkopenclaw browser set timezone Europe/Londonopenclaw browser set locale en-GBopenclaw browser set geo 51.5074 -0.1278 --accuracy 25openclaw browser set device "iPhone 14"openclaw browser set headers '{"x-test":"1"}'openclaw browser set credentials myuser mypassملفات تعريف الارتباط + التخزين:
openclaw browser cookiesopenclaw browser cookies set session abc123 --url https://example.comopenclaw browser cookies clearopenclaw browser storage local getopenclaw browser storage local set token abc123openclaw browser storage session clearتصحيح الأخطاء
openclaw browser console --level erroropenclaw browser pdfopenclaw browser responsebody "**/api"openclaw browser highlight <ref>openclaw browser errors --clearopenclaw browser requests --filter apiopenclaw browser trace startopenclaw browser trace stop --out trace.zipChrome الحالي عبر MCP
استخدم الملف التعريفي المدمج user، أو أنشئ ملف existing-session تعريفي خاصاً بك:
openclaw browser --browser-profile user tabsopenclaw browser create-profile --name chrome-live --driver existing-sessionopenclaw browser create-profile --name brave-live --driver existing-session --user-data-dir "~/Library/Application Support/BraveSoftware/Brave-Browser"openclaw browser create-profile --name chrome-port --driver existing-session --cdp-url http://127.0.0.1:9222openclaw browser --browser-profile chrome-live tabsمسار existing-session الافتراضي هو اتصال Chrome MCP تلقائي خاص بالمضيف فقط. إذا كان المتصفح
يعمل بالفعل مع نقطة نهاية DevTools، فمرر --cdp-url لكي يتصل Chrome MCP بتلك النقطة بدلاً من ذلك.
بالنسبة إلى Docker أو Browserless أو إعدادات بعيدة أخرى حيث لا تكون دلالات Chrome MCP مطلوبة، استخدم
ملف CDP تعريفي.
حدود existing-session الحالية:
- تستخدم الإجراءات المعتمدة على اللقطات المراجع، وليس محددات CSS
- يضبط
browser.actionTimeoutMsطلباتactالمدعومة افتراضيًا على 60000 مللي ثانية عندما يحذف المستدعونtimeoutMs؛ وتظل قيمةtimeoutMsلكل استدعاء هي الغالبة. clickللنقر بالزر الأيسر فقط- لا يدعم
typeالخيارslowly=true - لا يدعم
pressالخيارdelayMs - ترفض
hoverوscrollintoviewوdragوselectوfillوevaluateتجاوزات المهلة لكل استدعاء - يدعم
selectقيمة واحدة فقط - لا يُدعم
wait --load networkidleفي ملفات تعريف الجلسات الحالية (يعمل على CDP المُدار والخام/البعيد) - تتطلب عمليات رفع الملفات
--ref/--input-ref، ولا تدعم CSS--element، وتدعم حاليًا ملفًا واحدًا في كل مرة - لا تدعم خطاطيف مربعات الحوار
--timeout - تدعم لقطات الشاشة التقاط الصفحة و
--ref، ولكن لا تدعم CSS--element - لا تزال
responsebody، واعتراض التنزيلات، وتصدير PDF، والإجراءات الدفعية تتطلب متصفحًا مُدارًا أو ملف تعريف CDP خامًا
التحكم في المتصفح عن بُعد (وكيل مضيف node)
إذا كان Gateway يعمل على جهاز مختلف عن المتصفح، فشغّل مضيف node على الجهاز الذي يحتوي على Chrome/Brave/Edge/Chromium. سيقوم Gateway بتمرير إجراءات المتصفح عبر وكيل إلى تلك العقدة (لا يلزم خادم منفصل للتحكم في المتصفح).
استخدم gateway.nodes.browser.mode للتحكم في التوجيه التلقائي، وgateway.nodes.browser.node لتثبيت عقدة محددة إذا كانت هناك عدة عقد متصلة.
الأمان + الإعداد عن بُعد: أداة المتصفح، الوصول عن بُعد، Tailscale، الأمان