CLI commands
الإعدادات
مساعدات إعدادات للتعديلات غير التفاعلية في openclaw.json: الحصول/التعيين/التصحيح/إلغاء التعيين/الملف/المخطط/التحقق من القيم حسب المسار وطباعة ملف الإعدادات النشط. شغّلها دون أمر فرعي لفتح معالج التهيئة (مثل openclaw configure).
خيارات الجذر
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tc2VjdGlvbiA8c2VjdGlvbg
" type="string">
مرشح قسم إعداد موجه قابل للتكرار عند تشغيل openclaw config دون أمر فرعي.
الأقسام الموجهة المدعومة: workspace وmodel وweb وgateway وdaemon وchannels وplugins وskills وhealth.
أمثلة
openclaw config fileopenclaw config --section modelopenclaw config --section gateway --section daemonopenclaw config schemaopenclaw config get browser.executablePathopenclaw config set browser.executablePath "/usr/bin/google-chrome"openclaw config set browser.profiles.work.executablePath "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"openclaw config set agents.defaults.heartbeat.every "2h"openclaw config set 'agents.list[0].tools.exec.node' "node-id-or-name"openclaw config set agents.defaults.models '{"openai/gpt-5.4":{}}' --strict-json --mergeopenclaw config set channels.discord.token --ref-provider default --ref-source env --ref-id DISCORD_BOT_TOKENopenclaw config set secrets.providers.vaultfile --provider-source file --provider-path /etc/openclaw/secrets.json --provider-mode jsonopenclaw config patch --file ./openclaw.patch.json5 --dry-runopenclaw config unset plugins.entries.brave.config.webSearch.apiKeyopenclaw config set channels.discord.token --ref-provider default --ref-source env --ref-id DISCORD_BOT_TOKEN --dry-runopenclaw config validateopenclaw config validate --jsonconfig schema
اطبع مخطط JSON المولّد لـ openclaw.json إلى stdout بصيغة JSON.
ما يتضمنه
- مخطط إعدادات الجذر الحالي، إضافة إلى حقل سلسلة
$schemaجذري لأدوات المحرر. - بيانات تعريف توثيقية للحقلين
titleوdescriptionتستخدمها واجهة Control UI. - ترث عقد الكائنات المتداخلة وحرف البدل (
*) وعناصر المصفوفة ([]) بيانات تعريفtitle/descriptionنفسها عند وجود توثيق مطابق للحقل. - ترث فروع
anyOf/oneOf/allOfبيانات التعريف التوثيقية نفسها أيضا عند وجود توثيق مطابق للحقل. - بيانات تعريف مخطط Plugin + قناة مباشرة بأفضل جهد عندما يمكن تحميل بيانات manifest وقت التشغيل.
- مخطط احتياطي نظيف حتى عندما تكون الإعدادات الحالية غير صالحة.
RPC وقت التشغيل ذي الصلة
يعيد config.schema.lookup مسار إعدادات واحدا مطبّعا مع عقدة مخطط سطحية (title وdescription وtype وenum وconst والحدود الشائعة)، وبيانات تعريف تلميح واجهة مستخدم مطابقة، وملخصات الأبناء المباشرين. استخدمه للتنقل التفصيلي محدود المسار في Control UI أو العملاء المخصصين.
openclaw config schemaمرّره عبر أنبوب إلى ملف عندما تريد فحصه أو التحقق منه باستخدام أدوات أخرى:
openclaw config schema > openclaw.schema.jsonالمسارات
تستخدم المسارات ترميز النقاط أو الأقواس. ضع مسارات ترميز الأقواس بين علامات اقتباس في أمثلة shell حتى لا توسع shells مثل zsh القيمة [0] كنمط glob قبل أن يتلقى OpenClaw المسار:
openclaw config get agents.defaults.workspaceopenclaw config get 'agents.list[0].id'استخدم فهرس قائمة الوكلاء لاستهداف وكيل محدد:
openclaw config get agents.listopenclaw config set 'agents.list[1].tools.exec.node' "node-id-or-name"القيم
تُحلل القيم كـ JSON5 عندما يكون ذلك ممكنا؛ وإلا فتُعامل كسلاسل. استخدم --strict-json لطلب تحليل JSON قياسي دون رجوع إلى السلاسل. يظل --json مدعوما كاسم بديل قديم لـ --strict-json.
openclaw config set agents.defaults.heartbeat.every "0m"openclaw config set gateway.port 19001 --strict-jsonopenclaw config set channels.whatsapp.groups '["*"]' --strict-jsonعند تفعيل --strict-json، تُرفض صياغة JSON5 فقط مثل التعليقات أو الفواصل اللاحقة أو مفاتيح الكائنات غير المقتبسة. احذف --strict-json لتحليل قيم JSON5 مع الرجوع إلى السلسلة الخام.
يطبع config get <path> --json القيمة الخام بصيغة JSON بدلا من نص منسق للطرفية.
استخدم --merge عند إضافة مدخلات إلى تلك الخرائط:
openclaw config set agents.defaults.models '{"openai/gpt-5.4":{}}' --strict-json --mergeopenclaw config set models.providers.ollama.models '[{"id":"llama3.2","name":"Llama 3.2"}]' --strict-json --mergeاستخدم --replace فقط عندما تريد عمدا أن تصبح القيمة المقدمة هي القيمة الهدف الكاملة.
أوضاع config set
يدعم openclaw config set أربعة أنماط إسناد:
وضع القيمة
openclaw config set <path> <value>وضع منشئ SecretRef
openclaw config set channels.discord.token \ --ref-provider default \ --ref-source env \ --ref-id DISCORD_BOT_TOKENوضع منشئ المزوّد
يستهدف وضع منشئ المزوّد مسارات secrets.providers.<alias> فقط:
openclaw config set secrets.providers.vault \ --provider-source exec \ --provider-command /usr/local/bin/openclaw-vault \ --provider-arg read \ --provider-arg openai/api-key \ --provider-timeout-ms 5000وضع الدُفعات
openclaw config set --batch-json '[ { "path": "secrets.providers.default", "provider": { "source": "env" } }, { "path": "channels.discord.token", "ref": { "source": "env", "provider": "default", "id": "DISCORD_BOT_TOKEN" } }]'openclaw config set --batch-file ./config-set.batch.json --dry-runيستخدم تحليل الدُفعات دائما حمولة الدُفعة (--batch-json/--batch-file) كمصدر الحقيقة. لا يغير --strict-json / --json سلوك تحليل الدُفعات.
config patch
استخدم config patch عندما تريد لصق أو تمرير تصحيح له شكل الإعدادات بدلا من تشغيل العديد من أوامر config set المعتمدة على المسارات. يكون الإدخال كائن JSON5. تُدمج الكائنات تكراريا، وتستبدل المصفوفات والقيم القياسية القيمة الهدف، وتحذف null المسار الهدف.
openclaw config patch --file ./openclaw.patch.json5 --dry-runopenclaw config patch --file ./openclaw.patch.json5يمكنك أيضا تمرير تصحيح عبر stdin، وهذا مفيد لنصوص الإعداد عن بُعد:
ssh openclaw-host 'openclaw config patch --stdin --dry-run' < ./openclaw.patch.json5ssh openclaw-host 'openclaw config patch --stdin' < ./openclaw.patch.json5مثال تصحيح:
{ channels: { slack: { enabled: true, mode: "socket", botToken: { source: "env", provider: "default", id: "SLACK_BOT_TOKEN" }, appToken: { source: "env", provider: "default", id: "SLACK_APP_TOKEN" }, groupPolicy: "open", requireMention: false, }, discord: { enabled: true, token: { source: "env", provider: "default", id: "DISCORD_BOT_TOKEN" }, dmPolicy: "disabled", dm: { enabled: false }, groupPolicy: "allowlist", }, }, agents: { defaults: { model: { primary: "openai/gpt-5.5" }, models: { "openai/gpt-5.5": { params: { fastMode: true } }, }, }, },}استخدم --replace-path <path> عندما يجب أن يصبح كائن أو مصفوفة واحدة القيمة المقدمة بالضبط بدلا من تصحيحها تكراريا:
openclaw config patch --file ./discord.patch.json5 --replace-path 'channels.discord.guilds["123"].channels'يشغّل --dry-run فحوصات المخطط وقابلية حل SecretRef دون كتابة. تُتخطى SecretRefs المدعومة بـ exec افتراضيا أثناء التشغيل التجريبي؛ أضف --allow-exec عندما تريد عمدا أن ينفذ التشغيل التجريبي أوامر المزوّد.
يبقى وضع مسار/قيمة JSON مدعوما لكل من SecretRefs والمزوّدين:
openclaw config set channels.discord.token \ '{"source":"env","provider":"default","id":"DISCORD_BOT_TOKEN"}' \ --strict-json openclaw config set secrets.providers.vaultfile \ '{"source":"file","path":"/etc/openclaw/secrets.json","mode":"json"}' \ --strict-jsonعلامات منشئ المزوّد
يجب أن تستخدم أهداف منشئ المزوّد secrets.providers.<alias> كمسار.
علامات شائعة
--provider-source <env|file|exec>--provider-timeout-ms <ms>(file,exec)
مزوّد Env (--provider-source env)
--provider-allowlist <ENV_VAR>(قابل للتكرار)
مزوّد الملفات (--provider-source file)
--provider-path <path>(مطلوب)--provider-mode <singleValue|json>--provider-max-bytes <bytes>--provider-allow-insecure-path
مزوّد Exec (--provider-source exec)
--provider-command <path>(مطلوب)--provider-arg <arg>(قابل للتكرار)--provider-no-output-timeout-ms <ms>--provider-max-output-bytes <bytes>--provider-json-only--provider-env <KEY=VALUE>(قابل للتكرار)--provider-pass-env <ENV_VAR>(قابل للتكرار)--provider-trusted-dir <path>(قابل للتكرار)--provider-allow-insecure-path--provider-allow-symlink-command
مثال لمزوّد exec محصّن:
openclaw config set secrets.providers.vault \ --provider-source exec \ --provider-command /usr/local/bin/openclaw-vault \ --provider-arg read \ --provider-arg openai/api-key \ --provider-json-only \ --provider-pass-env VAULT_TOKEN \ --provider-trusted-dir /usr/local/bin \ --provider-timeout-ms 5000تشغيل تجريبي
استخدم --dry-run للتحقق من التغييرات دون الكتابة إلى openclaw.json.
openclaw config set channels.discord.token \ --ref-provider default \ --ref-source env \ --ref-id DISCORD_BOT_TOKEN \ --dry-run openclaw config set channels.discord.token \ --ref-provider default \ --ref-source env \ --ref-id DISCORD_BOT_TOKEN \ --dry-run \ --json openclaw config set channels.discord.token \ --ref-provider vault \ --ref-source exec \ --ref-id discord/token \ --dry-run \ --allow-execسلوك التشغيل التجريبي
- وضع المنشئ: يشغّل فحوصات قابلية حل SecretRef للمراجع/المزوّدين الذين تغيّروا.
- وضع JSON (
--strict-jsonأو--jsonأو وضع الدُفعات): يشغّل التحقق من المخطط بالإضافة إلى فحوصات قابلية حل SecretRef. - يعمل التحقق من السياسة أيضًا لأسطح أهداف SecretRef المعروفة بأنها غير مدعومة.
- تقيّم فحوصات السياسة التهيئة الكاملة بعد التغيير، لذلك لا يمكن لعمليات الكتابة على الكائن الأب (على سبيل المثال تعيين
hooksككائن) تجاوز التحقق من الأسطح غير المدعومة. - يتم تخطي فحوصات Exec SecretRef افتراضيًا أثناء التشغيل التجريبي لتجنب الآثار الجانبية للأوامر.
- استخدم
--allow-execمع--dry-runللاشتراك في فحوصات Exec SecretRef (قد يؤدي ذلك إلى تنفيذ أوامر المزوّد). --allow-execمخصص للتشغيل التجريبي فقط ويُظهر خطأ إذا استُخدم بدون--dry-run.
حقول --dry-run --json
يطبع --dry-run --json تقريرًا قابلًا للقراءة آليًا:
ok: ما إذا كان التشغيل التجريبي قد نجحoperations: عدد التعيينات التي تم تقييمهاchecks: ما إذا كانت فحوصات المخطط/قابلية الحل قد شُغّلتchecks.resolvabilityComplete: ما إذا كانت فحوصات قابلية الحل قد اكتملت (false عند تخطي مراجع exec)refsChecked: عدد المراجع التي تم حلها فعليًا أثناء التشغيل التجريبيskippedExecRefs: عدد مراجع exec التي تم تخطيها لأن--allow-execلم يكن معيّنًاerrors: إخفاقات منظمة للمسار المفقود أو المخطط أو قابلية الحل عندما تكونok=false
شكل إخراج JSON
{ ok: boolean, operations: number, configPath: string, inputModes: ["value" | "json" | "builder" | "unset", ...], checks: { schema: boolean, resolvability: boolean, resolvabilityComplete: boolean, }, refsChecked: number, skippedExecRefs: number, errors?: [ { kind: "missing-path" | "schema" | "resolvability", message: string, ref?: string, // present for resolvability errors }, ],}مثال نجاح
{ "ok": true, "operations": 1, "configPath": "~/.openclaw/openclaw.json", "inputModes": ["builder"], "checks": { "schema": false, "resolvability": true, "resolvabilityComplete": true }, "refsChecked": 1, "skippedExecRefs": 0}مثال فشل
{ "ok": false, "operations": 1, "configPath": "~/.openclaw/openclaw.json", "inputModes": ["builder"], "checks": { "schema": false, "resolvability": true, "resolvabilityComplete": true }, "refsChecked": 1, "skippedExecRefs": 0, "errors": [ { "kind": "resolvability", "message": "Error: Environment variable \"MISSING_TEST_SECRET\" is not set.", "ref": "env:default:MISSING_TEST_SECRET" } ]}إذا فشل التشغيل التجريبي
config schema validation failed: شكل التهيئة بعد التغيير غير صالح؛ أصلح المسار/القيمة أو شكل كائن المزوّد/المرجع.Config policy validation failed: unsupported SecretRef usage: انقل بيانات الاعتماد هذه مرة أخرى إلى إدخال نص عادي/سلسلة نصية، وأبقِ SecretRefs على الأسطح المدعومة فقط.SecretRef assignment(s) could not be resolved: لا يمكن حاليًا حل المزوّد/المرجع المشار إليه (متغير بيئة مفقود، مؤشر ملف غير صالح، فشل مزوّد exec، أو عدم تطابق بين المزوّد/المصدر).Dry run note: skipped <n> exec SecretRef resolvability check(s): تخطى التشغيل التجريبي مراجع exec؛ أعد التشغيل باستخدام--allow-execإذا كنت تحتاج إلى التحقق من قابلية حل exec.- في وضع الدُفعات، أصلح الإدخالات الفاشلة وأعد تشغيل
--dry-runقبل الكتابة.
أمان الكتابة
يتحقق openclaw config set وكتّاب التهيئة الآخرون المملوكون لـ OpenClaw من التهيئة الكاملة بعد التغيير قبل حفظها على القرص. إذا فشل الحمولة الجديدة في التحقق من المخطط أو بدت كاستبدال هدّام، تُترك التهيئة النشطة كما هي وتُحفظ الحمولة المرفوضة بجانبها باسم openclaw.json.rejected.*.
فضّل الكتابة عبر CLI للتعديلات الصغيرة:
openclaw config set gateway.reload.mode hybrid --dry-runopenclaw config set gateway.reload.mode hybridopenclaw config validateإذا رُفضت كتابة، افحص الحمولة المحفوظة وأصلح شكل التهيئة الكامل:
CONFIG="$(openclaw config file)"ls -lt "$CONFIG".rejected.* 2>/dev/null | headopenclaw config validateلا تزال الكتابة المباشرة بالمحرر مسموحة، لكن Gateway الجاري يعتبرها غير موثوقة حتى يتم التحقق منها. تؤدي التعديلات المباشرة غير الصالحة إلى فشل بدء التشغيل أو يتم تخطيها بواسطة إعادة التحميل الساخنة؛ لا يعيد Gateway كتابة openclaw.json. شغّل openclaw doctor --fix لإصلاح التهيئة ذات البادئات/المستبدلة بشكل خاطئ أو لاستعادة آخر نسخة جيدة معروفة. راجع استكشاف أخطاء Gateway وإصلاحها.
استعادة الملف بالكامل مخصصة لإصلاح doctor. تبقى تغييرات مخطط Plugin أو انحراف minHostVersion واضحة بدلًا من التراجع عن إعدادات المستخدم غير المرتبطة مثل النماذج والمزوّدين وملفات تعريف المصادقة والقنوات وتعرّض Gateway والأدوات والذاكرة والمتصفح أو تهيئة cron.
الأوامر الفرعية
config file: اطبع مسار ملف التهيئة النشطة (المحلول منOPENCLAW_CONFIG_PATHأو الموقع الافتراضي). يجب أن يسمّي المسار ملفًا عاديًا، وليس رابطًا رمزيًا.
أعد تشغيل gateway بعد التعديلات.
التحقق
تحقق من التهيئة الحالية مقابل المخطط النشط بدون بدء Gateway.
openclaw config validateopenclaw config validate --jsonبعد أن ينجح openclaw config validate، يمكنك استخدام TUI المحلي لجعل وكيل مضمّن يقارن التهيئة النشطة بالوثائق أثناء تحققك من كل تغيير من الطرفية نفسها:
openclaw chatثم داخل TUI:
!openclaw config file!openclaw docs gateway auth token secretref!openclaw config validate!openclaw doctorحلقة الإصلاح المعتادة:
المقارنة مع الوثائق
اطلب من الوكيل مقارنة التهيئة الحالية لديك بصفحة الوثائق ذات الصلة واقتراح أصغر إصلاح.
تطبيق تعديلات موجهة
طبّق تعديلات موجهة باستخدام openclaw config set أو openclaw configure.
إعادة التحقق
أعد تشغيل openclaw config validate بعد كل تغيير.
Doctor لمشكلات وقت التشغيل
إذا نجح التحقق لكن وقت التشغيل لا يزال غير سليم، فشغّل openclaw doctor أو openclaw doctor --fix للحصول على مساعدة في الترحيل والإصلاح.