Permission modes
How much PHRONEN may do before it asks — per session, with rules for the exceptions.
| Mode | What it means |
|---|---|
| auto (default) | works on its own inside the project — edits, builds, installs, tests and servers run without asking. It asks before anything with effects outside the project or hard to undo: sudo, deleting outside the project, force-pushing, publishing, piping a download into a shell, system settings |
| ask | asks before every edit and every command that is not a known read-only command |
| acceptEdits | edits without asking; asks before commands that are not read-only |
| plan | read-only: investigates and proposes a plan, changes nothing |
| bypass | never asks. Catastrophic commands — wiping a disk or the home folder — are still refused |
Switch with /mode <mode>, --mode on the command line, Shift+Tab in the terminal, or the Mode chip in the browser. When PHRONEN asks, you can allow once, always allow (saved as a rule for this project), or deny — and tell it what to do instead.
Rules
Rules in settings allow, deny or ask for specific tools. Tool matches every use of a tool; Tool(pattern) narrows it: a command prefix for Bash, a path glob for edits, a host for WebFetch. Deny wins over ask, and ask over allow.
.phronen/settings.jsonjson
{
"permissions": {
"allow": ["Bash(npm run test:*)", "Bash(npm run lint)", "Edit(src/**)"],
"ask": ["Bash(git push:*)"],
"deny": ["WebFetch(domain:example.com)", "Edit(.env*)"],
"defaultMode": "acceptEdits"
}
}| File | Scope |
|---|---|
| ~/.phronen/settings.json | you, in every project |
| .phronen/settings.json | this project — commit it to share |
| .phronen/settings.local.json | this project, only you; “Always allow” writes here |
Settings also take env (variables for shell commands), effort, and maxSessionUsd (a spend cap).
Was this page helpful?