CLI commands
कॉन्फ़िगरेशन
openclaw.json के लिए गैर-इंटरैक्टिव सहायक: पथ के अनुसार कोई मान प्राप्त/सेट/पैच/अनसेट करें, स्कीमा प्रिंट करें, सत्यापन करें, या सक्रिय फ़ाइल पथ प्रिंट करें। openclaw configure जैसा ही निर्देशित विज़ार्ड खोलने के लिए openclaw config को बिना किसी उपकमांड के चलाएँ।
रूट विकल्प
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.entries.main.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 --jsonपथ
डॉट या ब्रैकेट संकेतन। शेल उदाहरणों में ब्रैकेट पथों को उद्धरण चिह्नों में रखें, ताकि zsh [0] को ग्लोब-विस्तारित न करे:
openclaw config get agents.defaults.workspaceopenclaw config get agents.entries.mainopenclaw config get agents.entriesopenclaw config set 'agents.entries.work.tools.exec.node' "node-id-or-name"config get
संशोधित कॉन्फ़िग स्नैपशॉट से कोई मान पढ़ता है (गोपनीय मान कभी प्रिंट नहीं होते)। --json मूल मान को JSON के रूप में प्रिंट करता है; अन्यथा स्ट्रिंग/संख्या/बूलियन बिना आवरण के प्रिंट होते हैं और ऑब्जेक्ट/ऐरे स्वरूपित JSON के रूप में प्रिंट होते हैं।
जब पथ अनुपस्थित होता है, तब --json stdout पर { "error": "Config path not found: <path>" } लिखता है और स्थिति 1 के साथ बाहर निकलता है। --json के बिना, निदान stderr पर ही रहता है।
openclaw config get browser.executablePathopenclaw config get agents.defaults.model --jsonconfig file
OPENCLAW_CONFIG_PATH या डिफ़ॉल्ट स्थान से निर्धारित सक्रिय कॉन्फ़िग फ़ाइल पथ प्रिंट करता है। पथ किसी नियमित फ़ाइल को निर्दिष्ट करता है, सिमलिंक को नहीं; लेखन सुरक्षा देखें।
config schema
openclaw.json के लिए जनरेट किया गया JSON स्कीमा stdout पर प्रिंट करता है।
इसमें क्या शामिल है
- वर्तमान रूट कॉन्फ़िग स्कीमा, साथ ही संपादक टूलिंग के लिए एक रूट
$schemaस्ट्रिंग फ़ील्ड। - Control UI द्वारा उपयोग किया जाने वाला फ़ील्ड
title/descriptionदस्तावेज़ मेटाडेटा। - जब मेल खाने वाले फ़ील्ड दस्तावेज़ मौजूद हों, तब नेस्टेड ऑब्जेक्ट, वाइल्डकार्ड (
*), और ऐरे-आइटम ([]) नोड समानtitle/descriptionमेटाडेटा इनहेरिट करते हैं। anyOf/oneOf/allOfशाखाएँ भी समान दस्तावेज़ मेटाडेटा इनहेरिट करती हैं।- रनटाइम मैनिफ़ेस्ट लोड किए जा सकने पर सर्वोत्तम-प्रयास वाला लाइव Plugin + चैनल स्कीमा मेटाडेटा।
- वर्तमान कॉन्फ़िग अमान्य होने पर भी एक स्वच्छ फ़ॉलबैक स्कीमा।
संबंधित रनटाइम RPC
config.schema.lookup एक सामान्यीकृत कॉन्फ़िग पथ को उथले स्कीमा नोड (title, description, type, enum, const, सामान्य सीमाएँ), मेल खाने वाले UI संकेत मेटाडेटा और निकटतम चाइल्ड सारांशों के साथ लौटाता है। Control UI या कस्टम क्लाइंट में पथ-स्कोप्ड ड्रिल-डाउन के लिए इसका उपयोग करें।
openclaw config schemaopenclaw config schema > openclaw.schema.jsonconfig validate
Gateway शुरू किए बिना वर्तमान कॉन्फ़िग को सक्रिय स्कीमा के विरुद्ध सत्यापित करता है।
openclaw config validateopenclaw config validate --jsonमान
जहाँ संभव हो, मानों को JSON5 के रूप में पार्स किया जाता है; अन्यथा उन्हें मूल स्ट्रिंग माना जाता है। बिना किसी स्ट्रिंग फ़ॉलबैक के मानक JSON आवश्यक करने के लिए --strict-json का उपयोग करें (तब केवल-JSON5 सिंटैक्स, जैसे टिप्पणियाँ, अनुगामी कॉमा या उद्धरण-रहित कुंजियाँ, अस्वीकार कर दिए जाते हैं)। config set पर --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-jsonconfig get <path> --json टर्मिनल-स्वरूपित टेक्स्ट के बजाय मूल मान को JSON के रूप में प्रिंट करता है।
जब कोई लेखन agents.defaults.model या प्रति-एजेंट agents.entries.*.model को बदलता है, तब OpenClaw लिखने से पहले प्रत्येक बदले हुए प्राथमिक या फ़ॉलबैक को कॉन्फ़िगर किए गए प्रदाता कैटलॉग के माध्यम से निर्धारित करता है। अज्ञात मॉडल संदर्भ सक्रिय कॉन्फ़िग को बदले बिना अस्वीकार कर दिए जाते हैं; उपलब्ध मॉडल देखने के लिए openclaw models list चलाएँ।
उन मैप में प्रविष्टियाँ जोड़ते समय --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 <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बैच फ़ाइलें अधिकतम 8 MiB तक सीमित हैं।
बैच पार्सिंग हमेशा बैच पेलोड (--batch-json/--batch-file) को सत्य का स्रोत मानती है; --strict-json / --json बैच पार्सिंग व्यवहार को नहीं बदलते।
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 5000config patch
कई पथ-आधारित config set कमांड चलाने के बजाय कॉन्फ़िग-आकार का JSON5 पैच चिपकाएँ या पाइप करें। ऑब्जेक्ट पुनरावर्ती रूप से मर्ज होते हैं; ऐरे और स्केलर मान लक्ष्य को प्रतिस्थापित करते हैं; null लक्ष्य पथ को हटाता है।
openclaw config patch --file ./openclaw.patch.json5 --dry-runopenclaw config patch --file ./openclaw.patch.json5पैच फ़ाइलें अधिकतम 8 MiB तक सीमित हैं। पाइप किए गए --stdin पैच अधिकतम 1 MiB तक सीमित हैं।
दूरस्थ सेटअप स्क्रिप्ट के लिए stdin के माध्यम से पैच पाइप करें:
ssh user@gateway-host 'openclaw config patch --stdin --dry-run' < ./openclaw.patch.json5ssh user@gateway-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.6-sol" }, models: { "openai/gpt-5.6-sol": { params: { fastMode: true } }, }, }, },}जब किसी ऑब्जेक्ट या ऐरे को पुनरावर्ती रूप से पैच किए जाने के बजाय ठीक दिए गए मान के बराबर बनाना हो, तब --replace-path <path> का उपयोग करें:
openclaw config patch --file ./discord.patch.json5 --replace-path 'channels.discord.guilds["123"].channels'--dry-run बिना लिखे स्कीमा और SecretRef की समाधान-क्षमता की जाँच करता है। ड्राई रन के दौरान Exec-समर्थित SecretRefs डिफ़ॉल्ट रूप से छोड़ दिए जाते हैं; जब आप जानबूझकर चाहते हों कि ड्राई रन प्रदाता कमांड निष्पादित करे, तब --allow-exec जोड़ें।
ड्राई रन
--dry-run, openclaw.json लिखे बिना परिवर्तनों को सत्यापित करता है। यह config set, config patch, और config unset पर उपलब्ध है।
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ड्राई-रन का व्यवहार
- बिल्डर मोड: बदले गए refs/प्रदाताओं के लिए SecretRef की समाधान-क्षमता की जाँच करता है।
- JSON मोड (
--strict-json,--json, या बैच मोड): स्कीमा सत्यापन के साथ SecretRef की समाधान-क्षमता की जाँच करता है। - नीति सत्यापन परिवर्तन के बाद की पूरी कॉन्फ़िगरेशन पर चलता है, इसलिए पैरेंट-ऑब्जेक्ट लेखन (उदाहरण के लिए
hooksको ऑब्जेक्ट के रूप में सेट करना) असमर्थित सतह के सत्यापन को बायपास नहीं कर सकता। - कमांड के दुष्प्रभावों से बचने के लिए Exec SecretRef जाँच डिफ़ॉल्ट रूप से छोड़ दी जाती है; इसे चुनने के लिए
--allow-execपास करें (इससे प्रदाता कमांड निष्पादित हो सकते हैं)।--allow-execकेवल ड्राई-रन के लिए है और--dry-runके बिना त्रुटि देता है।
--dry-run --json फ़ील्ड
ok: ड्राई-रन सफल हुआ या नहींoperations: मूल्यांकित असाइनमेंट की संख्याchecks: स्कीमा/समाधान-क्षमता की जाँच चली या नहींchecks.resolvabilityComplete: समाधान-क्षमता की जाँच पूरी हुई या नहीं (exec refs छोड़े जाने पर false)refsChecked: ड्राई-रन के दौरान वास्तव में समाधान किए गए refs की संख्याskippedExecRefs:--allow-execसेट न होने के कारण छोड़े गए exec refs की संख्या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" | "model", message: string, ref?: string, // समाधान-क्षमता संबंधी त्रुटियों के लिए मौजूद }, ],}सफलता का उदाहरण
{ "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": "त्रुटि: पर्यावरण चर \"MISSING_TEST_SECRET\" सेट नहीं है।", "ref": "env:default:MISSING_TEST_SECRET" } ]}यदि ड्राई-रन विफल हो
config schema validation failed: परिवर्तन के बाद आपकी कॉन्फ़िगरेशन संरचना अमान्य है; पथ/मान या प्रदाता/ref ऑब्जेक्ट संरचना ठीक करें।Config policy validation failed: unsupported SecretRef usage: उस क्रेडेंशियल को वापस प्लेनटेक्स्ट/स्ट्रिंग इनपुट में ले जाएँ; SecretRefs को केवल समर्थित सतहों पर रखें।SecretRef assignment(s) could not be resolved: संदर्भित प्रदाता/ref का वर्तमान में समाधान नहीं किया जा सकता (अनुपलब्ध env var, अमान्य फ़ाइल पॉइंटर, exec प्रदाता की विफलता, या प्रदाता/स्रोत का असंगत होना)।model reference validation failed: बदला गया टेक्स्ट-मॉडल प्राथमिक या फ़ॉलबैक अज्ञात है;openclaw models listचलाएँ और उपलब्ध मॉडल चुनें।Dry run note: skipped <n> exec SecretRef resolvability check(s): यदि आपको exec समाधान-क्षमता सत्यापन चाहिए, तो--allow-execके साथ दोबारा चलाएँ।- बैच मोड के लिए, विफल प्रविष्टियाँ ठीक करें और लिखने से पहले
--dry-runदोबारा चलाएँ।
परिवर्तन लागू करना
प्रत्येक सफल config set / config patch / config unset के बाद, CLI तीन संकेतों में से एक प्रिंट करता है, ताकि आपको पता चले कि Gateway को पुनः आरंभ करने की आवश्यकता है या नहीं:
| संकेत | अर्थ |
|---|---|
Restart the gateway to apply. |
बदले गए पथ के लिए पूर्ण पुनः आरंभ आवश्यक है। |
Change will apply without restarting the gateway. |
हॉट रीलोड इसे स्वचालित रूप से अपना लेता है। |
No gateway restart needed. |
रनटाइम से संबंधित कुछ भी नहीं बदला। |
plugins.entries (या उसके किसी भी उपपथ) में लेखन के लिए हमेशा पुनः आरंभ आवश्यक होता है, क्योंकि CLI यह प्रमाणित नहीं कर सकता कि प्रत्येक Plugin का रीलोड मेटाडेटा लोड हुआ है।
लेखन सुरक्षा
openclaw config set और OpenClaw के स्वामित्व वाले अन्य कॉन्फ़िगरेशन राइटर, डिस्क पर कमिट करने से पहले परिवर्तन के बाद की पूरी कॉन्फ़िगरेशन को सत्यापित करते हैं। यदि नया पेलोड स्कीमा सत्यापन में विफल होता है या विनाशकारी ओवरराइट जैसा दिखता है, तो सक्रिय कॉन्फ़िगरेशन को अपरिवर्तित छोड़ा जाता है और अस्वीकृत पेलोड को उसके पास openclaw.json.rejected.* के रूप में सहेजा जाता है।
OpenClaw के स्वामित्व वाले लेखन JSON5 को मानक JSON के रूप में फिर से क्रमबद्ध करते हैं। जब स्रोत में टिप्पणियाँ होती हैं, तो राइटर उन्हें हटाने से ठीक पहले चेतावनी देता है; टिप्पणियाँ सुरक्षित रखना महत्वपूर्ण हो तो सीधे एडिटर का उपयोग करें।
छोटे संपादनों के लिए 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 समस्या निवारण देखें।
पूरी फ़ाइल की पुनर्प्राप्ति केवल डॉक्टर द्वारा मरम्मत के लिए आरक्षित है। Plugin स्कीमा परिवर्तन या minHostVersion असंगति, मॉडल, प्रदाता, प्रमाणीकरण प्रोफ़ाइल, चैनल, Gateway एक्सपोज़र, टूल, मेमोरी, ब्राउज़र, या Cron कॉन्फ़िगरेशन जैसी असंबंधित उपयोगकर्ता सेटिंग्स को वापस लेने के बजाय स्पष्ट त्रुटि देते हैं।
मरम्मत चक्र
openclaw config validate सफल होने के बाद, स्थानीय TUI का उपयोग करके किसी एम्बेडेड एजेंट से सक्रिय कॉन्फ़िगरेशन की दस्तावेज़ों से तुलना करवाएँ, जबकि आप उसी टर्मिनल से प्रत्येक परिवर्तन को सत्यापित करें:
openclaw chatTUI के अंदर, आरंभिक ! एक शाब्दिक स्थानीय शेल कमांड चलाता है (प्रति सत्र एक बार पुष्टिकरण संकेत मिलने के बाद):
!openclaw config file!openclaw docs gateway auth token secretref!openclaw config validate!openclaw doctorदस्तावेज़ों से तुलना करें
एजेंट से अपनी वर्तमान कॉन्फ़िगरेशन की संबंधित दस्तावेज़ पृष्ठ से तुलना करने और सबसे छोटा सुधार सुझाने के लिए कहें।
लक्षित संपादन लागू करें
openclaw config set या openclaw configure के साथ लक्षित संपादन लागू करें।
दोबारा सत्यापित करें
प्रत्येक परिवर्तन के बाद openclaw config validate दोबारा चलाएँ।
रनटाइम समस्याओं के लिए डॉक्टर
यदि सत्यापन सफल हो जाता है लेकिन रनटाइम अभी भी अस्वस्थ है, तो माइग्रेशन और मरम्मत सहायता के लिए openclaw doctor या openclaw doctor --fix चलाएँ।