Skip to main content
O sistema de permissões controla quais ações o agente pode executar sem pedir sua aprovação. Você pode aprovar previamente ações seguras, bloquear ações perigosas e sempre exigir confirmação para operações sensíveis.

Comportamento padrão das permissões

O Devin CLI usa um sistema de permissões em níveis para equilibrar flexibilidade e segurança. O comportamento padrão depende do modo atual: Cada célula mostra se essa ferramenta é executada automaticamente (Auto, sem confirmação) ou espera sua aprovação (Prompt) nesse modo: No modo Normal (o padrão), operações somente leitura são aprovadas automaticamente, enquanto gravações em arquivos e comandos de shell exigem sua aprovação explícita. Cada vez que você aprova uma ação, pode escolher permiti-la uma vez, durante a sessão ou permanentemente para o projeto. No modo Accept Edits, edições de arquivo dentro do workspace são aprovadas automaticamente, mas comandos de shell e gravações fora do workspace ainda exigem confirmação. No modo Smart, edições no workspace são aprovadas automaticamente como no modo Accept Edits, e todas as outras ações são avaliadas por um modelo rápido que só as executa automaticamente quando são claramente seguras. Todo o restante exige confirmação como de costume. Consulte o Modo Smart abaixo. No modo Bypass, todas as chamadas de ferramenta são aprovadas automaticamente sem pedir confirmação. No modo Autonomous, comandos de shell e requisições de rede são aprovados automaticamente porque o sandbox no nível do sistema operacional restringe o que eles podem acessar. Edições diretas de arquivo pelas ferramentas edit/write ainda exigem confirmação, porque essas ferramentas operam fora do sandbox. Autonomous só está disponível quando o sandbox no nível do sistema operacional está ativo.
Os modos Smart, Bypass e Autonomous não substituem permissões em nível de organização. Regras de negação e solicitação de aprovação impostas por admins, configuradas em Configurações da equipe, permanecem ativas independentemente do modo de permissão do usuário. Consulte Precedência para mais detalhes.

Modo Smart

O Smart fica entre Accept Edits e Bypass. As edições de arquivos no workspace são aprovadas automaticamente, exatamente como em Accept Edits. Para todas as outras ações — comandos de shell, requisições web, ferramentas MCP, gravações fora do workspace — um modelo rápido avalia se a ação pode ser executada com segurança sem supervisão. Se for claramente segura, a ação é executada sem prompt; caso contrário, ou se o modelo estiver incerto ou indisponível, você verá o prompt de aprovação normal.
Você também pode alternar para o modo Smart com Shift+Tab, selecioná-lo no seletor de modo ou iniciá-lo:
O julgamento do modelo se limita ao trabalho rotineiro de desenvolvimento — criar, testar, executar lint, formatar e inspecionar o projeto. Algumas categorias nunca são aprovadas automaticamente no modo Smart, independentemente do que o modelo considere:
  • Instalações de pacotes (npm install, pip install, cargo install, brew install, …)
  • Operações de git que modificam dados (subcomandos somente de leitura, como git status, continuam elegíveis)
  • rm, sudo e outros comandos destrutivos ou de escalonamento de privilégios
  • kubectl delete e operações destrutivas em CLIs de nuvem (aws, gcloud, az, terraform, …)
  • Tudo que leia ou grave arquivos dotenv, material de chave, configurações do Git ou a própria configuração do agente
O Smart se diferencia dos modos adjacentes pelo que delega:
Suas próprias regras continuam tendo prioridade. O julgamento do Smart só se aplica quando nenhuma regra já determina a decisão. Portanto, uma regra deny bloqueia a ação, e uma regra ask sempre solicita aprovação, exatamente como descrito em Como as permissões funcionam. As regras deny e ask no nível da organização também não são afetadas.
O modo Smart está sendo disponibilizado gradualmente, portanto talvez ainda não apareça no seletor de modo ou no ciclo de Shift+Tab.

Modo Autonomous

Autonomous é o modo de permissão usado com a flag --sandbox. Em termos conceituais, ele equivale mais ou menos a “Accept Edits no workspace atual” mais a capacidade de executar qualquer comando de shell, com ambos os comportamentos contidos pela sandbox em nível de sistema operacional. Quando a sandbox está ativa:
  • É o único modo de permissão disponível. Os modos Normal, Accept Edits, Smart e Bypass ficam ocultos em sessões com sandbox. O modo Plan continua disponível.
  • Comandos de shell e requisições são aprovados automaticamente em vez de pedir confirmação, porque a sandbox impõe limites ao que eles podem ler, escrever e acessar pela rede.
  • Edições diretas de arquivos com as ferramentas edit e write ainda pedem confirmação. Essas ferramentas são executadas dentro do processo da CLI, e não dentro da sandbox, então não podem ser delimitadas por ela. Conceder um escopo Write(...) no prompt expande dinamicamente a sandbox para que os comandos de shell subsequentes possam escrever nesse local.
  • Escopos Write(...) concedidos no meio da sessão expandem dinamicamente a sandbox para os comandos subsequentes. Aprovações de Read(...) no meio da sessão afetam apenas as próprias ferramentas do agente; caminhos ocultos por regras de negação Read(...) permanecem ocultos durante toda a sessão.
Use Bypass quando quiser execução irrestrita, sem isolamento no nível do sistema operacional; use --sandbox (que seleciona Autonomous) quando quiser execução sem supervisão, com limites de acesso ao sistema de arquivos e à rede impostos pelo sistema operacional. Consulte a referência de configuração do sandbox para mais detalhes sobre diretórios raiz graváveis, regras de negação e filtragem de domínios, e Configurações da equipe → Aplicação do sandbox para controles do Enterprise.

Como as permissões funcionam

Quando o agente usa uma ferramenta, o sistema de permissões verifica suas regras em ordem de prioridade:
  1. Regras de negação — Verificadas primeiro. Se houver correspondência, a ação é bloqueada imediatamente.
  2. Regras de solicitação — Verificadas em segundo lugar. Se houver correspondência, você sempre precisará confirmar (faz override de qualquer regra de permissão).
  3. Regras de permissão — Verificadas por último. Se houver correspondência, a ação prossegue sem pedir confirmação.
  4. Padrão — Se nenhuma regra corresponder, sua aprovação será solicitada.
Como a negação é verificada antes da solicitação, e a solicitação é verificada antes da permissão, uma regra de negação sempre prevalece. Se o mesmo escopo corresponder tanto a uma regra de negação quanto a uma regra de solicitação, a regra de negação prevalecerá.

Configuração

Adicione permissões à seção permissions do seu arquivo de configuração:
No Windows, o caminho do arquivo de configuração do usuário é %APPDATA%\devin\config.json (geralmente C:\Users\<you>\AppData\Roaming\devin\config.json) em vez de ~/.config/devin/config.json. Consulte Arquivo de configuração para mais detalhes.

Sintaxe de permissão

Há dois tipos de correspondência de permissão: baseada em escopo (que controlam quais caminhos/comandos/URLs podem ser acessados) e baseada em ferramenta (que controlam quais ferramentas podem ser usadas).

Permissões baseadas em escopo

Read(glob)

Controla o acesso de leitura a arquivos. O padrão glob corresponde aos caminhos dos arquivos.
Caminhos de diretório correspondem automaticamente a todos os arquivos dentro deles.
Controla o acesso de gravação/edição de arquivos.
Controla a execução de comandos de shell. Corresponde a comandos que começam com o prefixo fornecido.
Exec(git) corresponde a “git”, “git status”, “git commit -m ‘msg’”, mas NÃO a “gitk” nem “github-cli”. O prefixo deve corresponder a uma palavra completa.
Controla o acesso a fetch HTTP usando padrões de URL.
Os padrões de URL seguem o padrão WHATWG URL Pattern. A forma abreviada domain: corresponde a qualquer caminho no domínio exato.

Permissões por ferramenta

Use o nome da ferramenta para controlar ferramentas inteiras:
Nomes de ferramentas disponíveis: read, edit, grep, glob, exec

Permissões das ferramentas do MCP

Controle o acesso às ferramentas do servidor MCP:

Padrões de caminho

Os padrões glob em Read() e Write() aceitam: Exemplos:
Use um prefixo de caminho absoluto (por exemplo, Read(/**)) quando quiser corresponder a todos os arquivos do sistema. Um Read(**) sem uma / inicial é resolvido em relação ao diretório de trabalho atual, então corresponde apenas aos arquivos nesse diretório — não aos arquivos acessados por caminhos absolutos em outros locais.

Opções de persistência

Quando o agente solicitar permissão durante uma sessão, você poderá escolher como salvar sua decisão: Os prompts de comando oferecem ambos os escopos explicitamente: “Sim, sempre permitir comandos <cmd> em <project>” salva a permissão para o projeto atual, e “Sim, sempre permitir comandos <cmd> em todos os projetos” a salva na sua configuração de usuário para que se aplique em todos os lugares. Os prompts de busca na web para uma URL ou domínio específico adicionam uma opção equivalente de “Sim, sempre permitir todas as buscas na web”, que inclui as buscas na lista de permissões em uma única etapa.

Editando um Command Antes de Aprovar

Os prompts de aprovação do Command não se limitam a sim ou não. Além das opções de aprovação, um prompt de comando oferece:

Permissões no nível do servidor MCP

Quando for solicitada permissão para uma ferramenta MCP específica (por exemplo, list_issues no servidor Figma), o prompt de permissão também oferece opções mais amplas no nível do servidor: Isso permite conceder rapidamente acesso amplo a um servidor MCP confiável sem precisar aprovar cada ferramenta individualmente.

Precedência

Quando várias fontes de permissão definem regras, elas são combinadas seguindo esta ordem de precedência (da mais alta para a mais baixa):
  1. Configurações da organização/equipe (se Enterprise)
  2. Permissões concedidas no nível da sessão (aprovações interativas)
  3. Configuração local do projeto (.devin/config.local.json)
  4. Configuração do projeto (.devin/config.json)
  5. Configuração do usuário (~/.config/devin/config.json; %APPDATA%\devin\config.json no Windows)
Permissões negadas no nível da organização não podem ser substituídas por configurações de projeto ou de usuário. Isso garante que as políticas do Enterprise sejam aplicadas.

Exemplos

Configuração mínima de desenvolvimento

Permita operações comuns somente de leitura e solicite confirmação para todo o restante:

Confiança total em um projeto

Aprove automaticamente a maioria das operações no projeto:

Enterprise com restrições rígidas

Restrinja a operações seguras específicas e sempre solicite confirmação para operações de escrita:
Neste exemplo, gravações em .env* são negadas de imediato, todas as outras gravações sempre solicitam confirmação ao usuário, e apenas alguns comandos somente leitura são aprovados automaticamente. Como deny é verificado antes de ask, a negação de .env* tem prioridade sobre a regra Write(**) de ask.