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

# Priorité de la configuration

> Comment les Settings globaux, du projet et locaux s’articulent

Devin CLI charge la configuration à partir de plusieurs sources et les combine. Comprendre cet ordre de priorité vous aide à définir la configuration adaptée à votre Team et à vos préférences personnelles.

***

<div id="configuration-layers">
  ## Couches de configuration
</div>

De la priorité la plus élevée à la plus faible :

| Priorité           | Source                                                                                  | Remarques                  |
| ------------------ | --------------------------------------------------------------------------------------- | -------------------------- |
| 1 (la plus élevée) | Organization / Team Settings                                                            | Ne peut pas être surchargé |
| 2                  | Session (approbations interactives)                                                     | En mémoire uniquement      |
| 3                  | Projet local (`.devin/config.local.json`)                                               | Personnel, ignoré par git  |
| 4                  | Projet (`.devin/config.json`)                                                           | Partagé avec l’équipe      |
| 5 (la plus faible) | Utilisateur (`~/.config/devin/config.json`; `%APPDATA%\devin\config.json` sous Windows) | Vos valeurs par défaut     |

Lorsque le même paramètre est défini à plusieurs niveaux, c’est la source de priorité la plus élevée qui l’emporte.

***

<div id="when-to-use-each-level">
  ## Quand utiliser chaque niveau
</div>

<AccordionGroup>
  <Accordion title="Configuration utilisateur" icon="user" defaultOpen>
    **Chemin :** `~/.config/devin/config.json` (`%APPDATA%\devin\config.json` sous Windows)

    À utiliser pour les préférences personnelles qui s’appliquent partout :

    * Préférence de modèle par défaut
    * Préférence de thème
    * Serveurs MCP personnels (p. ex. vos propres API keys)
    * Autorisations globales

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

  <Accordion title="Configuration du projet" icon="folder">
    **Chemin :** `.devin/config.json`

    À utiliser pour les standards de Team versionnés dans le dépôt. Seuls `permissions`, `mcpServers`, `read_config_from` et `hooks` sont disponibles à ce niveau :

    * Serveurs MCP partagés (avec une configuration non secrète)
    * Politiques d’autorisations de Team
    * Settings d’importation
    * Hooks de cycle de vie

    ```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="Configuration locale du projet" icon="lock">
    **Chemin :** `.devin/config.local.json`

    À utiliser pour les dérogations personnelles qui ne doivent pas être versionnées :

    * API keys et secrets
    * Préférences personnelles d’outil pour ce projet
    * Dérogations d’autorisations

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

    <Tip>
      Les fichiers de configuration locaux sont automatiquement exclus de git via `.git/info/exclude`.
    </Tip>
  </Accordion>

  <Accordion title="Settings de l’organisation" icon="building">
    Gérés par votre administrateur Enterprise via le tableau de bord des Settings du Team. Ces paramètres ne peuvent pas faire l’objet de dérogations par les utilisateurs individuels et appliquent des politiques à l’échelle de l’organisation, comme des restrictions sur les modèles et des listes d’autorisation de serveurs MCP.
  </Accordion>
</AccordionGroup>

***

<div id="whats-available-at-each-level">
  ## Ce qui est disponible à chaque niveau
</div>

Les configurations du projet (`.devin/config.json` et `.devin/config.local.json`) ne prennent en charge qu’un sous-ensemble de Settings. Le tableau ci-dessous indique quels Settings sont disponibles à chaque niveau :

| Paramètre                  | configuration utilisateur | configuration du projet |
| -------------------------- | :-----------------------: | :---------------------: |
| `permissions`              |             ✓             |            ✓            |
| `mcpServers`               |             ✓             |            ✓            |
| `read_config_from`         |             ✓             |            ✓            |
| `hooks`                    |             ✓             |            ✓            |
| `agent` (modèle)           |             ✓             |            ✗            |
| `theme_mode`               |             ✓             |            ✗            |
| `unicode_mode`             |             ✓             |            ✗            |
| `show_path`                |             ✓             |            ✗            |
| `show_hints`               |             ✓             |            ✗            |
| `include_gitignored_files` |             ✓             |            ✗            |
| `sandbox`                  |             ✓             |            ✗            |

Les Settings marqués comme disponibles uniquement dans la configuration utilisateur ne peuvent être définis que dans la configuration utilisateur (`~/.config/devin/config.json` ; `%APPDATA%\devin\config.json` sous Windows) et n'entrent pas dans la hiérarchie de priorité ci-dessus.

***

<div id="how-merging-works">
  ## Comment fonctionne la fusion
</div>

Le tableau de priorité ci-dessus ne s’applique qu’aux Settings qui prennent en charge plusieurs niveaux (`permissions`, `mcpServers`, `read_config_from`, `hooks`).

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

Les listes d’autorisations sont **cumulées** (combinées) entre les différents niveaux. Un refus à un niveau supérieur ne peut pas être annulé par une autorisation à un niveau inférieur.

Par exemple, si votre organisation refuse `Exec(sudo)`, ajouter `Exec(sudo)` à votre liste d’autorisations utilisateur n’a aucun effet — le refus défini au niveau de l’organisation l’emporte toujours. En revanche, d’autres autorisations comme `Read(**)` au niveau du projet s’appliquent normalement.

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

Les configurations des serveurs MCP sont **fusionnées en fonction de leur nom**. Un serveur défini à un niveau supérieur prend le pas sur un serveur du même nom défini à un niveau inférieur.

Par exemple, si votre configuration utilisateur et la configuration du projet définissent toutes deux un serveur "github", c’est la version de la configuration du projet qui l’emporte, car elle est prioritaire sur la configuration utilisateur.

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

Les hooks sont **collectés** à partir de toutes les sources et s’exécutent tous. Un hook défini dans la configuration utilisateur s’exécute en parallèle des hooks définis dans la configuration du projet — ils ne se remplacent pas les uns les autres.

***

<div id="project-root-detection">
  ## Détection de la racine du projet
</div>

Devin CLI détecte la racine de votre projet en recherchant un répertoire `.git` ou `.jj` en remontant depuis votre répertoire de travail actuel. La configuration du projet (`.devin/`) est chargée depuis la racine du projet.

<Note>
  Si vous avez des répertoires `.devin/` imbriqués (p. ex. dans un monorepo), les configurations des sous-répertoires sont prioritaires sur celles des répertoires parents.
</Note>

***

<div id="file-discovery-summary">
  ## Résumé de la détection des fichiers
</div>

| Fichier                             | Détecté via                               | Partagé ?            |
| ----------------------------------- | ----------------------------------------- | -------------------- |
| `~/.config/devin/config.json`       | Chemin XDG                                | Non                  |
| `.devin/config.json`                | En remontant depuis le répertoire courant | Oui (versionné)      |
| `.devin/config.local.json`          | En remontant depuis le répertoire courant | Non (ignoré par Git) |
| `.devin/skills/*/SKILL.md`          | Racine du projet                          | Oui (versionné)      |
| `~/.config/devin/skills/*/SKILL.md` | Chemin XDG                                | Non                  |
| `AGENTS.md`                         | Racine du projet                          | Oui (versionné)      |
| `~/.config/devin/AGENTS.md`         | Chemin XDG                                | Non                  |

<Note>
  **Windows :** Les chemins affichés sous la forme `~/.config/devin/` utilisent la convention XDG pour Linux/macOS. Sous Windows, ils correspondent à `%APPDATA%\devin\` (généralement `C:\Users\<YourUser>\AppData\Roaming\devin\`).
</Note>
