openclaw config
Config helpers for non-interactive edits in openclaw.json: get/set/unset/file/schema/validate
values by path and print the active config file. Run without a subcommand to
open the configure wizard (same as openclaw configure).
Examples
config schema
Print the generated JSON schema for openclaw.json to stdout as plain text.
Paths
Paths use dot or bracket notation:Values
Values are parsed as JSON5 when possible; otherwise they are treated as strings. Use--strict-json to require JSON5 parsing. --json remains supported as a legacy alias.
config set modes
openclaw config set supports four assignment styles:
- Value mode:
openclaw config set <path> <value> - SecretRef builder mode:
- Provider builder mode (
secrets.providers.<alias>path only):
- Batch mode (
--batch-jsonor--batch-file):
- SecretRef assignments are rejected on unsupported runtime-mutable surfaces (for example
hooks.token,commands.ownerDisplaySecret, Discord thread-binding webhook tokens, and WhatsApp creds JSON). See SecretRef Credential Surface.
--batch-json/--batch-file) as the source of truth.
--strict-json / --json do not change batch parsing behavior.
JSON path/value mode remains supported for both SecretRefs and providers:
Provider Builder Flags
Provider builder targets must usesecrets.providers.<alias> as the path.
Common flags:
--provider-source <env|file|exec>--provider-timeout-ms <ms>(file,exec)
--provider-source env):
--provider-allowlist <ENV_VAR>(repeatable)
--provider-source file):
--provider-path <path>(required)--provider-mode <singleValue|json>--provider-max-bytes <bytes>
--provider-source exec):
--provider-command <path>(required)--provider-arg <arg>(repeatable)--provider-no-output-timeout-ms <ms>--provider-max-output-bytes <bytes>--provider-json-only--provider-env <KEY=VALUE>(repeatable)--provider-pass-env <ENV_VAR>(repeatable)--provider-trusted-dir <path>(repeatable)--provider-allow-insecure-path--provider-allow-symlink-command
Dry run
Use--dry-run to validate changes without writing openclaw.json.
- Builder mode: runs SecretRef resolvability checks for changed refs/providers.
- JSON mode (
--strict-json,--json, or batch mode): runs schema validation plus SecretRef resolvability checks. - Policy validation also runs for known unsupported SecretRef target surfaces.
- Policy checks evaluate the full post-change config, so parent-object writes (for example setting
hooksas an object) cannot bypass unsupported-surface validation. - Exec SecretRef checks are skipped by default during dry-run to avoid command side effects.
- Use
--allow-execwith--dry-runto opt in to exec SecretRef checks (this may execute provider commands). --allow-execis dry-run only and errors if used without--dry-run.
--dry-run --json prints a machine-readable report:
ok: whether dry-run passedoperations: number of assignments evaluatedchecks: whether schema/resolvability checks ranchecks.resolvabilityComplete: whether resolvability checks ran to completion (false when exec refs are skipped)refsChecked: number of refs actually resolved during dry-runskippedExecRefs: number of exec refs skipped because--allow-execwas not seterrors: structured schema/resolvability failures whenok=false
JSON Output Shape
config schema validation failed: your post-change config shape is invalid; fix path/value or provider/ref object shape.Config policy validation failed: unsupported SecretRef usage: move that credential back to plaintext/string input and keep SecretRefs on supported surfaces only.SecretRef assignment(s) could not be resolved: referenced provider/ref currently cannot resolve (missing env var, invalid file pointer, exec provider failure, or provider/source mismatch).Dry run note: skipped <n> exec SecretRef resolvability check(s): dry-run skipped exec refs; rerun with--allow-execif you need exec resolvability validation.- For batch mode, fix failing entries and rerun
--dry-runbefore writing.
Subcommands
config file: Print the active config file path (resolved fromOPENCLAW_CONFIG_PATHor default location).