OpenCode: OpenCode Permission System
Última atualização: 2026-08-31
--- title: Permissões e Ferramentas de Formatação do OpenCode description: Aprenda controle granular de permissões e configuração de formatador de código order: 15 lang: pt-br
A configuração de permissões é central para o uso seguro do OpenCode. Ferramentas de formatação garantem estilo de código consistente.
1. O Que Você Vai Aprender
- Sistema de permissões de 3 níveis
- Controle fino de comandos bash
- Sobrescrita de permissões por agente
- Configuração de ferramenta de formatação
2. Sistema de Permissões de 3 Níveis
| Valor | Descrição | Caso de Uso |
|---|---|---|
allow |
Permitir automaticamente | Operações seguras como git status |
ask |
Requer confirmação | Operações arriscadas como editar arquivos |
deny |
Rejeitar automaticamente | Operações perigosas como rm -rf |
3. Configuração Global de Permissões
{
"permission": {
"edit": "ask",
"bash": {
"*": "ask",
"git status *": "allow",
"npm test": "allow",
"rm *": "deny",
"sudo *": "deny"
}
}
}
Última regra correspondente vence. Coloque * primeiro, regras específicas depois.
4. Sobrescrita por Agente
{
"permission": { "edit": "deny" },
"agent": {
"build": { "permission": { "edit": "ask" } },
"review": { "permission": { "edit": "deny" } }
}
}
5. Ferramenta de Formatação
{
"formatter": {
"command": "prettier",
"args": ["--write"]
}
}
| Ferramenta | Linguagem | Configuração |
|---|---|---|
| Prettier | JS/TS/CSS/HTML | "command": "prettier", "args": ["--write"] |
| Black | Python | "command": "black" |
| gofmt | Go | "command": "gofmt", "args": ["-w"] |
| rustfmt | Rust | "command": "rustfmt" |
A IA modifica arquivo → formatação roda automaticamente → estilo consistente.
6. Melhores Práticas de Segurança
| Cenário | Configuração Recomendada |
|---|---|
| Desenvolvimento diário | edit: ask, bash: ask, write: ask |
| Revisão de código | edit: deny, write: deny, bash: git somente leitura |
| CI/CD | edit: allow, bash: allow (restrito) |
| Modo iniciante | Todas as permissões como ask |
❓ FAQ
P: Permissão ask é muito inconveniente?
R: Inicialmente sim, mas é o preço da segurança. Para operações confiáveis, configure allow para reduzir confirmações.
P: E se o formatador falhar?
R: O OpenCode continua a tarefa — falha de formatação não bloqueia o fluxo. Formate manualmente depois.
📖 Resumo
- 3 níveis de permissão: allow, ask, deny
- Permissões bash suportam padrões Glob
- Permissões por agente sobrescrevem configurações globais
- Formatadores garantem estilo consistente após modificações da IA
- Recomendamos pelo menos edit e write como ask
📝 Exercícios
-
Básico: Configure permissões globais com edit e bash como ask.
-
Intermediário: Configure regras Glob para bash permitindo git mas negando comandos perigosos.
-
Avançado: Configure Prettier como formatador e faça o OpenCode formatar código automaticamente após modificações.