CLI commands
تحديث
openclaw update
حدّث OpenClaw بأمان وبدّل بين قنوات stable/beta/dev.
إذا ثبّت عبر npm/pnpm/bun (تثبيت عام، بلا بيانات git metadata)، فتتم التحديثات عبر مسار مدير الحزم في التحديث.
الاستخدام
openclaw update
openclaw update status
openclaw update wizard
openclaw update --channel beta
openclaw update --channel dev
openclaw update --tag beta
openclaw update --tag main
openclaw update --dry-run
openclaw update --no-restart
openclaw update --yes
openclaw update --json
openclaw --update
الخيارات
--no-restart: تخطَّ إعادة تشغيل خدمة Gateway بعد تحديث ناجح. تحديثات مدير الحزم التي تعيد تشغيل Gateway تتحقق من أن الخدمة المعاد تشغيلها تبلغ عن النسخة المحدّثة المتوقعة قبل نجاح الأمر.--channel <stable|beta|dev>: عيّن قناة التحديث (git + npm؛ تُحفظ في الإعدادات).--tag <dist-tag|version|spec>: تجاوز هدف الحزمة لهذا التحديث فقط. في تثبيتات الحزم، يشيرmainإلىgithub:openclaw/openclaw#main.--dry-run: عاين إجراءات التحديث المخططة (مسار القناة/الوسم/الهدف/إعادة التشغيل) من دون كتابة الإعدادات أو التثبيت أو مزامنة Plugins أو إعادة التشغيل.--json: اطبع JSON قابلًا للقراءة آليًا من نوعUpdateRunResult، بما في ذلكpostUpdate.plugins.warningsعندما تحتاج Plugins المُدارة التالفة أو غير القابلة للتحميل إلى إصلاح بعد نجاح تحديث النواة، وpostUpdate.plugins.integrityDriftsعند اكتشاف اختلاف في أثر حزمة npm الخاصة بـ Plugin أثناء مزامنة Plugin بعد التحديث.--timeout <seconds>: مهلة لكل خطوة (الافتراضي 1800 ثانية).--yes: تخطَّ مطالبات التأكيد (مثل تأكيد الرجوع إلى إصدار أقدم).
لا يحتوي openclaw update على علم --verbose. استخدم --dry-run لمعاينة
إجراءات القناة/الوسم/التثبيت/إعادة التشغيل المخططة، و--json للنتائج القابلة
للقراءة آليًا، وopenclaw update status --json عندما تحتاج فقط إلى تفاصيل
القناة والتوفر. إذا كنت تصحح سجلات Gateway حول تحديث ما، فإن إسهاب الطرفية
ومستوى سجل الملف منفصلان: يؤثر --verbose في Gateway على مخرجات
الطرفية/WebSocket، بينما تتطلب سجلات الملفات logging.level: "debug" أو
"trace" في الإعدادات. راجع تسجيل Gateway.
update status
اعرض قناة التحديث النشطة + وسم/فرع/SHA في git (لنسخ المصدر)، بالإضافة إلى توفر التحديث.
openclaw update status
openclaw update status --json
openclaw update status --timeout 10
الخيارات:
--json: اطبع JSON للحالة قابلًا للقراءة آليًا.--timeout <seconds>: مهلة الفحوصات (الافتراضي 3 ثوانٍ).
update wizard
مسار تفاعلي لاختيار قناة تحديث وتأكيد ما إذا كان يجب إعادة تشغيل Gateway
بعد التحديث (الافتراضي هو إعادة التشغيل). إذا اخترت dev من دون نسخة git checkout، فسيعرض
إنشاء واحدة.
الخيارات:
--timeout <seconds>: مهلة كل خطوة تحديث (الافتراضي1800)
ماذا يفعل
عند تبديل القنوات صراحةً (--channel ...)، يحافظ OpenClaw أيضًا على
اتساق طريقة التثبيت:
dev→ يضمن وجود نسخة git checkout (الافتراضي:~/openclaw، ويمكن تجاوزه بـOPENCLAW_GIT_DIR)، ثم يحدّثها ويثبّت CLI العام منها.stable→ يثبّت من npm باستخدامlatest.beta→ يفضّل npm dist-tag باسمbeta، لكنه يعود إلىlatestعندما تكون beta مفقودة أو أقدم من الإصدار المستقر الحالي.
يطلق محدّث نواة Gateway التلقائي (عند تفعيله عبر الإعدادات) مسار تحديث CLI
خارج معالج طلب Gateway الحي. تفرض تحديثات مدير الحزم عبر مستوى التحكم update.run
إعادة تشغيل للتحديث غير مؤجلة وبلا فترة تهدئة بعد تبديل الحزمة،
لأن عملية Gateway القديمة قد تظل تحتوي في الذاكرة على أجزاء تشير إلى
ملفات أزالتها الحزمة الجديدة.
بالنسبة إلى تثبيتات مدير الحزم، يحل openclaw update نسخة الحزمة الهدف
قبل استدعاء مدير الحزم. تستخدم تثبيتات npm العامة تثبيتًا مرحليًا:
يثبّت OpenClaw الحزمة الجديدة في بادئة npm مؤقتة، ويتحقق من مخزون
dist المضمّن هناك، ثم يبدّل شجرة الحزمة النظيفة هذه إلى البادئة العامة
الحقيقية. إذا فشل التحقق، لا تعمل أعمال doctor بعد التحديث أو مزامنة Plugin أو
إعادة التشغيل من الشجرة المشكوك فيها. حتى عندما تطابق النسخة المثبتة
الهدف بالفعل، يحدّث الأمر تثبيت الحزمة العامة، ثم يشغّل مزامنة Plugin،
وتحديث إكمال أوامر النواة، وأعمال إعادة التشغيل. يحافظ هذا على اتساق
البرامج المرافقة المضمّنة وسجلات Plugin المملوكة للقناة مع بنية OpenClaw
المثبتة، مع ترك عمليات إعادة بناء إكمال أوامر Plugin الكاملة للتشغيلات
الصريحة openclaw completion --write-state.
عند تثبيت خدمة Gateway مُدارة محلية وتفعيل إعادة التشغيل،
توقف تحديثات مدير الحزم الخدمة الجارية قبل استبدال شجرة الحزمة،
ثم تحدّث بيانات تعريف الخدمة من التثبيت المحدّث، وتعيد تشغيل الخدمة،
وتتحقق من أن Gateway المعاد تشغيله يبلغ عن النسخة المتوقعة قبل
الإبلاغ عن النجاح. على macOS، يتحقق فحص ما بعد التحديث أيضًا من أن LaunchAgent
محمّل/قيد التشغيل للملف الشخصي النشط وأن منفذ loopback المضبوط
سليم. إذا كان plist مثبتًا لكن launchd لا يشرف عليه، يعيد OpenClaw
تمهيد LaunchAgent تلقائيًا، ثم يعيد تشغيل فحوصات الجاهزية للصحة/النسخة/القناة.
يحمّل التمهيد الجديد مهمة RunAtLoad مباشرةً، لذلك لا تنفّذ استعادة التحديث فورًا
kickstart -k على Gateway المنشأ حديثًا. إذا ظل Gateway غير سليم،
يخرج الأمر بقيمة غير صفرية ويطبع مسار سجل إعادة التشغيل إضافةً إلى تعليمات
صريحة لإعادة التشغيل وإعادة التثبيت والتراجع عن الحزمة. مع --no-restart،
يستمر استبدال الحزمة لكن لا تُوقف الخدمة المُدارة ولا يُعاد تشغيلها،
لذلك قد يحتفظ Gateway الجاري بالكود القديم إلى أن تعيد تشغيله يدويًا.
مسار git checkout
اختيار القناة
stable: انتقل إلى أحدث وسم غير beta، ثم ابنِ وشغّل doctor.beta: فضّل أحدث وسم-beta، لكن عُد إلى أحدث وسم stable عندما تكون beta مفقودة أو أقدم.dev: انتقل إلىmain، ثم اجلب وأعد تطبيق التغييرات.
خطوات التحديث
التحقق من نظافة شجرة العمل
يتطلب عدم وجود تغييرات غير ملتزم بها.
تبديل القناة
يبدّل إلى القناة المحددة (وسم أو فرع).
جلب upstream
خاص بـ dev فقط.
بناء تمهيدي (dev فقط)
يشغّل بناء TypeScript في شجرة عمل مؤقتة. إذا فشل الطرف، يرجع حتى 10 commits للعثور على أحدث commit قابل للبناء. عيّن OPENCLAW_UPDATE_PREFLIGHT_LINT=1 لتشغيل lint أيضًا أثناء هذا الفحص التمهيدي؛ يعمل lint في وضع تسلسلي مقيّد لأن مضيفات تحديث المستخدم غالبًا أصغر من مشغلات CI.
إعادة تطبيق التغييرات
يعيد تطبيق التغييرات فوق commit المحدد (dev فقط).
تثبيت الاعتماديات
يستخدم مدير حزم المستودع. بالنسبة إلى نسخ pnpm checkout، يهيّئ المحدّث pnpm عند الطلب (عبر corepack أولًا، ثم بديل مؤقت npm install pnpm@10) بدلًا من تشغيل npm run build داخل مساحة عمل pnpm.
بناء Control UI
يبني Gateway وControl UI.
تشغيل doctor
يعمل openclaw doctor كفحص التحديث الآمن النهائي.
مزامنة Plugins
يزامن Plugins إلى القناة النشطة. يستخدم dev Plugins المضمّنة؛ ويستخدم stable وbeta npm. يحدّث تثبيتات Plugin المتتبعة.
على قناة تحديث beta، تحاول تثبيتات Plugin المتتبعة من npm وClawHub التي تتبع
مسار default/latest إصدار Plugin @beta أولًا. إذا لم يكن لدى Plugin
إصدار beta، يعود OpenClaw إلى مواصفة default/latest المسجلة. بالنسبة إلى
Plugins من npm، يعود OpenClaw أيضًا عندما تكون حزمة beta موجودة لكنها تفشل
في تحقق التثبيت. لا تُعاد كتابة النسخ الدقيقة والوسوم الصريحة.
اختصار --update
يعيد openclaw --update الكتابة إلى openclaw update (مفيد للأصداف وسكربتات التشغيل).
ذات صلة
openclaw doctor(يعرض تشغيل التحديث أولًا في نسخ git checkout)- قنوات التطوير
- التحديث
- مرجع CLI