Localização dos arquivos
No Windows, os caminhos dos arquivos de configuração do usuário são
%APPDATA%\devin\config.json e %APPDATA%\devin\mcp_config.json (por exemplo, C:\Users\<you>\AppData\Roaming\devin\config.json), não ~\.config\devin\.Os servidores MCP foram movidos para os arquivos dedicados
mcp_config.json na v3000.3 (versão Local 3.6). As versões mais antigas os armazenam na chave mcpServers dos arquivos de configuração principais; as versões mais recentes migram automaticamente, na inicialização, quaisquer entradas mcpServers encontradas ali. Consulte mcpServers.Referência completa da configuração
- Configuração do usuário
- Configuração do projeto
Referência de opções
As opções marcadas com apenas para o usuário só podem ser definidas na configuração do usuário (
~/.config/devin/config.json; %APPDATA%\devin\config.json no Windows). Apenas permissions, read_config_from e hooks estão disponíveis nas configurações de projeto. mcpServers também pode ser definido em ambos os níveis, mas fica nos arquivos dedicados mcp_config.json (consulte mcpServers).agent (apenas para o usuário)
theme_mode (apenas para o usuário)
permissões
mcpServers
~/.config/devin/mcp_config.json (%APPDATA%\devin\mcp_config.json no Windows), .devin/mcp_config.json e .devin/mcp_config.local.json. Em versões anteriores, a chave mcpServers fica diretamente nos arquivos principais de configuração; versões mais recentes a migram automaticamente para os arquivos dedicados na inicialização.
show_path (apenas para o usuário)
~/projects/my-app).
unicode_mode (apenas para o usuário)
"ascii" se o terminal ou a fonte não renderizar corretamente os glifos Unicode (por exemplo, se o símbolo ⏺ aparecer como um quadrado).
show_hints (apenas para o usuário)
false para ocultá-las depois que já estiver familiarizado.
include_gitignored_files (apenas para o usuário)
@. Quando ativado, arquivos que correspondem aos padrões de .gitignore aparecerão nas conclusões de menção com @. Isso é útil se você armazena documentação ou outros arquivos em diretórios ignorados pelo Git que deseja referenciar.
respect_gitignore (apenas para o usuário)
.gitignore ao ler ou gravar arquivos por meio de ferramentas. Quando ativado, chamadas de ferramenta que acessam caminhos ignorados pelo Git são bloqueadas. Isso é separado de include_gitignored_files, que afeta apenas o preenchimento automático de @ na aba.
attribution (apenas para o usuário)
Generated with [Devin] e um rodapé Co-Authored-By: Devin. Defina como false para omitir ambos, para que nenhuma atribuição do Devin seja adicionada.
subagents_enabled (apenas para o usuário)
run_subagent e read_subagent são removidas, e o agente realiza todo o trabalho por conta própria. Essa configuração é aplicada em tempo real — uma sessão em execução a adota sem precisar ser reiniciada.
A política da organização tem precedência: se um administrador desativou os subagentes para sua organização (pela configuração Default subagent model), eles permanecerão desativados independentemente desta configuração.
keymap (apenas para o usuário)
global, editor, input, list, …), cada um associando nomes de ações às teclas que as acionam. As ações não listadas mantêm os padrões nativos.
Uma especificação de tecla é uma lista de modificadores separados por
- (ctrl, alt, shift), seguida de um nome de tecla (um caractere ou uma tecla nomeada, como enter, esc, tab, home, page-up, f5). A ordem dos modificadores não importa, e a correspondência não diferencia maiúsculas de minúsculas, exceto que um único caractere maiúsculo associa a tecla com Shift ("K" é o mesmo que "shift-k").
Não é possível remover a associação de
global.cancel (Ctrl+C), portanto você sempre pode interromper um agente em execução. Entradas inválidas, contextos ou ações desconhecidos e overrides que entrariam em conflito com outro atalho no mesmo contexto são informados na inicialização e usam o padrão nativo como alternativa.auto_update (apenas para o usuário)
devin use automaticamente a versão mais recente. A sessão em execução no momento não é afetada — a troca do symlink current só entra em vigor na próxima inicialização.
A atualização foi projetada para ser segura contra interrupções: cada etapa no sistema de arquivos é preparada em um caminho temporário e promovida com uma renomeação atômica, e atualizações simultâneas são serializadas com um bloqueio de arquivo. Encerrar no meio da atualização não deixa a instalação em um estado corrompido — na próxima vez, ela simplesmente iniciará com a versão antiga.
Aplica-se apenas a instalações autogerenciadas (curl | bash no macOS/Linux). Instalações incluídas em outro produto (por exemplo, Windsurf) ignoram essa configuração e são atualizadas pelo aplicativo principal.
keymap (apenas para o usuário)
context.action exibido para cada atalho em /shortcuts (por exemplo, editor.insert_newline):
Os override substituem completamente os padrões nativos dessa ação; as ações não listadas mantêm seus padrões. Não é possível desassociar
Ctrl+C (cancelar). Entradas inválidas (nomes desconhecidos, especificações de tecla inválidas, valores com tipo incorreto ou override que entram em conflito com outra associação no mesmo contexto) são exibidas como avisos na inicialização e ignoradas — o restante da configuração ainda é aplicado.
Uma especificação de tecla consiste em zero ou mais modificadores separados por -, seguidos de um nome de tecla (por exemplo, ctrl-shift-p, alt-enter, f5, K). Modificadores: ctrl/control/c, alt/meta/option/opt/m, shift/s. Teclas nomeadas: enter, esc, tab, backspace, delete, insert, up, down, left, right, home, end, page-up, page-down, space, f1–f24. Qualquer outro caractere único associa a respectiva tecla (diferencia maiúsculas de minúsculas: K associa Shift+K); use - para a tecla de menos (ctrl--).
Você também pode reatribuir teclas interativamente: em /shortcuts, pressione Enter em uma linha de atalho e, em seguida, pressione a nova tecla — a alteração será salva nesta seção keymap. Consulte Personalização de associações de teclas.
notify
read_config_from
Defina como
false para desativar uma importação específica. null é tratado como true.
proxy (apenas para o usuário)
sandbox abaixo).
O campo mode define a estratégia de proxy:
Exemplo — proxy corporativo:
Os administradores podem definir o mesmo bloco
proxy no arquivo de configuração do sistema aplicável a toda a máquina. A configuração Enterprise tem precedência, e configurar um proxy em ambos os arquivos gera um erro — remova a seção proxy da sua configuração de usuário se ela for gerenciada pela sua organização.sandbox (apenas para o usuário)
--sandbox está ativo e a filtragem de domínio está configurada, um proxy de rede gerenciado é iniciado no loopback, e o sandbox restringe todo o tráfego dos processos filhos para passar por ele.
Para uma visão geral completa de como o sandbox funciona — incluindo a aplicação no Enterprise e como as configurações do Enterprise e do usuário interagem — consulte a documentação do Sandbox.
--sandbox aplica caminhos graváveis e regras de deny no nível do sistema operacional. As raízes graváveis são derivadas dos escopos Write(...) concedidos, além dos diretórios do workspace; todo o restante pode ser lido, exceto os caminhos ocultos por regras de deny de Read(...). Escopos Write(...) concedidos no meio da sessão expandem dinamicamente o sandbox para os comandos subsequentes.
Se
--sandbox for informado, mas a resolução do sandbox falhar (por exemplo, se as ferramentas de sandbox não estiverem disponíveis na plataforma atual), a CLI se recusará a iniciar em vez de executar sem sandbox. Esse comportamento de fail-closed garante que a intenção de segurança de --sandbox nunca seja ignorada silenciosamente.
Sintaxe de padrão de domínio:
Exemplo:
A filtragem de domínios se aplica quando o sandbox está ativo (
--sandbox). Sem --sandbox, a seção de sandbox é ignorada.Para teams do Enterprise, administradores podem fazer override das listas de domínios em Configurações da Team. As listas de permissões do Enterprise prevalecem (substituem seu
allowed_domains local), enquanto as listas de bloqueio do Enterprise são aditivas (mescladas com seu denied_domains local).
