Skip to main content
Every supported rule namespace, field by field. Part of the openclaw policy reference.

Policy rule reference

Every rule below is optional; a check runs only when the rule is present. The observed state is existing OpenClaw config or workspace metadata.

Channels

MCP servers

Model providers

Network

Message routing

Probe ids must be unique. A route supports channel, optional accountId, peer, parentPeer, guildId, teamId, and memberRoleIds. Peer kinds are direct, group, and channel. matchedBy may contain one or more runtime match kinds, including binding.peer, binding.account, binding.channel, or default. Routing checks are conformance checks only. They do not change startup, message delivery, binding precedence, or fallback behavior. Findings require operator review because automatically changing a binding could redirect private messages.

Ingress and channel access

Gateway

gateway.nodes.denyCommands is an exact, case-sensitive policy deny-superset rule. Use it when policy must prove that privileged node commands are explicitly denied by OpenClaw config. A deployment that intentionally allows a privileged node command should update policy.jsonc after review instead of relying on gateway.nodes.commands.allow alone.

Agent workspace

Sandbox posture

Policy treats missing sandbox.mode as its implicit default off, so sandbox.requireMode reports a fresh or unconfigured sandbox as outside an allowlist such as ["all"].

Data Handling

Secrets

Exec approvals

Exec-approvals checks read the runtime exec_approvals_config singleton row in ~/.openclaw/state/openclaw.sqlite by default, or the same database under $OPENCLAW_STATE_DIR/state when OPENCLAW_STATE_DIR is set. Findings keep the stable oc://exec-approvals.json/... URI scheme; it now denotes paths within the authoritative JSON document stored in that row. Posture rules under execApprovals.defaults.* or execApprovals.agents.* require readable artifact evidence; a missing or invalid artifact reports as unobservable evidence rather than a best-effort pass. Once readable, omitted fields inherit runtime defaults: missing defaults.security is full, and missing agent security inherits that default. Evidence includes defaults, agents.*, agents.*.allowlist[].pattern, optional argPattern, effective autoAllowSkills posture, and entry source — never socket path/token, commandText, lastUsedCommand, resolved paths, or timestamps. Example: require the approvals artifact, deny permissive defaults, and allow only reviewed exec approval posture for selected agents.

Auth profiles

Tool metadata

Tool posture

Tool requirements use the same group membership, aliases, and * matching as core tool policy. For example, group:fs includes ls, group:runtime includes secrets, cron resolves to automations, and the image-understanding tool is view_image. A required deny list must cover every tool in a required group; an empty list covers nothing, and denying write does not deny apply_patch.