The simplest way to govern your OpenClaw agents is with simple policies — set each tool category to Allow, Ask, or Deny.
Via the dashboard
Open the client dashboard at http://0.0.0.0:3000
Navigate to Policies
The Simple Policy tab shows all categories
Click to set each category: Allow, Ask, or Deny
Click Save Policy
Via the CLI
# View current policy
faramesh policy show
# Set a category
faramesh policy setbash ask
faramesh policy set filesystem allow
faramesh policy set browser allow
faramesh policy set network allow
faramesh policy set canvas allow
faramesh policy set other deny
# Set for a specific agent
faramesh policy setbash deny --agent-id
# View current policy
faramesh policy show
# Set a category
faramesh policy setbash ask
faramesh policy set filesystem allow
faramesh policy set browser allow
faramesh policy set network allow
faramesh policy set canvas allow
faramesh policy set other deny
# Set for a specific agent
faramesh policy setbash deny --agent-id
# View current policy
faramesh policy show
# Set a category
faramesh policy setbash ask
faramesh policy set filesystem allow
faramesh policy set browser allow
faramesh policy set network allow
faramesh policy set canvas allow
faramesh policy set other deny
# Set for a specific agent
faramesh policy setbash deny --agent-id
Via the API
# Get current simple policycurl http://127.0.0.1:8000/v1/policies/simple
# Update simple policycurl-X PUT http://127.0.0.1:8000/v1/policies/simple \
-H"Content-Type: application/json" \
-d'{"categories": {"bash": "ask", "filesystem": "allow", "browser": "allow", "network": "allow", "canvas": "allow", "other": "ask"}}'# Reset to defaultscurl-X
# Get current simple policycurl http://127.0.0.1:8000/v1/policies/simple
# Update simple policycurl-X PUT http://127.0.0.1:8000/v1/policies/simple \
-H"Content-Type: application/json" \
-d'{"categories": {"bash": "ask", "filesystem": "allow", "browser": "allow", "network": "allow", "canvas": "allow", "other": "ask"}}'# Reset to defaultscurl-X
# Get current simple policycurl http://127.0.0.1:8000/v1/policies/simple
# Update simple policycurl-X PUT http://127.0.0.1:8000/v1/policies/simple \
-H"Content-Type: application/json" \
-d'{"categories": {"bash": "ask", "filesystem": "allow", "browser": "allow", "network": "allow", "canvas": "allow", "other": "ask"}}'# Reset to defaultscurl-X
Default policy
The default simple policy is:
Category
Default
Bash
Ask
File System
Ask
Browser
Allow
Network
Allow
Canvas
Allow
Other
Ask
Per-agent policies
Each agent can have its own policy. If no agent-specific policy is set, the default (tenant-level) policy is used.
# Set per-agent policy via CLI
faramesh policy setbash deny --agent-id production-agent
# Via APIcurl-X PUT http://127.0.0.1:8000/v1/agents/production-agent/policy \
-H"Content-Type: application/json" \
-d'{"policy_type": "simple", "simple_policy": {"bash": "deny", "filesystem": "ask", "browser": "allow", "network": "allow", "canvas": "allow", "other": "deny"}}'
# Set per-agent policy via CLI
faramesh policy setbash deny --agent-id production-agent
# Via APIcurl-X PUT http://127.0.0.1:8000/v1/agents/production-agent/policy \
-H"Content-Type: application/json" \
-d'{"policy_type": "simple", "simple_policy": {"bash": "deny", "filesystem": "ask", "browser": "allow", "network": "allow", "canvas": "allow", "other": "deny"}}'
# Set per-agent policy via CLI
faramesh policy setbash deny --agent-id production-agent
# Via APIcurl-X PUT http://127.0.0.1:8000/v1/agents/production-agent/policy \
-H"Content-Type: application/json" \
-d'{"policy_type": "simple", "simple_policy": {"bash": "deny", "filesystem": "ask", "browser": "allow", "network": "allow", "canvas": "allow", "other": "deny"}}'
Advanced policies (YAML)
For more complex rules — pattern matching, budget limits, conditional logic — use the Advanced tab in the dashboard or create YAML policy files.
Save this as policies/openclaw_production.yaml and activate it:
Or create and activate via the dashboard on the Advanced (YAML / JSON) tab.
Dynamic categories
As tools are used, Faramesh tracks which tools have been seen and their auto-assigned categories. View them on the Tools Seen section of the Policies page. If a tool is miscategorized, you can create a custom YAML rule to override the behavior.