// safety
Permissions
Astra gates risky tools behind approval prompts, and lets you allow, ask, or deny by pattern — per project and per user.
Which tools prompt
File reads, searches, and writes run freely in your project. Shell commands, verify, git writes, SQL mutations, MCP call_tool, and destructive browser actions normally prompt for approval (y/n). Optional files rules gate write/edit when configured.
Where rules live
| Scope | Path |
|---|---|
| Global | ~/.astra/settings.json → permissions |
| Project | <workdir>/.astra/permissions.json |
Project patterns append to global; last matching rule wins.
Example
{
"bash": {
"*": "ask",
"npm test": "allow",
"npm test *": "allow",
"rm *": "deny"
},
"git": {
"commit": "ask",
"push *": "deny"
},
"database": { "*": "ask", "SELECT *": "allow" },
"mcp": { "call_tool": "ask" },
"browser": { "*": "ask" },
"twitter": { "post *": "ask", "reply *": "ask", "*": "allow" },
"files": { "*": "ask", ".astra/plans/*": "allow" }
}Rules
verifyuses the same bash rules (e.g.npm test: allowapplies to bothbashandverify).- The files category is optional — without it,
writeandeditnever prompt. Addfilesrules for paranoid setups. - Shorthand:
"bash": "ask"expands to{ "*": "ask" }. - Put
"*": "ask"first, then more specific patterns after — last match wins.
Inspecting rules
Use /permissions to inspect the merged rules for the current project, and /settings for a rule-count summary. Read-only git commands and SELECT queries stay allowed regardless of rules.