Skip to main content

openclaw config

Config helpers for non-interactive edits in openclaw.json: get/set/unset/validate values by path and print the active config file. Run without a subcommand to open the configure wizard (same as openclaw configure).

Examples

Paths

Paths use dot or bracket notation:
Use the agent list index to target a specific agent:

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:
  1. Value mode: openclaw config set <path> <value>
  2. SecretRef builder mode:
  1. Provider builder mode (secrets.providers.<alias> path only):
  1. Batch mode (--batch-json or --batch-file):
Batch parsing always uses the batch payload (--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 use secrets.providers.<alias> as the path. Common flags:
  • --provider-source <env|file|exec>
  • --provider-timeout-ms <ms> (file, exec)
Env provider (--provider-source env):
  • --provider-allowlist <ENV_VAR> (repeatable)
File provider (--provider-source file):
  • --provider-path <path> (required)
  • --provider-mode <singleValue|json>
  • --provider-max-bytes <bytes>
Exec provider (--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
Hardened exec provider example:

Dry run

Use --dry-run to validate changes without writing openclaw.json.
Dry-run behavior:
  • 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.
  • Exec SecretRef checks are skipped by default during dry-run to avoid command side effects.
  • Use --allow-exec with --dry-run to opt in to exec SecretRef checks (this may execute provider commands).
  • --allow-exec is dry-run only and errors if used without --dry-run.
--dry-run --json prints a machine-readable report:
  • ok: whether dry-run passed
  • operations: number of assignments evaluated
  • checks: whether schema/resolvability checks ran
  • checks.resolvabilityComplete: whether resolvability checks ran to completion (false when exec refs are skipped)
  • refsChecked: number of refs actually resolved during dry-run
  • skippedExecRefs: number of exec refs skipped because --allow-exec was not set
  • errors: structured schema/resolvability failures when ok=false

JSON Output Shape

Success example:
Failure example:
If dry-run fails:
  • config schema validation failed: your post-change config shape is invalid; fix path/value or provider/ref object shape.
  • 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-exec if you need exec resolvability validation.
  • For batch mode, fix failing entries and rerun --dry-run before writing.

Subcommands

  • config file: Print the active config file path (resolved from OPENCLAW_CONFIG_PATH or default location).
Restart the gateway after edits.

Validate

Validate the current config against the active schema without starting the gateway.