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 را بهصورت JSON در stdout چاپ کنید.
آنچه شامل میشود
- طرحواره پیکربندی ریشه فعلی، بهعلاوه یک فیلد رشتهای
$schemaدر ریشه برای ابزارهای ویرایشگر. - فراداده مستندات فیلدهای
titleوdescriptionکه توسط رابط کاربری Control استفاده میشود. - گرههای شیء تودرتو، وایلدکارت (
*) و مورد آرایه ([]) وقتی مستندات فیلد مطابق وجود داشته باشد، همان فرادادهtitle/descriptionرا به ارث میبرند. - شاخههای
anyOf/oneOf/allOfنیز وقتی مستندات فیلد مطابق وجود داشته باشد، همان فراداده مستندات را به ارث میبرند. - فراداده طرحواره زنده Plugin + کانال، به بهترین تلاش، وقتی مانیفستهای زمان اجرا قابل بارگذاری باشند.
- یک طرحواره جایگزین تمیز، حتی وقتی پیکربندی فعلی نامعتبر باشد.
RPC زمان اجرای مرتبط
config.schema.lookup یک مسیر پیکربندی نرمالسازیشده را با یک گره طرحواره کمعمق (title، description، type، enum، const، کرانهای رایج)، فراداده راهنمای رابط کاربری مطابق، و خلاصههای فرزند بلافاصله بازمیگرداند. از آن برای واکاوی محدود به مسیر در رابط کاربری Control یا کلاینتهای سفارشی استفاده کنید.
openclaw config schemaوقتی میخواهید آن را با ابزارهای دیگر بررسی یا اعتبارسنجی کنید، خروجی را به یک فایل پایپ کنید:
openclaw config schema > openclaw.schema.jsonمسیرها
مسیرها از نگارش نقطهای یا کروشهای استفاده میکنند. مسیرهای با نگارش کروشهای را در مثالهای پوسته داخل نقلقول بگذارید تا پوستههایی مانند zsh، پیش از دریافت مسیر توسط OpenClaw، [0] را بهعنوان glob گسترش ندهند:
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 تجزیه میشوند؛ در غیر این صورت بهعنوان رشته در نظر گرفته میشوند. برای الزام به تجزیه JSON استاندارد بدون جایگزین رشتهای، از --strict-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 مانند نظرها، ویرگولهای پایانی، یا کلیدهای شیء بدون نقلقول رد میشوند. برای تجزیه مقدار JSON5 همراه با جایگزین رشته خام، --strict-json را حذف کنید.
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 set، یک وصله با شکل پیکربندی را جایگذاری یا پایپ کنید، از config patch استفاده کنید. ورودی یک شیء 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 را بدون نوشتن اجرا میکند. SecretRefهای مبتنی بر exec در حالت dry-run بهصورت پیشفرض نادیده گرفته میشوند؛ وقتی عمدا میخواهید dry-run فرمانهای ارائهدهنده را اجرا کند، --allow-exec را اضافه کنید.
حالت مسیر/مقدار JSON همچنان برای SecretRefها و ارائهدهندهها پشتیبانی میشود:
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اجرای آزمایشی
برای اعتبارسنجی تغییرها بدون نوشتن در openclaw.json، از --dry-run استفاده کنید.
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بهعنوان یک شیء) نمیتواند اعتبارسنجی سطح پشتیبانینشده را دور بزند. - بررسیهای SecretRef اجرایی بهطور پیشفرض هنگام اجرای آزمایشی رد میشوند تا از عوارض جانبی فرمان جلوگیری شود.
- از
--allow-execهمراه با--dry-runاستفاده کنید تا بررسیهای SecretRef اجرایی را فعال کنید (این ممکن است فرمانهای ارائهدهنده را اجرا کند). --allow-execفقط برای اجرای آزمایشی است و اگر بدون--dry-runاستفاده شود خطا میدهد.
فیلدهای --dry-run --json
--dry-run --json یک گزارش قابلخواندن برای ماشین چاپ میکند:
ok: آیا اجرای آزمایشی موفق شدoperations: تعداد انتسابهای ارزیابیشدهchecks: آیا بررسیهای طرحواره/قابلحلبودن اجرا شدندchecks.resolvabilityComplete: آیا بررسیهای قابلحلبودن تا پایان اجرا شدند (وقتی ارجاعهای اجرایی رد شوند false است)refsChecked: تعداد ارجاعهایی که واقعاً در طول اجرای آزمایشی حل شدندskippedExecRefs: تعداد ارجاعهای اجرایی که چون--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: آن اعتبارنامه را به ورودی متن ساده/رشتهای برگردانید و SecretRefها را فقط روی سطوح پشتیبانیشده نگه دارید.SecretRef assignment(s) could not be resolved: ارائهدهنده/ارجاع مورد اشاره در حال حاضر قابل حل نیست (متغیر محیطی مفقود، اشارهگر فایل نامعتبر، شکست ارائهدهنده اجرایی، یا عدم تطابق ارائهدهنده/منبع).Dry run note: skipped <n> exec SecretRef resolvability check(s): اجرای آزمایشی ارجاعهای اجرایی را رد کرد؛ اگر به اعتبارسنجی قابلحلبودن اجرایی نیاز دارید، با--allow-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یا مکان پیشفرض). مسیر باید به یک فایل عادی اشاره کند، نه symlink.
پس از ویرایشها، 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 را اجرا کنید.