Zum Hauptinhalt springen

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.

Die Devin CLI verwendet JSON-Dateien (mit Kommentarunterstützung) zur Konfiguration. Auf dieser Seite werden alle verfügbaren Optionen dokumentiert.

Dateipfade

DateiZweck
~/.config/devin/config.jsonSettings auf Nutzerebene
.devin/config.jsonProjekt-Settings (eingecheckt)
.devin/config.local.jsonLokale Projekt-Überschreibungen (von Git ignoriert)
Unter Windows lautet der Pfad zur Nutzer-Konfigurationsdatei %APPDATA%\devin\config.json (z. B. C:\Users\<you>\AppData\Roaming\devin\config.json) und nicht ~\.config\devin\config.json.

Vollständige Konfigurationsreferenz

// ~/.config/devin/config.json
{
  // Verhalten des Agenten
  "agent": {
    "model": "swe-1-6-fast",           // Standardmodell
    "show_history_on_continue": true  // Nachrichten beim Fortsetzen anzeigen
  },

  // Design
  "theme_mode": null,            // "light", "dark", "terminal-dark", "terminal-light", "nocolor" oder null (auto)

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

  // MCP-Server
  "mcpServers": {},

  // Anzeige
  "show_path": false,             // Aktuelles Arbeitsverzeichnis (CWD) im Eingaberahmen anzeigen
  "unicode_mode": "auto",         // "auto", "unicode" oder "ascii"
  "show_hints": true,             // Tipps zwischen den Schritten anzeigen

  // Dateivervollständigung
  "include_gitignored_files": false, // Von Git ignorierte Dateien in @-Vervollständigungen einbeziehen

  // Dateizugriff
  "respect_gitignore": false,        // Tool-Zugriff auf durch .gitignore ausgeschlossene Pfade blockieren

  // Updates
  "auto_update": true,            // Neue Versionen im Hintergrund installieren

  // Benachrichtigungen
  "notify": "smart",              // "never" | "smart" | "always" — Terminal-Benachrichtigungen

  // Proxy-Einstellungen für den HTTP-Datenverkehr der CLI
  "proxy": {
    "mode": "system",           // "system" | "manual" | "off"
    "url": null,                // Proxy-URL (für den manuellen Modus erforderlich)
    "no_proxy": null            // Kommagetrennte Ausnahmeliste
  },

  // Netzwerkfilterung der Sandbox
  "sandbox": {
    "allowed_domains": [],       // Domain-Allowlist (leer = keine Filterung)
    "denied_domains": [],        // Domain-Denylist (hat Vorrang)
    "network_mode": "full"       // "full" oder "limited" (nur GET/HEAD/OPTIONS)
  },

  // Settings aus anderen Tools importieren
  "read_config_from": {
    "cursor": true,
    "windsurf": true,
    "claude": true
  }
}

Referenz der Optionen

Optionen, die mit nur für Nutzer gekennzeichnet sind, können nur in der Nutzerkonfiguration (~/.config/devin/config.json; %APPDATA%\devin\config.json unter Windows) festgelegt werden. Nur permissions, mcpServers, read_config_from und hooks sind in Projektkonfigurationen verfügbar.

agent (nur für Nutzer)

OptionTypStandardBeschreibung
modelstring"swe-1-6-fast"Standard-KI-Modell
show_history_on_continuebooleantrueBeim Fortsetzen einer Sitzung vorherige Nachrichten anzeigen

theme_mode (nur für Nutzer)

WertVerhalten
nullAutomatische Erkennung (fragt beim ersten Start nach)
"light"Helles Design
"dark"Dunkles Design
"terminal-dark"Dunkles Design, auf 16 ANSI-Farben quantisiert (berücksichtigt das Farbschema des Terminals)
"terminal-light"Helles Design, auf 16 ANSI-Farben quantisiert (berücksichtigt das Farbschema des Terminals)
"nocolor"Keine Farbausgabe (monochrom, nützlich für VT100-Terminals)

Berechtigungen

Ausführliche Informationen finden Sie unter Berechtigungen.
{
  "permissions": {
    "allow": ["Read(**)", "Exec(git)"],
    "deny": ["Exec(sudo)"],
    "ask": ["Write(**/.env*)"]
  }
}

mcpServers

Zuordnung von Servernamen zu Serverkonfigurationen. Unterstützt sowohl lokale Befehle (stdio) als auch entfernte HTTP-Server. Siehe MCP-Konfiguration.
{
  "mcpServers": {
    "server-name": {
      "command": "executable",
      "args": ["arg1", "arg2"],
      "env": { "KEY": "value" }
    },
    "remote-server": {
      "url": "https://mcp.example.com/mcp",
      "transport": "http"
    }
  }
}

show_path (nur für Nutzer)

Zeigt den aktuellen Pfad des Arbeitsverzeichnisses im Eingaberahmen an. Wenn aktiviert, wird im oberen Rand des Eingabefelds Ihr lesbar formatiertes CWD angezeigt (z. B. ~/projects/my-app).
WertVerhalten
falseAusgeblendet (Standard)
trueCWD-Pfad im Eingaberahmen anzeigen

unicode_mode (nur für Nutzer)

Legt fest, ob die Terminal-UI Unicode-Symbole oder ASCII-kompatible Alternativen verwendet. Setzen Sie den Wert auf "ascii", wenn Ihr Terminal oder Ihre Schriftart Unicode-Glyphen nicht korrekt darstellt (z. B. wenn das Symbol ⏺ als Kästchen angezeigt wird).
WertVerhalten
"auto"Unicode-Unterstützung anhand der Umgebung erkennen (Standard)
"unicode"Immer Unicode-Symbole verwenden
"ascii"Immer ASCII-kompatible Zeichen verwenden

show_hints (nur für Nutzer)

Zeigt gelegentlich Tipps zwischen den Eingaben an (z. B. „Schon gewusst: Verwende /model, um zwischen verfügbaren Modellen zu wechseln“). Nützlich, um CLI-Funktionen zu entdecken; auf false setzen, um sie auszublenden, sobald du damit vertraut bist.
WertVerhalten
trueTipps gelegentlich anzeigen (Standard)
falseTipps nie anzeigen

include_gitignored_files (nur für Nutzer)

Bezieht von Git ignorierte Dateien in die Ergebnisse der @-Tab-Vervollständigung ein. Wenn diese Option aktiviert ist, werden Dateien, die den Mustern in .gitignore entsprechen, in den @-Ergänzungen angezeigt. Das ist nützlich, wenn Sie Dokumentation oder andere Dateien in von Git ignorierten Verzeichnissen speichern, auf die Sie verweisen möchten.
WertVerhalten
falseVon Git ignorierte Dateien von den Vervollständigungen ausschließen (Standard)
trueVon Git ignorierte Dateien in die @-Vervollständigungen einbeziehen

respect_gitignore (nur für Nutzer)

Steuert, ob der Agent .gitignore beim Lesen oder Schreiben von Dateien über Tools berücksichtigt. Wenn aktiviert, werden Tool-Aufrufe blockiert, die auf von Git ignorierte Pfade zugreifen. Dies ist unabhängig von include_gitignored_files, das sich nur auf die @-Tab-Vervollständigung auswirkt.
WertVerhalten
falseAgent kann unabhängig von .gitignore auf alle Dateien zugreifen (Standard)
trueTool-Zugriff auf von Git ignorierte Pfade blockieren

auto_update (nur für Nutzer)

Steuert die automatische Hintergrundaktualisierung unter macOS und Linux. Wenn diese Option aktiviert ist, werden neue Releases heruntergeladen und aktiviert, während Devin CLI läuft, sodass beim nächsten Aufruf von devin automatisch die neueste Version verwendet wird. Die aktuell laufende Sitzung bleibt davon unberührt — ein Austausch des current-Symlinks wird erst beim nächsten Start wirksam. Das Update ist so ausgelegt, dass Unterbrechungen kein Problem darstellen: Jeder Dateisystemschritt wird zunächst in einem temporären Pfad vorbereitet und dann per atomarem Umbenennen übernommen. Gleichzeitig laufende Updater werden über eine Dateisperre serialisiert. Wenn der Prozess während des Updates beendet wird, kann die Installation nicht in einem fehlerhaften Zustand zurückbleiben — es wird dann einfach wieder die alte Version gestartet. Gilt nur für eigenverwaltete Installationen (curl | bash unter macOS/Linux). Installationen, die mit einem anderen Produkt gebündelt sind (z. B. Windsurf), ignorieren diese Einstellung und werden über ihre übergeordnete Anwendung aktualisiert.
WertVerhalten
trueNeue Versionen im Hintergrund herunterladen und installieren (Standard)
falseNur nach neuen Versionen suchen; manuell über /update installieren

notify

Steuert Terminalbenachrichtigungen, wenn der Agent fertig ist oder Eingaben des Nutzers benötigt. Die CLI schreibt ein BEL-Zeichen (löst den Terminalton / eine visuelle Benachrichtigung aus), eine OSC-9-Escape-Sequenz (löst eine Systembenachrichtigung in iTerm2 und kompatiblen Terminals aus) und eine OSC-777-Sequenz (Desktopbenachrichtigung in rxvt-unicode und anderen Terminals). Terminals, die diese Sequenzen nicht erkennen, ignorieren sie problemlos.
WertVerhalten
"never"Keine Benachrichtigungen
"smart"Benachrichtigt nur, wenn das Terminalfenster nicht fokussiert ist (verwendet OSC-Fokusmeldungen) (Standard)
"always"Benachrichtigt bei jedem entsprechenden Ereignis, unabhängig vom Fokus

read_config_from

Steuert den Import aus Konfigurationen anderer KI-Tools:
OptionTypStandardBeschreibung
cursorboolean/nulltrueImportiert aus .cursorrules, .cursor/rules/
windsurfboolean/nulltrueImportiert aus .windsurf/rules/
claudeboolean/nulltrueImportiert aus .claude/
Auf false setzen, um einen bestimmten Import zu deaktivieren. null wird wie true behandelt.

proxy (nur für Nutzer)

Konfigurieren Sie, wie die CLI ihren eigenen ausgehenden HTTP-/HTTPS-Datenverkehr leitet (API-Aufrufe, Updates, MCP-Server usw.). Dies hat keine Auswirkungen auf die Netzwerkverbindung untergeordneter Sandbox-Prozesse (siehe unten sandbox). Das Feld mode legt die Proxy-Strategie fest:
ModusVerhalten
"system" (Standard)Berücksichtigt Umgebungsvariablen (HTTP_PROXY, HTTPS_PROXY, ALL_PROXY) sowie die plattformeigene PAC-Konfiguration (Proxy Auto-Configuration) unter macOS und Windows
"manual"Leitet den gesamten CLI-Datenverkehr über die explizit angegebene url
"off"Stellt eine direkte Verbindung her — ohne Proxy
OptionTypStandardBeschreibung
modestring"system"Proxy-Strategie: "system", "manual" oder "off"
urlstring/nullnullProxy-URL. Erforderlich, wenn mode auf "manual" gesetzt ist. Unterstützt die Schemata http://, https:// und socks5://
no_proxystring/nullnullKommagetrennte Liste von Hosts/Domains, die den Proxy umgehen. Verwendet dieselbe Syntax wie die Umgebungsvariable NO_PROXY (z. B. "localhost,127.0.0.1,.corp.example.com"). Gilt in jedem Modus
Beispiel — Unternehmensproxy:
{
  "proxy": {
    "mode": "manual",
    "url": "http://proxy.corp.example.com:8080",
    "no_proxy": "localhost,127.0.0.1,.internal.corp"
  }
}
Beispiel — Proxy deaktivieren:
{
  "proxy": {
    "mode": "off"
  }
}

sandbox (nur für Nutzer)

Die Netzwerkfilterung der Sandbox ist derzeit instabil. Wenn Sie diese Funktion benötigen, wenden Sie sich bitte an Ihre Ansprechperson für das Konto, um Informationen zum Zeitplan für eine stabile Verfügbarkeit zu erhalten.
Konfigurieren Sie die Netzwerkfilterung auf Domain-Ebene für die Sandbox. Wenn --sandbox aktiv ist und die Domainfilterung konfiguriert wurde, startet ein verwalteter Netzwerk-Proxy auf Loopback, und die Sandbox erzwingt, dass der gesamte Traffic untergeordneter Prozesse über ihn geleitet wird. Das Flag --sandbox erzwingt die aktiven Lese- und Schreibberechtigungsbereiche auf OS-Ebene. Schreibbare Wurzelverzeichnisse werden aus den gewährten Write(...)-Bereichen sowie Workspace-Verzeichnissen abgeleitet; lesbare Wurzelverzeichnisse stammen aus Read(...)-Bereichen (wobei Plattform-Standards immer lesbar sind). Bereiche, die während einer Sitzung gewährt werden, erweitern die Sandbox dynamisch für nachfolgende Befehle.
Wenn --sandbox übergeben wird, die Sandbox aber nicht aufgelöst werden kann (z. B. weil Sandbox-Tools auf der aktuellen Plattform nicht verfügbar sind), verweigert die CLI den Start, statt ohne Sandbox zu laufen. Dieses Fail-Closed-Verhalten stellt sicher, dass die Sicherheitsabsicht von --sandbox niemals stillschweigend umgangen wird.
OptionTypStandardBeschreibung
allowed_domainsstring[][]Domainmuster, die durch den Proxy zugelassen werden. Wenn nicht leer, sind nur übereinstimmende Domains erlaubt (Allowlist-Modus)
denied_domainsstring[][]Domainmuster, die immer blockiert werden. Sperrregeln haben Vorrang vor Zulassungsregeln
network_modestring"full""full" erlaubt alle HTTP-Methoden; "limited" erlaubt nur GET/HEAD/OPTIONS
Syntax für Domainmuster:
MusterEntspricht
example.comNur exakte Übereinstimmung
*.example.comBeliebige Subdomain (nicht die Apex-Domain)
**.example.comApex-Domain und beliebige Subdomain
Beispiel:
{
  "sandbox": {
    "allowed_domains": [
      "github.com",
      "**.npmjs.org",
      "**.crates.io",
      "**.pypi.org"
    ],
    "denied_domains": ["evil.example.com"],
    "network_mode": "full"
  }
}
Die Domain-Filterung gilt, wenn die Sandbox aktiv ist (--sandbox). Ohne --sandbox wird der Sandbox-Abschnitt ignoriert.
Für Enterprise-Teams können Admins Domain-Listen über Team Settings überschreiben. Enterprise-Allowlists sind verbindlich (sie ersetzen Ihre lokalen allowed_domains), während Enterprise-Denylists additiv sind (sie werden mit Ihren lokalen denied_domains zusammengeführt).

JSON mit Kommentaren

Konfigurationsdateien unterstützen Kommentare im JavaScript-Stil:
{
  // Zeilenkommentare
  "agent": {
    "model": "sonnet"  // Inline-Kommentare
  },
  /* Block-
     kommentare */
  "permissions": {}
}