CLI commands
Конфігурація
Неінтерактивні допоміжні команди для openclaw.json: отримання, установлення, часткове оновлення або видалення значення за шляхом, виведення схеми, перевірка чи виведення шляху до активного файлу. Запустіть openclaw config без підкоманди, щоб відкрити той самий покроковий майстер, що й 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 --jsonШляхи
Крапкова нотація або нотація з квадратними дужками. У прикладах для оболонки беріть шляхи з квадратними дужками в лапки, щоб zsh не розгортала [0] як шаблон:
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"config get
Зчитує значення з редагованого знімка конфігурації, у якому конфіденційні дані ніколи не виводяться. --json виводить необроблене значення у форматі JSON; інакше рядки, числа й логічні значення виводяться без оформлення, а об’єкти та масиви — як форматований JSON.
openclaw config get browser.executablePathopenclaw config get agents.defaults.model --jsonconfig file
Виводить шлях до активного файлу конфігурації, визначений за OPENCLAW_CONFIG_PATH або стандартним розташуванням. Шлях указує на звичайний файл, а не на символічне посилання; див. Безпека запису.
config schema
Виводить згенеровану JSON-схему для openclaw.json у стандартний потік виведення.
What it includes
- Поточна коренева схема конфігурації, а також кореневе рядкове поле
$schemaдля інструментів редактора. - Метадані документації полів
title/description, які використовує інтерфейс керування. - Вкладені об’єкти, вузли з шаблоном (
*) і вузли елементів масиву ([]) успадковують ті самі метаданіtitle/description, якщо існує відповідна документація поля. - Гілки
anyOf/oneOf/allOfтакож успадковують ті самі метадані документації. - Актуальні метадані схем плагінів і каналів у режимі найкращих зусиль, коли можна завантажити маніфести середовища виконання.
- Чиста резервна схема, навіть якщо поточна конфігурація недійсна.
Related runtime RPC
config.schema.lookup повертає один нормалізований шлях конфігурації з поверхневим вузлом схеми (title, description, type, enum, const, загальні обмеження), відповідними метаданими підказок інтерфейсу та зведеннями безпосередніх дочірніх елементів. Використовуйте його для деталізації за шляхом в інтерфейсі керування або власних клієнтах.
openclaw config schemaopenclaw config schema > openclaw.schema.jsonconfig validate
Перевіряє поточну конфігурацію за активною схемою без запуску Gateway.
openclaw config validateopenclaw config validate --jsonЗначення
За можливості значення розбираються як JSON5; інакше вони вважаються необробленими рядками. Використовуйте --strict-json, щоб вимагати стандартний 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 замість тексту, оформленого для термінала.
Використовуйте --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
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_TOKENProvider builder mode
Підтримуються лише шляхи 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 5000Batch 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Пакетний розбір завжди використовує пакетні дані (--batch-json/--batch-file) як єдине джерело істини; --strict-json / --json не змінюють поведінку пакетного розбору.
Режим шляху й значення 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>.
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
Приклад посиленого постачальника виконуваних команд:
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
Вставте або передайте через канал patch у форматі JSON5 зі структурою конфігурації замість виконання багатьох команд config set на основі шляхів. Об’єкти рекурсивно об’єднуються; масиви та скалярні значення замінюють цільове значення; null видаляє цільовий шлях.
openclaw config patch --file ./openclaw.patch.json5 --dry-runopenclaw config patch --file ./openclaw.patch.json5Передайте patch через стандартний потік введення для сценаріїв віддаленого налаштування:
ssh user@gateway-host 'openclaw config patch --stdin --dry-run' < ./openclaw.patch.json5ssh user@gateway-host 'openclaw config patch --stdin' < ./openclaw.patch.json5Приклад patch:
{ 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 без запису. Під час пробного запуску SecretRef, що використовують виконувані команди, за замовчуванням пропускаються; додайте --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Поведінка пробного запуску
- Режим конструктора: виконує перевірки можливості розв’язання SecretRef для змінених посилань/провайдерів.
- Режим JSON (
--strict-json,--jsonабо пакетний режим): виконує перевірку схеми та можливості розв’язання SecretRef. - Перевірка політики виконується для повної конфігурації після змін, тому запис батьківських об’єктів (наприклад, установлення
hooksяк об’єкта) не дає змоги обійти перевірку непідтримуваних поверхонь. - Перевірки Exec SecretRef типово пропускаються, щоб уникнути побічних ефектів команд; передайте
--allow-exec, щоб увімкнути їх (це може виконати команди провайдера).--allow-execпризначений лише для пробного запуску й спричиняє помилку без--dry-run.
Поля --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, // присутнє для помилок можливості розв’язання }, ],}Приклад успішного виконання
{ "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: структура конфігурації після змін недійсна; виправте шлях/значення або структуру об’єкта провайдера/посилання.Config policy validation failed: unsupported SecretRef usage: поверніть ці облікові дані до введення у вигляді звичайного тексту/рядка; використовуйте SecretRef лише на підтримуваних поверхнях.SecretRef assignment(s) could not be resolved: наразі неможливо розв’язати вказаний провайдер/посилання (відсутня змінна середовища, недійсний вказівник файлу, помилка провайдера exec або невідповідність провайдера/джерела).Dry run note: skipped <n> exec SecretRef resolvability check(s): повторіть запуск із--allow-exec, якщо потрібно перевірити можливість розв’язання 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.*.
Для невеликих змін надавайте перевагу запису через 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.
Цикл виправлення
Після успішного проходження 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, щоб отримати допомогу з міграцією та виправленням.