Passer au contenu principal

Documentation Index

Fetch the complete documentation index at: https://docs.devinenterprise.com/llms.txt

Use this file to discover all available pages before exploring further.

Le CLI Devin utilise des fichiers JSON (avec prise en charge des commentaires) comme fichiers de configuration. Cette page documente toutes les options disponibles.

Emplacement des fichiers

FichierRôle
~/.config/devin/config.jsonParamètres globaux de l’utilisateur
.devin/config.jsonParamètres du projet (versionnés)
.devin/config.local.jsonDérogations locales du projet (ignorées par Git)
Sous Windows, le chemin du fichier de configuration utilisateur est %APPDATA%\devin\config.json (par ex. C:\Users\<you>\AppData\Roaming\devin\config.json), et non ~\.config\devin\config.json.

Référence complète de la configuration

// ~/.config/devin/config.json
{
  // Comportement de l'agent
  "agent": {
    "model": "swe-1-6-fast",           // Modèle par défaut
    "show_history_on_continue": true  // Afficher les messages à la reprise
  },

  // Thème
  "theme_mode": null,            // "light", "dark", "terminal-dark", "terminal-light", "nocolor" ou null (auto)

  // Autorisations
  "permissions": {
    "allow": [],
    "deny": [],
    "ask": []
  },

  // Serveurs MCP
  "mcpServers": {},

  // Affichage
  "show_path": false,             // Afficher le CWD dans le bord du champ de saisie
  "unicode_mode": "auto",         // "auto", "unicode" ou "ascii"
  "show_hints": true,             // Afficher des conseils entre les échanges

  // Complétion de fichiers
  "include_gitignored_files": false, // Inclure les fichiers ignorés par Git dans les complétions @

  // Accès aux fichiers
  "respect_gitignore": false,        // Bloquer l'accès des outils aux chemins ignorés par Git

  // Mises à jour
  "auto_update": true,            // Installer les nouvelles versions en arrière-plan

  // Notifications
  "notify": "smart",              // "never" | "smart" | "always" — notifications du terminal

  // Paramètres de proxy pour le trafic HTTP du CLI
  "proxy": {
    "mode": "system",           // "system" | "manual" | "off"
    "url": null,                // URL du proxy (requise en mode manuel)
    "no_proxy": null            // Liste d'exclusion séparée par des virgules
  },

  // Filtrage réseau du bac à sable
  "sandbox": {
    "allowed_domains": [],       // Liste d’autorisation de domaines (vide = aucun filtrage)
    "denied_domains": [],        // Liste d’interdiction de domaines (prioritaire)
    "network_mode": "full"       // "full" ou "limited" (GET/HEAD/OPTIONS uniquement)
  },

  // Importer les paramètres depuis d'autres outils
  "read_config_from": {
    "cursor": true,
    "windsurf": true,
    "claude": true
  }
}

Référence des options

Les options marquées Utilisateur uniquement ne peuvent être définies que dans la configuration utilisateur (~/.config/devin/config.json; %APPDATA%\devin\config.json sous Windows). Seuls permissions, mcpServers, read_config_from et hooks peuvent être définis dans les configurations de projet.

agent (utilisateur uniquement)

OptionTypePar défautDescription
modelstring"swe-1-6-fast"Modèle d’IA par défaut
show_history_on_continuebooleantrueAfficher les messages précédents lors de la reprise d’une session

theme_mode (utilisateur uniquement)

ValeurComportement
nullDétection automatique (invite lors de la première exécution)
"light"Thème clair
"dark"Thème sombre
"terminal-dark"Thème sombre limité à 16 couleurs ANSI (respecte le jeu de couleurs du terminal)
"terminal-light"Thème clair limité à 16 couleurs ANSI (respecte le jeu de couleurs du terminal)
"nocolor"Aucun affichage en couleur (monochrome, utile pour les terminaux VT100)

autorisations

Voir Autorisations pour la documentation complète.
{
  "permissions": {
    "allow": ["Read(**)", "Exec(git)"],
    "deny": ["Exec(sudo)"],
    "ask": ["Write(**/.env*)"]
  }
}

mcpServers

Correspondance entre le nom du serveur et sa configuration. Prend en charge à la fois les commandes locales (stdio) et les serveurs HTTP distants. Voir Configuration MCP.
{
  "mcpServers": {
    "server-name": {
      "command": "executable",
      "args": ["arg1", "arg2"],
      "env": { "KEY": "value" }
    },
    "remote-server": {
      "url": "https://mcp.example.com/mcp",
      "transport": "http"
    }
  }
}

show_path (utilisateur uniquement)

Affiche le chemin du répertoire de travail actuel dans la bordure du champ de saisie. Lorsque cette option est activée, la bordure supérieure de la zone de saisie affiche votre CWD mis en forme (p. ex. ~/projects/my-app).
ValeurComportement
falseMasqué (par défaut)
trueAffiche le chemin du CWD dans la bordure du champ de saisie

unicode_mode (utilisateur uniquement)

Détermine si l’interface du terminal utilise des symboles Unicode ou des alternatives compatibles ASCII. Définissez cette option sur "ascii" si votre terminal ou votre police n’affiche pas correctement les glyphes Unicode (par ex. si le symbole ⏺ s’affiche comme un carré).
ValeurComportement
"auto"Détecte la prise en charge d’Unicode à partir de l’environnement (par défaut)
"unicode"Utilise toujours des symboles Unicode
"ascii"Utilise toujours des caractères compatibles ASCII

show_hints (utilisateur uniquement)

Affiche ponctuellement des astuces entre les échanges (par ex. « Le saviez-vous : utilisez /model pour passer d’un modèle disponible à l’autre »). Utile pour découvrir les fonctionnalités de la CLI ; définissez cette option sur false pour ne plus les afficher une fois que vous vous êtes familiarisé avec elles.
ValeurComportement
trueAffiche des astuces ponctuellement (par défaut)
falseN’affiche jamais d’astuces

include_gitignored_files (utilisateur uniquement)

Inclut les fichiers ignorés par Git dans les résultats de complétion de l’onglet @. Lorsqu’elle est activée, les fichiers correspondant aux règles de .gitignore apparaissent dans les complétions de mention @. Cette option est utile si vous stockez de la documentation ou d’autres fichiers dans des répertoires ignorés par Git auxquels vous souhaitez faire référence.
ValeurComportement
falseExclut les fichiers ignorés par Git des complétions (par défaut)
trueInclut les fichiers ignorés par Git dans les complétions @

respect_gitignore (utilisateur uniquement)

Détermine si l’agent respecte .gitignore lorsqu’il lit ou écrit des fichiers via des outils. Lorsqu’elle est activée, les appels d’outils qui accèdent à des chemins ignorés par Git sont bloqués. Cette option est distincte de include_gitignored_files, qui n’affecte que l’autocomplétion de @ avec la touche Tab.
ValeurComportement
falseL’agent peut accéder à tous les fichiers, indépendamment de .gitignore (par défaut)
trueBloque l’accès des outils aux chemins ignorés par Git

auto_update (utilisateur uniquement)

Contrôle la mise à jour automatique en arrière-plan sur macOS et Linux. Lorsqu’elle est activée, les nouvelles versions sont téléchargées et activées pendant l’exécution de Devin CLI, de sorte que le prochain appel à devin utilise automatiquement la dernière version. La session en cours n’est pas affectée — le remplacement du lien symbolique current ne prend effet qu’au prochain lancement. La mise à jour est conçue pour résister aux interruptions : chaque étape au niveau du système de fichiers est préparée dans un chemin temporaire, puis appliquée via un renommage atomique, et les processus de mise à jour concurrents sont sérialisés à l’aide d’un verrou de fichier. Quitter au milieu d’une mise à jour ne peut pas laisser l’installation dans un état défectueux — vous redémarrerez simplement sur l’ancienne version. S’applique uniquement aux installations gérées par l’utilisateur (curl | bash sur macOS/Linux). Les installations fournies avec un autre produit (p. ex. Windsurf) ignorent ce paramètre et se mettent à jour via leur application hôte.
ValeurComportement
trueTélécharge et installe les nouvelles versions en arrière-plan (par défaut)
falseVérifie uniquement la présence de nouvelles versions ; installez-les manuellement via /update

notify

Contrôle les notifications du terminal lorsque l’agent a terminé ou requiert une intervention de l’utilisateur. L’interface CLI écrit un caractère BEL (déclenche la sonnerie du terminal ou une alerte visuelle), une séquence d’échappement OSC 9 (déclenche une notification système dans iTerm2 et les terminaux compatibles) et une séquence OSC 777 (notification de bureau dans rxvt-unicode et d’autres terminaux). Les terminaux qui ne reconnaissent pas ces séquences les ignorent sans problème.
ValeurComportement
"never"Aucune notification
"smart"Notifie uniquement lorsque la fenêtre du terminal n’est pas active (utilise le signalement de focus OSC) (par défaut)
"always"Notifie à chaque événement applicable, quel que soit le focus

read_config_from

Contrôle l’importation depuis les configurations d’autres outils d’IA :
OptionTypePar défautDescription
cursorboolean/nulltrueImporte depuis .cursorrules, .cursor/rules/
windsurfboolean/nulltrueImporte depuis .windsurf/rules/
claudeboolean/nulltrueImporte depuis .claude/
Définissez l’option sur false pour désactiver une importation spécifique. null est traité comme true.

proxy (utilisateur uniquement)

Configure la manière dont l’interface CLI achemine son propre trafic HTTP/HTTPS sortant (appels d’API, mises à jour, serveurs MCP, etc.). Cela n’affecte pas le trafic réseau des processus enfants du sandbox (voir sandbox ci-dessous). Le champ mode sélectionne la stratégie de proxy :
ModeComportement
"system" (par défaut)Respecte les variables d’environnement (HTTP_PROXY, HTTPS_PROXY, ALL_PROXY) ainsi que le PAC (Proxy Auto-Configuration) natif de la plateforme sur macOS et Windows
"manual"Achemine tout le trafic de l’interface CLI via l’url spécifiée
"off"Se connecte directement — sans proxy
OptionTypePar défautDescription
modestring"system"Stratégie de proxy : "system", "manual" ou "off"
urlstring/nullnullURL du proxy. Obligatoire lorsque mode vaut "manual". Prend en charge les schémas http://, https:// et socks5://
no_proxystring/nullnullListe d’hôtes/domaines séparés par des virgules qui contournent le proxy. Utilise la même syntaxe que la variable d’environnement NO_PROXY (p. ex. "localhost,127.0.0.1,.corp.example.com"). S’applique dans tous les modes
Exemple — proxy d’entreprise :
{
  "proxy": {
    "mode": "manual",
    "url": "http://proxy.corp.example.com:8080",
    "no_proxy": "localhost,127.0.0.1,.internal.corp"
  }
}
Exemple — désactiver le proxy :
{
  "proxy": {
    "mode": "off"
  }
}

sandbox (utilisateur uniquement)

Le filtrage réseau du sandbox est actuellement instable. Si vous avez besoin de cette fonctionnalité, veuillez contacter votre responsable de compte pour connaître le calendrier de stabilisation.
Configurez le filtrage réseau au niveau des domaines pour le sandbox. Lorsque --sandbox est actif et que le filtrage de domaine est configuré, un proxy réseau géré démarre sur l’interface loopback, et le sandbox force tout le trafic des processus enfants à y transiter. L’indicateur --sandbox applique les périmètres d’autorisation de lecture et d’écriture actifs au niveau du système d’exploitation. Les racines accessibles en écriture sont dérivées des périmètres Write(...) accordés ainsi que des répertoires de l’espace de travail ; les racines accessibles en lecture proviennent des périmètres Read(...) (les valeurs par défaut de la plateforme restant toujours lisibles). Les périmètres accordés en cours de session étendent dynamiquement le sandbox pour les commandes suivantes.
Si --sandbox est spécifié mais que l’initialisation du sandbox échoue (par ex., si les outils de sandboxing ne sont pas disponibles sur la plateforme actuelle), la CLI refusera de démarrer au lieu de s’exécuter sans sandbox. Ce comportement de type fail-closed garantit que l’objectif de sécurité de --sandbox n’est jamais contourné silencieusement.
OptionTypePar défautDescription
allowed_domainsstring[][]Motifs de domaines autorisés via le proxy. Lorsqu’elle n’est pas vide, seuls les domaines correspondants sont autorisés (mode liste d’autorisation)
denied_domainsstring[][]Motifs de domaines toujours bloqués. Les règles de refus priment sur les règles d’autorisation
network_modestring"full""full" autorise toutes les méthodes HTTP ; "limited" autorise uniquement GET/HEAD/OPTIONS
Syntaxe des motifs de domaine :
ModèleCorrespond à
example.comCorrespondance exacte uniquement
*.example.comTout sous-domaine (pas le domaine racine)
**.example.comDomaine racine et tout sous-domaine
Exemple :
{
  "sandbox": {
    "allowed_domains": [
      "github.com",
      "**.npmjs.org",
      "**.crates.io",
      "**.pypi.org"
    ],
    "denied_domains": ["evil.example.com"],
    "network_mode": "full"
  }
}
Le filtrage des domaines s’applique lorsque le sandbox est actif (--sandbox). Sans --sandbox, la section sandbox est ignorée.
Pour les Teams Enterprise, les admins peuvent redéfinir les listes de domaines via Team Settings. Les listes d’autorisation Enterprise prévalent (elles remplacent vos allowed_domains locaux), tandis que les listes de refus Enterprise sont additives (elles sont fusionnées avec vos denied_domains locaux).

JSON avec commentaires

Les fichiers de configuration prennent en charge les commentaires de type JavaScript :
{
  // Commentaires de ligne
  "agent": {
    "model": "sonnet"  // Commentaires en ligne
  },
  /* Commentaires
     de bloc */
  "permissions": {}
}