Vai al contenuto principale

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.

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

Percorsi dei file

FileScopo
~/.config/devin/config.jsonSettings a livello di utente
.devin/config.jsonSettings del progetto (incluse nel commit)
.devin/config.local.jsonOverride locali del progetto (ignorate da Git)
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.

Riferimento completo della configurazione

// ~/.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 agli strumenti di accedere ai percorsi ignorati da git

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

Riferimento opzioni

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.

agent (solo utente)

OpzioneTipoPredefinitoDescrizione
modelstring"swe-1-6-fast"Modello di IA predefinito
show_history_on_continuebooleantrueMostra i messaggi precedenti alla ripresa di una sessione

theme_mode (solo utente)

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

autorizzazioni

Consulta Autorizzazioni per la documentazione completa.
{
  "permissions": {
    "allow": ["Read(**)", "Exec(git)"],
    "deny": ["Exec(sudo)"],
    "ask": ["Write(**/.env*)"]
  }
}

mcpServers

Mappa che associa il nome del server alla relativa configurazione. Supporta sia i comandi locali (stdio) sia i server HTTP remoti. Vedi Configurazione MCP.
{
  "mcpServers": {
    "server-name": {
      "command": "executable",
      "args": ["arg1", "arg2"],
      "env": { "KEY": "value" }
    },
    "remote-server": {
      "url": "https://mcp.example.com/mcp",
      "transport": "http"
    }
  }
}

show_path (solo utente)

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).
ValoreComportamento
falseNascosto (predefinito)
trueMostra il percorso del CWD nel bordo del campo di input

unicode_mode (solo utente)

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).
ValoreComportamento
"auto"Rileva il supporto Unicode dall’ambiente (predefinito)
"unicode"Usa sempre simboli Unicode
"ascii"Usa sempre caratteri compatibili con ASCII

show_hints (solo utente)

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.
ValoreComportamento
trueMostra suggerimenti occasionalmente (predefinito)
falseNon mostra mai i suggerimenti

include_gitignored_files (solo utente)

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.
ValoreComportamento
falseEsclude i file ignorati da git dai completamenti (predefinito)
trueInclude i file ignorati da git nei completamenti @

respect_gitignore (solo utente)

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 @.
ValoreComportamento
falseL’agente può accedere a tutti i file indipendentemente da .gitignore (predefinito)
trueBlocca l’accesso dei tool ai percorsi esclusi da .gitignore

auto_update (solo utente)

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.
ValueBehavior
trueScarica e installa le nuove versioni in background (predefinito)
falseVerifica solo la presenza di nuove versioni; installa manualmente tramite /update

notify

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.
ValueBehavior
"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

read_config_from

Controlla l’importazione da configurazioni di altri strumenti AI:
OpzioneTipoPredefinitoDescrizione
cursorboolean/nulltrueImporta da .cursorrules, .cursor/rules/
windsurfboolean/nulltrueImporta da .windsurf/rules/
claudeboolean/nulltrueImporta da .claude/
Imposta su false per disattivare un’importazione specifica. null viene considerato come true.

proxy (solo utente)

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
OpzioneTipoPredefinitoDescrizione
modestring"system"Strategia proxy: "system", "manual" oppure "off"
urlstring/nullnullURL del proxy. Obbligatorio quando mode è "manual". Supporta gli schemi http://, https:// e socks5://
no_proxystring/nullnullElenco 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:
{
  "proxy": {
    "mode": "manual",
    "url": "http://proxy.corp.example.com:8080",
    "no_proxy": "localhost,127.0.0.1,.internal.corp"
  }
}
Esempio — disattivare il proxy:
{
  "proxy": {
    "mode": "off"
  }
}

sandbox (solo utente)

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.
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. 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.
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.
OpzioneTipoPredefinitoDescrizione
allowed_domainsstring[][]Pattern di dominio consentiti dal proxy. Quando non è vuoto, sono consentiti solo i domini corrispondenti (modalità allowlist)
denied_domainsstring[][]Pattern di dominio sempre bloccati. Le regole di blocco hanno la precedenza sulle regole di autorizzazione
network_modestring"full""full" consente tutti i metodi HTTP; "limited" consente solo GET/HEAD/OPTIONS
Sintassi dei pattern di dominio:
PatternCorrispondenza
example.comSolo corrispondenza esatta
*.example.comQualsiasi sottodominio (non il dominio principale)
**.example.comDominio principale e qualsiasi sottodominio
Esempio:
{
  "sandbox": {
    "allowed_domains": [
      "github.com",
      "**.npmjs.org",
      "**.crates.io",
      "**.pypi.org"
    ],
    "denied_domains": ["evil.example.com"],
    "network_mode": "full"
  }
}
Il filtraggio dei domini si applica quando la sandbox è attiva (--sandbox). Senza --sandbox, la sezione della sandbox viene ignorata.
Per i team Enterprise, gli admin possono impostare un override per gli elenchi di domini tramite Team Settings. Le allowlist Enterprise prevalgono (sostituiscono il tuo allowed_domains locale), mentre le denylist Enterprise sono additive (si uniscono al tuo denied_domains locale).

JSON con commenti

I file di configurazione supportano i commenti in stile JavaScript:
{
  // Commenti di riga
  "agent": {
    "model": "sonnet"  // Commenti inline
  },
  /* Commenti
     a blocco */
  "permissions": {}
}