> ## 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.

# Precedencia de la configuración

> Cómo interactúan la configuración global, la del proyecto y la local

Devin CLI carga la configuración de múltiples fuentes y las combina. Comprender el orden de precedencia te ayuda a definir la configuración adecuada para tu equipo y tus preferencias personales.

***

<div id="configuration-layers">
  ## Capas de configuración
</div>

De mayor a menor prioridad:

| Prioridad  | Fuente                                                                            | Notas                       |
| ---------- | --------------------------------------------------------------------------------- | --------------------------- |
| 1 (máxima) | Settings de la organización / del equipo                                          | No se puede sobrescribir    |
| 2          | Sesión (aprobaciones interactivas)                                                | Solo en memoria             |
| 3          | Proyecto local (`.devin/config.local.json`)                                       | Personal, ignorado por Git  |
| 4          | Proyecto (`.devin/config.json`)                                                   | Compartido con el equipo    |
| 5 (mínima) | Usuario (`~/.config/devin/config.json`; `%APPDATA%\devin\config.json` en Windows) | Tus valores predeterminados |

Si la misma configuración se define en varios niveles, prevalece la fuente de mayor prioridad.

***

<div id="when-to-use-each-level">
  ## Cuándo usar cada nivel
</div>

<AccordionGroup>
  <Accordion title="Configuración de usuario" icon="user" defaultOpen>
    **Path:** `~/.config/devin/config.json` (`%APPDATA%\devin\config.json` en Windows)

    Úsalo para preferencias personales que se aplican en todas partes:

    * Preferencia de modelo predeterminada
    * Preferencia de tema
    * Servidores MCP personales (p. ej., tus propias claves de API)
    * Permisos globales

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

  <Accordion title="Configuración del proyecto" icon="folder">
    **Path:** `.devin/config.json`

    Úsalo para estándares del equipo registrados en el repositorio. Solo `permissions`, `mcpServers`, `read_config_from` y `hooks` están disponibles en este nivel:

    * Servidores MCP compartidos (con configuración no secreta)
    * Políticas de permisos del equipo
    * Configuración de importación
    * Hooks del 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="Configuración local del proyecto" icon="lock">
    **Path:** `.devin/config.local.json`

    Úsalo para anulaciones personales que no deberían versionarse:

    * Claves de API y secretos
    * Preferencias personales de herramientas para este proyecto
    * Anulaciones de permisos

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

    <Tip>
      Los archivos de configuración local se excluyen automáticamente de git mediante `.git/info/exclude`.
    </Tip>
  </Accordion>

  <Accordion title="Configuración de la organización" icon="building">
    La gestiona el admin de tu empresa a través del panel de configuración del equipo. Estos ajustes no pueden ser anulados por usuarios individuales y aplican políticas para toda la organización, como restricciones de modelos y allowlists de servidores MCP.
  </Accordion>
</AccordionGroup>

***

<div id="whats-available-at-each-level">
  ## Qué está disponible en cada nivel
</div>

Las configuraciones del proyecto (`.devin/config.json` y `.devin/config.local.json`) solo admiten un subconjunto de los Settings. La tabla siguiente muestra qué Settings están disponibles en cada nivel:

| Setting                    | Configuración de usuario | Configuración de proyecto |
| -------------------------- | :----------------------: | :-----------------------: |
| `permissions`              |             ✓            |             ✓             |
| `mcpServers`               |             ✓            |             ✓             |
| `read_config_from`         |             ✓            |             ✓             |
| `hooks`                    |             ✓            |             ✓             |
| `agent` (modelo)           |             ✓            |             ✗             |
| `theme_mode`               |             ✓            |             ✗             |
| `unicode_mode`             |             ✓            |             ✗             |
| `show_path`                |             ✓            |             ✗             |
| `show_hints`               |             ✓            |             ✗             |
| `include_gitignored_files` |             ✓            |             ✗             |
| `sandbox`                  |             ✓            |             ✗             |

Los Settings marcados como exclusivos de la configuración de usuario solo se pueden definir en la configuración de usuario (`~/.config/devin/config.json`; `%APPDATA%\devin\config.json` en Windows) y no forman parte de la jerarquía de precedencia anterior.

***

<div id="how-merging-works">
  ## Cómo funciona la fusión
</div>

La tabla de precedencia anterior solo se aplica a los Settings que admiten múltiples niveles (`permissions`, `mcpServers`, `read_config_from`, `hooks`).

<div id="permissions">
  ### Permisos
</div>

Las listas de permisos se **fusionan** (se combinan) entre niveles. Una denegación en un nivel superior no puede ser anulada por un permiso concedido en un nivel inferior.

Por ejemplo, si tu organización deniega `Exec(sudo)`, agregar `Exec(sudo)` a la lista de permisos permitidos de tu usuario no tiene ningún efecto: la denegación de la organización siempre prevalece. Sin embargo, otros permisos, como `Read(**)` en el nivel de proyecto, se aplican con normalidad.

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

Las configuraciones de los servidores MCP se **combinan por nombre**. Un servidor definido en un nivel superior anula al servidor con el mismo nombre definido en un nivel inferior.

Por ejemplo, si tanto tu configuración de usuario como la configuración del proyecto definen un servidor "GitHub", prevalece la versión de la configuración del proyecto porque tiene mayor prioridad que la configuración de usuario.

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

Los hooks se **recopilan** de todas las fuentes y se ejecutan todos. Un hook definido en la configuración del usuario se ejecuta junto con los definidos en la configuración del proyecto; no se sustituyen entre sí.

***

<div id="project-root-detection">
  ## Detección de la raíz del proyecto
</div>

Devin CLI encuentra el directorio raíz de tu proyecto buscando un directorio `.git` o `.jj` y subiendo desde tu directorio de trabajo actual. La configuración del proyecto (`.devin/`) se carga desde el directorio raíz del proyecto.

<Note>
  Si tienes directorios `.devin/` anidados (p. ej., en un monorepo), las configuraciones de los subdirectorios tienen prioridad sobre las de los directorios superiores.
</Note>

***

<div id="file-discovery-summary">
  ## Resumen de detección de archivos
</div>

| Archivo                             | Encontrado por                    | ¿Compartido?          |
| ----------------------------------- | --------------------------------- | --------------------- |
| `~/.config/devin/config.json`       | Ruta XDG                          | No                    |
| `.devin/config.json`                | Buscando hacia arriba desde `cwd` | Sí (versionado)       |
| `.devin/config.local.json`          | Buscando hacia arriba desde `cwd` | No (ignorado por Git) |
| `.devin/skills/*/SKILL.md`          | Raíz del proyecto                 | Sí (versionado)       |
| `~/.config/devin/skills/*/SKILL.md` | Ruta XDG                          | No                    |
| `AGENTS.md`                         | Raíz del proyecto                 | Sí (versionado)       |
| `~/.config/devin/AGENTS.md`         | Ruta XDG                          | No                    |

<Note>
  **Windows:** Las rutas que se muestran como `~/.config/devin/` usan la convención XDG para Linux/macOS. En Windows, se resuelven como `%APPDATA%\devin\` (normalmente `C:\Users\<YourUser>\AppData\Roaming\devin\`).
</Note>
