OpenClaw legge le variabili d’ambiente da più fonti. La regola è non sovrascrivere mai i valori esistenti.Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
Precedenza (dalla più alta alla più bassa)
- Ambiente del processo (ciò che il processo Gateway ha già dalla shell o dal daemon padre).
.envnella directory di lavoro corrente (valore predefinito di dotenv; non sovrascrive)..envglobale in~/.openclaw/.env(ovvero$OPENCLAW_STATE_DIR/.env; non sovrascrive).- Blocco
envdella configurazione in~/.openclaw/openclaw.json(applicato solo se mancante). - Importazione login-shell opzionale (
env.shellEnv.enabledoOPENCLAW_LOAD_SHELL_ENV=1), applicata solo per le chiavi previste mancanti.
~/.config/openclaw/gateway.env come fallback di compatibilità dopo il .env globale. Se entrambi i file esistono e sono in conflitto, OpenClaw mantiene ~/.openclaw/.env e stampa un avviso.
Se il file di configurazione manca del tutto, il passaggio 4 viene saltato; l’importazione shell viene comunque eseguita se abilitata.
Blocco env della configurazione
Due modi equivalenti per impostare variabili d’ambiente inline (entrambi non sovrascrivono):
Importazione env shell
env.shellEnv esegue la tua shell di login e importa solo le chiavi previste mancanti:
OPENCLAW_LOAD_SHELL_ENV=1OPENCLAW_SHELL_ENV_TIMEOUT_MS=15000
Variabili d’ambiente iniettate a runtime
OpenClaw inietta anche marcatori di contesto nei processi figlio avviati:OPENCLAW_SHELL=exec: impostata per i comandi eseguiti tramite lo strumentoexec.OPENCLAW_SHELL=acp: impostata per gli avvii di processi backend runtime ACP (ad esempioacpx).OPENCLAW_SHELL=acp-client: impostata peropenclaw acp clientquando avvia il processo bridge ACP.OPENCLAW_SHELL=tui-local: impostata per i comandi shell!della TUI locale.
Variabili d’ambiente dell’interfaccia utente
OPENCLAW_THEME=light: forza la palette TUI chiara quando il terminale ha uno sfondo chiaro.OPENCLAW_THEME=dark: forza la palette TUI scura.COLORFGBG: se il terminale la esporta, OpenClaw usa l’indizio sul colore di sfondo per scegliere automaticamente la palette TUI.
Sostituzione di variabili d’ambiente nella configurazione
Puoi fare riferimento direttamente alle variabili d’ambiente nei valori stringa della configurazione usando la sintassi${VAR_NAME}:
Riferimenti ai segreti rispetto alle stringhe ${ENV}
OpenClaw supporta due pattern basati sull’ambiente:
- Sostituzione di stringhe
${VAR}nei valori della configurazione. - Oggetti SecretRef (
{ source: "env", provider: "default", id: "VAR" }) per i campi che supportano i riferimenti ai segreti.
Variabili d’ambiente relative ai percorsi
| Variabile | Scopo |
|---|---|
OPENCLAW_HOME | Sovrascrive la directory home usata per tutta la risoluzione dei percorsi interni (~/.openclaw/, directory agenti, sessioni, credenziali). Utile quando OpenClaw viene eseguito come utente di servizio dedicato. |
OPENCLAW_STATE_DIR | Sovrascrive la directory di stato (predefinita ~/.openclaw). |
OPENCLAW_CONFIG_PATH | Sovrascrive il percorso del file di configurazione (predefinito ~/.openclaw/openclaw.json). |
OPENCLAW_INCLUDE_ROOTS | Elenco di percorsi di directory in cui le direttive $include possono risolvere file fuori dalla directory di configurazione (predefinito: nessuno: $include è confinato alla directory di configurazione). Con espansione della tilde. |
Logging
| Variabile | Scopo |
|---|---|
OPENCLAW_LOG_LEVEL | Sovrascrive il livello di log sia per file sia per console (ad esempio debug, trace). Ha precedenza su logging.level e logging.consoleLevel nella configurazione. I valori non validi vengono ignorati con un avviso. |
OPENCLAW_DEBUG_MODEL_TRANSPORT | Emette diagnostica mirata sui tempi di richiesta/risposta del modello a livello info senza abilitare i log di debug globali. |
OPENCLAW_DEBUG_MODEL_PAYLOAD | Diagnostica del payload del modello: summary, tools o full-redacted. full-redacted è limitato e redatto, ma può includere testo di prompt/messaggi. |
OPENCLAW_DEBUG_SSE | Diagnostica dello streaming: events per i tempi di primo/completato, peek per includere i primi cinque eventi SSE redatti. |
OPENCLAW_DEBUG_CODE_MODE | Diagnostica della superficie modello in modalità codice, inclusi l’occultamento degli strumenti del provider e l’applicazione di solo exec/wait. |
OPENCLAW_HOME
Quando è impostata, OPENCLAW_HOME sostituisce la directory home di sistema ($HOME / os.homedir()) per tutta la risoluzione dei percorsi interni. Questo abilita l’isolamento completo del filesystem per account di servizio headless.
Precedenza: OPENCLAW_HOME > $HOME > USERPROFILE > os.homedir()
Esempio (macOS LaunchDaemon):
OPENCLAW_HOME può anche essere impostata su un percorso con tilde (ad esempio ~/svc), che viene espanso usando $HOME prima dell’uso.
utenti nvm: errori TLS di web_fetch
Se Node.js è stato installato tramite nvm (non tramite il gestore di pacchetti di sistema), ilfetch() integrato usa
l’archivio CA fornito con nvm, che potrebbe non includere CA radice moderne (ISRG Root X1/X2 per Let’s Encrypt,
DigiCert Global Root G2, ecc.). Questo causa il fallimento di web_fetch con "fetch failed" sulla maggior parte dei siti HTTPS.
Su Linux, OpenClaw rileva automaticamente nvm e applica la correzione nell’ambiente di avvio effettivo:
openclaw gateway installscriveNODE_EXTRA_CA_CERTSnell’ambiente del servizio systemd- l’entrypoint CLI
openclawriesegue se stesso conNODE_EXTRA_CA_CERTSimpostata prima dell’avvio di Node
node ...):
Esporta la variabile prima di avviare OpenClaw:
~/.openclaw/.env; Node legge
NODE_EXTRA_CA_CERTS all’avvio del processo.
Variabili d’ambiente legacy
OpenClaw legge solo le variabili d’ambienteOPENCLAW_*. I prefissi legacy
CLAWDBOT_* e MOLTBOT_* delle versioni precedenti vengono ignorati silenziosamente.
Se qualcuno di questi è ancora impostato sul processo Gateway all’avvio, OpenClaw emette un
singolo avviso di deprecazione Node (OPENCLAW_LEGACY_ENV_VARS) che elenca i
prefissi rilevati e il conteggio totale. Rinomina ogni valore sostituendo il
prefisso legacy con OPENCLAW_ (ad esempio CLAWDBOT_GATEWAY_TOKEN →
OPENCLAW_GATEWAY_TOKEN); i vecchi nomi non hanno alcun effetto.