Policy reference
YAML policy locations
| Layer | Location |
|---|---|
| Built-in | included with Termyte |
| Global | ~/.termyte/policy.yaml or $TERMYTE_HOME/policy.yaml |
| Repository | <repo>/termyte.policy.yaml |
YAML document schema
versionpresetsrules
namedescriptionactionmatch
semantic_idscommandspaths
Actions
| Action | Meaning |
|---|---|
allow | No policy review required |
warn | Flag the action as risky |
ask | Require explicit review in a supporting workflow |
block | Do not permit the recognized action |
Built-in presets
| Preset | Purpose |
|---|---|
safe-default | Blocks recognized secret access, broad destructive deletes, protected force pushes, and destructive SQL; warns on publishing, remote scripts, deploys, and elevation |
strict-filesystem | Blocks recursive forced and wildcard deletes |
git-safe | Blocks force push and warns on destructive Git history |
secrets-guard | Blocks recognized secret reads |
deploy-guard | Warns on deployment mutations |
package-manager-safe | Warns on package publishing |
ci-safe | Warns when resolved paths touch CI configuration |
dangerous-tools | Blocks or warns on destructive Docker, elevation, and remote scripts |
Matcher behavior
Semantic IDs
Case-insensitive wildcard matching:Commands
Commands are whitespace normalized and can use* wildcards:
Paths
Paths are normalized across slash styles and can use wildcard patterns:Runtime policy
The experimental runtime stores a separate repository-local semantic policy in SQLite. It supports block and warn pattern lists only.., -, _, and *. A bare * is
rejected as too broad.
Use: