الانتقال إلى المحتوى الرئيسي

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.

Gateway هو خادم WebSocket الخاص بـ OpenClaw (القنوات، العقد، الجلسات، الخطافات). تعيش الأوامر الفرعية في هذه الصفحة تحت openclaw gateway ….

اكتشاف Bonjour

إعداد mDNS محلي + DNS-SD واسع النطاق.

نظرة عامة على الاكتشاف

كيف يعلن OpenClaw عن البوابات ويعثر عليها.

التكوين

مفاتيح تكوين Gateway على المستوى الأعلى.

تشغيل Gateway

شغّل عملية Gateway محلية:
openclaw gateway
الاسم المستعار للتشغيل في المقدمة:
openclaw gateway run
  • افتراضيًا، ترفض Gateway البدء ما لم يتم تعيين gateway.mode=local في ~/.openclaw/openclaw.json. استخدم --allow-unconfigured للتشغيلات المؤقتة/التطويرية.
  • من المتوقع أن يكتب openclaw onboard --mode local وopenclaw setup القيمة gateway.mode=local. إذا كان الملف موجودًا لكن gateway.mode مفقود، فتعامل مع ذلك كتكوين معطوب أو مستبدل وأصلحه بدلًا من افتراض الوضع المحلي ضمنيًا.
  • إذا كان الملف موجودًا وgateway.mode مفقودًا، تتعامل Gateway مع ذلك كضرر مشبوه في التكوين وترفض “تخمين المحلي” نيابةً عنك.
  • يُحظر الربط خارج loopback دون مصادقة (حاجز أمان).
  • يطلق SIGUSR1 إعادة تشغيل داخل العملية عندما يكون ذلك مصرحًا به (commands.restart مفعّل افتراضيًا؛ عيّن commands.restart: false لحظر إعادة التشغيل اليدوية، مع بقاء تطبيق/تحديث أداة Gateway/التكوين مسموحًا).
  • توقف معالجات SIGINT/SIGTERM عملية gateway، لكنها لا تستعيد أي حالة طرفية مخصصة. إذا لففت CLI باستخدام TUI أو إدخال raw-mode، فاستعد الطرفية قبل الخروج.

الخيارات

--port <port>
number
منفذ WebSocket (تأتي القيمة الافتراضية من التكوين/البيئة؛ عادةً 18789).
--bind <loopback|lan|tailnet|auto|custom>
string
وضع ربط المستمع.
--auth <token|password>
string
تجاوز وضع المصادقة.
--token <token>
string
تجاوز الرمز المميز (يضبط أيضًا OPENCLAW_GATEWAY_TOKEN للعملية).
--password <password>
string
تجاوز كلمة المرور.
--password-file <path>
string
قراءة كلمة مرور gateway من ملف.
--tailscale <off|serve|funnel>
string
إتاحة Gateway عبر Tailscale.
--tailscale-reset-on-exit
boolean
إعادة ضبط تكوين serve/funnel في Tailscale عند إيقاف التشغيل.
--allow-unconfigured
boolean
السماح ببدء gateway دون gateway.mode=local في التكوين. يتجاوز حاجز بدء التشغيل للتمهيد المؤقت/التطويري فقط؛ ولا يكتب ملف التكوين أو يصلحه.
--dev
boolean
إنشاء تكوين تطوير + مساحة عمل إذا كانت مفقودة (يتخطى BOOTSTRAP.md).
--reset
boolean
إعادة ضبط تكوين التطوير + بيانات الاعتماد + الجلسات + مساحة العمل (يتطلب --dev).
--force
boolean
إنهاء أي مستمع موجود على المنفذ المحدد قبل البدء.
--verbose
boolean
سجلات تفصيلية.
--cli-backend-logs
boolean
عرض سجلات خلفية CLI فقط في وحدة التحكم (وتفعيل stdout/stderr).
--ws-log <auto|full|compact>
string
افتراضي:"auto"
نمط سجل Websocket.
--compact
boolean
اسم مستعار لـ --ws-log compact.
--raw-stream
boolean
تسجيل أحداث دفق النموذج الخام إلى jsonl.
--raw-stream-path <path>
string
مسار jsonl للدفق الخام.

إعادة تشغيل Gateway

openclaw gateway restart
openclaw gateway restart --safe
openclaw gateway restart --safe --skip-deferral
openclaw gateway restart --force
يطلب openclaw gateway restart --safe من Gateway العاملة إجراء فحص تمهيدي لأعمال OpenClaw النشطة قبل إعادة التشغيل. إذا كانت هناك عمليات في الطابور، أو تسليم ردود، أو تشغيلات مضمّنة، أو تشغيلات مهام نشطة، فتبلغ Gateway عن العوائق، وتدمج طلبات إعادة التشغيل الآمنة المكررة، وتعيد التشغيل عندما ينضب العمل النشط. يحافظ restart العادي على سلوك مدير الخدمة الحالي للتوافق. استخدم --force فقط عندما تريد صراحةً مسار التجاوز الفوري. ينفذ openclaw gateway restart --safe --skip-deferral إعادة التشغيل المنسقة نفسها والواعية بـ OpenClaw مثل --safe، لكنه يتجاوز بوابة تأجيل العمل النشط بحيث تصدر Gateway إعادة التشغيل فورًا حتى عند الإبلاغ عن عوائق. استخدمه كمخرج طوارئ للمشغّل عندما يكون التأجيل مثبتًا بسبب تشغيل مهمة عالق وكان --safe وحده سينتظر إلى أجل غير مسمى. يتطلب --skip-deferral الخيار --safe.
قد تظهر --password المضمنة في قوائم العمليات المحلية. فضّل --password-file أو البيئة أو gateway.auth.password المدعوم بـ SecretRef.

توصيف بدء التشغيل

  • اضبط OPENCLAW_GATEWAY_STARTUP_TRACE=1 لتسجيل توقيتات المراحل أثناء بدء Gateway، بما في ذلك تأخير eventLoopMax لكل مرحلة وتوقيتات جداول بحث Plugin للفهرس المثبت، وسجل manifest، وتخطيط بدء التشغيل، وعمل خريطة المالكين.
  • اضبط OPENCLAW_DIAGNOSTICS=timeline مع OPENCLAW_DIAGNOSTICS_TIMELINE_PATH=<path> لكتابة مخطط زمني لتشخيصات بدء التشغيل بصيغة JSONL وبأفضل جهد لحزم QA الخارجية. يمكنك أيضًا تفعيل العلم باستخدام diagnostics.flags: ["timeline"] في التكوين؛ يظل المسار مقدمًا من البيئة. أضف OPENCLAW_DIAGNOSTICS_EVENT_LOOP=1 لتضمين عينات حلقة الأحداث.
  • شغّل pnpm test:startup:gateway -- --runs 5 --warmup 1 لقياس أداء بدء Gateway. يسجل المعيار أول خرج للعملية، و/healthz، و/readyz، وتوقيتات تتبع بدء التشغيل، وتأخير حلقة الأحداث، وتفاصيل توقيت جدول بحث Plugin.

الاستعلام عن Gateway عاملة

تستخدم جميع أوامر الاستعلام WebSocket RPC.
  • الافتراضي: قابل للقراءة البشرية (ملون في TTY).
  • --json: JSON قابل للقراءة آليًا (دون تنسيق/مؤشر تحميل).
  • --no-color (أو NO_COLOR=1): تعطيل ANSI مع الحفاظ على التخطيط البشري.
عند تعيين --url، لا يرجع CLI إلى بيانات اعتماد التكوين أو البيئة. مرّر --token أو --password صراحةً. غياب بيانات الاعتماد الصريحة خطأ.

gateway health

openclaw gateway health --url ws://127.0.0.1:18789
نقطة نهاية HTTP /healthz هي فحص حيوية: تعود بمجرد أن يتمكن الخادم من الرد عبر HTTP. نقطة نهاية HTTP /readyz أكثر صرامة وتبقى حمراء بينما لا تزال ملحقات Plugin الجانبية عند بدء التشغيل أو القنوات أو الخطافات المكوّنة تستقر. تتضمن استجابات الجاهزية التفصيلية المحلية أو المصادق عليها كتلة تشخيص eventLoop مع تأخير حلقة الأحداث، واستخدام حلقة الأحداث، ونسبة أنوية CPU، وعلم degraded.

gateway usage-cost

جلب ملخصات تكلفة الاستخدام من سجلات الجلسات.
openclaw gateway usage-cost
openclaw gateway usage-cost --days 7
openclaw gateway usage-cost --json
--days <days>
number
افتراضي:"30"
عدد الأيام المطلوب تضمينها.

gateway stability

جلب مسجل الاستقرار التشخيصي الحديث من Gateway عاملة.
openclaw gateway stability
openclaw gateway stability --type payload.large
openclaw gateway stability --bundle latest
openclaw gateway stability --bundle latest --export
openclaw gateway stability --json
--limit <limit>
number
افتراضي:"25"
الحد الأقصى لعدد الأحداث الحديثة المراد تضمينها (الحد الأقصى 1000).
--type <type>
string
التصفية حسب نوع حدث التشخيص، مثل payload.large أو diagnostic.memory.pressure.
--since-seq <seq>
number
تضمين الأحداث الواقعة بعد رقم تسلسل تشخيصي فقط.
--bundle [path]
string
قراءة حزمة استقرار مستمرة بدلًا من استدعاء Gateway العاملة. استخدم --bundle latest (أو فقط --bundle) لأحدث حزمة ضمن دليل الحالة، أو مرّر مسار JSON لحزمة مباشرةً.
--export
boolean
كتابة ملف zip لتشخيصات دعم قابل للمشاركة بدلًا من طباعة تفاصيل الاستقرار.
--output <path>
string
مسار الإخراج لـ --export.
  • تحتفظ السجلات بالبيانات الوصفية التشغيلية: أسماء الأحداث، والعدادات، وأحجام البايت، وقراءات الذاكرة، وحالة الطابور/الجلسة، وأسماء القنوات/Plugin، وملخصات الجلسات المنقحة. ولا تحتفظ بنص الدردشة، أو أجسام Webhook، أو مخرجات الأدوات، أو أجسام الطلبات أو الاستجابات الخام، أو الرموز المميزة، أو ملفات تعريف الارتباط، أو القيم السرية، أو أسماء المضيفين، أو معرّفات الجلسات الخام. عيّن diagnostics.enabled: false لتعطيل المسجل بالكامل.
  • عند مخارج Gateway الفادحة، ومهل إيقاف التشغيل، وفشل بدء التشغيل بعد إعادة التشغيل، يكتب OpenClaw اللقطة التشخيصية نفسها إلى ~/.openclaw/logs/stability/openclaw-stability-*.json عندما يحتوي المسجل على أحداث. افحص أحدث حزمة باستخدام openclaw gateway stability --bundle latest؛ وتنطبق أيضًا --limit و--type و--since-seq على إخراج الحزمة.

gateway diagnostics export

اكتب ملف zip محليًا للتشخيصات مصممًا لإرفاقه بتقارير الأخطاء. لنموذج الخصوصية ومحتويات الحزمة، راجع تصدير التشخيصات.
openclaw gateway diagnostics export
openclaw gateway diagnostics export --output openclaw-diagnostics.zip
openclaw gateway diagnostics export --json
--output <path>
string
مسار ملف zip للإخراج. يكون الافتراضي تصدير دعم ضمن دليل الحالة.
--log-lines <count>
number
افتراضي:"5000"
الحد الأقصى لأسطر السجل المنقحة المراد تضمينها.
--log-bytes <bytes>
number
افتراضي:"1000000"
الحد الأقصى لبايتات السجل المراد فحصها.
--url <url>
string
عنوان URL لـ WebSocket الخاص بـ Gateway من أجل لقطة الصحة.
--token <token>
string
رمز Gateway المميز من أجل لقطة الصحة.
--password <password>
string
كلمة مرور Gateway من أجل لقطة الصحة.
--timeout <ms>
number
افتراضي:"3000"
مهلة لقطة الحالة/الصحة.
--no-stability-bundle
boolean
تخطي البحث عن حزمة الاستقرار المستمرة.
--json
boolean
طباعة المسار المكتوب، والحجم، والبيان بصيغة JSON.
يحتوي التصدير على بيان، وملخص Markdown، وشكل التكوين، وتفاصيل تكوين منقحة، وملخصات سجلات منقحة، ولقطات حالة/صحة Gateway منقحة، وأحدث حزمة استقرار عند وجودها. وهو مخصص للمشاركة. يحتفظ بتفاصيل تشغيلية تساعد في تصحيح الأخطاء، مثل حقول سجل OpenClaw الآمنة، وأسماء الأنظمة الفرعية، ورموز الحالة، والمدد، والأوضاع المكوّنة، والمنافذ، ومعرّفات Plugin، ومعرّفات المزوّدين، وإعدادات الميزات غير السرية، ورسائل السجل التشغيلية المنقحة. ويحذف أو ينقح نص الدردشة، وأجسام Webhook، ومخرجات الأدوات، وبيانات الاعتماد، وملفات تعريف الارتباط، ومعرّفات الحساب/الرسالة، ونص المطالبة/التعليمات، وأسماء المضيفين، والقيم السرية. عندما تبدو رسالة بنمط LogTape مثل نص حمولة مستخدم/دردشة/أداة، يحتفظ التصدير فقط بأن رسالة حُذفت بالإضافة إلى عدد بايتاتها.

gateway status

يعرض gateway status خدمة Gateway (launchd/systemd/schtasks) بالإضافة إلى فحص اختياري لإمكانية الاتصال/المصادقة.
openclaw gateway status
openclaw gateway status --json
openclaw gateway status --require-rpc
--url <url>
string
أضف هدف فحص صريحا. سيظل فحص البعيد المكوّن + localhost جاريا.
--token <token>
string
مصادقة الرمز للفحص.
--password <password>
string
مصادقة كلمة المرور للفحص.
--timeout <ms>
number
افتراضي:"10000"
مهلة الفحص.
--no-probe
boolean
تخطَّ فحص الاتصال (عرض الخدمة فقط).
--deep
boolean
افحص الخدمات على مستوى النظام أيضا.
--require-rpc
boolean
رقِّ فحص الاتصال الافتراضي إلى فحص قراءة واخرج برمز غير صفري عند فشل فحص القراءة هذا. لا يمكن دمجه مع --no-probe.
  • يظل gateway status متاحا للتشخيص حتى عندما يكون إعداد CLI المحلي مفقودا أو غير صالح.
  • يثبت gateway status الافتراضي حالة الخدمة، واتصال WebSocket، وإمكانية المصادقة المرئية وقت المصافحة. ولا يثبت عمليات القراءة/الكتابة/الإدارة.
  • فحوصات التشخيص لا تغيّر حالة مصادقة الجهاز لأول مرة: فهي تعيد استخدام رمز جهاز مخزّن مؤقتا موجودا عندما يتوفر، لكنها لا تنشئ هوية جهاز CLI جديدة أو سجل إقران جهاز للقراءة فقط لمجرد التحقق من الحالة.
  • يحل gateway status مراجع SecretRefs للمصادقة المكوّنة لمصادقة الفحص عندما يكون ذلك ممكنا.
  • إذا لم يتم حل SecretRef مطلوب للمصادقة في مسار الأمر هذا، فإن gateway status --json يبلّغ عن rpc.authWarning عندما يفشل اتصال/مصادقة الفحص؛ مرّر --token/--password صراحة أو حل مصدر السر أولا.
  • إذا نجح الفحص، تُكبت تحذيرات مراجع المصادقة غير المحلولة لتجنب النتائج الإيجابية الكاذبة.
  • استخدم --require-rpc في السكربتات والأتمتة عندما لا تكفي خدمة تستمع وتحتاج أيضا إلى أن تكون استدعاءات RPC ذات نطاق القراءة سليمة.
  • يضيف --deep فحصا بأفضل جهد لتثبيتات launchd/systemd/schtasks الإضافية. عند اكتشاف عدة خدمات شبيهة بالـ Gateway، تطبع المخرجات البشرية تلميحات تنظيف وتحذر من أن معظم الإعدادات ينبغي أن تشغّل Gateway واحدا لكل جهاز.
  • يبلّغ --deep أيضا عن تسليم إعادة تشغيل حديث لمشرف Gateway عندما تخرج عملية الخدمة بنظافة لإعادة تشغيل من مشرف خارجي.
  • يشغّل --deep التحقق من الإعداد في وضع واعٍ بالـ Plugin (pluginValidation: "full") ويعرض تحذيرات بيان الـ Plugin المكوّنة (على سبيل المثال بيانات تعريف إعداد قناة مفقودة) كي تلتقطها فحوصات سلامة التثبيت والتحديث. يحافظ gateway status الافتراضي على مسار القراءة فقط السريع الذي يتخطى التحقق من الـ Plugin.
  • تتضمن المخرجات البشرية مسار سجل الملف المحلول إضافة إلى لقطة لمسارات/صلاحية إعداد CLI مقابل الخدمة للمساعدة في تشخيص انجراف الملف الشخصي أو دليل الحالة.
  • في تثبيتات systemd على Linux، تقرأ فحوصات انحراف مصادقة الخدمة قيم Environment= وEnvironmentFile= من الوحدة (بما في ذلك %h، والمسارات المقتبسة، والملفات المتعددة، وملفات - الاختيارية).
  • تحل فحوصات الانحراف SecretRefs الخاصة بـ gateway.auth.token باستخدام بيئة التشغيل المدمجة (بيئة أمر الخدمة أولا، ثم بيئة العملية كبديل).
  • إذا لم تكن مصادقة الرمز فعالة فعليا (وجود gateway.auth.mode صريح بقيمة password/none/trusted-proxy، أو عدم ضبط الوضع حيث يمكن أن تفوز كلمة المرور ولا يمكن لأي مرشح رمز أن يفوز)، تتخطى فحوصات انحراف الرمز حل رمز الإعداد.

gateway probe

gateway probe هو أمر “تصحيح كل شيء”. يفحص دائما:
  • Gateway البعيد المكوّن لديك (إذا كان مضبوطا)، و
  • localhost (loopback) حتى لو كان البعيد مكوّنا.
إذا مررت --url، يُضاف ذلك الهدف الصريح قبل كليهما. تسمي المخرجات البشرية الأهداف كالتالي:
  • URL (explicit)
  • Remote (configured) أو Remote (configured, inactive)
  • Local loopback
إذا كانت عدة Gateways قابلة للوصول، فإنه يطبعها كلها. تُدعم عدة Gateways عندما تستخدم ملفات شخصية/منافذ معزولة (مثل بوت إنقاذ)، لكن معظم التثبيتات لا تزال تشغّل Gateway واحدا.
openclaw gateway probe
openclaw gateway probe --json
  • تعني Reachable: yes أن هدفا واحدا على الأقل قبل اتصال WebSocket.
  • يبلّغ Capability: read-only|write-capable|admin-capable|pairing-pending|connect-only عما استطاع الفحص إثباته بشأن المصادقة. وهو منفصل عن قابلية الوصول.
  • تعني Read probe: ok أن استدعاءات RPC التفصيلية ذات نطاق القراءة (health/status/system-presence/config.get) نجحت أيضا.
  • تعني Read probe: limited - missing scope: operator.read أن الاتصال نجح لكن RPC ذات نطاق القراءة محدودة. يُبلّغ عن هذا كقابلية وصول متدهورة، وليس فشلا كاملا.
  • تعني Read probe: failed بعد Connect: ok أن Gateway قبل اتصال WebSocket، لكن تشخيصات القراءة اللاحقة انتهت مهلتها أو فشلت. وهذا أيضا قابلية وصول متدهورة، وليس Gateway غير قابل للوصول.
  • مثل gateway status، يعيد الفحص استخدام مصادقة الجهاز المخزنة مؤقتا الموجودة، لكنه لا ينشئ هوية جهاز لأول مرة أو حالة إقران.
  • يكون رمز الخروج غير صفري فقط عندما لا يكون أي هدف مفحوص قابلا للوصول.
المستوى الأعلى:
  • ok: هدف واحد على الأقل قابل للوصول.
  • degraded: هدف واحد على الأقل قبل اتصالا لكنه لم يكمل تشخيصات RPC التفصيلية الكاملة.
  • capability: أفضل إمكانية شوهدت عبر الأهداف القابلة للوصول (read_only، أو write_capable، أو admin_capable، أو pairing_pending، أو connected_no_operator_scope، أو unknown).
  • primaryTargetId: أفضل هدف للتعامل معه كفائز نشط بهذا الترتيب: عنوان URL صريح، نفق SSH، البعيد المكوّن، ثم local loopback.
  • warnings[]: سجلات تحذير بأفضل جهد تحتوي على code وmessage وtargetIds اختيارية.
  • network: تلميحات عناوين URL لـ local loopback/tailnet مشتقة من الإعداد الحالي وشبكة المضيف.
  • discovery.timeoutMs وdiscovery.count: ميزانية/عدد نتائج الاكتشاف الفعلية المستخدمة لجولة الفحص هذه.
لكل هدف (targets[].connect):
  • ok: قابلية الوصول بعد الاتصال + تصنيف التدهور.
  • rpcOk: نجاح RPC التفصيلي الكامل.
  • scopeLimited: فشل RPC التفصيلي بسبب نطاق عامل مفقود.
لكل هدف (targets[].auth):
  • role: دور المصادقة المبلّغ عنه في hello-ok عند توفره.
  • scopes: النطاقات الممنوحة المبلّغ عنها في hello-ok عند توفرها.
  • capability: تصنيف إمكانية المصادقة المعروض لذلك الهدف.
  • ssh_tunnel_failed: فشل إعداد نفق SSH؛ عاد الأمر إلى الفحوصات المباشرة.
  • multiple_gateways: كان أكثر من هدف واحد قابلا للوصول؛ هذا غير معتاد إلا إذا كنت تشغّل ملفات شخصية معزولة عمدا، مثل بوت إنقاذ.
  • auth_secretref_unresolved: تعذر حل SecretRef مصادقة مكوّن لهدف فاشل.
  • probe_scope_limited: نجح اتصال WebSocket، لكن فحص القراءة كان محدودا بسبب فقدان operator.read.

البعيد عبر SSH (تكافؤ تطبيق Mac)

يستخدم وضع “البعيد عبر SSH” في تطبيق macOS إعادة توجيه منفذ محلي بحيث يصبح Gateway البعيد (الذي قد يكون مربوطا بـ loopback فقط) قابلا للوصول عند ws://127.0.0.1:<port>. المكافئ في CLI:
openclaw gateway probe --ssh user@gateway-host
--ssh <target>
string
user@host أو user@host:port (يكون المنفذ افتراضيا 22).
--ssh-identity <path>
string
ملف الهوية.
--ssh-auto
boolean
اختر أول مضيف Gateway مكتشف كهدف SSH من نقطة نهاية الاكتشاف المحلولة (local. إضافة إلى نطاق واسع المدى المكوّن، إن وجد). تُتجاهل تلميحات TXT فقط.
الإعداد (اختياري، يُستخدم كقيم افتراضية):
  • gateway.remote.sshTarget
  • gateway.remote.sshIdentity

gateway call <method>

مساعد RPC منخفض المستوى.
openclaw gateway call status
openclaw gateway call logs.tail --params '{"sinceMs": 60000}'
--params <json>
string
افتراضي:"{}"
سلسلة كائن JSON للمعاملات.
--url <url>
string
عنوان URL لـ WebSocket الخاص بالـ Gateway.
--token <token>
string
رمز Gateway.
--password <password>
string
كلمة مرور Gateway.
--timeout <ms>
number
ميزانية المهلة.
--expect-final
boolean
بشكل أساسي لاستدعاءات RPC بنمط الوكيل التي تبث أحداثا وسيطة قبل حمولة نهائية.
--json
boolean
مخرجات JSON قابلة للقراءة آليا.
يجب أن تكون --params بصيغة JSON صالحة.

إدارة خدمة Gateway

openclaw gateway install
openclaw gateway start
openclaw gateway stop
openclaw gateway restart
openclaw gateway uninstall

التثبيت باستخدام غلاف

استخدم --wrapper عندما يجب أن تبدأ الخدمة المُدارة عبر ملف تنفيذي آخر، على سبيل المثال طبقة مدير أسرار أو مساعد تشغيل باسم مستخدم آخر. يتلقى الغلاف وسائط Gateway العادية ويكون مسؤولا في النهاية عن تنفيذ openclaw أو Node بهذه الوسائط.
cat > ~/.local/bin/openclaw-doppler <<'EOF'
#!/usr/bin/env bash
set -euo pipefail
exec doppler run --project my-project --config production -- openclaw "$@"
EOF
chmod +x ~/.local/bin/openclaw-doppler

openclaw gateway install --wrapper ~/.local/bin/openclaw-doppler --force
openclaw gateway restart
يمكنك أيضا ضبط الغلاف عبر البيئة. يتحقق gateway install من أن المسار ملف تنفيذي، ويكتب الغلاف في ProgramArguments الخاصة بالخدمة، ويثبّت OPENCLAW_WRAPPER في بيئة الخدمة لإعادة التثبيت القسرية والتحديثات وإصلاحات الطبيب لاحقا.
OPENCLAW_WRAPPER="$HOME/.local/bin/openclaw-doppler" openclaw gateway install --force
openclaw doctor
لإزالة غلاف مثبت، امسح OPENCLAW_WRAPPER أثناء إعادة التثبيت:
OPENCLAW_WRAPPER= openclaw gateway install --force
openclaw gateway restart
  • gateway status: --url, --token, --password, --timeout, --no-probe, --require-rpc, --deep, --json
  • gateway install: --port, --runtime <node|bun>, --token, --wrapper <path>, --force, --json
  • gateway restart: --safe, --skip-deferral, --force, --wait <duration>, --json
  • gateway uninstall|start: --json
  • gateway stop: --disable, --json
  • استخدم gateway restart لإعادة تشغيل خدمة مُدارة. لا تسلسل gateway stop وgateway start كبديل لإعادة التشغيل.
  • على macOS، يستخدم gateway stop الأمر launchctl bootout افتراضيًا، ما يزيل LaunchAgent من جلسة الإقلاع الحالية من دون الإبقاء على تعطيل مستمر — يظل الاسترداد التلقائي عبر KeepAlive نشطًا للأعطال المستقبلية، ويعيد gateway start التمكين بشكل نظيف من دون launchctl enable يدوي. مرّر --disable لتعطيل KeepAlive وRunAtLoad بشكل مستمر كي لا يعاود Gateway الظهور حتى تنفيذ gateway start الصريح التالي؛ استخدم هذا عندما يجب أن يصمد الإيقاف اليدوي بعد إعادة الإقلاع أو إعادة تشغيل النظام.
  • يطلب gateway restart --safe من Gateway الجاري تشغيله إجراء فحص مسبق لأعمال OpenClaw النشطة وتأجيل إعادة التشغيل حتى يكتمل تسليم الردود وعمليات التشغيل المضمّنة وتشغيلات المهام. لا يمكن دمج --safe مع --force أو --wait.
  • يتجاوز gateway restart --wait 30s ميزانية تصريف إعادة التشغيل المكوّنة لإعادة التشغيل هذه. الأرقام المجرّدة تعني المللي ثانية؛ وتُقبل الوحدات مثل s وm وh. ينتظر --wait 0 إلى أجل غير مسمى.
  • يشغّل gateway restart --safe --skip-deferral إعادة التشغيل الآمنة الواعية بـ OpenClaw لكنه يتجاوز بوابة التأجيل لكي يصدر Gateway إعادة التشغيل فورًا حتى عند الإبلاغ عن موانع. هذا مخرج طوارئ للمشغّل لتأجيلات تشغيلات المهام العالقة؛ ويتطلب --safe.
  • يتخطى gateway restart --force تصريف العمل النشط ويعيد التشغيل فورًا. استخدمه عندما يكون المشغّل قد فحص بالفعل موانع المهام المدرجة ويريد عودة Gateway الآن.
  • تقبل أوامر دورة الحياة --json للاستخدام في السكربتات.
  • عندما تتطلب مصادقة الرمز رمزًا ويكون gateway.auth.token مُدارًا عبر SecretRef، يتحقق gateway install من إمكانية حل SecretRef لكنه لا يحفظ الرمز المحلول في بيانات تعريف بيئة الخدمة.
  • إذا كانت مصادقة الرمز تتطلب رمزًا وكان SecretRef للرمز المكوّن غير محلول، يفشل التثبيت بأمان بدلًا من حفظ نص عادي احتياطي.
  • لمصادقة كلمة المرور في gateway run، فضّل OPENCLAW_GATEWAY_PASSWORD أو --password-file أو gateway.auth.password المدعوم بـ SecretRef على --password المضمّنة.
  • في وضع المصادقة المستنتج، لا يخفف OPENCLAW_GATEWAY_PASSWORD المتاح للصدفة فقط متطلبات رمز التثبيت؛ استخدم إعدادًا دائمًا (gateway.auth.password أو env في الإعدادات) عند تثبيت خدمة مُدارة.
  • إذا كان كل من gateway.auth.token وgateway.auth.password مكوّنين وكان gateway.auth.mode غير معيّن، يُحظر التثبيت حتى يُعيّن الوضع صراحةً.

اكتشاف الـ gateways (Bonjour)

يفحص gateway discover إشارات Gateway (_openclaw-gw._tcp).
  • Multicast DNS-SD: local.
  • Unicast DNS-SD (Wide-Area Bonjour): اختر نطاقًا (مثال: openclaw.internal.) واضبط split DNS + خادم DNS؛ راجع Bonjour.
لا تعلن الإشارة إلا الـ gateways التي تم تمكين اكتشاف Bonjour لها (افتراضيًا). يمكن أن تتضمن سجلات الاكتشاف واسع النطاق تلميحات TXT هذه:
  • role (تلميح دور gateway)
  • transport (تلميح النقل، مثل gateway)
  • gatewayPort (منفذ WebSocket، عادةً 18789)
  • sshPort (وضع الاكتشاف الكامل فقط؛ يضبط العملاء أهداف SSH الافتراضية على 22 عند غيابه)
  • tailnetDns (اسم مضيف MagicDNS، عند توفره)
  • gatewayTls / gatewayTlsSha256 (TLS مفعّل + بصمة الشهادة)
  • cliPath (وضع الاكتشاف الكامل فقط)

gateway discover

openclaw gateway discover
--timeout <ms>
number
افتراضي:"2000"
مهلة لكل أمر (تصفح/حل).
--json
boolean
مخرجات قابلة للقراءة آليًا (وتعطل أيضًا التنسيق/مؤشر التحميل).
أمثلة:
openclaw gateway discover --timeout 4000
openclaw gateway discover --json | jq '.beacons[].wsUrl'
  • يفحص CLI النطاق local. إضافة إلى النطاق واسع النطاق المكوّن عند تمكينه.
  • يُشتق wsUrl في مخرجات JSON من نقطة نهاية الخدمة المحلولة، وليس من تلميحات TXT فقط مثل lanHost أو tailnetDns.
  • في local. mDNS وDNS-SD واسع النطاق، لا يُنشر sshPort وcliPath إلا عندما يكون discovery.mdns.mode هو full.

ذات صلة