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.
| 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) |
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
}
}
// .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
}
}
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)
| 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 (solo utente)
| 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) |
Consulta Autorizzazioni per la documentazione completa.
{
"permissions": {
"allow": ["Read(**)", "Exec(git)"],
"deny": ["Exec(sudo)"],
"ask": ["Write(**/.env*)"]
}
}
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).
| Valore | Comportamento |
|---|
false | Nascosto (predefinito) |
true | Mostra 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).
| Valore | Comportamento |
|---|
"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.
| Valore | Comportamento |
|---|
true | Mostra suggerimenti occasionalmente (predefinito) |
false | Non 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.
| Valore | Comportamento |
|---|
false | Esclude i file ignorati da git dai completamenti (predefinito) |
true | Include 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 @.
| 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 |
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.
| Value | Behavior |
|---|
true | Scarica e installa le nuove versioni in background (predefinito) |
false | Verifica solo la presenza di nuove versioni; installa manualmente tramite /update |
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 |
Controlla l’importazione da configurazioni di altri strumenti AI:
| Opzione | Tipo | Predefinito | Descrizione |
|---|
cursor | boolean/null | true | Importa da .cursorrules, .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 (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 |
| 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:
{
"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.
| 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:
{
"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).
I file di configurazione supportano i commenti in stile JavaScript:
{
// Commenti di riga
"agent": {
"model": "sonnet" // Commenti inline
},
/* Commenti
a blocco */
"permissions": {}
}