← Back to Config
OpenClaw config

How OpenClaw config works

Use this page when you need a high-level map of OpenClaw configuration before making changes.

Treat config like a live system surface Config controls channels, models, tools, browser behavior, plugins, skills, session defaults, and other runtime behavior.

Structured system state, not a scratchpad

OpenClaw configuration is not just a bag of toggles. A careless edit can break startup, disable working features, or silently wipe sibling settings.

The config file uses JSON5, not plain JSON. Comments and trailing commas are allowed, but structure still matters.

Most pain comes from edit method

  • guessing field names
  • putting a real key under the wrong parent object
  • replacing an entire map when only one entry needed to change
  • stacking more edits before validating the first one

Path, type, scope, and runtime behavior all matter

Path

Right place

The field must live at the correct config path.

Type

Right value shape

The value must use the right type or allowed enum.

Scope

Preserve siblings

The surrounding object must keep its sibling settings intact.

Runtime

Verify live behavior

The runtime must actually apply the change, whether by hot-apply or restart.

Inspect, check schema, patch narrowly, validate, verify

The safest default pattern is simple: inspect the current state first, check the schema instead of guessing, patch the smallest possible layer, validate immediately, and then verify the real runtime effect.