Salta ai contenuti

Variabili d'ambiente (Riferimento runtime corrente)

Questo riferimento è derivato dai percorsi di codice correnti in:

  • packages/coding-agent/src/**
  • packages/ai/src/** (risoluzione provider/autenticazione usata da coding-agent)
  • packages/utils/src/** e packages/tui/src/** dove tali variabili influenzano direttamente il runtime di coding-agent

Documenta solo il comportamento attivo.

La maggior parte delle ricerche runtime utilizza $env da @f5-sales-demo/pi-utils (packages/utils/src/env.ts).

Ordine di caricamento di $env:

  1. Ambiente di processo esistente (Bun.env)
  2. .env del progetto ($PWD/.env) per le chiavi non già impostate
  3. .env della home (~/.env) per le chiavi non già impostate

Regola aggiuntiva nei file .env: le chiavi XCSH_* vengono replicate nelle chiavi PI_* durante il parsing.


Queste sono consumate tramite getEnvApiKey() (packages/ai/src/stream.ts) salvo diversa indicazione.

VariabileUtilizzata perRichiesta quandoNote / precedenza
ANTHROPIC_OAUTH_TOKENAutenticazione API AnthropicSi usa Anthropic con autenticazione token OAuthHa precedenza su ANTHROPIC_API_KEY per la risoluzione dell’autenticazione del provider
ANTHROPIC_API_KEYAutenticazione API AnthropicSi usa Anthropic senza token OAuthFallback dopo ANTHROPIC_OAUTH_TOKEN
ANTHROPIC_FOUNDRY_API_KEYAnthropic tramite Azure Foundry / gateway enterpriseCLAUDE_CODE_USE_FOUNDRY abilitatoHa precedenza su ANTHROPIC_OAUTH_TOKEN e ANTHROPIC_API_KEY quando la modalità Foundry è attiva
OPENAI_API_KEYAutenticazione OpenAISi usano provider della famiglia OpenAI senza argomento apiKey esplicitoUsata dai provider OpenAI Completions/Responses
GEMINI_API_KEYAutenticazione Google GeminiSi usano modelli del provider googleChiave primaria per la mappatura del provider Gemini
GOOGLE_API_KEYFallback autenticazione tool immagini GeminiSi usa il tool gemini_image senza GEMINI_API_KEYUsata dal percorso fallback del tool immagini di coding-agent
GROQ_API_KEYAutenticazione GroqSi usano modelli Groq
CEREBRAS_API_KEYAutenticazione CerebrasSi usano modelli Cerebras
TOGETHER_API_KEYAutenticazione TogetherSi usa il provider together
HUGGINGFACE_HUB_TOKENAutenticazione Hugging FaceSi usa il provider huggingfaceVariabile d’ambiente primaria per il token Hugging Face
HF_TOKENAutenticazione Hugging FaceSi usa il provider huggingfaceFallback quando HUGGINGFACE_HUB_TOKEN non è impostato
SYNTHETIC_API_KEYAutenticazione SyntheticSi usano modelli Synthetic
NVIDIA_API_KEYAutenticazione NVIDIASi usa il provider nvidia
NANO_GPT_API_KEYAutenticazione NanoGPTSi usa il provider nanogpt
VENICE_API_KEYAutenticazione VeniceSi usa il provider venice
LITELLM_API_KEYAutenticazione LiteLLMSi usa il provider litellmChiave proxy LiteLLM compatibile con OpenAI. Quando impostata con LITELLM_BASE_URL, abilita la configurazione automatica di models.yml
LM_STUDIO_API_KEYAutenticazione LM Studio (opzionale)Si usa il provider lm-studio con host autenticatiLM Studio locale di solito funziona senza autenticazione; qualsiasi token non vuoto funziona quando è richiesta una chiave
OLLAMA_API_KEYAutenticazione Ollama (opzionale)Si usa il provider ollama con host autenticatiOllama locale di solito funziona senza autenticazione; qualsiasi token non vuoto funziona quando è richiesta una chiave
LLAMA_CPP_API_KEYAutenticazione Ollama (opzionale)Si usa llama-server con il parametro --api-keyllama.cpp locale di solito funziona senza autenticazione; qualsiasi token non vuoto funziona quando è configurata una chiave
XIAOMI_API_KEYAutenticazione Xiaomi MiMoSi usa il provider xiaomi
MOONSHOT_API_KEYAutenticazione MoonshotSi usa il provider moonshot
XAI_API_KEYAutenticazione xAISi usano modelli xAI
OPENROUTER_API_KEYAutenticazione OpenRouterSi usano modelli OpenRouterUsata anche dal tool immagini quando il provider preferito/auto è OpenRouter
MISTRAL_API_KEYAutenticazione MistralSi usano modelli Mistral
ZAI_API_KEYAutenticazione z.aiSi usano modelli z.aiUsata anche dal provider di ricerca web z.ai
MINIMAX_API_KEYAutenticazione MiniMaxSi usa il provider minimax
MINIMAX_CODE_API_KEYAutenticazione MiniMax CodeSi usa il provider minimax-code
MINIMAX_CODE_CN_API_KEYAutenticazione MiniMax Code CNSi usa il provider minimax-code-cn
OPENCODE_API_KEYAutenticazione OpenCodeSi usano modelli OpenCode
QIANFAN_API_KEYAutenticazione QianfanSi usa il provider qianfan
QWEN_OAUTH_TOKENAutenticazione Qwen PortalSi usa qwen-portal con token OAuthHa precedenza su QWEN_PORTAL_API_KEY
QWEN_PORTAL_API_KEYAutenticazione Qwen PortalSi usa qwen-portal con chiave APIFallback dopo QWEN_OAUTH_TOKEN
ZENMUX_API_KEYAutenticazione ZenMuxSi usa il provider zenmuxUsata per le rotte ZenMux compatibili con OpenAI e Anthropic
VLLM_API_KEYAutenticazione/scoperta vLLM opt-inSi usa il provider vllm (server locali compatibili con OpenAI)Qualsiasi valore non vuoto funziona per server locali senza autenticazione
CURSOR_ACCESS_TOKENAutenticazione provider CursorSi usa il provider Cursor
AI_GATEWAY_API_KEYAutenticazione Vercel AI GatewaySi usa il provider vercel-ai-gateway
CLOUDFLARE_AI_GATEWAY_API_KEYAutenticazione Cloudflare AI GatewaySi usa il provider cloudflare-ai-gatewayL’URL base deve essere configurato come https://gateway.ai.cloudflare.com/v1/<account>/<gateway>/anthropic
VariabileUtilizzata perCatena
COPILOT_GITHUB_TOKENAutenticazione provider GitHub CopilotCOPILOT_GITHUB_TOKENGH_TOKENGITHUB_TOKEN
GH_TOKENFallback Copilot; autenticazione API GitHub nel web scraperNel web scraper: GITHUB_TOKENGH_TOKEN
GITHUB_TOKENFallback Copilot; autenticazione API GitHub nel web scraperNel web scraper: verificata prima di GH_TOKEN

Anthropic Foundry Gateway (Azure / proxy enterprise)

Sezione intitolata “Anthropic Foundry Gateway (Azure / proxy enterprise)”

Quando CLAUDE_CODE_USE_FOUNDRY è abilitato, le richieste Anthropic passano alla modalità Foundry:

  • L’URL base viene risolto da FOUNDRY_BASE_URL (il fallback rimane l’URL base del modello/predefinito se non impostato).
  • La risoluzione della chiave API per il provider anthropic diventa: ANTHROPIC_FOUNDRY_API_KEYANTHROPIC_OAUTH_TOKENANTHROPIC_API_KEY.
  • ANTHROPIC_CUSTOM_HEADERS viene analizzato come coppie chiave: valore separate da virgola/a capo e unito agli header della richiesta.
  • Il materiale TLS client/server può essere iniettato dai valori d’ambiente: NODE_EXTRA_CA_CERTS, CLAUDE_CODE_CLIENT_CERT, CLAUDE_CODE_CLIENT_KEY. Ciascuno accetta:
    • un percorso del filesystem al contenuto PEM, oppure
    • PEM inline (incluse le sequenze \n con escape).
VariabileTipo di valoreComportamento
CLAUDE_CODE_USE_FOUNDRYStringa di tipo booleano (1, true, yes, on)Abilita la modalità Foundry per il provider Anthropic
FOUNDRY_BASE_URLStringa URLURL base dell’endpoint Anthropic in modalità Foundry
ANTHROPIC_FOUNDRY_API_KEYStringa tokenUsata per Authorization: Bearer <token>
ANTHROPIC_CUSTOM_HEADERSStringa lista di headerHeader extra; formato header-a: valore, header-b: valore o separati da a capo
NODE_EXTRA_CA_CERTSPercorso PEM o PEM inlineCatena CA aggiuntiva per la validazione del certificato del server
CLAUDE_CODE_CLIENT_CERTPercorso PEM o PEM inlineCertificato client mTLS
CLAUDE_CODE_CLIENT_KEYPercorso PEM o PEM inlineChiave privata client mTLS (deve essere abbinata al certificato)
VariabilePredefinito / comportamento
AWS_REGIONFonte primaria della regione
AWS_DEFAULT_REGIONFallback se AWS_REGION non è impostato
AWS_PROFILEAbilita il percorso di autenticazione con profilo nominato
AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEYAbilita il percorso di autenticazione con chiave IAM
AWS_BEARER_TOKEN_BEDROCKAbilita il percorso di autenticazione con bearer token
AWS_CONTAINER_CREDENTIALS_RELATIVE_URI / AWS_CONTAINER_CREDENTIALS_FULL_URIAbilita il percorso delle credenziali del task ECS
AWS_WEB_IDENTITY_TOKEN_FILE + AWS_ROLE_ARNAbilita il percorso di autenticazione con web identity
AWS_BEDROCK_SKIP_AUTHSe 1, inietta credenziali fittizie (scenari proxy/senza autenticazione)
AWS_BEDROCK_FORCE_HTTP1Se 1, forza il gestore di richieste Node HTTP/1

Fallback della regione nel codice del provider: options.regionAWS_REGIONAWS_DEFAULT_REGIONus-east-1.

VariabilePredefinito / comportamento
AZURE_OPENAI_API_KEYRichiesta a meno che la chiave API non sia passata come opzione
AZURE_OPENAI_API_VERSIONPredefinito v1
AZURE_OPENAI_BASE_URLOverride diretto dell’URL base
AZURE_OPENAI_RESOURCE_NAMEUsata per costruire l’URL base: https://<resource>.openai.azure.com/openai/v1
AZURE_OPENAI_DEPLOYMENT_NAME_MAPStringa di mappatura opzionale: modelId=deploymentName,model2=deployment2

Risoluzione dell’URL base: opzione azureBaseUrl → env AZURE_OPENAI_BASE_URL → opzione/env resource name → model.baseUrl.

VariabileRichiesta?Note
GOOGLE_CLOUD_PROJECTSì (a meno che non sia passata nelle opzioni)Fallback: GCLOUD_PROJECT
GCLOUD_PROJECTFallbackUsata come fonte alternativa dell’ID progetto
GOOGLE_CLOUD_LOCATIONSì (a meno che non sia passata nelle opzioni)Nessun valore predefinito nel provider
GOOGLE_APPLICATION_CREDENTIALSCondizionaleSe impostata, il file deve esistere; altrimenti viene verificato il percorso di fallback ADC (~/.config/gcloud/application_default_credentials.json)
VariabilePredefinito / comportamento
KIMI_CODE_OAUTH_HOSTOverride primario dell’host OAuth
KIMI_OAUTH_HOSTOverride di fallback dell’host OAuth
KIMI_CODE_BASE_URLSovrascrive l’URL base dell’endpoint di utilizzo Kimi (usage/kimi.ts)

Catena dell’host OAuth: KIMI_CODE_OAUTH_HOSTKIMI_OAUTH_HOSThttps://auth.kimi.com.

VariabilePredefinito / comportamento
PI_AI_ANTIGRAVITY_VERSIONSovrascrive il tag versione dell’user-agent Antigravity nel provider Gemini CLI

Risposte OpenAI Codex (controlli funzionalità/debug)

Sezione intitolata “Risposte OpenAI Codex (controlli funzionalità/debug)”
VariabileComportamento
PI_CODEX_DEBUG1/true abilita il logging di debug del provider Codex
PI_CODEX_WEBSOCKET1/true abilita la preferenza per il trasporto websocket
PI_CODEX_WEBSOCKET_V21/true abilita il percorso websocket v2
PI_CODEX_WEBSOCKET_IDLE_TIMEOUT_MSOverride con intero positivo (predefinito 300000)
PI_CODEX_WEBSOCKET_RETRY_BUDGETOverride con intero non negativo (predefinito 5)
PI_CODEX_WEBSOCKET_RETRY_DELAY_MSOverride del backoff base con intero positivo (predefinito 500)
VariabileComportamento
DEBUG_CURSORAbilita i log di debug del provider; 2/verbose per frammenti dettagliati del payload
DEBUG_CURSOR_LOGPercorso file opzionale per l’output del log di debug in formato JSONL
VariabileComportamento
PI_CACHE_RETENTIONSe long, abilita la retention estesa dove supportata (anthropic, openai-responses, risoluzione della retention Bedrock)

VariabileUtilizzata da
EXA_API_KEYProvider di ricerca Exa e tool MCP Exa
BRAVE_API_KEYProvider di ricerca Brave
PERPLEXITY_API_KEYProvider di ricerca Perplexity in modalità chiave API
TAVILY_API_KEYProvider di ricerca Tavily
ZAI_API_KEYProvider di ricerca z.ai (controlla anche l’OAuth memorizzato in agent.db)
OPENAI_API_KEY / OAuth Codex nel DBDisponibilità/autenticazione del provider di ricerca Codex

packages/coding-agent/src/web/search/auth.ts risolve le credenziali di ricerca web Anthropic in questo ordine:

  1. ANTHROPIC_SEARCH_API_KEY (+ opzionale ANTHROPIC_SEARCH_BASE_URL)
  2. Voce del provider in models.json con api: "anthropic-messages"
  3. Credenziali OAuth Anthropic da agent.db (non devono scadere entro un buffer di 5 minuti)
  4. Fallback generico env Anthropic: chiave del provider (ANTHROPIC_FOUNDRY_API_KEY/ANTHROPIC_OAUTH_TOKEN/ANTHROPIC_API_KEY) + opzionale ANTHROPIC_BASE_URL (FOUNDRY_BASE_URL quando la modalità Foundry è abilitata)

Variabili correlate:

VariabilePredefinito / comportamento
ANTHROPIC_SEARCH_API_KEYChiave di ricerca esplicita con la priorità più alta
ANTHROPIC_SEARCH_BASE_URLPredefinito https://api.anthropic.com quando omesso
ANTHROPIC_SEARCH_MODELPredefinito claude-haiku-4-5
ANTHROPIC_BASE_URLURL base generico di fallback per il percorso di autenticazione di livello 4
VariabileComportamento
PI_AUTH_NO_BORROWSe impostata, disabilita il percorso di prestito token dell’app nativa macOS nel flusso di login Perplexity

VariabilePredefinito / comportamento
PI_PYOverride della modalità tool Python: 0/bash=bash-only, 1/py=ipy-only, mix/both=both; valori non validi ignorati
PI_PYTHON_SKIP_CHECKSe 1, salta i controlli di disponibilità/riscaldamento del kernel Python
PI_PYTHON_GATEWAY_URLSe impostata, usa un gateway kernel esterno invece del gateway condiviso locale
PI_PYTHON_GATEWAY_TOKENToken di autenticazione opzionale per il gateway esterno (Authorization: token <value>)
PI_PYTHON_IPC_TRACESe 1, abilita il percorso di traccia IPC a basso livello nel modulo kernel
VIRTUAL_ENVPercorso venv con la priorità più alta per la risoluzione del runtime Python

Comportamento condizionale aggiuntivo:

  • Se BUN_ENV=test o NODE_ENV=test, i controlli di disponibilità Python sono trattati come OK e il riscaldamento viene saltato.
  • Il filtraggio dell’ambiente Python nega le chiavi API comuni e consente variabili base sicure + prefissi LC_, XDG_, PI_.

VariabilePredefinito / comportamento
PI_SMOL_MODELOverride effimero del ruolo modello per smol (il CLI --smol ha precedenza)
PI_SLOW_MODELOverride effimero del ruolo modello per slow (il CLI --slow ha precedenza)
PI_PLAN_MODELOverride effimero del ruolo modello per plan (il CLI --plan ha precedenza)
PI_NO_TITLESe impostata (qualsiasi valore non vuoto), disabilita la generazione automatica del titolo della sessione al primo messaggio utente
NULL_PROMPTSe true, il costruttore del prompt di sistema restituisce una stringa vuota
PI_BLOCKED_AGENTBlocca un tipo specifico di sotto-agente nel tool task
PI_SUBPROCESS_CMDSovrascrive il comando di spawn del sotto-agente (bypass della risoluzione xcsh / xcsh.cmd)
PI_TASK_MAX_OUTPUT_BYTESMassimo di byte dell’output catturato per sotto-agente (predefinito 500000)
PI_TASK_MAX_OUTPUT_LINESMassimo di righe dell’output catturato per sotto-agente (predefinito 5000)
PI_TIMINGSe 1, abilita i log di strumentazione dei tempi di avvio/tool
PI_DEBUG_STARTUPAbilita le stampe di debug delle fasi di avvio su stderr in più percorsi di avvio
PI_PACKAGE_DIRSovrascrive la risoluzione della directory base degli asset del pacchetto (ricerca percorsi docs/examples/changelog)
PI_DISABLE_LSPMUXSe 1, disabilita il rilevamento/integrazione di lspmux e forza lo spawn diretto del server LSP
LITELLM_BASE_URLURL base del proxy LiteLLM. Quando impostato con LITELLM_API_KEY, attiva la generazione automatica di models.yml al primo avvio e l’auto-riparazione ad ogni avvio
LM_STUDIO_BASE_URLOverride dell’URL base predefinito per la scoperta implicita di LM Studio (http://127.0.0.1:1234/v1 se non impostato)
OLLAMA_BASE_URLOverride dell’URL base predefinito per la scoperta implicita di Ollama (http://127.0.0.1:11434 se non impostato)
LLAMA_CPP_BASE_URLOverride dell’URL base predefinito per la scoperta implicita di Llama.cpp (http://127.0.0.1:8080 se non impostato)
PI_EDIT_VARIANTSe hashline, forza la modalità di visualizzazione hashline per read/grep quando il tool edit è disponibile
PI_NO_PTYSe 1, disabilita il percorso PTY interattivo per il tool bash

PI_NO_PTY viene anche impostata internamente quando viene usato il CLI --no-pty.


Queste sono consumate tramite @f5-sales-demo/pi-utils/dirs e influenzano dove coding-agent memorizza i dati.

VariabilePredefinito / comportamento
PI_CONFIG_DIRNome della directory root di configurazione sotto home (predefinito .xcsh)
PI_CODING_AGENT_DIROverride completo per la directory dell’agente (predefinito ~/<PI_CONFIG_DIR o .xcsh>/agent)
PWDUsata per la corrispondenza della directory di lavoro corrente canonica negli helper dei percorsi

(Da packages/utils/src/procmgr.ts e integrazione del tool bash di coding-agent.)

VariabileComportamento
PI_BASH_NO_CISopprime l’iniezione automatica di CI=true nell’ambiente della shell generata
CLAUDE_BASH_NO_CIAlias legacy di fallback per PI_BASH_NO_CI
PI_BASH_NO_LOGINDestinata a disabilitare la modalità shell di login
CLAUDE_BASH_NO_LOGINAlias legacy di fallback per PI_BASH_NO_LOGIN
PI_SHELL_PREFIXWrapper prefisso comando opzionale
CLAUDE_CODE_SHELL_PREFIXAlias legacy di fallback per PI_SHELL_PREFIX
VISUALComando dell’editor esterno preferito
EDITORComando dell’editor esterno di fallback

Nota sull’implementazione corrente: PI_BASH_NO_LOGIN/CLAUDE_BASH_NO_LOGIN vengono lette, ma l’attuale getShellArgs() restituisce ['-l','-c'] in entrambi i rami (effettivamente senza effetto oggi).


8) Rilevamento UI/tema/sessione (env auto-rilevato)

Sezione intitolata “8) Rilevamento UI/tema/sessione (env auto-rilevato)”

Queste vengono lette come segnali runtime; sono solitamente impostate dal terminale/SO piuttosto che configurate manualmente.

VariabileUtilizzata per
COLORTERM, TERM, WT_SESSIONRilevamento delle capacità colore (modalità colore del tema)
COLORFGBGAuto-rilevamento sfondo chiaro/scuro del terminale
TERM_PROGRAM, TERM_PROGRAM_VERSION, TERMINAL_EMULATORIdentità del terminale nel prompt/contesto di sistema
KDE_FULL_SESSION, XDG_CURRENT_DESKTOP, DESKTOP_SESSION, XDG_SESSION_DESKTOP, GDMSESSION, WINDOWMANAGERRilevamento desktop/window-manager nel prompt/contesto di sistema
KITTY_WINDOW_ID, TMUX_PANE, TERM_SESSION_ID, WT_SESSIONID breadcrumb stabili per sessione del terminale
SHELL, ComSpec, TERM_PROGRAM, TERMDiagnostica informazioni di sistema
APPDATA, XDG_CONFIG_HOMERisoluzione del percorso di configurazione lspmux
HOMEAbbreviazione dei percorsi nell’interfaccia dei comandi MCP

VariabileComportamento
PI_DEVAbilita la diagnostica verbosa del caricamento degli addon nativi in packages/natives

10) Flag runtime TUI (pacchetto condiviso, influenza l’UX di coding-agent)

Sezione intitolata “10) Flag runtime TUI (pacchetto condiviso, influenza l’UX di coding-agent)”
VariabileComportamento
PI_NOTIFICATIONSoff / 0 / false sopprimono le notifiche desktop
PI_TUI_WRITE_LOGSe impostata, registra le scritture TUI su file
PI_HARDWARE_CURSORSe 1, abilita la modalità cursore hardware
PI_CLEAR_ON_SHRINKSe 1, cancella le righe vuote quando il contenuto si riduce
PI_DEBUG_REDRAWSe 1, abilita il logging di debug del ridisegno
PI_TUI_DEBUGSe 1, abilita il percorso di dump di debug approfondito della TUI

VariabileComportamento
PI_COMMIT_TEST_FALLBACKSe true (case-insensitive), forza il percorso di generazione commit di fallback
PI_COMMIT_NO_FALLBACKSe true, disabilita il fallback quando l’agente non restituisce alcuna proposta
PI_COMMIT_MAP_REDUCESe false, disabilita il percorso di analisi commit map-reduce
DEBUGSe impostata, vengono stampati gli stack trace degli errori dell’agente commit

Trattare queste come segreti; non registrarle nei log né includerle nei commit:

  • Chiavi API/provider e credenziali OAuth/bearer (tutte le *_API_KEY, *_TOKEN, token di accesso/refresh OAuth)
  • Credenziali cloud (AWS_*, il percorso GOOGLE_APPLICATION_CREDENTIALS può esporre materiale dell’account di servizio)
  • Variabili di autenticazione ricerca/provider (EXA_API_KEY, BRAVE_API_KEY, PERPLEXITY_API_KEY, chiavi di ricerca Anthropic)
  • Materiale mTLS Foundry (CLAUDE_CODE_CLIENT_CERT, CLAUDE_CODE_CLIENT_KEY, NODE_EXTRA_CA_CERTS quando punta a bundle CA privati)

Il runtime Python inoltre elimina esplicitamente molte variabili chiave comuni prima di generare i sottoprocessi del kernel (packages/coding-agent/src/ipy/runtime.ts).