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

# Konfigurationsdatei

> Vollständige Referenz für das Format der Devin-CLI-Konfigurationsdatei

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

***

<div id="file-locations">
  ## Dateipfade
</div>

| 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) |

<Note>
  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`.
</Note>

***

<div id="full-config-reference">
  ## Vollständige Konfigurationsreferenz
</div>

<Tabs>
  <Tab title="Nutzerkonfiguration">
    ```json theme={null}
    // ~/.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 Eingaben 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

      // Commit- & PR-Zuordnung
      "attribution": true,            // „Generated with Devin“ / Co-Authored-By zu Commits & PR hinzufügen

      // 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
      }
    }
    ```
  </Tab>

  <Tab title="Projektkonfiguration">
    ```json theme={null}
    // .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
      }
    }
    ```
  </Tab>
</Tabs>

***

<div id="options-reference">
  ## Referenz der Optionen
</div>

<Note>
  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.
</Note>

### agent <span style={{fontSize: '0.7em', color: 'gray'}}>(nur für Nutzer)</span>

| 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 <span style={{fontSize: '0.7em', color: 'gray'}}>(nur für Nutzer)</span>

| 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)                                  |

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

Ausführliche Informationen finden Sie unter [Berechtigungen](/de/cli/reference/permissions).

```json theme={null}
{
  "permissions": {
    "allow": ["Read(**)", "Exec(git)"],
    "deny": ["Exec(sudo)"],
    "ask": ["Write(**/.env*)"]
  }
}
```

<div id="mcpservers">
  ### mcpServers
</div>

Zuordnung von Servernamen zu Serverkonfigurationen. Unterstützt sowohl lokale Befehle (stdio) als auch entfernte HTTP-Server. Siehe [MCP-Konfiguration](/de/cli/extensibility/mcp/configuration).

```json theme={null}
{
  "mcpServers": {
    "server-name": {
      "command": "executable",
      "args": ["arg1", "arg2"],
      "env": { "KEY": "value" }
    },
    "remote-server": {
      "url": "https://mcp.example.com/mcp",
      "transport": "http"
    }
  }
}
```

### show\_path <span style={{fontSize: '0.7em', color: 'gray'}}>(nur für Nutzer)</span>

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 <span style={{fontSize: '0.7em', color: 'gray'}}>(nur für Nutzer)</span>

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 <span style={{fontSize: '0.7em', color: 'gray'}}>(nur für Nutzer)</span>

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 <span style={{fontSize: '0.7em', color: 'gray'}}>(nur für Nutzer)</span>

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 <span style={{fontSize: '0.7em', color: 'gray'}}>(nur für Nutzer)</span>

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                         |

### attribution <span style={{fontSize: '0.7em', color: 'gray'}}>(nur für Nutzer)</span>

Legt fest, ob der Agent den von ihm erstellten Commits und Pull Requests einen Devin-Hinweis hinzufügt. Wenn diese Option aktiviert ist, enthalten Commit-Nachrichten und PR-Beschreibungen eine Zeile `Generated with [Devin]` sowie den Trailer `Co-Authored-By: Devin`. Setzen Sie den Wert auf `false`, um beides wegzulassen, sodass kein Devin-Hinweis hinzugefügt wird.

| Wert    | Verhalten                                                                                                   |
| ------- | ----------------------------------------------------------------------------------------------------------- |
| `true`  | Fügt Commits und PRs die Zeile `Generated with [Devin]` sowie den Trailer `Co-Authored-By` hinzu (Standard) |
| `false` | Lässt sämtliche Devin-Hinweise in Commits und PRs weg                                                       |

### auto\_update <span style={{fontSize: '0.7em', color: 'gray'}}>(nur für Nutzer)</span>

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    |

<div id="notify">
  ### notify
</div>

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                                      |

<div id="read_config_from">
  ### read\_config\_from
</div>

Steuert den Import aus Konfigurationen anderer KI-Tools:

| Option     | Typ          | Standard | Beschreibung                      |
| ---------- | ------------ | -------- | --------------------------------- |
| `cursor`   | boolean/null | `true`   | Importiert aus `.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 <span style={{fontSize: '0.7em', color: 'gray'}}>(nur für Nutzer)</span>

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:**

```json theme={null}
{
  "proxy": {
    "mode": "manual",
    "url": "http://proxy.corp.example.com:8080",
    "no_proxy": "localhost,127.0.0.1,.internal.corp"
  }
}
```

**Beispiel — Proxy deaktivieren:**

```json theme={null}
{
  "proxy": {
    "mode": "off"
  }
}
```

<div id="sandbox" />

### sandbox <span style={{fontSize: '0.7em', color: 'gray'}}>(nur für Nutzer)</span>

<Warning>
  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.
</Warning>

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.

<Note>
  Einen vollständigen Überblick darüber, wie die Sandbox funktioniert — einschließlich der Durchsetzung durch Enterprise und wie Enterprise- und Nutzer-Settings zusammenwirken — finden Sie in der [Sandbox-Dokumentation](/de/cli/sandbox).
</Note>

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.

<Note>
  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.
</Note>

| 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:**

```json theme={null}
{
  "sandbox": {
    "allowed_domains": [
      "github.com",
      "**.npmjs.org",
      "**.crates.io",
      "**.pypi.org"
    ],
    "denied_domains": ["evil.example.com"],
    "network_mode": "full"
  }
}
```

<Note>
  Die Domain-Filterung gilt, wenn die Sandbox aktiv ist (`--sandbox`). Ohne `--sandbox` wird der Sandbox-Abschnitt ignoriert.
</Note>

<Note>
  Für Enterprise-Teams können Admins Domain-Listen über [Team Settings](/de/cli/enterprise/team-settings#sandbox-enforcement) ü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).
</Note>

***

<div id="json-with-comments">
  ## JSON mit Kommentaren
</div>

Konfigurationsdateien unterstützen Kommentare im JavaScript-Stil:

```json theme={null}
{
  // Zeilenkommentare
  "agent": {
    "model": "sonnet"  // Inline-Kommentare
  },
  /* Block-
     kommentare */
  "permissions": {}
}
```
