Aller au contenu

Variables d'environnement (Référence d'exécution actuelle)

Cette référence est dérivée des chemins de code actuels dans :

  • packages/coding-agent/src/**
  • packages/ai/src/** (résolution fournisseur/authentification utilisée par coding-agent)
  • packages/utils/src/** et packages/tui/src/** lorsque ces variables affectent directement l’exécution de coding-agent

Elle ne documente que le comportement actif.

La plupart des recherches à l’exécution utilisent $env de @f5-sales-demo/pi-utils (packages/utils/src/env.ts).

Ordre de chargement de $env :

  1. Environnement de processus existant (Bun.env)
  2. .env du projet ($PWD/.env) pour les clés non déjà définies
  3. .env du répertoire personnel (~/.env) pour les clés non déjà définies

Règle supplémentaire dans les fichiers .env : les clés XCSH_* sont dupliquées vers les clés PI_* lors de l’analyse.


Celles-ci sont consommées via getEnvApiKey() (packages/ai/src/stream.ts) sauf indication contraire.

VariableUtilisée pourRequise quandNotes / priorité
ANTHROPIC_OAUTH_TOKENAuthentification API AnthropicUtilisation d’Anthropic avec authentification par token OAuthPrioritaire sur ANTHROPIC_API_KEY pour la résolution de l’authentification fournisseur
ANTHROPIC_API_KEYAuthentification API AnthropicUtilisation d’Anthropic sans token OAuthSolution de repli après ANTHROPIC_OAUTH_TOKEN
ANTHROPIC_FOUNDRY_API_KEYAnthropic via Azure Foundry / passerelle entrepriseCLAUDE_CODE_USE_FOUNDRY activéPrioritaire sur ANTHROPIC_OAUTH_TOKEN et ANTHROPIC_API_KEY lorsque le mode Foundry est activé
OPENAI_API_KEYAuthentification OpenAIUtilisation des fournisseurs de la famille OpenAI sans argument apiKey expliciteUtilisée par les fournisseurs OpenAI Completions/Responses
GEMINI_API_KEYAuthentification Google GeminiUtilisation des modèles du fournisseur googleClé principale pour le mappage du fournisseur Gemini
GOOGLE_API_KEYSolution de repli pour l’authentification de l’outil d’image GeminiUtilisation de l’outil gemini_image sans GEMINI_API_KEYUtilisée par le chemin de repli de l’outil d’image de coding-agent
GROQ_API_KEYAuthentification GroqUtilisation des modèles Groq
CEREBRAS_API_KEYAuthentification CerebrasUtilisation des modèles Cerebras
TOGETHER_API_KEYAuthentification TogetherUtilisation du fournisseur together
HUGGINGFACE_HUB_TOKENAuthentification Hugging FaceUtilisation du fournisseur huggingfaceVariable d’environnement principale du token Hugging Face
HF_TOKENAuthentification Hugging FaceUtilisation du fournisseur huggingfaceSolution de repli lorsque HUGGINGFACE_HUB_TOKEN n’est pas défini
SYNTHETIC_API_KEYAuthentification SyntheticUtilisation des modèles Synthetic
NVIDIA_API_KEYAuthentification NVIDIAUtilisation du fournisseur nvidia
NANO_GPT_API_KEYAuthentification NanoGPTUtilisation du fournisseur nanogpt
VENICE_API_KEYAuthentification VeniceUtilisation du fournisseur venice
LITELLM_API_KEYAuthentification LiteLLMUtilisation du fournisseur litellmClé de proxy LiteLLM compatible OpenAI. Lorsque définie avec LITELLM_BASE_URL, active la configuration automatique de models.yml
LM_STUDIO_API_KEYAuthentification LM Studio (optionnelle)Utilisation du fournisseur lm-studio avec des hôtes authentifiésLM Studio local fonctionne généralement sans authentification ; tout token non vide suffit lorsqu’une clé est requise
OLLAMA_API_KEYAuthentification Ollama (optionnelle)Utilisation du fournisseur ollama avec des hôtes authentifiésOllama local fonctionne généralement sans authentification ; tout token non vide suffit lorsqu’une clé est requise
LLAMA_CPP_API_KEYAuthentification Ollama (optionnelle)Utilisation de llama-server avec le paramètre --api-keyllama.cpp local fonctionne généralement sans authentification ; tout token non vide suffit lorsqu’une clé est configurée
XIAOMI_API_KEYAuthentification Xiaomi MiMoUtilisation du fournisseur xiaomi
MOONSHOT_API_KEYAuthentification MoonshotUtilisation du fournisseur moonshot
XAI_API_KEYAuthentification xAIUtilisation des modèles xAI
OPENROUTER_API_KEYAuthentification OpenRouterUtilisation des modèles OpenRouterÉgalement utilisée par l’outil d’image lorsque le fournisseur préféré/auto est OpenRouter
MISTRAL_API_KEYAuthentification MistralUtilisation des modèles Mistral
ZAI_API_KEYAuthentification z.aiUtilisation des modèles z.aiÉgalement utilisée par le fournisseur de recherche web z.ai
MINIMAX_API_KEYAuthentification MiniMaxUtilisation du fournisseur minimax
MINIMAX_CODE_API_KEYAuthentification MiniMax CodeUtilisation du fournisseur minimax-code
MINIMAX_CODE_CN_API_KEYAuthentification MiniMax Code CNUtilisation du fournisseur minimax-code-cn
OPENCODE_API_KEYAuthentification OpenCodeUtilisation des modèles OpenCode
QIANFAN_API_KEYAuthentification QianfanUtilisation du fournisseur qianfan
QWEN_OAUTH_TOKENAuthentification Qwen PortalUtilisation de qwen-portal avec un token OAuthPrioritaire sur QWEN_PORTAL_API_KEY
QWEN_PORTAL_API_KEYAuthentification Qwen PortalUtilisation de qwen-portal avec une clé APISolution de repli après QWEN_OAUTH_TOKEN
ZENMUX_API_KEYAuthentification ZenMuxUtilisation du fournisseur zenmuxUtilisée pour les routes compatibles ZenMux OpenAI et Anthropic
VLLM_API_KEYAuthentification/découverte vLLMUtilisation du fournisseur vllm (serveurs locaux compatibles OpenAI)Toute valeur non vide suffit pour les serveurs locaux sans authentification
CURSOR_ACCESS_TOKENAuthentification du fournisseur CursorUtilisation du fournisseur Cursor
AI_GATEWAY_API_KEYAuthentification Vercel AI GatewayUtilisation du fournisseur vercel-ai-gateway
CLOUDFLARE_AI_GATEWAY_API_KEYAuthentification Cloudflare AI GatewayUtilisation du fournisseur cloudflare-ai-gatewayL’URL de base doit être configurée comme https://gateway.ai.cloudflare.com/v1/<account>/<gateway>/anthropic
VariableUtilisée pourChaîne
COPILOT_GITHUB_TOKENAuthentification du fournisseur GitHub CopilotCOPILOT_GITHUB_TOKENGH_TOKENGITHUB_TOKEN
GH_TOKENSolution de repli Copilot ; authentification API GitHub dans le scraper webDans le scraper web : GITHUB_TOKENGH_TOKEN
GITHUB_TOKENSolution de repli Copilot ; authentification API GitHub dans le scraper webDans le scraper web : vérifiée avant GH_TOKEN

2) Configuration d’exécution spécifique aux fournisseurs

Section intitulée « 2) Configuration d’exécution spécifique aux fournisseurs »

Passerelle Anthropic Foundry (Azure / proxy entreprise)

Section intitulée « Passerelle Anthropic Foundry (Azure / proxy entreprise) »

Lorsque CLAUDE_CODE_USE_FOUNDRY est activé, les requêtes Anthropic passent en mode Foundry :

  • L’URL de base se résout depuis FOUNDRY_BASE_URL (l’URL de base par défaut du modèle est utilisée si non définie).
  • La résolution de la clé API pour le fournisseur anthropic devient : ANTHROPIC_FOUNDRY_API_KEYANTHROPIC_OAUTH_TOKENANTHROPIC_API_KEY.
  • ANTHROPIC_CUSTOM_HEADERS est analysée comme des paires clé: valeur séparées par des virgules/sauts de ligne et fusionnées dans les en-têtes de requête.
  • Le matériel TLS client/serveur peut être injecté depuis les valeurs d’environnement : NODE_EXTRA_CA_CERTS, CLAUDE_CODE_CLIENT_CERT, CLAUDE_CODE_CLIENT_KEY. Chacune accepte soit :
    • un chemin de système de fichiers vers du contenu PEM, soit
    • du PEM en ligne (y compris les séquences \n échappées).
VariableType de valeurComportement
CLAUDE_CODE_USE_FOUNDRYChaîne de type booléen (1, true, yes, on)Active le mode Foundry pour le fournisseur Anthropic
FOUNDRY_BASE_URLChaîne URLURL de base du point de terminaison Anthropic en mode Foundry
ANTHROPIC_FOUNDRY_API_KEYChaîne de tokenUtilisée pour Authorization: Bearer <token>
ANTHROPIC_CUSTOM_HEADERSChaîne de liste d’en-têtesEn-têtes supplémentaires ; format header-a: valeur, header-b: valeur ou séparés par des sauts de ligne
NODE_EXTRA_CA_CERTSChemin PEM ou PEM en ligneChaîne CA supplémentaire pour la validation du certificat serveur
CLAUDE_CODE_CLIENT_CERTChemin PEM ou PEM en ligneCertificat client mTLS
CLAUDE_CODE_CLIENT_KEYChemin PEM ou PEM en ligneClé privée client mTLS (doit être associée au certificat)
VariableValeur par défaut / comportement
AWS_REGIONSource de région principale
AWS_DEFAULT_REGIONSolution de repli si AWS_REGION n’est pas définie
AWS_PROFILEActive le chemin d’authentification par profil nommé
AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEYActive le chemin d’authentification par clé IAM
AWS_BEARER_TOKEN_BEDROCKActive le chemin d’authentification par token porteur
AWS_CONTAINER_CREDENTIALS_RELATIVE_URI / AWS_CONTAINER_CREDENTIALS_FULL_URIActive le chemin d’identifiants de tâche ECS
AWS_WEB_IDENTITY_TOKEN_FILE + AWS_ROLE_ARNActive le chemin d’authentification par identité web
AWS_BEDROCK_SKIP_AUTHSi 1, injecte des identifiants factices (scénarios proxy/sans authentification)
AWS_BEDROCK_FORCE_HTTP1Si 1, force le gestionnaire de requêtes HTTP/1 de Node

Solution de repli de région dans le code du fournisseur : options.regionAWS_REGIONAWS_DEFAULT_REGIONus-east-1.

VariableValeur par défaut / comportement
AZURE_OPENAI_API_KEYRequise sauf si la clé API est passée en option
AZURE_OPENAI_API_VERSIONPar défaut v1
AZURE_OPENAI_BASE_URLRemplacement direct de l’URL de base
AZURE_OPENAI_RESOURCE_NAMEUtilisée pour construire l’URL de base : https://<resource>.openai.azure.com/openai/v1
AZURE_OPENAI_DEPLOYMENT_NAME_MAPChaîne de mappage optionnelle : modelId=deploymentName,model2=deployment2

Résolution de l’URL de base : option azureBaseUrl → env AZURE_OPENAI_BASE_URL → option/env resource name → model.baseUrl.

VariableRequise ?Notes
GOOGLE_CLOUD_PROJECTOui (sauf si passée dans les options)Solution de repli : GCLOUD_PROJECT
GCLOUD_PROJECTSolution de repliUtilisée comme source alternative d’ID de projet
GOOGLE_CLOUD_LOCATIONOui (sauf si passée dans les options)Pas de valeur par défaut dans le fournisseur
GOOGLE_APPLICATION_CREDENTIALSConditionnelleSi définie, le fichier doit exister ; sinon le chemin de repli ADC est vérifié (~/.config/gcloud/application_default_credentials.json)
VariableValeur par défaut / comportement
KIMI_CODE_OAUTH_HOSTRemplacement principal de l’hôte OAuth
KIMI_OAUTH_HOSTRemplacement de l’hôte OAuth en solution de repli
KIMI_CODE_BASE_URLRemplace l’URL de base du point de terminaison d’utilisation Kimi (usage/kimi.ts)

Chaîne de l’hôte OAuth : KIMI_CODE_OAUTH_HOSTKIMI_OAUTH_HOSThttps://auth.kimi.com.

VariableValeur par défaut / comportement
PI_AI_ANTIGRAVITY_VERSIONRemplace le tag de version user-agent Antigravity dans le fournisseur Gemini CLI

OpenAI Codex responses (contrôles de fonctionnalité/débogage)

Section intitulée « OpenAI Codex responses (contrôles de fonctionnalité/débogage) »
VariableComportement
PI_CODEX_DEBUG1/true active la journalisation de débogage du fournisseur Codex
PI_CODEX_WEBSOCKET1/true active la préférence de transport websocket
PI_CODEX_WEBSOCKET_V21/true active le chemin websocket v2
PI_CODEX_WEBSOCKET_IDLE_TIMEOUT_MSRemplacement par entier positif (par défaut 300000)
PI_CODEX_WEBSOCKET_RETRY_BUDGETRemplacement par entier non négatif (par défaut 5)
PI_CODEX_WEBSOCKET_RETRY_DELAY_MSRemplacement du backoff de base par entier positif (par défaut 500)
VariableComportement
DEBUG_CURSORActive les journaux de débogage du fournisseur ; 2/verbose pour des extraits de charge utile détaillés
DEBUG_CURSOR_LOGChemin de fichier optionnel pour la sortie du journal de débogage JSONL
VariableComportement
PI_CACHE_RETENTIONSi long, active la rétention longue lorsqu’elle est prise en charge (anthropic, openai-responses, résolution de rétention Bedrock)

VariableUtilisée par
EXA_API_KEYFournisseur de recherche Exa et outils MCP Exa
BRAVE_API_KEYFournisseur de recherche Brave
PERPLEXITY_API_KEYMode clé API du fournisseur de recherche Perplexity
TAVILY_API_KEYFournisseur de recherche Tavily
ZAI_API_KEYFournisseur de recherche z.ai (vérifie également l’OAuth stocké dans agent.db)
OPENAI_API_KEY / OAuth Codex dans la BDDisponibilité/authentification du fournisseur de recherche Codex

Chaîne d’authentification de la recherche web Anthropic

Section intitulée « Chaîne d’authentification de la recherche web Anthropic »

packages/coding-agent/src/web/search/auth.ts résout les identifiants de recherche web Anthropic dans cet ordre :

  1. ANTHROPIC_SEARCH_API_KEY (+ ANTHROPIC_SEARCH_BASE_URL optionnelle)
  2. Entrée de fournisseur models.json avec api: "anthropic-messages"
  3. Identifiants OAuth Anthropic depuis agent.db (ne doivent pas expirer dans un délai tampon de 5 minutes)
  4. Solution de repli env Anthropic générique : clé fournisseur (ANTHROPIC_FOUNDRY_API_KEY/ANTHROPIC_OAUTH_TOKEN/ANTHROPIC_API_KEY) + ANTHROPIC_BASE_URL optionnelle (FOUNDRY_BASE_URL lorsque le mode Foundry est activé)

Variables associées :

VariableValeur par défaut / comportement
ANTHROPIC_SEARCH_API_KEYClé de recherche explicite de plus haute priorité
ANTHROPIC_SEARCH_BASE_URLPar défaut https://api.anthropic.com si omise
ANTHROPIC_SEARCH_MODELPar défaut claude-haiku-4-5
ANTHROPIC_BASE_URLURL de base de repli générique pour le chemin d’authentification de niveau 4
VariableComportement
PI_AUTH_NO_BORROWSi définie, désactive le chemin d’emprunt de token d’application native macOS dans le flux de connexion Perplexity

4) Outillage Python et environnement d’exécution du noyau

Section intitulée « 4) Outillage Python et environnement d’exécution du noyau »
VariableValeur par défaut / comportement
PI_PYRemplacement du mode d’outil Python : 0/bash=bash-only, 1/py=ipy-only, mix/both=both ; les valeurs invalides sont ignorées
PI_PYTHON_SKIP_CHECKSi 1, ignore les vérifications de disponibilité/préchauffage du noyau Python
PI_PYTHON_GATEWAY_URLSi définie, utilise une passerelle de noyau externe au lieu de la passerelle partagée locale
PI_PYTHON_GATEWAY_TOKENToken d’authentification optionnel pour la passerelle externe (Authorization: token <value>)
PI_PYTHON_IPC_TRACESi 1, active le chemin de trace IPC de bas niveau dans le module noyau
VIRTUAL_ENVChemin venv de plus haute priorité pour la résolution de l’environnement Python

Comportement conditionnel supplémentaire :

  • Si BUN_ENV=test ou NODE_ENV=test, les vérifications de disponibilité Python sont considérées comme OK et le préchauffage est ignoré.
  • Le filtrage de l’environnement Python refuse les clés API courantes et autorise les variables de base sûres + les préfixes LC_, XDG_, PI_.

VariableValeur par défaut / comportement
PI_SMOL_MODELRemplacement éphémère de rôle de modèle pour smol (CLI --smol est prioritaire)
PI_SLOW_MODELRemplacement éphémère de rôle de modèle pour slow (CLI --slow est prioritaire)
PI_PLAN_MODELRemplacement éphémère de rôle de modèle pour plan (CLI --plan est prioritaire)
PI_NO_TITLESi définie (toute valeur non vide), désactive la génération automatique du titre de session au premier message utilisateur
NULL_PROMPTSi true, le constructeur de prompt système retourne une chaîne vide
PI_BLOCKED_AGENTBloque un type de sous-agent spécifique dans l’outil de tâche
PI_SUBPROCESS_CMDRemplace la commande de lancement de sous-agent (contournement de la résolution xcsh / xcsh.cmd)
PI_TASK_MAX_OUTPUT_BYTESNombre maximum d’octets de sortie capturés par sous-agent (par défaut 500000)
PI_TASK_MAX_OUTPUT_LINESNombre maximum de lignes de sortie capturées par sous-agent (par défaut 5000)
PI_TIMINGSi 1, active les journaux d’instrumentation de chronométrage démarrage/outil
PI_DEBUG_STARTUPActive les impressions de débogage des étapes de démarrage sur stderr dans plusieurs chemins de démarrage
PI_PACKAGE_DIRRemplace la résolution du répertoire de base des actifs du package (recherche de chemins docs/exemples/changelog)
PI_DISABLE_LSPMUXSi 1, désactive la détection/intégration lspmux et force le lancement direct du serveur LSP
LITELLM_BASE_URLURL de base du proxy LiteLLM. Lorsque définie avec LITELLM_API_KEY, déclenche la génération automatique de models.yml au premier lancement et l’auto-réparation à chaque démarrage
LM_STUDIO_BASE_URLRemplacement de l’URL de base de découverte implicite par défaut de LM Studio (http://127.0.0.1:1234/v1 si non définie)
OLLAMA_BASE_URLRemplacement de l’URL de base de découverte implicite par défaut d’Ollama (http://127.0.0.1:11434 si non définie)
LLAMA_CPP_BASE_URLRemplacement de l’URL de base de découverte implicite par défaut de Llama.cpp (http://127.0.0.1:8080 si non définie)
PI_EDIT_VARIANTSi hashline, force le mode d’affichage hashline read/grep lorsque l’outil d’édition est disponible
PI_NO_PTYSi 1, désactive le chemin PTY interactif pour l’outil bash

PI_NO_PTY est également définie en interne lorsque CLI --no-pty est utilisé.


Ceux-ci sont consommés via @f5-sales-demo/pi-utils/dirs et affectent l’emplacement de stockage des données de coding-agent.

VariableValeur par défaut / comportement
PI_CONFIG_DIRNom du répertoire racine de configuration sous le répertoire personnel (par défaut .xcsh)
PI_CODING_AGENT_DIRRemplacement complet du répertoire de l’agent (par défaut ~/<PI_CONFIG_DIR ou .xcsh>/agent)
PWDUtilisée pour la correspondance du répertoire de travail actuel canonique dans les utilitaires de chemin

(Depuis packages/utils/src/procmgr.ts et l’intégration de l’outil bash de coding-agent.)

VariableComportement
PI_BASH_NO_CISupprime l’injection automatique de CI=true dans l’environnement shell créé
CLAUDE_BASH_NO_CIAlias hérité de solution de repli pour PI_BASH_NO_CI
PI_BASH_NO_LOGINDestinée à désactiver le mode shell de connexion
CLAUDE_BASH_NO_LOGINAlias hérité de solution de repli pour PI_BASH_NO_LOGIN
PI_SHELL_PREFIXWrapper de préfixe de commande optionnel
CLAUDE_CODE_SHELL_PREFIXAlias hérité de solution de repli pour PI_SHELL_PREFIX
VISUALCommande préférée de l’éditeur externe
EDITORCommande de l’éditeur externe en solution de repli

Note d’implémentation actuelle : PI_BASH_NO_LOGIN/CLAUDE_BASH_NO_LOGIN sont lues, mais l’implémentation actuelle de getShellArgs() retourne ['-l','-c'] dans les deux branches (effectivement sans effet aujourd’hui).


8) Détection UI/thème/session (env auto-détecté)

Section intitulée « 8) Détection UI/thème/session (env auto-détecté) »

Celles-ci sont lues comme signaux d’exécution ; elles sont généralement définies par le terminal/système d’exploitation plutôt que configurées manuellement.

VariableUtilisée pour
COLORTERM, TERM, WT_SESSIONDétection des capacités de couleur (mode de couleur du thème)
COLORFGBGAuto-détection clair/sombre de l’arrière-plan du terminal
TERM_PROGRAM, TERM_PROGRAM_VERSION, TERMINAL_EMULATORIdentité du terminal dans le prompt système/contexte
KDE_FULL_SESSION, XDG_CURRENT_DESKTOP, DESKTOP_SESSION, XDG_SESSION_DESKTOP, GDMSESSION, WINDOWMANAGERDétection du bureau/gestionnaire de fenêtres dans le prompt système/contexte
KITTY_WINDOW_ID, TMUX_PANE, TERM_SESSION_ID, WT_SESSIONIdentifiants stables de fil d’Ariane de session par terminal
SHELL, ComSpec, TERM_PROGRAM, TERMDiagnostics d’informations système
APPDATA, XDG_CONFIG_HOMERésolution du chemin de configuration lspmux
HOMERaccourcissement de chemin dans l’interface de commande MCP

VariableComportement
PI_DEVActive les diagnostics verbeux de chargement d’addon natif dans packages/natives

10) Drapeaux d’exécution TUI (package partagé, affecte l’UX de coding-agent)

Section intitulée « 10) Drapeaux d’exécution TUI (package partagé, affecte l’UX de coding-agent) »
VariableComportement
PI_NOTIFICATIONSoff / 0 / false supprime les notifications de bureau
PI_TUI_WRITE_LOGSi définie, journalise les écritures TUI dans un fichier
PI_HARDWARE_CURSORSi 1, active le mode curseur matériel
PI_CLEAR_ON_SHRINKSi 1, efface les lignes vides lorsque le contenu se réduit
PI_DEBUG_REDRAWSi 1, active la journalisation de débogage du redessin
PI_TUI_DEBUGSi 1, active le chemin de dump de débogage approfondi TUI

VariableComportement
PI_COMMIT_TEST_FALLBACKSi true (insensible à la casse), force le chemin de génération de commit de repli
PI_COMMIT_NO_FALLBACKSi true, désactive la solution de repli lorsque l’agent ne retourne aucune proposition
PI_COMMIT_MAP_REDUCESi false, désactive le chemin d’analyse map-reduce des commits
DEBUGSi définie, les traces de pile d’erreurs de l’agent de commit sont affichées

Traitez celles-ci comme des secrets ; ne les journalisez pas et ne les committez pas :

  • Clés API/fournisseur et identifiants OAuth/porteur (toutes les *_API_KEY, *_TOKEN, tokens d’accès/rafraîchissement OAuth)
  • Identifiants cloud (AWS_*, le chemin GOOGLE_APPLICATION_CREDENTIALS peut exposer du matériel de compte de service)
  • Variables d’authentification de recherche/fournisseur (EXA_API_KEY, BRAVE_API_KEY, PERPLEXITY_API_KEY, clés de recherche Anthropic)
  • Matériel mTLS Foundry (CLAUDE_CODE_CLIENT_CERT, CLAUDE_CODE_CLIENT_KEY, NODE_EXTRA_CA_CERTS lorsqu’il pointe vers des bundles CA privés)

L’environnement d’exécution Python supprime également explicitement de nombreuses variables de clés courantes avant de lancer les sous-processus de noyau (packages/coding-agent/src/ipy/runtime.ts).