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

# File di configurazione

> Riferimento completo del formato del file di configurazione della CLI di Devin

La CLI di Devin usa file JSON (con supporto ai commenti) per la configurazione. Questa pagina descrive tutte le opzioni disponibili.

***

<div id="file-locations">
  ## Percorsi dei file
</div>

| File                          | Scopo                                          |
| ----------------------------- | ---------------------------------------------- |
| `~/.config/devin/config.json` | Settings a livello di utente                   |
| `.devin/config.json`          | Settings del progetto (incluse nel commit)     |
| `.devin/config.local.json`    | Override locali del progetto (ignorate da Git) |

<Note>
  Su Windows, il percorso della configurazione utente è `%APPDATA%\devin\config.json` (ad es. `C:\Users\<you>\AppData\Roaming\devin\config.json`), non `~\.config\devin\config.json`.
</Note>

***

<div id="full-config-reference">
  ## Riferimento completo della configurazione
</div>

<Tabs>
  <Tab title="Configurazione utente">
    ```json theme={null}
    // ~/.config/devin/config.json
    {
      // Comportamento dell'agente
      "agent": {
        "model": "swe-1-6-fast",           // Modello predefinito
        "show_history_on_continue": true  // Mostra i messaggi quando riprendi
      },

      // Tema
      "theme_mode": null,            // "light", "dark", "terminal-dark", "terminal-light", "nocolor" oppure null (automatico)

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

      // Server MCP
      "mcpServers": {},

      // Visualizzazione
      "show_path": false,             // Mostra la CWD nel bordo del campo di input
      "unicode_mode": "auto",         // "auto", "unicode" oppure "ascii"
      "show_hints": true,             // Mostra i suggerimenti tra un turno e l'altro

      // Completamento dei file
      "include_gitignored_files": false, // Include i file ignorati da git nei completamenti @

      // Accesso ai file
      "respect_gitignore": false,        // Impedisce l'accesso degli strumenti ai percorsi ignorati da git

      // Attribuzione di commit e PR
      "attribution": true,            // Aggiunge "Generated with Devin" / Co-Authored-By ai commit e alle PR

      // Aggiornamenti
      "auto_update": true,            // Installa le nuove versioni in background

      // Notifiche
      "notify": "smart",              // "never" | "smart" | "always" — notifiche nel terminale

      // Impostazioni proxy per il traffico HTTP della CLI
      "proxy": {
        "mode": "system",           // "system" | "manual" | "off"
        "url": null,                // URL del proxy (obbligatorio per la modalità manuale)
        "no_proxy": null            // Elenco di esclusione separato da virgole
      },

      // Filtraggio di rete della sandbox
      "sandbox": {
        "allowed_domains": [],       // Allowlist di domini (vuoto = nessun filtro)
        "denied_domains": [],        // Denylist di domini (ha la precedenza)
        "network_mode": "full"       // "full" oppure "limited" (solo GET/HEAD/OPTIONS)
      },

      // Importa le impostazioni da altri strumenti
      "read_config_from": {
        "cursor": true,
        "windsurf": true,
        "claude": true
      }
    }
    ```
  </Tab>

  <Tab title="Configurazione del progetto">
    ```json theme={null}
    // .devin/config.json
    {
      // Autorizzazioni
      "permissions": {
        "allow": [],
        "deny": [],
        "ask": []
      },

      // Server MCP
      "mcpServers": {},

      // Importa le impostazioni da altri strumenti
      "read_config_from": {
        "cursor": true,
        "windsurf": true,
        "claude": true
      }
    }
    ```
  </Tab>
</Tabs>

***

<div id="options-reference">
  ## Riferimento opzioni
</div>

<Note>
  Le opzioni contrassegnate con **Solo utente** possono essere impostate solo nella configurazione utente (`~/.config/devin/config.json`; `%APPDATA%\devin\config.json` in Windows). Solo `permissions`, `mcpServers`, `read_config_from` e `hooks` sono disponibili nelle configurazioni di progetto.
</Note>

### agent <span style={{fontSize: '0.7em', color: 'gray'}}>(solo utente)</span>

| Opzione                    | Tipo    | Predefinito      | Descrizione                                               |
| -------------------------- | ------- | ---------------- | --------------------------------------------------------- |
| `model`                    | string  | `"swe-1-6-fast"` | Modello di IA predefinito                                 |
| `show_history_on_continue` | boolean | `true`           | Mostra i messaggi precedenti alla ripresa di una sessione |

### theme\_mode <span style={{fontSize: '0.7em', color: 'gray'}}>(solo utente)</span>

| Valore             | Comportamento                                                                         |
| ------------------ | ------------------------------------------------------------------------------------- |
| `null`             | Rilevamento automatico (chiede alla prima esecuzione)                                 |
| `"light"`          | Tema chiaro                                                                           |
| `"dark"`           | Tema scuro                                                                            |
| `"terminal-dark"`  | Tema scuro quantizzato a 16 colori ANSI (rispetta lo schema di colori del terminale)  |
| `"terminal-light"` | Tema chiaro quantizzato a 16 colori ANSI (rispetta lo schema di colori del terminale) |
| `"nocolor"`        | Nessun output a colori (monocromatico, utile per i terminali VT100)                   |

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

Consulta [Autorizzazioni](/it/cli/reference/permissions) per la documentazione completa.

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

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

Mappa che associa il nome del server alla relativa configurazione. Supporta sia i comandi locali (stdio) sia i server HTTP remoti. Vedi [Configurazione MCP](/it/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'}}>(solo utente)</span>

Mostra il percorso della directory di lavoro corrente nel bordo del campo di input. Quando è abilitato, il bordo superiore del campo di input mostra il CWD in formato semplificato (ad es. `~/projects/my-app`).

| Valore  | Comportamento                                           |
| ------- | ------------------------------------------------------- |
| `false` | Nascosto (predefinito)                                  |
| `true`  | Mostra il percorso del CWD nel bordo del campo di input |

### unicode\_mode <span style={{fontSize: '0.7em', color: 'gray'}}>(solo utente)</span>

Determina se l'interfaccia utente del terminale usa simboli Unicode o alternative compatibili con ASCII. Imposta `"ascii"` se il terminale o il font non visualizzano correttamente i glifi Unicode (ad es. se il simbolo ⏺ appare come un riquadro).

| Valore      | Comportamento                                          |
| ----------- | ------------------------------------------------------ |
| `"auto"`    | Rileva il supporto Unicode dall'ambiente (predefinito) |
| `"unicode"` | Usa sempre simboli Unicode                             |
| `"ascii"`   | Usa sempre caratteri compatibili con ASCII             |

### show\_hints <span style={{fontSize: '0.7em', color: 'gray'}}>(solo utente)</span>

Mostra suggerimenti occasionali tra un turno e l'altro (ad es. "Lo sapevi? Usa /model per passare da un modello disponibile all'altro"). Utile per scoprire le funzionalità della CLI; impostalo su `false` per disattivarli una volta che hai preso confidenza.

| Valore  | Comportamento                                     |
| ------- | ------------------------------------------------- |
| `true`  | Mostra suggerimenti occasionalmente (predefinito) |
| `false` | Non mostra mai i suggerimenti                     |

### include\_gitignored\_files <span style={{fontSize: '0.7em', color: 'gray'}}>(solo utente)</span>

Include i file ignorati da git nei risultati del completamento tab `@`. Quando questa opzione è abilitata, i file che corrispondono ai criteri di `.gitignore` compariranno nei completamenti delle menzioni `@`. È utile se conservi documentazione o altri file in directory ignorate da git che vuoi poter richiamare.

| Valore  | Comportamento                                                  |
| ------- | -------------------------------------------------------------- |
| `false` | Esclude i file ignorati da git dai completamenti (predefinito) |
| `true`  | Include i file ignorati da git nei completamenti `@`           |

### respect\_gitignore <span style={{fontSize: '0.7em', color: 'gray'}}>(solo utente)</span>

Controlla se l'agente rispetta `.gitignore` durante la lettura o la scrittura di file tramite i tool. Se abilitata, le chiamate ai tool che accedono a percorsi esclusi da `.gitignore` vengono bloccate. Questa impostazione è separata da `include_gitignored_files`, che influisce solo sul completamento nella tab `@`.

| Valore  | Comportamento                                                                        |
| ------- | ------------------------------------------------------------------------------------ |
| `false` | L'agente può accedere a tutti i file indipendentemente da `.gitignore` (predefinito) |
| `true`  | Blocca l'accesso dei tool ai percorsi esclusi da `.gitignore`                        |

### attribution <span style={{fontSize: '0.7em', color: 'gray'}}>(solo utente)</span>

Controlla se l'agente aggiunge l'attribuzione a Devin nei commit e nelle pull request che crea. Quando è abilitata, il corpo dei commit e delle PR include una riga `Generated with [Devin]` e il trailer `Co-Authored-By: Devin`. Imposta su `false` per omettere entrambi, così non verrà aggiunta alcuna attribuzione a Devin.

| Valore  | Comportamento                                                                                             |
| ------- | --------------------------------------------------------------------------------------------------------- |
| `true`  | Aggiunge la riga `Generated with [Devin]` e il trailer `Co-Authored-By` ai commit e alle PR (predefinito) |
| `false` | Omette qualsiasi attribuzione a Devin da commit e PR                                                      |

### auto\_update <span style={{fontSize: '0.7em', color: 'gray'}}>(solo utente)</span>

Controlla l'aggiornamento automatico in background su macOS e Linux. Quando è abilitato, le nuove release vengono scaricate e attivate mentre Devin CLI è in esecuzione, così alla successiva esecuzione di `devin` viene usata automaticamente la versione più recente. La sessione attualmente in esecuzione non è interessata: la sostituzione del collegamento simbolico `current` ha effetto solo all'avvio successivo.

L'aggiornamento è progettato per essere sicuro anche in caso di interruzione: ogni passaggio sul filesystem viene preparato in un percorso temporaneo e reso effettivo con una ridenominazione atomica, mentre gli aggiornamenti concorrenti vengono serializzati tramite un lock su file. Se si esce durante l'aggiornamento, l'installazione non può rimanere in uno stato danneggiato — al successivo avvio verrà semplicemente usata la versione precedente.

Si applica solo alle installazioni gestite autonomamente (`curl | bash` su macOS/Linux). Le installazioni incluse in un altro prodotto (ad es. Windsurf) ignorano questa impostazione e si aggiornano tramite l'applicazione principale.

| Value   | Behavior                                                                            |
| ------- | ----------------------------------------------------------------------------------- |
| `true`  | Scarica e installa le nuove versioni in background (predefinito)                    |
| `false` | Verifica solo la presenza di nuove versioni; installa manualmente tramite `/update` |

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

Controlla le notifiche del terminale quando l'agente termina o richiede input dell'utente. La CLI scrive un carattere BEL (attiva il campanello del terminale / campanello visivo), una sequenza di escape OSC 9 (attiva una notifica di sistema in iTerm2 e nei terminali compatibili) e una sequenza OSC 777 (notifica desktop in rxvt-unicode e altri terminali). I terminali che non riconoscono queste sequenze le ignorano senza problemi.

| Value      | Behavior                                                                                                                        |
| ---------- | ------------------------------------------------------------------------------------------------------------------------------- |
| `"never"`  | Nessuna notifica                                                                                                                |
| `"smart"`  | Invia una notifica solo quando la finestra del terminale non è attiva (usa la segnalazione del focus tramite OSC) (predefinito) |
| `"always"` | Invia una notifica per ogni evento pertinente, indipendentemente dal focus                                                      |

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

Controlla l’importazione da configurazioni di altri strumenti AI:

| Opzione    | Tipo         | Predefinito | Descrizione                   |
| ---------- | ------------ | ----------- | ----------------------------- |
| `cursor`   | boolean/null | `true`      | Importa da `.cursor/rules/`   |
| `windsurf` | boolean/null | `true`      | Importa da `.windsurf/rules/` |
| `claude`   | boolean/null | `true`      | Importa da `.claude/`         |

Imposta su `false` per disattivare un’importazione specifica. `null` viene considerato come `true`.

### proxy <span style={{fontSize: '0.7em', color: 'gray'}}>(solo utente)</span>

Configura come la CLI instrada il proprio traffico HTTP/HTTPS in uscita (chiamate API, aggiornamenti, server MCP, ecc.). Questo non influisce sulla connettività di rete dei processi figlio nella sandbox (vedi `sandbox` più sotto).

Il campo `mode` seleziona la strategia proxy:

| Modalità                 | Comportamento                                                                                                                                          |
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `"system"` (predefinito) | Usa le variabili d'ambiente (`HTTP_PROXY`, `HTTPS_PROXY`, `ALL_PROXY`) e il PAC (Proxy Auto-Configuration) nativo della piattaforma su macOS e Windows |
| `"manual"`               | Instrada tutto il traffico della CLI tramite l'`url` specificato                                                                                       |
| `"off"`                  | Si connette direttamente — senza proxy                                                                                                                 |

| Opzione    | Tipo        | Predefinito | Descrizione                                                                                                                                                                                                         |
| ---------- | ----------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `mode`     | string      | `"system"`  | Strategia proxy: `"system"`, `"manual"` oppure `"off"`                                                                                                                                                              |
| `url`      | string/null | `null`      | URL del proxy. Obbligatorio quando `mode` è `"manual"`. Supporta gli schemi `http://`, `https://` e `socks5://`                                                                                                     |
| `no_proxy` | string/null | `null`      | Elenco di host/domini separati da virgole che bypassano il proxy. Usa la stessa sintassi della variabile d'ambiente `NO_PROXY` (ad es. `"localhost,127.0.0.1,.corp.example.com"`). Si applica in qualsiasi modalità |

**Esempio — proxy aziendale:**

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

**Esempio — disattivare il proxy:**

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

<div id="sandbox" />

### sandbox <span style={{fontSize: '0.7em', color: 'gray'}}>(solo utente)</span>

<Warning>
  Il filtraggio di rete della sandbox è attualmente instabile. Se ti serve questa funzionalità, contatta il referente del tuo account per conoscere le tempistiche di stabilizzazione.
</Warning>

Configura il filtraggio di rete a livello di dominio per la sandbox. Quando `--sandbox` è attivo e il filtraggio dei domini è configurato, viene avviato un proxy di rete gestito sull'interfaccia loopback e la sandbox limita tutto il traffico dei processi figli affinché venga instradato attraverso di esso.

<Note>
  Per una panoramica completa di come funziona la sandbox — inclusa l'applicazione forzata in Enterprise e come interagiscono le impostazioni Enterprise e utente — consulta la [documentazione della sandbox](/it/cli/sandbox).
</Note>

Il flag `--sandbox` applica a livello di sistema operativo gli ambiti di autorizzazione attivi di lettura e scrittura. I percorsi radice scrivibili derivano dagli ambiti `Write(...)` concessi più le directory del workspace; i percorsi radice leggibili derivano dagli ambiti `Read(...)` (con i percorsi predefiniti della piattaforma sempre leggibili). Gli ambiti concessi durante la sessione espandono dinamicamente la sandbox per i comandi successivi.

<Note>
  Se viene passato `--sandbox` ma la risoluzione della sandbox non riesce (ad es. gli strumenti di sandboxing non sono disponibili sulla piattaforma corrente), la CLI si rifiuterà di avviarsi invece di eseguirsi senza sandbox. Questo comportamento fail-closed garantisce che l'intento di sicurezza di `--sandbox` non venga mai eluso silenziosamente.
</Note>

| Opzione           | Tipo      | Predefinito | Descrizione                                                                                                                    |
| ----------------- | --------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------ |
| `allowed_domains` | string\[] | `[]`        | Pattern di dominio consentiti dal proxy. Quando non è vuoto, sono consentiti solo i domini corrispondenti (modalità allowlist) |
| `denied_domains`  | string\[] | `[]`        | Pattern di dominio sempre bloccati. Le regole di blocco hanno la precedenza sulle regole di autorizzazione                     |
| `network_mode`    | string    | `"full"`    | `"full"` consente tutti i metodi HTTP; `"limited"` consente solo GET/HEAD/OPTIONS                                              |

**Sintassi dei pattern di dominio:**

| Pattern          | Corrispondenza                                     |
| ---------------- | -------------------------------------------------- |
| `example.com`    | Solo corrispondenza esatta                         |
| `*.example.com`  | Qualsiasi sottodominio (non il dominio principale) |
| `**.example.com` | Dominio principale e qualsiasi sottodominio        |

**Esempio:**

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

<Note>
  Il filtraggio dei domini si applica quando la sandbox è attiva (`--sandbox`). Senza `--sandbox`, la sezione della sandbox viene ignorata.
</Note>

<Note>
  Per i team Enterprise, gli admin possono impostare un override per gli elenchi di domini tramite [Team Settings](/it/cli/enterprise/team-settings#sandbox-enforcement). Le allowlist Enterprise prevalgono (sostituiscono il tuo `allowed_domains` locale), mentre le denylist Enterprise sono additive (si uniscono al tuo `denied_domains` locale).
</Note>

***

<div id="json-with-comments">
  ## JSON con commenti
</div>

I file di configurazione supportano i commenti in stile JavaScript:

```json theme={null}
{
  // Commenti di riga
  "agent": {
    "model": "sonnet"  // Commenti inline
  },
  /* Commenti
     a blocco */
  "permissions": {}
}
```
