oz0 policy

Usage and flags for oz0 policy.

For: Operators and developers looking up a command.

The tenant's tool policy decides what happens to each call of a plugin's functions: Allow (the call runs), Ask (a person decides each call) or Refuse (the call is not made, and the agent is told why). Rules name functions, <tool>.<function> with * for anything, and the first rule that matches a call decides it; a function no rule names gets the default for its type: Read, Destructive, Reaches outside or Unknown (it does not say what it does).

Floors, such as the taint-default rule, and a plugin's own requires_approval only ever raise a decision.

allow, ask and refuse add one rule, placed as a plugin's switch places its rule: just before the rule that decided its functions for every caller, after the rules that decide only some calls (a condition, a caller), which still win for those calls. remove, edit and explain work on one rule by its ID (oz0 policy show lists them). export writes the whole policy as a file and apply reads one back, showing every change first.

Nothing replaces rules you did not name.

Every change takes a reason (--reason, or $OZ0_REASON); a change that loosens the policy waits for another admin where four eyes are on. The old commands, oz0 tenant tool-policy and oz0 plugin policy, work as before.

Usage

oz0 policy [command]

Subcommands

Inherited flags

FlagTypeDefaultDescription
--contextstring$OZ0_CONTEXT or <config dir>/orchestrator-zero/context.jsonCLI context file written by server init
--log-levelstringinfolog level: debug, info, warn or error

See all oz0 commands and the global flags.

Copyright © 2026