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.
| Datei | Zweck |
|---|
~/.config/devin/config.json | Settings auf Nutzerebene |
.devin/config.json | Projekt-Settings (eingecheckt) |
.devin/config.local.json | Lokale 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
Nutzerkonfiguration
Projektkonfiguration
// ~/.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
}
}
// .devin/config.json
{
// Berechtigungen
"permissions": {
"allow": [],
"deny": [],
"ask": []
},
// MCP-Server
"mcpServers": {},
// Settings aus anderen Tools importieren
"read_config_from": {
"cursor": true,
"windsurf": true,
"claude": true
}
}
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)
| Option | Typ | Standard | Beschreibung |
|---|
model | string | "swe-1-6-fast" | Standard-KI-Modell |
show_history_on_continue | boolean | true | Beim Fortsetzen einer Sitzung vorherige Nachrichten anzeigen |
theme_mode (nur für Nutzer)
| Wert | Verhalten |
|---|
null | Automatische 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) |
Ausführliche Informationen finden Sie unter Berechtigungen.
{
"permissions": {
"allow": ["Read(**)", "Exec(git)"],
"deny": ["Exec(sudo)"],
"ask": ["Write(**/.env*)"]
}
}
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).
| Wert | Verhalten |
|---|
false | Ausgeblendet (Standard) |
true | CWD-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).
| Wert | Verhalten |
|---|
"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.
| Wert | Verhalten |
|---|
true | Tipps gelegentlich anzeigen (Standard) |
false | Tipps 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.
| Wert | Verhalten |
|---|
false | Von Git ignorierte Dateien von den Vervollständigungen ausschließen (Standard) |
true | Von 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.
| Wert | Verhalten |
|---|
false | Agent kann unabhängig von .gitignore auf alle Dateien zugreifen (Standard) |
true | Tool-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.
| Wert | Verhalten |
|---|
true | Neue Versionen im Hintergrund herunterladen und installieren (Standard) |
false | Nur nach neuen Versionen suchen; manuell über /update installieren |
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.
| Wert | Verhalten |
|---|
"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 |
Steuert den Import aus Konfigurationen anderer KI-Tools:
| Option | Typ | Standard | Beschreibung |
|---|
cursor | boolean/null | true | Importiert aus .cursorrules, .cursor/rules/ |
windsurf | boolean/null | true | Importiert aus .windsurf/rules/ |
claude | boolean/null | true | Importiert 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:
| Modus | Verhalten |
|---|
"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 |
| Option | Typ | Standard | Beschreibung |
|---|
mode | string | "system" | Proxy-Strategie: "system", "manual" oder "off" |
url | string/null | null | Proxy-URL. Erforderlich, wenn mode auf "manual" gesetzt ist. Unterstützt die Schemata http://, https:// und socks5:// |
no_proxy | string/null | null | Kommagetrennte 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.
| Option | Typ | Standard | Beschreibung |
|---|
allowed_domains | string[] | [] | Domainmuster, die durch den Proxy zugelassen werden. Wenn nicht leer, sind nur übereinstimmende Domains erlaubt (Allowlist-Modus) |
denied_domains | string[] | [] | Domainmuster, die immer blockiert werden. Sperrregeln haben Vorrang vor Zulassungsregeln |
network_mode | string | "full" | "full" erlaubt alle HTTP-Methoden; "limited" erlaubt nur GET/HEAD/OPTIONS |
Syntax für Domainmuster:
| Muster | Entspricht |
|---|
example.com | Nur exakte Übereinstimmung |
*.example.com | Beliebige Subdomain (nicht die Apex-Domain) |
**.example.com | Apex-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).
Konfigurationsdateien unterstützen Kommentare im JavaScript-Stil:
{
// Zeilenkommentare
"agent": {
"model": "sonnet" // Inline-Kommentare
},
/* Block-
kommentare */
"permissions": {}
}