Policies
Rules, stored on your server, that deny an action or hold it for a person.
Maturity: Beta. Every statement on this page was traced to the enforcing code in QuoxCORE on 2026-10-29: the policy store, the server policy gate, the chat-window gate and the quox governance policy commands.
| At a glance | |
|---|---|
| What it is | Rules for your organisation that decide whether an agent action may go ahead, must wait for a person, or is refused. |
| Where it runs | On your QuoxCORE server. Policies are stored per organisation and checked by the server's policy gate before an agent action runs. |
| When to reach for it | You want a standing rule, such as "never run this kind of command" or "always ask me first for that". |
| How to start | quox governance policy list shows the policies in force. |
How a policy works
A policy has a scope (which agents or teams it covers), conditions (what it matches) and an effect. The server's policy gate checks the matching policies before an action runs:
- deny: the action is refused;
- require approval: the action waits for a person to approve it.
If the gate cannot evaluate a policy, it fails closed: the action does not run.
The built-in system policies cannot be edited or deleted.
Manage policies from the CLI
quox governance policy list
quox governance policy get <id>
quox governance policy create --effect require_approval --scope '{"agents":["*"]}' --conditions '<json>' --reason "why"
quox governance policy update <id> --enforce-4eyes
quox governance policy delete <id>
quox governance policy validate
quox governance policy history
Ready-made sets of policies are available as templates: quox governance policy template list.
Reviewing policy changes
Changing a policy can go through an optional second-approver review (off by default; forced for agent-initiated changes). Ask for it on an update with --enforce-4eyes; the change is then held until it is approved, and quox governance policy pending-approvals lists what is waiting.
Every policy change is kept in the policy history and recorded as an audit event.
Extra checks in the chat window
When you use chat in the dashboard, your browser runs a few quick checks before a message is sent:
- Rate limits: 30 messages a minute and 300 an hour, counted in that browser tab.
- Content checks: messages that look like destructive database commands (
DROP TABLE,DELETE FROM,TRUNCATE),rm -rforsudo rm, or pasted secrets (password:,secret=,api_key=) are blocked. Others, such assudoorchmod 777, add a warning. - Agent scope: a message outside an agent's usual area adds a warning; it is not blocked.
These checks apply to the dashboard chat only. Commands from the CLI, the API and other channels are governed by the server policy gate above.
The kill switch and DEFCON
Stopping agents is a separate control, set on the server by an admin. See DEFCON levels.
Limits
- The chat-window checks cover dashboard chat only, and their rate limits are per browser tab.
- Second-approver review is optional. It is off by default for changes made directly.
- No time-of-day rules. Policy scope covers agents, teams and your organisation.
quox policy compileandarmare not yet enforced. Usequox governance policyfor rules that apply today.
Related
- Safety: what needs approval, and how approvals work.
- DEFCON levels: holding or halting autonomous work.
- QuoxCLI: the command line.
Last verified 2026-10-29 against QuoxCORE origin/main (policy store, server policy gate, chat gate and quox governance).