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 у stdout як JSON.
Що вона містить
- Поточну кореневу схему конфігурації, а також кореневе рядкове поле
$schemaдля редакторських інструментів. - Метадані документації полів
titleіdescription, які використовує Control UI. - Вкладені об'єкти, вузли wildcard (
*) і елементів масиву ([]) успадковують ті самі метаданіtitle/description, коли існує відповідна документація поля. - Гілки
anyOf/oneOf/allOfтакож успадковують ті самі метадані документації, коли існує відповідна документація поля. - Наскільки можливо актуальні метадані схем Plugin + каналу, коли можна завантажити runtime-маніфести.
- Чисту резервну схему навіть тоді, коли поточна конфігурація недійсна.
Пов'язаний runtime RPC
config.schema.lookup повертає один нормалізований шлях конфігурації з неглибоким вузлом схеми (title, description, type, enum, const, поширені межі), зіставленими метаданими підказок UI і короткими описами безпосередніх дочірніх елементів. Використовуйте його для деталізації, обмеженої шляхом, у Control UI або власних клієнтах.
openclaw config schema
Передайте результат у файл, коли хочете переглянути або перевірити його іншими інструментами:
openclaw config schema > openclaw.schema.json
Шляхи
Шляхи використовують крапкову або дужкову нотацію:
openclaw config get agents.defaults.workspace
openclaw config get agents.list[0].id
Використовуйте індекс списку агентів, щоб указати конкретного агента:
openclaw config get agents.list
openclaw config set agents.list[1].tools.exec.node "node-id-or-name"
Значення
Значення за можливості розбираються як JSON5; інакше вони обробляються як рядки. Використовуйте --strict-json, щоб вимагати розбору JSON5. --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 замість тексту, відформатованого для термінала.
Використовуйте --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 підтримує чотири стилі призначення:
Режим значення
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, коли хочете вставити або передати через pipe патч у формі конфігурації замість виконання багатьох команд config set на основі шляхів. Вхідні дані є об'єктом JSON5. Об'єкти об'єднуються рекурсивно, масиви та скалярні значення замінюють цільове значення, а null видаляє цільовий шлях.
openclaw config patch --file ./openclaw.patch.json5 --dry-run
openclaw config patch --file ./openclaw.patch.json5
Ви також можете передати патч через stdin, що корисно для сценаріїв віддаленого налаштування:
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 запускає перевірки схеми та розв'язуваності SecretRef без запису. Exec-backed SecretRefs типово пропускаються під час сухого запуску; додайте --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
Сухий запуск
Використовуйте --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 для змінених refs/провайдерів.
- Режим 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", ...],
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: поверніть ці облікові дані до введення відкритим текстом/рядком і використовуйте SecretRefs лише на підтримуваних поверхнях.SecretRef assignment(s) could not be resolved: указаний provider/ref наразі не може бути розв’язаний (відсутня змінна середовища, недійсний файловий указівник, збій 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-run
openclaw config set gateway.reload.mode hybrid
openclaw config validate
Якщо запис відхилено, перевірте збережене корисне навантаження та виправте повну форму конфігурації:
CONFIG="$(openclaw config file)"
ls -lt "$CONFIG".rejected.* 2>/dev/null | head
openclaw config validate
Прямі записи в редакторі все ще дозволені, але запущений Gateway вважає їх ненадійними, доки вони не пройдуть перевірку. Недійсні прямі зміни призводять до помилки запуску або пропускаються під час гарячого перезавантаження; Gateway не перезаписує openclaw.json. Запустіть openclaw doctor --fix, щоб відновити конфігурацію з префіксами/перезаписуванням або повернути останню відому справну копію. Див. усунення несправностей Gateway.
Відновлення всього файла зарезервоване для ремонту через doctor. Зміни схеми Plugin або розбіжність minHostVersion залишаються явними, замість того щоб відкочувати непов’язані користувацькі налаштування, як-от моделі, провайдерів, профілі автентифікації, канали, експозицію gateway, інструменти, пам’ять, браузер або конфігурацію cron.
Підкоманди
config file: вивести шлях до активного файла конфігурації (визначений ізOPENCLAW_CONFIG_PATHабо стандартного розташування). Шлях має вказувати на звичайний файл, а не на символічне посилання.
Перезапустіть gateway після змін.
Перевірка
Перевірте поточну конфігурацію за активною схемою без запуску gateway.
openclaw config validate
openclaw config validate --json
Після успішного проходження openclaw config validate ви можете використати локальний TUI, щоб вбудований агент порівняв активну конфігурацію з документацією, поки ви перевіряєте кожну зміну з того самого термінала:
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 усе ще несправний, запустіть openclaw doctor або openclaw doctor --fix для допомоги з міграцією та ремонтом.