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 file
openclaw config --section model
openclaw config --section gateway --section daemon
openclaw config schema
openclaw config get browser.executablePath
openclaw 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 --merge
openclaw config set channels.discord.token --ref-provider default --ref-source env --ref-id DISCORD_BOT_TOKEN
openclaw config set secrets.providers.vaultfile --provider-source file --provider-path /etc/openclaw/secrets.json --provider-mode json
openclaw config patch --file ./openclaw.patch.json5 --dry-run
openclaw config unset plugins.entries.brave.config.webSearch.apiKey
openclaw config set channels.discord.token --ref-provider default --ref-source env --ref-id DISCORD_BOT_TOKEN --dry-run
openclaw config validate
openclaw config validate --json
config schema
طرحواره JSON تولیدشده برای openclaw.json را بهصورت JSON در stdout چاپ میکند.
What it includes
- طرحواره پیکربندی ریشه فعلی، بههمراه یک فیلد رشتهای ریشه
$schemaبرای ابزارهای ویرایشگر. - فراداده مستندات
titleوdescriptionفیلد که توسط Control UI استفاده میشود. - گرههای آبجکت تودرتو، wildcard (
*) و آیتم آرایه ([]) وقتی مستندات فیلد متناظر وجود داشته باشد، همان فرادادهtitle/descriptionرا به ارث میبرند. - شاخههای
anyOf/oneOf/allOfنیز وقتی مستندات فیلد متناظر وجود داشته باشد، همان فراداده مستندات را به ارث میبرند. - فراداده طرحواره زنده Plugin + کانال بهصورت best-effort، وقتی manifestهای runtime قابل بارگذاری باشند.
- یک طرحواره جایگزین تمیز حتی وقتی پیکربندی فعلی نامعتبر باشد.
Related runtime RPC
config.schema.lookup یک مسیر پیکربندی نرمالشده را همراه با یک گره طرحواره کمعمق (title، description، type، enum، const، کرانهای رایج)، فراداده راهنمای UI متناظر، و خلاصههای فرزند بلافاصله برمیگرداند. از آن برای واکاوی محدود به مسیر در Control UI یا کلاینتهای سفارشی استفاده کنید.
openclaw config schema
وقتی میخواهید آن را با ابزارهای دیگر بررسی یا اعتبارسنجی کنید، آن را به یک فایل pipe کنید:
openclaw config schema > openclaw.schema.json
مسیرها
مسیرها از نشانهگذاری نقطهای یا کروشهای استفاده میکنند:
openclaw config get agents.defaults.workspace
openclaw config get agents.list[0].id
برای هدفگیری یک Agent مشخص، از اندیس فهرست Agent استفاده کنید:
openclaw config get agents.list
openclaw config set agents.list[1].tools.exec.node "node-id-or-name"
مقادیر
مقادیر در صورت امکان بهعنوان JSON5 تجزیه میشوند؛ در غیر این صورت بهعنوان رشته در نظر گرفته میشوند. برای الزام تجزیه JSON5 از --strict-json استفاده کنید. --json همچنان بهعنوان نام مستعار قدیمی پشتیبانی میشود.
openclaw config set agents.defaults.heartbeat.every "0m"
openclaw config set gateway.port 19001 --strict-json
openclaw config set channels.whatsapp.groups '["*"]' --strict-json
config get <path> --json مقدار خام را بهجای متن قالببندیشده ترمینال، بهصورت JSON چاپ میکند.
هنگام افزودن ورودی به این mapها از --merge استفاده کنید:
openclaw config set agents.defaults.models '{"openai/gpt-5.4":{}}' --strict-json --merge
openclaw config set models.providers.ollama.models '[{"id":"llama3.2","name":"Llama 3.2"}]' --strict-json --merge
فقط وقتی از --replace استفاده کنید که عمداً میخواهید مقدار ارائهشده به مقدار کامل هدف تبدیل شود.
حالتهای config set
openclaw config set از چهار سبک انتساب پشتیبانی میکند:
Value mode
openclaw config set <path> <value>
SecretRef builder mode
openclaw config set channels.discord.token \
--ref-provider default \
--ref-source env \
--ref-id DISCORD_BOT_TOKEN
Provider builder mode
حالت سازنده Provider فقط مسیرهای 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
Batch mode
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
تجزیه دستهای همیشه از payload دستهای (--batch-json/--batch-file) بهعنوان منبع حقیقت استفاده میکند. --strict-json / --json رفتار تجزیه دستهای را تغییر نمیدهند.
config patch
وقتی میخواهید بهجای اجرای تعداد زیادی فرمان config set مبتنی بر مسیر، یک وصله بهشکل پیکربندی را paste یا pipe کنید، از config patch استفاده کنید. ورودی یک آبجکت JSON5 است. آبجکتها بهصورت بازگشتی merge میشوند، آرایهها و مقادیر scalar مقدار هدف را جایگزین میکنند، و null مسیر هدف را حذف میکند.
openclaw config patch --file ./openclaw.patch.json5 --dry-run
openclaw config patch --file ./openclaw.patch.json5
همچنین میتوانید یک وصله را از طریق stdin pipe کنید، که برای اسکریپتهای راهاندازی راهدور مفید است:
ssh openclaw-host 'openclaw config patch --stdin --dry-run' < ./openclaw.patch.json5
ssh 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 بررسیهای طرحواره و قابلیت resolve شدن SecretRef را بدون نوشتن اجرا میکند. SecretRefهای مبتنی بر exec هنگام dry-run بهصورت پیشفرض نادیده گرفته میشوند؛ وقتی عمداً میخواهید dry-run فرمانهای provider را اجرا کند، --allow-exec را اضافه کنید.
حالت مسیر/مقدار JSON همچنان هم برای SecretRefها و هم providerها پشتیبانی میشود:
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
پرچمهای سازنده Provider
هدفهای سازنده Provider باید از secrets.providers.<alias> بهعنوان مسیر استفاده کنند.
Common flags
--provider-source <env|file|exec>--provider-timeout-ms <ms>(file,exec)
Env provider (--provider-source env)
--provider-allowlist <ENV_VAR>(قابل تکرار)
File provider (--provider-source file)
--provider-path <path>(الزامی)--provider-mode <singleValue|json>--provider-max-bytes <bytes>--provider-allow-insecure-path
Exec provider (--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
نمونه provider سختسازیشده مبتنی بر 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 از --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
Dry-run behavior
- حالت سازنده: بررسیهای قابلیت resolve شدن SecretRef را برای refs/providers تغییریافته اجرا میکند.
- حالت JSON (
--strict-json،--json، یا حالت دستهای): اعتبارسنجی طرحواره بههمراه بررسیهای قابلیت resolve شدن SecretRef را اجرا میکند. - اعتبارسنجی policy نیز برای سطوح هدف SecretRef شناختهشده و پشتیبانینشده اجرا میشود.
- بررسیهای policy کل پیکربندی پس از تغییر را ارزیابی میکنند، بنابراین نوشتن آبجکت والد (برای مثال تنظیم
hooksبهعنوان یک آبجکت) نمیتواند اعتبارسنجی سطح پشتیبانینشده را دور بزند. - بررسیهای SecretRef مبتنی بر exec هنگام dry-run بهصورت پیشفرض نادیده گرفته میشوند تا از اثرات جانبی فرمان جلوگیری شود.
- برای opt in به بررسیهای SecretRef مبتنی بر exec از
--allow-execهمراه با--dry-runاستفاده کنید (این ممکن است فرمانهای provider را اجرا کند). --allow-execفقط برای dry-run است و اگر بدون--dry-runاستفاده شود خطا میدهد.
--dry-run --json fields
--dry-run --json یک گزارش قابل خواندن توسط ماشین چاپ میکند:
ok: اینکه اجرای آزمایشی موفق بوده است یا نهoperations: تعداد انتسابهای ارزیابیشدهchecks: اینکه بررسیهای schema/resolvability اجرا شدهاند یا نهchecks.resolvabilityComplete: اینکه بررسیهای resolvability تا پایان اجرا شدهاند یا نه (وقتی ارجاعهای exec نادیده گرفته میشوند false است)refsChecked: تعداد ارجاعهایی که واقعا در طول اجرای آزمایشی resolve شدهاندskippedExecRefs: تعداد ارجاعهای exec که چون--allow-execتنظیم نشده بود نادیده گرفته شدندerrors: خطاهای ساختاریافته schema/resolvability وقتیok=false
شکل خروجی JSON
{
ok: boolean,
operations: number,
configPath: string,
inputModes: ["value" | "json" | "builder", ...],
checks: {
schema: boolean,
resolvability: boolean,
resolvabilityComplete: boolean,
},
refsChecked: number,
skippedExecRefs: number,
errors?: [
{
kind: "schema" | "resolvability",
message: string,
ref?: string, // present for resolvability errors
},
],
}
Success example
{
"ok": true,
"operations": 1,
"configPath": "~/.openclaw/openclaw.json",
"inputModes": ["builder"],
"checks": {
"schema": false,
"resolvability": true,
"resolvabilityComplete": true
},
"refsChecked": 1,
"skippedExecRefs": 0
}
Failure example
{
"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"
}
]
}
If dry-run fails
config schema validation failed: شکل پیکربندی پس از تغییر نامعتبر است؛ مسیر/مقدار یا شکل شیء provider/ref را اصلاح کنید.Config policy validation failed: unsupported SecretRef usage: آن اعتبارنامه را دوباره به ورودی plaintext/string منتقل کنید و SecretRefها را فقط روی سطحهای پشتیبانیشده نگه دارید.SecretRef assignment(s) could not be resolved: provider/ref ارجاعشده در حال حاضر نمیتواند resolve شود (متغیر محیطی جاافتاده، اشارهگر فایل نامعتبر، خرابی provider اجرایی، یا ناهماهنگی provider/source).Dry run note: skipped <n> exec SecretRef resolvability check(s): اجرای آزمایشی ارجاعهای exec را نادیده گرفت؛ اگر به اعتبارسنجی resolvability برای exec نیاز دارید، دوباره با--allow-execاجرا کنید.- برای حالت batch، ورودیهای ناموفق را اصلاح کنید و پیش از نوشتن،
--dry-runرا دوباره اجرا کنید.
ایمنی نوشتن
openclaw config set و دیگر نویسندههای پیکربندی متعلق به OpenClaw، پیش از ثبت کردن پیکربندی روی دیسک، کل پیکربندی پس از تغییر را اعتبارسنجی میکنند. اگر payload جدید در اعتبارسنجی schema ناموفق شود یا شبیه clobber مخرب به نظر برسد، پیکربندی فعال دستنخورده میماند و payload ردشده در کنار آن با نام openclaw.json.rejected.* ذخیره میشود.
برای ویرایشهای کوچک، نوشتن با CLI را ترجیح دهید:
openclaw config set gateway.reload.mode hybrid --dry-run
openclaw config set gateway.reload.mode hybrid
openclaw config validate
اگر نوشتن رد شد، payload ذخیرهشده را بررسی کنید و شکل کامل پیکربندی را اصلاح کنید:
CONFIG="$(openclaw config file)"
ls -lt "$CONFIG".rejected.* 2>/dev/null | head
openclaw config validate
نوشتن مستقیم با ویرایشگر همچنان مجاز است، اما Gateway در حال اجرا تا زمان اعتبارسنجی، آنها را نامطمئن تلقی میکند. ویرایشهای مستقیم نامعتبر باعث شکست راهاندازی میشوند یا در hot reload نادیده گرفته میشوند؛ Gateway فایل openclaw.json را بازنویسی نمیکند. برای ترمیم پیکربندی دارای پیشوند/خرابشده یا بازیابی آخرین نسخه سالم شناختهشده، openclaw doctor --fix را اجرا کنید. عیبیابی Gateway را ببینید.
بازیابی کل فایل فقط برای ترمیم با doctor محفوظ است. تغییرات schema مربوط به Plugin یا skew در minHostVersion پرصدا میمانند، بهجای اینکه تنظیمات نامرتبط کاربر مانند مدلها، providerها، نمایههای احراز هویت، کانالها، exposure در Gateway، ابزارها، حافظه، مرورگر یا پیکربندی cron را برگردانند.
زیرفرمانها
config file: مسیر فایل پیکربندی فعال را چاپ میکند (ازOPENCLAW_CONFIG_PATHیا مکان پیشفرض resolve شده است). مسیر باید نام یک فایل عادی باشد، نه symlink.
پس از ویرایشها Gateway را restart کنید.
اعتبارسنجی
پیکربندی فعلی را بدون شروع Gateway، در برابر schema فعال اعتبارسنجی کنید.
openclaw config validate
openclaw config validate --json
پس از اینکه openclaw config validate موفق شد، میتوانید از TUI محلی استفاده کنید تا یک عامل embedded پیکربندی فعال را با مستندات مقایسه کند، در حالی که هر تغییر را از همان ترمینال اعتبارسنجی میکنید:
openclaw chat
سپس داخل TUI:
!openclaw config file
!openclaw docs gateway auth token secretref
!openclaw config validate
!openclaw doctor
چرخه معمول ترمیم:
Compare with docs
از عامل بخواهید پیکربندی فعلی شما را با صفحه مرتبط مستندات مقایسه کند و کوچکترین اصلاح را پیشنهاد دهد.
Apply targeted edits
ویرایشهای هدفمند را با openclaw config set یا openclaw configure اعمال کنید.
Re-validate
پس از هر تغییر، openclaw config validate را دوباره اجرا کنید.
Doctor for runtime issues
اگر اعتبارسنجی موفق است اما runtime هنوز ناسالم است، برای کمک به migration و ترمیم، openclaw doctor یا openclaw doctor --fix را اجرا کنید.