CLI commands
Plugins
إدارة Plugins الخاصة بـ Gateway، وحزم الخطافات، والحزم المتوافقة.
دليل المستخدم النهائي لتثبيت Plugins وتمكينها واستكشاف مشكلاتها وإصلاحها.
أمثلة سريعة للتثبيت، والعرض، والتحديث، وإلغاء التثبيت، والنشر.
نموذج توافق الحزم.
حقول البيان ومخطط التكوين.
تقوية الأمان لعمليات تثبيت Plugin.
الأوامر
openclaw plugins listopenclaw plugins list --enabledopenclaw plugins list --verboseopenclaw plugins list --jsonopenclaw plugins search <query>openclaw plugins search <query> --limit 20openclaw plugins search <query> --jsonopenclaw plugins install <path-or-spec>openclaw plugins inspect <id>openclaw plugins inspect <id> --runtimeopenclaw plugins inspect <id> --jsonopenclaw plugins inspect --allopenclaw plugins info <id>openclaw plugins enable <id>openclaw plugins disable <id>openclaw plugins registryopenclaw plugins registry --refreshopenclaw plugins uninstall <id>openclaw plugins doctoropenclaw plugins update <id-or-npm-spec>openclaw plugins update --allopenclaw plugins marketplace entriesopenclaw plugins marketplace entries --offlineopenclaw plugins marketplace entries --jsonopenclaw plugins marketplace list <marketplace>openclaw plugins marketplace list <marketplace> --jsonopenclaw plugins marketplace refreshopenclaw plugins marketplace refresh --feed-profile clawhub-public --jsonopenclaw plugins marketplace refresh --feed-url https://clawhub.ai/v1/feeds/plugins --expected-sha256 <sha256>openclaw plugins init my-tool --name "My Tool"openclaw plugins init my-provider --name "My Provider" --type provideropenclaw plugins init my-provider --name "My Provider" --type provider --directory ./my-provideropenclaw plugins build --entry ./dist/index.jsopenclaw plugins build --entry ./dist/index.js --checkopenclaw plugins validate --entry ./dist/index.jsلاستقصاء بطء التثبيت أو الفحص أو إلغاء التثبيت أو تحديث السجل، شغّل
الأمر مع OPENCLAW_PLUGIN_LIFECYCLE_TRACE=1. يكتب التتبع توقيتات المراحل
إلى stderr ويحافظ على قابلية تحليل مخرجات JSON. راجع تصحيح الأخطاء.
المؤلف
openclaw plugins init stock-quotes --name "Stock Quotes"cd stock-quotesnpm run plugin:buildnpm run plugin:validateينشئ plugins init افتراضيًا Plugin أدوات TypeScript بسيطًا. الوسيط الأول
هو معرّف Plugin؛ مرّر --name لاسم العرض. يستخدم OpenClaw
المعرّف لمجلد الإخراج الافتراضي وتسمية الحزمة. تستخدم قوالب الأدوات
defineToolPlugin.
يستورد plugins build نقطة الدخول المبنية، ويقرأ بيانات تعريف الأدوات الثابتة، ويكتب
openclaw.plugin.json، ويحافظ على اتساق package.json openclaw.extensions.
يتحقق plugins validate من استمرار توافق البيان المُنشأ، وبيانات تعريف الحزمة،
وتصدير نقطة الدخول الحالية. راجع Plugins الأدوات للاطلاع على
سير عمل تأليف الأدوات الكامل.
يكتب القالب مصدر TypeScript لكنه ينشئ بيانات التعريف من نقطة الدخول المبنية
./dist/index.js حتى يعمل سير العمل أيضًا مع CLI المنشور. استخدم
--entry <path> عندما لا تكون نقطة الدخول هي نقطة دخول الحزمة الافتراضية. استخدم
plugins build --check في CI للفشل عندما تكون بيانات التعريف المُنشأة قديمة دون
إعادة كتابة الملفات.
قالب المزوّد
openclaw plugins init acme-models --name "Acme Models" --type providercd acme-modelsnpm installnpm run buildnpm testnpm run validateتنشئ قوالب المزوّد Plugin مزوّد نص/نموذج عامًا مع توصيل مفتاح API متوافق مع OpenAI،
وسكربت npm run validate مدمج لـ clawhub package validate، وبيانات تعريف حزمة ClawHub، وسير عمل GitHub يُشغّل يدويًا
للنشر الموثوق مستقبلًا عبر GitHub Actions OIDC. لا تنشئ قوالب المزوّد
Skills ولا تستخدم openclaw plugins build أو
openclaw plugins validate؛ فهذه الأوامر مخصصة لمسار بيانات التعريف المُنشأة
لقالب الأدوات.
قبل النشر، استبدل عنوان URL الأساسي لواجهة API النائب، وكتالوج النماذج، ومسار الوثائق، ونص بيانات الاعتماد، ونسخة README بتفاصيل المزوّد الحقيقية. استخدم README المُنشأ للنشر الأول على ClawHub وإعداد الناشر الموثوق.
التثبيت
openclaw plugins search "calendar" # search ClawHub pluginsopenclaw plugins install <package> # source auto-detectionopenclaw plugins install clawhub:<package> # ClawHub onlyopenclaw plugins install npm:<package> # npm onlyopenclaw plugins install npm-pack:<path.tgz> # local npm pack through npm install semanticsopenclaw plugins install git:github.com/<owner>/<repo> # git repoopenclaw plugins install git:github.com/<owner>/<repo>@<ref>openclaw plugins install <package> --force # overwrite existing installopenclaw plugins install <package> --pin # pin versionopenclaw plugins install clawhub:<package> --acknowledge-clawhub-riskopenclaw plugins install <package> --dangerously-force-unsafe-installopenclaw plugins install <path> # local pathopenclaw plugins install <plugin>@<marketplace> # marketplaceopenclaw plugins install <plugin> --marketplace <name> # marketplace (explicit)openclaw plugins install <plugin> --marketplace https://github.com/<owner>/<repo>يمكن للمشرفين الذين يختبرون عمليات التثبيت وقت الإعداد تجاوز مصادر تثبيت Plugin التلقائية باستخدام متغيرات بيئة محروسة. راجع تجاوزات تثبيت Plugin.
يستعلم plugins search من ClawHub عن حزم Plugin القابلة للتثبيت ويطبع
أسماء الحزم الجاهزة للتثبيت. يبحث في حزم code-plugin وbundle-plugin،
وليس Skills. استخدم openclaw skills search للبحث عن Skills في ClawHub.
تضمينات التكوين وإصلاح التكوين غير الصالح
إذا كان قسم plugins لديك مدعومًا بتضمين $include لملف واحد، فإن plugins install/update/enable/disable/uninstall تكتب إلى ذلك الملف المضمّن وتترك openclaw.json دون تغيير. تفشل تضمينات الجذر، ومصفوفات التضمين، والتضمينات ذات التجاوزات الشقيقة بإغلاق بدلًا من التسطيح. راجع تضمينات التكوين للاطلاع على الأشكال المدعومة.
إذا كان التكوين غير صالح أثناء التثبيت، يفشل plugins install عادةً بإغلاق ويطلب منك تشغيل openclaw doctor --fix أولًا. أثناء بدء تشغيل Gateway وإعادة التحميل الساخن، يفشل تكوين Plugin غير الصالح بإغلاق مثل أي تكوين غير صالح آخر؛ ويمكن لـ openclaw doctor --fix عزل إدخال Plugin غير الصالح. الاستثناء الوحيد الموثق وقت التثبيت هو مسار استرداد ضيق لـ Plugin مضمّن خاص بـ Plugins التي تختار صراحةً openclaw.install.allowInvalidConfigRecovery.
--force وإعادة التثبيت مقابل التحديث
يعيد --force استخدام هدف التثبيت الحالي ويستبدل Plugin أو حزمة خطافات مثبتة مسبقًا في مكانها. استخدمه عندما تعيد عمدًا تثبيت المعرّف نفسه من مسار محلي جديد، أو أرشيف، أو حزمة ClawHub، أو أثر npm. للترقيات الروتينية لـ Plugin npm متتبع مسبقًا، فضّل openclaw plugins update <id-or-npm-spec>.
إذا شغّلت plugins install لمعرّف Plugin مثبت مسبقًا، يتوقف OpenClaw ويوجهك إلى plugins update <id-or-npm-spec> لترقية عادية، أو إلى plugins install <package> --force عندما تريد فعلًا استبدال التثبيت الحالي من مصدر مختلف.
نطاق --pin
ينطبق --pin على تثبيتات npm فقط. لا يُدعم مع تثبيتات git:؛ استخدم مرجع git صريحًا مثل git:github.com/acme/plugin@v1.2.3 عندما تريد مصدرًا مثبتًا. ولا يُدعم مع --marketplace، لأن تثبيتات marketplace تحفظ بيانات تعريف مصدر marketplace بدلًا من مواصفة npm.
--dangerously-force-unsafe-install
أصبح --dangerously-force-unsafe-install مهملًا وهو الآن بلا تأثير. لم يعد OpenClaw يشغّل حظر التعليمات البرمجية الخطرة المدمج وقت التثبيت لعمليات تثبيت Plugin.
استخدم سطح security.installPolicy المشترك المملوك للمشغّل عندما تكون سياسة تثبيت خاصة بالمضيف مطلوبة. خطافات Plugin before_install هي خطافات دورة حياة وقت تشغيل Plugin وليست حد السياسة الأساسي لتثبيتات CLI.
إذا كان Plugin نشرته على ClawHub مخفيًا أو محظورًا بفحص سجل، فاستخدم خطوات الناشر في نشر ClawHub. لا يطلب --dangerously-force-unsafe-install من ClawHub إعادة فحص Plugin أو جعل إصدار محظور عامًا.
--acknowledge-clawhub-risk
تتحقق تثبيتات مجتمع ClawHub من سجل ثقة الإصدار المحدد قبل تنزيل الحزمة. إذا عطّل ClawHub التنزيل للإصدار، أو أبلغ عن نتائج فحص خبيثة، أو وضع الإصدار في حالة إشراف حاجبة مثل الحجر، يرفض OpenClaw الإصدار. بالنسبة إلى حالات الفحص الخطرة غير الحاجبة، أو حالات الإشراف الخطرة، أو أسباب السجل، يعرض OpenClaw تفاصيل الثقة ويطلب التأكيد قبل المتابعة.
استخدم --acknowledge-clawhub-risk فقط بعد مراجعة تحذير ClawHub واتخاذ قرار بالمتابعة دون مطالبة تفاعلية. تحذّر سجلات الثقة النظيفة المعلقة أو القديمة لكنها لا تتطلب إقرارًا. تتجاوز حزم ClawHub الرسمية ومصادر Plugin المضمّنة في OpenClaw مطالبة ثقة الإصدار هذه.
حزم الخطافات ومواصفات npm
يُعد plugins install أيضًا سطح التثبيت لحزم الخطافات التي تعرض openclaw.hooks في package.json. استخدم openclaw hooks لرؤية الخطافات المفلترة وتمكين كل خطاف على حدة، وليس لتثبيت الحزم.
مواصفات npm هي للسجل فقط (اسم الحزمة + إصدار دقيق اختياري أو وسم توزيع اختياري). تُرفض مواصفات Git/URL/file ونطاقات semver. تعمل عمليات تثبيت التبعيات في مشروع npm مُدار واحد لكل Plugin مع --ignore-scripts للسلامة، حتى عندما تكون لدى الصدفة لديك إعدادات تثبيت npm عامة. ترث مشاريع npm المُدارة للـ Plugins إعدادات npm على مستوى حزمة OpenClaw الخاصة بـ overrides، لذلك تنطبق تثبيتات أمان المضيف على تبعيات Plugin المرفوعة أيضًا.
استخدم npm:<package> عندما تريد جعل حل npm صريحًا. مواصفات الحزم العارية تُثبَّت أيضًا مباشرةً من npm أثناء انتقال الإطلاق ما لم تطابق معرّف Plugin رسميًا.
مواصفات حزم @openclaw/* الخام التي تطابق Plugins المضمّنة تُحل إلى النسخة المضمّنة المملوكة للصورة قبل الرجوع إلى npm. على سبيل المثال، يستخدم openclaw plugins install @openclaw/discord@2026.5.20 --pin Plugin Discord المضمّن من بناء OpenClaw الحالي بدلًا من إنشاء تجاوز npm مُدار. لفرض استخدام حزمة npm الخارجية، استخدم openclaw plugins install npm:@openclaw/discord@2026.5.20 --pin.
تبقى المواصفات العارية و@latest على المسار المستقر. إصدارات التصحيح المؤرخة في OpenClaw مثل 2026.5.3-1 هي إصدارات مستقرة لهذا الفحص. إذا حل npm أيًا منها إلى إصدار تمهيدي، يتوقف OpenClaw ويطلب منك الاشتراك صراحةً باستخدام وسم إصدار تمهيدي مثل @beta/@rc أو إصدار تمهيدي دقيق مثل @1.2.3-beta.4.
بالنسبة إلى تثبيتات npm دون إصدار دقيق (npm:<package> أو npm:<package>@latest)، يفحص OpenClaw بيانات تعريف الحزمة المحلولة قبل التثبيت. إذا كانت أحدث حزمة مستقرة تتطلب واجهة API أحدث لـ Plugin في OpenClaw أو حدًا أدنى أحدث لإصدار المضيف، يفحص OpenClaw الإصدارات المستقرة الأقدم ويثبّت أحدث إصدار متوافق بدلًا من ذلك. تظل الإصدارات الدقيقة ووسوم التوزيع الصريحة مثل @beta صارمة: إذا كانت الحزمة المحددة غير متوافقة، يفشل الأمر ويطلب منك ترقية OpenClaw أو اختيار إصدار متوافق.
إذا طابقت مواصفة تثبيت عارية معرّف Plugin رسميًا (مثل diffs)، يثبّت OpenClaw إدخال الكتالوج مباشرةً. لتثبيت حزمة npm بالاسم نفسه، استخدم مواصفة ذات نطاق صريح (مثل @scope/diffs).
Git repositories
استخدم git:<repo> للتثبيت مباشرةً من مستودع git. تشمل الصيغ المدعومة عناوين استنساخ git:github.com/owner/repo وgit:owner/repo وhttps:// الكاملة وssh:// وgit:// وfile:// وgit@host:owner/repo.git. أضف @<ref> أو #<ref> لاستخراج فرع أو وسم أو commit قبل التثبيت.
تستنسخ تثبيتات Git في دليل مؤقت، وتستخرج المرجع المطلوب عند وجوده، ثم تستخدم مُثبّت دليل Plugin العادي. يعني ذلك أن التحقق من البيان، وسياسة تثبيت المشغّل، وعمل تثبيت مدير الحزم، وسجلات التثبيت تتصرف مثل تثبيتات npm. تتضمن تثبيتات git المسجلة عنوان URL/المرجع للمصدر بالإضافة إلى commit المحلول حتى يتمكن openclaw plugins update من إعادة حل المصدر لاحقًا.
بعد التثبيت من git، استخدم openclaw plugins inspect <id> --runtime --json للتحقق من تسجيلات وقت التشغيل مثل طرق Gateway وأوامر CLI. إذا سجّل Plugin جذر CLI باستخدام api.registerCli، فنفّذ ذلك الأمر مباشرةً عبر CLI الجذري لـ OpenClaw، مثل openclaw demo-plugin ping.
Archives
الأرشيفات المدعومة: .zip و.tgz و.tar.gz و.tar. يجب أن تحتوي أرشيفات Plugin الأصلية لـ OpenClaw على openclaw.plugin.json صالح في جذر Plugin المستخرج؛ وتُرفض الأرشيفات التي تحتوي فقط على package.json قبل أن يكتب OpenClaw سجلات التثبيت.
استخدم npm-pack:<path.tgz> عندما يكون الملف أرشيف tarball من npm-pack وتريد
اختبار مسار مشروع npm المُدار لكل Plugin نفسه المستخدم في تثبيتات السجل،
بما في ذلك التحقق من package-lock.json، وفحص التبعيات المرفوعة،
وسجلات تثبيت npm. لا تزال مسارات الأرشيف العادية تُثبَّت كأرشيفات محلية
تحت جذر امتدادات Plugin.
تثبيتات سوق Claude مدعومة أيضًا.
تستخدم تثبيتات ClawHub محددًا صريحًا بصيغة clawhub:<package>:
openclaw plugins install clawhub:openclaw-codex-app-serveropenclaw plugins install clawhub:openclaw-codex-app-server@1.2.3تُثبَّت مواصفات Plugins العارية الآمنة لـ npm من npm افتراضيًا أثناء انتقال الإطلاق ما لم تطابق معرّف Plugin رسميًا:
openclaw plugins install openclaw-codex-app-serverاستخدم npm: لجعل الحل مقتصرًا على npm صراحةً:
openclaw plugins install npm:openclaw-codex-app-serveropenclaw plugins install npm:@openclaw/discord@2026.5.20openclaw plugins install npm:@scope/plugin-name@1.0.1يفحص OpenClaw التوافق المُعلن لواجهة API الخاصة بـ Plugin / الحد الأدنى لـ Gateway قبل التثبيت. عندما ينشر إصدار ClawHub المحدد أثر ClawPack، ينزّل OpenClaw ملف npm-pack .tgz ذي الإصدار، ويتحقق من ترويسة ملخص ClawHub وملخص الأثر، ثم يثبّته عبر مسار الأرشيف العادي. لا تزال إصدارات ClawHub الأقدم دون بيانات ClawPack الوصفية تُثبَّت عبر مسار التحقق القديم من أرشيف الحزمة. تحتفظ التثبيتات المسجلة ببيانات تعريف مصدر ClawHub، ونوع الأثر، وتكامل npm، وshasum الخاص بـ npm، واسم tarball، وحقائق ملخص ClawPack للتحديثات اللاحقة.
تحافظ تثبيتات ClawHub غير محددة الإصدار على مواصفة مسجلة غير محددة الإصدار حتى يتمكن openclaw plugins update من متابعة إصدارات ClawHub الأحدث؛ وتبقى محددات الإصدار أو الوسم الصريحة مثل clawhub:pkg@1.2.3 وclawhub:pkg@beta مثبتة على ذلك المحدد.
اختصار السوق
استخدم اختصار plugin@marketplace عندما يكون اسم السوق موجودًا في ذاكرة Claude المحلية لسجل الأسواق عند ~/.claude/plugins/known_marketplaces.json:
openclaw plugins marketplace list <marketplace-name>openclaw plugins install <plugin-name>@<marketplace-name>استخدم --marketplace عندما تريد تمرير مصدر السوق صراحةً:
openclaw plugins install <plugin-name> --marketplace <marketplace-name>openclaw plugins install <plugin-name> --marketplace <owner/repo>openclaw plugins install <plugin-name> --marketplace https://github.com/<owner>/<repo>openclaw plugins install <plugin-name> --marketplace ./my-marketplaceMarketplace sources
- اسم سوق معروف لدى Claude من
~/.claude/plugins/known_marketplaces.json - جذر سوق محلي أو مسار
marketplace.json - اختصار مستودع GitHub مثل
owner/repo - عنوان URL لمستودع GitHub مثل
https://github.com/owner/repo - عنوان URL لـ git
Remote marketplace rules
بالنسبة إلى الأسواق البعيدة المحمّلة من GitHub أو git، يجب أن تبقى إدخالات Plugins داخل مستودع السوق المستنسخ. يقبل OpenClaw مصادر المسارات النسبية من ذلك المستودع ويرفض مصادر HTTP(S)، والمسارات المطلقة، وgit، وGitHub، وغيرها من مصادر Plugins غير المسارية من البيانات الظاهرة البعيدة.
بالنسبة إلى المسارات والأرشيفات المحلية، يكتشف OpenClaw تلقائيًا:
- Plugins أصلية لـ OpenClaw (
openclaw.plugin.json) - حزم متوافقة مع Codex (
.codex-plugin/plugin.json) - حزم متوافقة مع Claude (
.claude-plugin/plugin.jsonأو تخطيط مكوّنات Claude الافتراضي) - حزم متوافقة مع Cursor (
.cursor-plugin/plugin.json)
يجب أن تكون التثبيتات المحلية المُدارة دلائل Plugins أو أرشيفات. لا تُنسخ ملفات Plugin المستقلة
.js و.mjs و.cjs و.ts إلى جذر Plugin المُدار
بواسطة plugins install؛ أدرجها صراحةً في plugins.load.paths بدلًا من ذلك.
القائمة
openclaw plugins listopenclaw plugins list --enabledopenclaw plugins list --verboseopenclaw plugins list --jsonopenclaw plugins search <query>openclaw plugins search <query> --limit 20openclaw plugins search <query> --json--enabledbooleanاعرض Plugins المفعّلة فقط.
--verbosebooleanبدّل من عرض الجدول إلى أسطر تفاصيل لكل Plugin تتضمن بيانات تعريف المصدر/الأصل/الإصدار/التفعيل.
--jsonbooleanمخزون قابل للقراءة آليًا بالإضافة إلى تشخيصات السجل وحالة تثبيت تبعيات الحزم.
إذا سجّلت سجلات بدء التشغيل plugins.allow is empty; discovered non-bundled plugins may auto-load: ...،
فشغّل openclaw plugins list --enabled --verbose أو
openclaw plugins inspect <id> مع معرّف Plugin مُدرج لتأكيد معرّفات Plugin
ونسخ المعرّفات الموثوقة إلى plugins.allow في openclaw.json. عندما يستطيع
التحذير سرد كل Plugin مكتشف، فإنه يطبع مقتطف plugins.allow
جاهزًا للصق ويتضمن تلك المعرّفات مسبقًا. إذا حُمّل Plugin
دون مصدر تثبيت/مسار تحميل، فافحص معرّف ذلك Plugin، ثم إما ثبّت
المعرّف الموثوق في plugins.allow أو أعد تثبيت Plugin من مصدر موثوق
حتى يسجل OpenClaw مصدر التثبيت.
plugins search هو بحث بعيد في كتالوج ClawHub. لا يفحص الحالة المحلية،
ولا يغيّر الإعدادات، ولا يثبّت الحزم، ولا يحمّل كود وقت تشغيل Plugin. تتضمن
نتائج البحث اسم حزمة ClawHub، والعائلة، والقناة، والإصدار، والملخص،
وتلميح تثبيت مثل openclaw plugins install clawhub:<package>.
بالنسبة إلى عمل Plugin المضمّن داخل صورة Docker مُحزّمة، اربط دليل مصدر Plugin
فوق مسار المصدر المُحزّم المطابق، مثل
/app/extensions/synology-chat. سيكتشف OpenClaw طبقة المصدر المركّبة تلك
قبل /app/dist/extensions/synology-chat؛ ويبقى دليل المصدر المنسوخ العادي
غير فعّال بحيث تستمر التثبيتات المُحزّمة العادية في استخدام dist المجمّع.
لتصحيح أخطاء hooks وقت التشغيل:
- يعرض
openclaw plugins inspect <id> --runtime --jsonhooks المسجلة والتشخيصات من مرور فحص محمّل كوحدة. لا يثبّت فحص وقت التشغيل التبعيات أبدًا؛ استخدمopenclaw doctor --fixلتنظيف حالة التبعيات القديمة أو استعادة Plugins القابلة للتنزيل المفقودة والمشار إليها في الإعدادات. - يؤكد
openclaw gateway status --deep --require-rpcعنوان URL/الملف الشخصي القابل للوصول لـ Gateway، وتلميحات الخدمة/العملية، ومسار الإعدادات، وصحة RPC. - تتطلب hooks المحادثة غير المضمّنة (
llm_input,llm_output,before_model_resolve,before_agent_reply,before_agent_run,before_agent_finalize,agent_end) ضبطplugins.entries.<id>.hooks.allowConversationAccess=true.
استخدم --link لتجنب نسخ دليل Plugin محلي (يضيفه إلى plugins.load.paths):
openclaw plugins install -l ./my-pluginيجب إدراج ملفات Plugin المستقلة في plugins.load.paths بدلًا من
تثبيتها باستخدام plugins install أو وضعها مباشرةً في ~/.openclaw/extensions
أو <workspace>/.openclaw/extensions. تحمّل تلك الجذور المكتشفة تلقائيًا
دلائل حزم Plugin أو الحزم المتوافقة، بينما تُعامَل ملفات السكربتات في المستوى الأعلى
كمساعدات محلية ويتم تخطيها.
فهرس Plugin
بيانات تثبيت Plugin الوصفية هي حالة تديرها الآلة، وليست تكوينًا للمستخدم. تكتبها التثبيتات والتحديثات إلى قاعدة بيانات حالة SQLite المشتركة ضمن دليل حالة OpenClaw النشط. يخزن صف installed_plugin_index بيانات installRecords الوصفية الدائمة، بما في ذلك السجلات الخاصة ببيانات تعريف Plugin المعطوبة أو المفقودة، إضافة إلى ذاكرة تخزين مؤقت باردة للسجل مشتقة من بيان التعريف تستخدمها openclaw plugins update، وإلغاء التثبيت، والتشخيصات، وسجل Plugin البارد.
عندما يرى OpenClaw سجلات plugins.installs قديمة مشحونة في التكوين، تتعامل قراءات وقت التشغيل معها كمدخلات توافق من دون إعادة كتابة openclaw.json. تنقل كتابات Plugin الصريحة وopenclaw doctor --fix تلك السجلات إلى فهرس Plugin وتزيل مفتاح التكوين عندما تكون كتابات التكوين مسموحة؛ وإذا فشلت أي من الكتابتين، تُبقى سجلات التكوين حتى لا تُفقد بيانات التثبيت الوصفية.
إلغاء التثبيت
openclaw plugins uninstall <id>openclaw plugins uninstall <id> --dry-runopenclaw plugins uninstall <id> --keep-filesيزيل uninstall سجلات Plugin من plugins.entries، وفهرس Plugin المستمر، ومدخلات قائمة السماح/الحظر لـ Plugin، ومدخلات plugins.load.paths المرتبطة عند الاقتضاء. ما لم يتم تعيين --keep-files، يزيل إلغاء التثبيت أيضًا دليل التثبيت المُدار المتتبع عندما يكون داخل جذر امتدادات Plugin في OpenClaw. بالنسبة إلى Plugins الذاكرة النشطة، يُعاد تعيين خانة الذاكرة إلى memory-core.
التحديث
openclaw plugins update <id-or-npm-spec>openclaw plugins update --allopenclaw plugins update <id-or-npm-spec> --dry-runopenclaw plugins update @openclaw/voice-callopenclaw plugins update openclaw-codex-app-server --acknowledge-clawhub-riskopenclaw plugins update openclaw-codex-app-server --dangerously-force-unsafe-installتنطبق التحديثات على تثبيتات Plugin المتتبعة في فهرس Plugin المُدار وتثبيتات حزم الخطافات المتتبعة في hooks.internal.installs.
حل معرف Plugin مقابل مواصفة npm
عند تمرير معرف Plugin، يعيد OpenClaw استخدام مواصفة التثبيت المسجلة لذلك Plugin. وهذا يعني أن علامات التوزيع المخزنة سابقًا مثل @beta والإصدارات الدقيقة المثبتة تستمر في الاستخدام في عمليات update <id> اللاحقة.
أثناء update <id> --dry-run، تظل تثبيتات npm الدقيقة المثبتة مثبتة. إذا استطاع OpenClaw أيضًا حل خط السجل الافتراضي للحزمة وكان ذلك الخط الافتراضي أحدث من الإصدار المثبت المنصب، فإن التشغيل الجاف يبلغ عن التثبيت ويطبع أمر تحديث الحزمة الصريح @latest لاتباع خط السجل الافتراضي.
تختلف قاعدة التحديث المستهدف هذه عن مسار الصيانة الجماعي openclaw plugins update --all. لا تزال التحديثات الجماعية تحترم مواصفات التثبيت المتتبعة العادية، لكن سجلات Plugin الرسمية الموثوقة لـ OpenClaw يمكنها المزامنة إلى هدف الكتالوج الرسمي الحالي بدلًا من البقاء على حزمة رسمية دقيقة قديمة. استخدم update <id> المستهدف عندما تريد عمدًا إبقاء مواصفة رسمية دقيقة أو موسومة من دون تغيير.
بالنسبة إلى تثبيتات npm، يمكنك أيضًا تمرير مواصفة حزمة npm صريحة مع علامة توزيع أو إصدار دقيق. يحل OpenClaw اسم الحزمة ذلك عائدًا إلى سجل Plugin المتتبع، ويحدث ذلك Plugin المثبت، ويسجل مواصفة npm الجديدة للتحديثات المستقبلية المستندة إلى المعرف.
تمرير اسم حزمة npm من دون إصدار أو علامة يحل أيضًا عائدًا إلى سجل Plugin المتتبع. استخدم هذا عندما يكون Plugin مثبتًا على إصدار دقيق وتريد إعادته إلى خط الإصدار الافتراضي للسجل.
تحديثات قناة بيتا
يعيد openclaw plugins update <id-or-npm-spec> المستهدف استخدام مواصفة Plugin المتتبعة ما لم تمرر مواصفة جديدة. يستخدم openclaw plugins update --all الجماعي update.channel المكوّن عندما يزامن سجلات Plugin الرسمية الموثوقة إلى هدف الكتالوج الرسمي، بحيث يمكن لتثبيتات قناة بيتا أن تبقى على خط إصدار بيتا بدلًا من تسويتها بصمت إلى المستقر/الأحدث.
يعرف openclaw update أيضًا قناة تحديث OpenClaw النشطة: على قناة بيتا، تحاول سجلات Plugin الافتراضية لـ npm وClawHub استخدام @beta أولًا. وتعود إلى المواصفة الافتراضية/الأحدث المسجلة إذا لم يوجد إصدار بيتا لـ Plugin؛ كما تعود Plugins npm أيضًا عندما تكون حزمة بيتا موجودة لكنها تفشل في تحقق التثبيت. يُبلغ عن هذا الرجوع كتحذير ولا يفشل تحديث النواة. تبقى الإصدارات الدقيقة والعلامات الصريحة مثبتة على ذلك المحدد للتحديثات المستهدفة.
فحوصات الإصدار وانحراف السلامة
قبل تحديث npm مباشر، يتحقق OpenClaw من إصدار الحزمة المثبتة مقابل بيانات السجل الوصفية لـ npm. إذا كان الإصدار المثبت وهوية الأثر المسجلة يطابقان الهدف المحلول بالفعل، يتم تخطي التحديث من دون تنزيل أو إعادة تثبيت أو إعادة كتابة openclaw.json.
عندما يوجد تجزئة سلامة مخزنة وتتغير تجزئة الأثر المجلب، يعامل OpenClaw ذلك كانحراف في أثر npm. يطبع أمر openclaw plugins update التفاعلي التجزئات المتوقعة والفعلية ويطلب التأكيد قبل المتابعة. تفشل مساعدات التحديث غير التفاعلية بإغلاق آمن ما لم يوفر المستدعي سياسة متابعة صريحة.
--dangerously-force-unsafe-install عند التحديث
يُقبل --dangerously-force-unsafe-install أيضًا في plugins update للتوافق، لكنه مهمل ولم يعد يغير سلوك تحديث Plugin. لا تزال سياسة المشغل security.installPolicy قادرة على حظر التحديثات؛ ولا تنطبق خطافات Plugin before_install إلا في العمليات التي يتم فيها تحميل خطافات Plugin.
--acknowledge-clawhub-risk عند التحديث
تُجري تحديثات Plugin المجتمعية المدعومة من ClawHub فحص الثقة نفسه للإصدار الدقيق كما في التثبيتات قبل تنزيل الحزمة البديلة. استخدم --acknowledge-clawhub-risk للأتمتة المراجعة التي ينبغي أن تستمر عندما يتضمن إصدار ClawHub المحدد تحذير ثقة عالي المخاطر. تتجاوز حزم ClawHub الرسمية ومصادر Plugin المضمنة في OpenClaw مطالبة ثقة الإصدار هذه.
الفحص
openclaw plugins inspect <id>openclaw plugins inspect <id> --runtimeopenclaw plugins inspect <id> --jsonيعرض الفحص الهوية، وحالة التحميل، والمصدر، وقدرات بيان التعريف، وأعلام السياسة، والتشخيصات، وبيانات التثبيت الوصفية، وقدرات الحزمة، وأي دعم مكتشف لخادم MCP أو LSP من دون استيراد وقت تشغيل Plugin افتراضيًا. يتضمن خرج JSON عقود بيان تعريف Plugin، مثل contracts.agentToolResultMiddleware وcontracts.trustedToolPolicies، حتى يتمكن المشغلون من تدقيق تصريحات الأسطح الموثوقة قبل تمكين Plugin أو إعادة تشغيله. أضف --runtime لتحميل وحدة Plugin وتضمين الخطافات والأدوات والأوامر والخدمات وطرق Gateway ومسارات HTTP المسجلة. يبلّغ فحص وقت التشغيل عن تبعيات Plugin المفقودة مباشرة؛ وتبقى التثبيتات والإصلاحات في openclaw plugins install وopenclaw plugins update وopenclaw doctor --fix.
عادةً ما تُثبّت أوامر CLI المملوكة لـ Plugin كمجموعات أوامر جذرية في openclaw، لكن يمكن لـ Plugins أيضًا تسجيل أوامر متداخلة تحت أصل أساسي مثل openclaw nodes. بعد أن يعرض inspect --runtime أمرًا تحت cliCommands، شغّله في المسار المدرج؛ على سبيل المثال يمكن التحقق من Plugin يسجل demo-git باستخدام openclaw demo-git ping.
يُصنّف كل Plugin وفق ما يسجله فعليًا في وقت التشغيل:
- قدرة-عادية — نوع قدرة واحد (مثل Plugin لمزود فقط)
- قدرة-هجينة — عدة أنواع قدرات (مثل نص + كلام + صور)
- خطافات-فقط — خطافات فقط، بلا قدرات أو أسطح
- بلا-قدرات — أدوات/أوامر/خدمات لكن بلا قدرات
راجع أشكال Plugin للمزيد عن نموذج القدرات.
Doctor
openclaw plugins doctorيبلّغ doctor عن أخطاء تحميل Plugin، وتشخيصات بيان التعريف/الاكتشاف، وإشعارات التوافق، ومراجع تكوين Plugin القديمة مثل خانات Plugin المفقودة. عندما تكون شجرة التثبيت وتكوين Plugin نظيفين، يطبع No plugin issues detected. إذا بقي تكوين قديم لكن شجرة التثبيت سليمة بخلاف ذلك، يوضح الملخص ذلك بدلًا من الإيحاء بصحة Plugin كاملة.
إذا كان Plugin مكوّن موجودًا على القرص لكنه محظور بفحوصات أمان المسار في المحمّل، فإن تحقق التكوين يُبقي مدخل Plugin ويبلغ عنه كـ present but blocked. أصلح تشخيص Plugin المحظور السابق، مثل ملكية المسار أو أذونات الكتابة للعالم، بدلًا من إزالة تكوين plugins.entries.<id> أو plugins.allow.
بالنسبة إلى إخفاقات شكل الوحدة مثل غياب صادرات register/activate، أعد التشغيل مع OPENCLAW_PLUGIN_LOAD_DEBUG=1 لتضمين ملخص مضغوط لشكل الصادرات في خرج التشخيص.
السجل
openclaw plugins registryopenclaw plugins registry --refreshopenclaw plugins registry --jsonسجل Plugin المحلي هو نموذج القراءة البارد المستمر في OpenClaw لهوية Plugin وتمكينه وبيانات المصدر الوصفية وملكية المساهمات. يمكن لبدء التشغيل العادي، والبحث عن مالك المزود، وتصنيف إعداد القناة، وجرد Plugin قراءته من دون استيراد وحدات وقت تشغيل Plugin.
استخدم plugins registry لفحص ما إذا كان السجل المستمر موجودًا أو حاليًا أو قديمًا. استخدم --refresh لإعادة بنائه من فهرس Plugin المستمر، وسياسة التكوين، وبيانات بيان التعريف/الحزمة الوصفية. هذا مسار إصلاح، وليس مسار تفعيل وقت تشغيل.
يصلح openclaw doctor --fix أيضًا انحراف npm المُدار المجاور للسجل: إذا حجبت حزمة @openclaw/* يتيمة أو مستردة ضمن مشروع npm Plugin مُدار أو جذر npm المُدار المسطح القديم Plugin مضمنًا، يزيل Doctor تلك الحزمة القديمة ويعيد بناء السجل حتى يتحقق بدء التشغيل مقابل بيان التعريف المضمن. يعيد Doctor أيضًا ربط حزمة المضيف openclaw داخل Plugins npm المُدارة التي تعلن peerDependencies.openclaw، بحيث تُحل استيرادات وقت التشغيل المحلية للحزمة مثل openclaw/plugin-sdk/* بعد التحديثات أو إصلاحات npm.
السوق
openclaw plugins marketplace entriesopenclaw plugins marketplace entries --offlineopenclaw plugins marketplace entries --jsonopenclaw plugins marketplace entries --feed-profile <name>openclaw plugins marketplace entries --feed-url <url>openclaw plugins marketplace list <source>openclaw plugins marketplace list <source> --jsonopenclaw plugins marketplace refreshopenclaw plugins marketplace refresh --feed-profile <name>openclaw plugins marketplace refresh --feed-url <url>openclaw plugins marketplace refresh --expected-sha256 <sha256> --jsonيعرض plugins marketplace entries الإدخالات من موجز سوق OpenClaw المُكوَّن. يحاول افتراضيًا استخدام الموجز المستضاف، ثم يعود إلى أحدث لقطة مقبولة أو البيانات المضمّنة. استخدم --feed-profile <name> لقراءة ملف تعريف مُكوَّن محدد، و--feed-url <url> لقراءة عنوان URL صريح لموجز مستضاف، و--offline لقراءة أحدث لقطة مقبولة دون جلب الموجز.
يحدّث plugins marketplace refresh لقطة الموجز المستضاف المُكوَّن، ويبلّغ عمّا إذا كان OpenClaw قد قبل البيانات المستضافة، أو لقطة مستضافة، أو بيانات احتياطية مضمّنة. استخدم --expected-sha256 عندما يحتاج المستدعي إلى فشل الأمر ما لم تطابق حمولة مستضافة حديثة مجموعًا اختباريًا مثبّتًا.
يقبل list في سوق الإضافات مسار سوق محليًا، أو مسار marketplace.json، أو اختصار GitHub مثل owner/repo، أو عنوان URL لمستودع GitHub، أو عنوان URL لـ git. يطبع --json تسمية المصدر المحلولة بالإضافة إلى بيان السوق المحلّل وإدخالات Plugin.
يحمّل تحديث السوق موجز سوق OpenClaw مستضافًا ويحتفظ بالاستجابة
المتحقق منها كلقطة محلية للموجز المستضاف. من دون خيارات، يستخدم
ملف تعريف الموجز الافتراضي المُكوَّن. استخدم --feed-profile <name> لتحديث
ملف تعريف مُكوَّن محدد، و--feed-url <url> لتحديث عنوان URL صريح
لموجز مستضاف، و--expected-sha256 <sha256> لاشتراط مجموع اختباري مطابق للحمولة
(sha256:<hex> أو ملخص سداسي عشري مجرد بطول 64 حرفًا)، و--json للحصول على
مخرجات قابلة للقراءة آليًا. يجب ألا تتضمن عناوين URL الصريحة للموجزات المستضافة
بيانات اعتماد، أو سلاسل استعلام، أو أجزاء. يمكن للتحديثات غير المثبّتة الإبلاغ عن
نتيجة لقطة مستضافة أو نتيجة احتياطية مضمّنة دون إفشال الأمر. تفشل
التحديثات المثبّتة ما لم تقبل حمولة مستضافة حديثة، وتفشل التحديثات المستضافة
الناجحة إذا تعذّر على OpenClaw الاحتفاظ باللقطة المتحقق منها.