> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devin.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Precedência das configurações

> Como as configurações globais, do projeto e locais interagem

A CLI do Devin carrega configurações de várias fontes e as mescla. Compreender a ordem de precedência ajuda você a definir a configuração certa para sua equipe e para suas preferências pessoais.

***

<div id="configuration-layers">
  ## Camadas de configuração
</div>

Da maior para a menor prioridade:

| Prioridade     | Origem                                                                            | Observações                |
| -------------- | --------------------------------------------------------------------------------- | -------------------------- |
| 1 (mais alta)  | Configurações da organização / equipe                                             | Não pode ser sobrescrita   |
| 2              | Sessão (aprovações interativas)                                                   | Somente em memória         |
| 3              | Projeto local (`.devin/config.local.json`)                                        | Pessoal, ignorado pelo Git |
| 4              | Projeto (`.devin/config.json`)                                                    | Compartilhado com a equipe |
| 5 (mais baixa) | Usuário (`~/.config/devin/config.json`; `%APPDATA%\devin\config.json` no Windows) | Seus padrões               |

Quando a mesma configuração é definida em vários níveis, prevalece a origem de maior prioridade.

***

<div id="when-to-use-each-level">
  ## Quando usar cada nível
</div>

<AccordionGroup>
  <Accordion title="Configuração do usuário" icon="user" defaultOpen>
    **Caminho:** `~/.config/devin/config.json` (`%APPDATA%\devin\config.json` no Windows)

    Use para preferências pessoais que se aplicam em qualquer lugar:

    * Preferência de modelo padrão
    * Preferência de tema
    * Servidores MCP pessoais (por exemplo, suas próprias Chaves de API)
    * Permissões globais concedidas

    ```json theme={null}
    {
      "agent": { "model": "opus" },
      "permissions": {
        "allow": ["Read(**)", "Exec(git)"]
      }
    }
    ```
  </Accordion>

  <Accordion title="Configuração do projeto" icon="folder">
    **Caminho:** `.devin/config.json`

    Use para padrões da equipe registrados no repositório. Somente `permissions`, `mcpServers`, `read_config_from` e `hooks` estão disponíveis neste nível:

    * Servidores MCP compartilhados (com configuração sem segredos)
    * Políticas de permissão da equipe
    * Configurações de importação
    * Hooks de ciclo de vida

    ```json theme={null}
    {
      "permissions": {
        "allow": ["Exec(npm run)", "Read(src/**)"],
        "deny": ["Exec(sudo)"]
      },
      "mcpServers": {
        "github": {
          "command": "npx",
          "args": ["-y", "@modelcontextprotocol/server-github"]
        }
      }
    }
    ```
  </Accordion>

  <Accordion title="Configuração local do projeto" icon="lock">
    **Caminho:** `.devin/config.local.json`

    Use para overrides pessoais que não devem ser registrados no repositório:

    * Chaves de API e segredos
    * Preferências pessoais de ferramentas para este projeto
    * Overrides de permissão

    ```json theme={null}
    {
      "mcpServers": {
        "github": {
          "command": "npx",
          "args": ["-y", "@modelcontextprotocol/server-github"],
          "env": {
            "GITHUB_TOKEN": "ghp_my_personal_token"
          }
        }
      }
    }
    ```

    <Tip>
      Arquivos de configuração local são excluídos automaticamente do git por meio de `.git/info/exclude`.
    </Tip>
  </Accordion>

  <Accordion title="Configurações da organização" icon="building">
    Gerenciadas pelo administrador Enterprise por meio do painel de configurações da equipe. Essas configurações não podem ser alteradas por usuários individuais e aplicam políticas válidas para toda a organização, como restrições de modelo e listas de permissões de servidores MCP.
  </Accordion>
</AccordionGroup>

***

<div id="whats-available-at-each-level">
  ## O que está disponível em cada nível
</div>

As configurações do projeto (`.devin/config.json` e `.devin/config.local.json`) oferecem suporte apenas a um subconjunto de configurações. A tabela abaixo mostra quais configurações estão disponíveis em cada nível:

| Configuração               | Configuração do usuário | Configuração do projeto |
| -------------------------- | :---------------------: | :---------------------: |
| `permissions`              |            ✓            |            ✓            |
| `mcpServers`               |            ✓            |            ✓            |
| `read_config_from`         |            ✓            |            ✓            |
| `hooks`                    |            ✓            |            ✓            |
| `agent` (modelo)           |            ✓            |            ✗            |
| `theme_mode`               |            ✓            |            ✗            |
| `unicode_mode`             |            ✓            |            ✗            |
| `show_path`                |            ✓            |            ✗            |
| `show_hints`               |            ✓            |            ✗            |
| `include_gitignored_files` |            ✓            |            ✗            |
| `sandbox`                  |            ✓            |            ✗            |

As configurações marcadas como exclusivas do usuário só podem ser definidas na configuração do usuário (`~/.config/devin/config.json`; `%APPDATA%\devin\config.json` no Windows) e não fazem parte da hierarquia de precedência acima.

***

<div id="how-merging-works">
  ## Como funciona a mesclagem
</div>

A tabela de precedência acima se aplica apenas a configurações compatíveis com vários níveis (`permissions`, `mcpServers`, `read_config_from`, `hooks`).

<div id="permissions">
  ### Permissões
</div>

As listas de permissão são **mescladas** entre os níveis. Uma negação em um nível mais alto não pode ser sobreposta por uma permissão em um nível mais baixo.

Por exemplo, se a sua organização negar `Exec(sudo)`, adicionar `Exec(sudo)` à sua lista de permissões de usuário não terá efeito — a negação da organização sempre prevalece. No entanto, outras permissões, como `Read(**)` no nível do projeto, são aplicadas normalmente.

<div id="mcp-servers">
  ### Servidores MCP
</div>

As configurações de servidores MCP são **mescladas por nome**. Um servidor definido em um nível superior substitui o servidor de mesmo nome em um nível inferior.

Por exemplo, se tanto a configuração do usuário quanto a do projeto definirem um servidor "github", prevalece a versão da configuração do projeto, porque ela tem prioridade sobre a configuração do usuário.

<div id="hooks">
  ### Hooks
</div>

Os hooks são **reunidos** de todas as fontes e todos são executados. Um hook definido na configuração do usuário é executado junto com os hooks definidos na configuração do projeto — eles não substituem uns aos outros.

***

<div id="project-root-detection">
  ## Detecção da raiz do projeto
</div>

O Devin CLI encontra a raiz do projeto procurando um diretório `.git` ou `.jj` e percorrendo os diretórios acima a partir do diretório de trabalho atual. A configuração do projeto (`.devin/`) é carregada da raiz do projeto.

<Note>
  Se você tiver diretórios `.devin/` aninhados (por exemplo, em um monorepo), as configurações de subdiretórios têm precedência sobre as configurações dos diretórios ancestrais.
</Note>

***

<div id="file-discovery-summary">
  ## Resumo da descoberta de arquivos
</div>

| Arquivo                             | Encontrado por                               | Compartilhado?          |
| ----------------------------------- | -------------------------------------------- | ----------------------- |
| `~/.config/devin/config.json`       | caminho XDG                                  | Não                     |
| `.devin/config.json`                | Percorrendo diretórios acima a partir do cwd | Sim (versionado)        |
| `.devin/config.local.json`          | Percorrendo diretórios acima a partir do cwd | Não (ignorado pelo Git) |
| `.devin/skills/*/SKILL.md`          | raiz do projeto                              | Sim (versionado)        |
| `~/.config/devin/skills/*/SKILL.md` | caminho XDG                                  | Não                     |
| `AGENTS.md`                         | raiz do projeto                              | Sim (versionado)        |
| `~/.config/devin/AGENTS.md`         | caminho XDG                                  | Não                     |

<Note>
  **Windows:** Os caminhos mostrados como `~/.config/devin/` usam a convenção XDG no Linux/macOS. No Windows, eles correspondem a `%APPDATA%\devin\` (normalmente `C:\Users\<YourUser>\AppData\Roaming\devin\`).
</Note>
