Permissões¶
O Aru usa um sistema de permissões granular onde cada ação de ferramenta resolve para um dos três resultados:
allow— executa sem perguntarask— pede confirmação (uma vez / sempre / não)deny— bloqueia silenciosamente
Configuração básica¶
Configure permissões por categoria de ferramenta com glob patterns:
{
"permission": {
"*": "ask",
"read": "allow",
"glob": "allow",
"grep": "allow",
"list": "allow",
"edit": {
"*": "allow",
"*.env": "deny"
},
"write": {
"*": "allow",
"*.env": "deny"
},
"bash": {
"*": "ask",
"git *": "allow",
"npm *": "allow",
"pytest *": "allow",
"rm -rf *": "deny"
},
"web_search": "allow",
"web_fetch": "allow",
"delegate_task": "allow"
}
}
Categorias disponíveis¶
| Categoria | Casado contra | Padrão |
|---|---|---|
read |
caminho do arquivo | allow |
edit |
caminho do arquivo | ask |
write |
caminho do arquivo | ask |
bash |
string do comando | prefixos seguros = allow, resto = ask |
glob |
— | allow |
grep |
— | allow |
list |
— | allow |
web_search |
— | allow |
web_fetch |
URL | allow |
delegate_task |
— | allow |
Precedência de regras¶
As regras usam ordenação last-match-wins. Coloque o catch-all "*" primeiro e padrões específicos depois:
Neste exemplo, todos os arquivos podem ser editados, exceto .env, com .env.example liberado como exceção.
Shorthands¶
Permitir tudo (equivalente a --dangerously-skip-permissions):
Valor string aplicado a todos os padrões da categoria:
Padrões seguros¶
Sem nenhuma configuração em aru.json, o Aru aplica padrões seguros:
- Ferramentas read-only (
read,glob,grep,list) →allow - Ferramentas mutantes (
edit,write) →ask - Bash → ~40 prefixos seguros auto-permitidos (
ls,git status,grep, etc.), resto →ask - Arquivos sensíveis (
*.env,*.env.*) →denypara read/edit/write (exceto*.env.example)
Pulando permissões (uso arriscado)¶
Em ambientes controlados (CI, sandbox, worktree), você pode pular completamente o sistema de permissões:
Cuidado
Esta flag autoriza qualquer ação, incluindo rm -rf, escrita em arquivos sensíveis e comandos shell arbitrários. Use apenas em ambientes isolados.
Memória de "sempre"¶
Quando você escolhe "sempre" em um prompt de permissão, a decisão é lembrada apenas dentro da sessão atual. Agentes customizados têm sua própria memória isolada — aprovações dentro de um agente não vazam para o escopo global.