Configuración
Auxiliares de configuración para ediciones no interactivas en openclaw.json: obtención/establecimiento/actualización/eliminación/archivo/esquema/validación de valores por ruta e impresión del archivo de configuración activo. Ejecutar sin un subcomando para abrir el asistente de configuración (igual que openclaw configure).
Opciones raíz
Sección titulada «Opciones raíz»Secciones guiadas compatibles: workspace, model, web, gateway, daemon, channels, plugins, skills, health.
Ejemplos
Sección titulada «Ejemplos»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
Sección titulada «config schema»Imprime el esquema JSON generado para openclaw.json en stdout como JSON.
Lo que incluye
- El esquema de configuración raíz actual, más un campo de cadena
$schemaraíz para las herramientas del editor. - Metadatos de documentos
titleydescriptionde campo utilizados por la interfaz de usuario de Control. - Los nodos de objeto anidado, comodín (
*) y elemento de matriz ([]) heredan los mismos metadatostitle/descriptioncuando existe documentación de campo coincidente. - Las ramas
anyOf/oneOf/allOftambién heredan los mismos metadatos de documentos cuando existe documentación de campo coincidente. - Metadatos de esquema de complemento y canal en vivo con el mejor esfuerzo cuando se pueden cargar los manifiestos de tiempo de ejecución.
- Un esquema de reserva limpio incluso cuando la configuración actual no es válida.
RPC de tiempo de ejecución relacionado
config.schema.lookup devuelve una ruta de configuración normalizada con un nodo de esquema superficial (title, description, type, enum, const, límites comunes), metadatos de sugerencias de interfaz de usuario coincidentes e resúmenes secundarios inmediatos. Úselo para la exploración con ámbito de ruta en la interfaz de usuario de Control o clientes personalizados.
openclaw config schemaRediríjalo a un archivo cuando desee inspeccionarlo o validarlo con otras herramientas:
openclaw config schema > openclaw.schema.jsonLas rutas usan notación de puntos o corchetes. Cite las rutas con notación de corchetes en los ejemplos de shell para que shells como zsh no expandan [0] como un glob antes de que OpenClaw reciba la ruta:
openclaw config get agents.defaults.workspaceopenclaw config get 'agents.list[0].id'Utilice el índice de la lista de agentes para apuntar a un agente específico:
openclaw config get agents.listopenclaw config set 'agents.list[1].tools.exec.node' "node-id-or-name"Valores
Sección titulada «Valores»Los valores se analizan como JSON5 cuando es posible; de lo contrario, se tratan como cadenas. Use --strict-json para requerir el análisis JSON5. --json sigue siendo compatible como un alias heredado.
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 imprime el valor sin formato como JSON en lugar de texto con formato de terminal.
Use --merge al agregar entradas a esos mapas:
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 --mergeUse --replace solo cuando intencionalmente desee que el valor proporcionado se convierta en el valor objetivo completo.
modos config set
Sección titulada «modos config set»openclaw config set admite cuatro estilos de asignación:
openclaw config setopenclaw config set channels.discord.token \ --ref-provider default \ --ref-source env \ --ref-id DISCORD_BOT_TOKENEl modo de generador de proveedor apunta solo a rutas `secrets.providers.
`:
```bashopenclaw 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-runEl análisis por lotes siempre utiliza la carga útil del lote (--batch-json/--batch-file) como fuente de verdad. --strict-json / --json no cambian el comportamiento del análisis por lotes.
config patch
Sección titulada «config patch»Use config patch cuando desee pegar o canalizar un parche con forma de configuración en lugar de ejecutar muchos comandos config set basados en rutas. La entrada es un objeto JSON5. Los objetos se fusionan recursivamente, las matrices y los valores escalares reemplazan el valor de destino, y null elimina la ruta de destino.
openclaw config patch --file ./openclaw.patch.json5 --dry-runopenclaw config patch --file ./openclaw.patch.json5También puedes enviar un parche a través de stdin, lo cual es útil para scripts de configuración remota:
ssh openclaw-host 'openclaw config patch --stdin --dry-run' < ./openclaw.patch.json5ssh openclaw-host 'openclaw config patch --stdin' < ./openclaw.patch.json5Parche de ejemplo:
{ 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 } }, }, }, },}Use --replace-path <path> cuando un objeto o matriz debe convertirse exactamente en el valor proporcionado en lugar de ser parcheado recursivamente:
openclaw config patch --file ./discord.patch.json5 --replace-path 'channels.discord.guilds["123"].channels'--dry-run ejecuta verificaciones de esquema y resolución de SecretRef sin escribir. Los SecretRefs respaldados por Exec se omiten de manera predeterminada durante la ejecución en seco; agregue --allow-exec cuando intencionalmente desee que la ejecución en seco ejecute comandos de proveedor.
El modo de ruta/valor de JSON sigue siendo compatible tanto con SecretRefs como con proveedores:
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-jsonOpciones del constructor de proveedores
Sección titulada «Opciones del constructor de proveedores»Los objetivos del constructor de proveedores deben usar secrets.providers.<alias> como la ruta.
Common flags
- `—provider-source
-—provider-timeout-ms
(file, exec`)
Env provider (--provider-source env)
- `—provider-allowlist
` (repetible)
File provider (--provider-source file)
- `—provider-path
(obligatorio) -—provider-mode
-—provider-max-bytes
-—provider-allow-insecure-path`
Exec provider (--provider-source exec)
- `—provider-command
(obligatorio) -—provider-arg
(repetible) -—provider-no-output-timeout-ms
-—provider-max-output-bytes
-—provider-json-only -—provider-env
(repetible) -—provider-pass-env
(repetible) -—provider-trusted-dir
(repetible) -—provider-allow-insecure-path -—provider-allow-symlink-command`
Ejemplo de proveedor Exec endurecido:
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 5000Ejecución en seco
Sección titulada «Ejecución en seco»Use --dry-run para validar los cambios sin escribir 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-execComportamiento de la ejecución en seco
- Modo de constructor: ejecuta comprobaciones de resolubilidad de SecretRef para las referencias/proveedores modificados.
- Modo JSON (
--strict-json,--json, o modo por lotes): ejecuta la validación del esquema además de las comprobaciones de resolubilidad de SecretRef. - La validación de políticas también se ejecuta para superficies de destino SecretRef conocidas no admitidas.
- Las comprobaciones de políticas evalúan la configuración completa posterior al cambio, por lo que las escrituras de objetos principales (por ejemplo, establecer
hookscomo un objeto) no pueden eludir la validación de superficie no admitida. - Las comprobaciones de Exec SecretRef se omiten de forma predeterminada durante la ejecución en seco para evitar efectos secundarios de los comandos.
- Use
--allow-execcon--dry-runpara participar en las comprobaciones de Exec SecretRef (esto puede ejecutar comandos de proveedor). --allow-execes solo para ejecución en seco y genera errores si se usa sin--dry-run.
--dry-run -- fields
--dry-run --json imprime un reporte legible por máquina:
ok: si la ejecución en seco (dry-run) fue exitosaoperations: número de asignaciones evaluadaschecks: si se ejecutaron las comprobaciones de esquema/resolvibilidadchecks.resolvabilityComplete: si las comprobaciones de resolvibilidad se completaron (falso cuando se omiten las referencias de ejecución)refsChecked: número de referencias resueltas realmente durante la ejecución en secoskippedExecRefs: número de referencias de ejecución omitidas porque--allow-execno se establecióerrors: fallos estructurados de ruta faltante, esquema o resolvibilidad cuandook=false
Forma de salida JSON
Sección titulada «Forma de salida 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" } ]}Si falla la ejecución en seco
config schema validation failed: la forma de su configuración posterior al cambio no es válida; corrija la ruta/valor o la forma del objeto de proveedor/referencia.Config policy validation failed: unsupported SecretRef usage: devuelva esa credencial a la entrada de texto plano/cadena y mantenga SecretRefs solo en las superficies compatibles.SecretRef assignment(s) could not be resolved: el proveedor/referencia al que se hace referencia actualmente no se puede resolver (variable de entorno faltante, puntero de archivo no válido, falla del proveedor de ejecución o discrepancia de proveedor/fuente).- `Dry run note: skipped
exec SecretRef resolvability check(s): la ejecución en seco omitió las referencias de ejecución; vuelva a ejecutar con —allow-exec` si necesita validación de resolvibilidad de ejecución.
- Para el modo por lotes, corrija las entradas fallidas y vuelva a ejecutar
--dry-runantes de escribir.
Seguridad de escritura
Sección titulada «Seguridad de escritura»openclaw config set y otros escritores de configuración propiedad de OpenClaw validan la configuración completa posterior al cambio antes de confirmarla en el disco. Si la nueva carga útil falla la validación del esquema o parece una sobrescritura destructiva, la configuración activa se deja intacta y la carga útil rechazada se guarda junto a ella como openclaw.json.rejected.*.
Prefiera las escrituras desde la CLI para pequeñas ediciones:
openclaw config set gateway.reload.mode hybrid --dry-runopenclaw config set gateway.reload.mode hybridopenclaw config validateSi se rechaza una escritura, inspeccione la carga útil guardada y corrija la forma completa de la configuración:
CONFIG="$(openclaw config file)"ls -lt "$CONFIG".rejected.* 2>/dev/null | headopenclaw config validateLas escrituras directas del editor aún están permitidas, pero el Gateway en ejecución las trata como no confiables hasta que se validen. Las ediciones directas inválidas fallan el inicio o son omitidas por la recarga en caliente; el Gateway no reescribe openclaw.json. Ejecute openclaw doctor --fix para reparar la configuración prefijada o sobrescrita, o para restaurar la última copia conocida como buena. Consulte Solución de problemas de Gateway.
La recuperación de todo el archivo está reservada para la reparación del doctor. Los cambios de esquema del complemento o el sesgo de minHostVersion permanecen activos en lugar de revertir la configuración del usuario no relacionada, como modelos, proveedores, perfiles de autenticación, canales, exposición de gateway, herramientas, memoria, navegador o configuración de cron.
Subcomandos
Sección titulada «Subcomandos»config file: Imprime la ruta del archivo de configuración activo (resuelta desdeOPENCLAW_CONFIG_PATHo la ubicación predeterminada). La ruta debe nombrar un archivo regular, no un enlace simbólico.
Reinicie la puerta de enlace después de realizar las ediciones.
Validar
Sección titulada «Validar»Valide la configuración actual contra el esquema activo sin iniciar la puerta de enlace.
openclaw config validateopenclaw config validate --jsonUna vez que openclaw config validate esté pasando, puede usar la TUI local para que un agente integrado compare la configuración activa con la documentación mientras valida cada cambio desde la misma terminal:
openclaw chatLuego, dentro de la TUI:
!openclaw config file!openclaw docs gateway auth token secretref!openclaw config validate!openclaw doctorCiclo de reparación típico:
Comparar con la documentación
Pida al agente que compare su configuración actual con la página de documentación relevante y sugiera la solución más pequeña.
Aplicar ediciones específicas
Aplique ediciones específicas con
openclaw config setoopenclaw configure.Revalidar
Vuelva a ejecutar
openclaw config validatedespués de cada cambio.Doctor para problemas de tiempo de ejecución
Si la validación pasa pero el tiempo de ejecución aún no está sano, ejecute
openclaw doctoroopenclaw doctor --fixpara obtener ayuda de migración y reparación.