Pular para o conteúdo

Variáveis de Ambiente (Referência de Runtime Atual)

Esta referência é derivada dos caminhos de código atuais em:

  • packages/coding-agent/src/**
  • packages/ai/src/** (resolução de provedor/autenticação utilizada pelo coding-agent)
  • packages/utils/src/** e packages/tui/src/** onde essas variáveis afetam diretamente o runtime do coding-agent

Documenta apenas o comportamento ativo.

A maioria das consultas em runtime utiliza $env de @f5-sales-demo/pi-utils (packages/utils/src/env.ts).

Ordem de carregamento do $env:

  1. Ambiente de processo existente (Bun.env)
  2. .env do projeto ($PWD/.env) para chaves ainda não definidas
  3. .env do diretório home (~/.env) para chaves ainda não definidas

Regra adicional em arquivos .env: chaves XCSH_* são espelhadas para chaves PI_* durante o parse.


Estas são consumidas via getEnvApiKey() (packages/ai/src/stream.ts), salvo indicação contrária.

VariávelUsada paraNecessária quandoNotas / precedência
ANTHROPIC_OAUTH_TOKENAutenticação na API AnthropicUsando Anthropic com autenticação por token OAuthTem precedência sobre ANTHROPIC_API_KEY na resolução de autenticação do provedor
ANTHROPIC_API_KEYAutenticação na API AnthropicUsando Anthropic sem token OAuthFallback após ANTHROPIC_OAUTH_TOKEN
ANTHROPIC_FOUNDRY_API_KEYAnthropic via Azure Foundry / gateway empresarialCLAUDE_CODE_USE_FOUNDRY habilitadoTem precedência sobre ANTHROPIC_OAUTH_TOKEN e ANTHROPIC_API_KEY quando o modo Foundry está habilitado
OPENAI_API_KEYAutenticação OpenAIUsando provedores da família OpenAI sem argumento apiKey explícitoUsado pelos provedores OpenAI Completions/Responses
GEMINI_API_KEYAutenticação Google GeminiUsando modelos do provedor googleChave principal para mapeamento do provedor Gemini
GOOGLE_API_KEYFallback de autenticação da ferramenta de imagem GeminiUsando a ferramenta gemini_image sem GEMINI_API_KEYUsado pelo caminho de fallback da ferramenta de imagem do coding-agent
GROQ_API_KEYAutenticação GroqUsando modelos Groq
CEREBRAS_API_KEYAutenticação CerebrasUsando modelos Cerebras
TOGETHER_API_KEYAutenticação TogetherUsando provedor together
HUGGINGFACE_HUB_TOKENAutenticação Hugging FaceUsando provedor huggingfaceVariável de ambiente principal do token Hugging Face
HF_TOKENAutenticação Hugging FaceUsando provedor huggingfaceFallback quando HUGGINGFACE_HUB_TOKEN não está definido
SYNTHETIC_API_KEYAutenticação SyntheticUsando modelos Synthetic
NVIDIA_API_KEYAutenticação NVIDIAUsando provedor nvidia
NANO_GPT_API_KEYAutenticação NanoGPTUsando provedor nanogpt
VENICE_API_KEYAutenticação VeniceUsando provedor venice
LITELLM_API_KEYAutenticação LiteLLMUsando provedor litellmChave de proxy LiteLLM compatível com OpenAI. Quando definido com LITELLM_BASE_URL, habilita a auto-configuração do models.yml
LM_STUDIO_API_KEYAutenticação LM Studio (opcional)Usando provedor lm-studio com hosts autenticadosLM Studio local geralmente roda sem autenticação; qualquer token não vazio funciona quando uma chave é necessária
OLLAMA_API_KEYAutenticação Ollama (opcional)Usando provedor ollama com hosts autenticadosOllama local geralmente roda sem autenticação; qualquer token não vazio funciona quando uma chave é necessária
LLAMA_CPP_API_KEYAutenticação Ollama (opcional)Usando llama-server com parâmetro --api-keyllama.cpp local geralmente roda sem autenticação; qualquer token não vazio funciona quando uma chave é configurada
XIAOMI_API_KEYAutenticação Xiaomi MiMoUsando provedor xiaomi
MOONSHOT_API_KEYAutenticação MoonshotUsando provedor moonshot
XAI_API_KEYAutenticação xAIUsando modelos xAI
OPENROUTER_API_KEYAutenticação OpenRouterUsando modelos OpenRouterTambém usado pela ferramenta de imagem quando o provedor preferido/auto é OpenRouter
MISTRAL_API_KEYAutenticação MistralUsando modelos Mistral
ZAI_API_KEYAutenticação z.aiUsando modelos z.aiTambém usado pelo provedor de busca web z.ai
MINIMAX_API_KEYAutenticação MiniMaxUsando provedor minimax
MINIMAX_CODE_API_KEYAutenticação MiniMax CodeUsando provedor minimax-code
MINIMAX_CODE_CN_API_KEYAutenticação MiniMax Code CNUsando provedor minimax-code-cn
OPENCODE_API_KEYAutenticação OpenCodeUsando modelos OpenCode
QIANFAN_API_KEYAutenticação QianfanUsando provedor qianfan
QWEN_OAUTH_TOKENAutenticação Qwen PortalUsando qwen-portal com token OAuthTem precedência sobre QWEN_PORTAL_API_KEY
QWEN_PORTAL_API_KEYAutenticação Qwen PortalUsando qwen-portal com chave APIFallback após QWEN_OAUTH_TOKEN
ZENMUX_API_KEYAutenticação ZenMuxUsando provedor zenmuxUsado para rotas compatíveis com OpenAI e Anthropic do ZenMux
VLLM_API_KEYAutenticação/descoberta opt-in do vLLMUsando provedor vllm (servidores locais compatíveis com OpenAI)Qualquer valor não vazio funciona para servidores locais sem autenticação
CURSOR_ACCESS_TOKENAutenticação do provedor CursorUsando provedor Cursor
AI_GATEWAY_API_KEYAutenticação Vercel AI GatewayUsando provedor vercel-ai-gateway
CLOUDFLARE_AI_GATEWAY_API_KEYAutenticação Cloudflare AI GatewayUsando provedor cloudflare-ai-gatewayA URL base deve ser configurada como https://gateway.ai.cloudflare.com/v1/<account>/<gateway>/anthropic
VariávelUsada paraCadeia
COPILOT_GITHUB_TOKENAutenticação do provedor GitHub CopilotCOPILOT_GITHUB_TOKENGH_TOKENGITHUB_TOKEN
GH_TOKENFallback do Copilot; autenticação na API GitHub no web scraperNo web scraper: GITHUB_TOKENGH_TOKEN
GITHUB_TOKENFallback do Copilot; autenticação na API GitHub no web scraperNo web scraper: verificado antes de GH_TOKEN

2) Configuração de runtime específica por provedor

Seção intitulada “2) Configuração de runtime específica por provedor”

Anthropic Foundry Gateway (Azure / proxy empresarial)

Seção intitulada “Anthropic Foundry Gateway (Azure / proxy empresarial)”

Quando CLAUDE_CODE_USE_FOUNDRY está habilitado, as requisições Anthropic mudam para o modo Foundry:

  • A URL base é resolvida a partir de FOUNDRY_BASE_URL (o fallback permanece como a URL base padrão/do modelo se não definida).
  • A resolução da chave API para o provedor anthropic torna-se: ANTHROPIC_FOUNDRY_API_KEYANTHROPIC_OAUTH_TOKENANTHROPIC_API_KEY.
  • ANTHROPIC_CUSTOM_HEADERS é interpretado como pares chave: valor separados por vírgula/nova linha e mesclados nos cabeçalhos da requisição.
  • Material TLS de cliente/servidor pode ser injetado a partir de valores de ambiente: NODE_EXTRA_CA_CERTS, CLAUDE_CODE_CLIENT_CERT, CLAUDE_CODE_CLIENT_KEY. Cada um aceita:
    • um caminho de sistema de arquivos para conteúdo PEM, ou
    • PEM inline (incluindo sequências \n escapadas).
VariávelTipo de valorComportamento
CLAUDE_CODE_USE_FOUNDRYString tipo booleano (1, true, yes, on)Habilita o modo Foundry para o provedor Anthropic
FOUNDRY_BASE_URLString URLURL base do endpoint Anthropic no modo Foundry
ANTHROPIC_FOUNDRY_API_KEYString de tokenUsado para Authorization: Bearer <token>
ANTHROPIC_CUSTOM_HEADERSString de lista de cabeçalhosCabeçalhos extras; formato header-a: valor, header-b: valor ou separados por nova linha
NODE_EXTRA_CA_CERTSCaminho PEM ou PEM inlineCadeia CA extra para validação de certificado do servidor
CLAUDE_CODE_CLIENT_CERTCaminho PEM ou PEM inlineCertificado de cliente mTLS
CLAUDE_CODE_CLIENT_KEYCaminho PEM ou PEM inlineChave privada do cliente mTLS (deve ser pareada com o certificado)
VariávelPadrão / comportamento
AWS_REGIONFonte principal de região
AWS_DEFAULT_REGIONFallback se AWS_REGION não estiver definida
AWS_PROFILEHabilita o caminho de autenticação por perfil nomeado
AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEYHabilita o caminho de autenticação por chave IAM
AWS_BEARER_TOKEN_BEDROCKHabilita o caminho de autenticação por bearer token
AWS_CONTAINER_CREDENTIALS_RELATIVE_URI / AWS_CONTAINER_CREDENTIALS_FULL_URIHabilita o caminho de credencial de tarefa ECS
AWS_WEB_IDENTITY_TOKEN_FILE + AWS_ROLE_ARNHabilita o caminho de autenticação por web identity
AWS_BEDROCK_SKIP_AUTHSe 1, injeta credenciais fictícias (cenários de proxy/sem autenticação)
AWS_BEDROCK_FORCE_HTTP1Se 1, força o handler de requisição Node HTTP/1

Fallback de região no código do provedor: options.regionAWS_REGIONAWS_DEFAULT_REGIONus-east-1.

VariávelPadrão / comportamento
AZURE_OPENAI_API_KEYObrigatória a menos que a chave API seja passada como opção
AZURE_OPENAI_API_VERSIONPadrão v1
AZURE_OPENAI_BASE_URLOverride direto da URL base
AZURE_OPENAI_RESOURCE_NAMEUsado para construir a URL base: https://<resource>.openai.azure.com/openai/v1
AZURE_OPENAI_DEPLOYMENT_NAME_MAPString de mapeamento opcional: modelId=deploymentName,model2=deployment2

Resolução da URL base: opção azureBaseUrl → env AZURE_OPENAI_BASE_URL → opção/env resource name → model.baseUrl.

VariávelObrigatória?Notas
GOOGLE_CLOUD_PROJECTSim (a menos que passada nas opções)Fallback: GCLOUD_PROJECT
GCLOUD_PROJECTFallbackUsada como fonte alternativa de ID do projeto
GOOGLE_CLOUD_LOCATIONSim (a menos que passada nas opções)Sem padrão no provedor
GOOGLE_APPLICATION_CREDENTIALSCondicionalSe definida, o arquivo deve existir; caso contrário, o caminho de fallback ADC é verificado (~/.config/gcloud/application_default_credentials.json)
VariávelPadrão / comportamento
KIMI_CODE_OAUTH_HOSTOverride principal do host OAuth
KIMI_OAUTH_HOSTOverride de fallback do host OAuth
KIMI_CODE_BASE_URLSubstitui a URL base do endpoint de uso do Kimi (usage/kimi.ts)

Cadeia do host OAuth: KIMI_CODE_OAUTH_HOSTKIMI_OAUTH_HOSThttps://auth.kimi.com.

VariávelPadrão / comportamento
PI_AI_ANTIGRAVITY_VERSIONSubstitui a tag de versão do user-agent Antigravity no provedor Gemini CLI

OpenAI Codex responses (controles de funcionalidade/debug)

Seção intitulada “OpenAI Codex responses (controles de funcionalidade/debug)”
VariávelComportamento
PI_CODEX_DEBUG1/true habilita logs de debug do provedor Codex
PI_CODEX_WEBSOCKET1/true habilita preferência de transporte websocket
PI_CODEX_WEBSOCKET_V21/true habilita caminho websocket v2
PI_CODEX_WEBSOCKET_IDLE_TIMEOUT_MSOverride de inteiro positivo (padrão 300000)
PI_CODEX_WEBSOCKET_RETRY_BUDGETOverride de inteiro não negativo (padrão 5)
PI_CODEX_WEBSOCKET_RETRY_DELAY_MSOverride de backoff base em inteiro positivo (padrão 500)
VariávelComportamento
DEBUG_CURSORHabilita logs de debug do provedor; 2/verbose para trechos detalhados de payload
DEBUG_CURSOR_LOGCaminho de arquivo opcional para saída de log de debug JSONL
VariávelComportamento
PI_CACHE_RETENTIONSe long, habilita retenção longa onde suportado (anthropic, openai-responses, resolução de retenção Bedrock)

VariávelUsada por
EXA_API_KEYProvedor de busca Exa e ferramentas MCP Exa
BRAVE_API_KEYProvedor de busca Brave
PERPLEXITY_API_KEYModo chave API do provedor de busca Perplexity
TAVILY_API_KEYProvedor de busca Tavily
ZAI_API_KEYProvedor de busca z.ai (também verifica OAuth armazenado em agent.db)
OPENAI_API_KEY / OAuth Codex no DBDisponibilidade/autenticação do provedor de busca Codex

packages/coding-agent/src/web/search/auth.ts resolve credenciais de busca web Anthropic nesta ordem:

  1. ANTHROPIC_SEARCH_API_KEY (+ opcional ANTHROPIC_SEARCH_BASE_URL)
  2. Entrada de provedor em models.json com api: "anthropic-messages"
  3. Credenciais OAuth Anthropic de agent.db (não deve expirar dentro do buffer de 5 minutos)
  4. Fallback genérico de env Anthropic: chave do provedor (ANTHROPIC_FOUNDRY_API_KEY/ANTHROPIC_OAUTH_TOKEN/ANTHROPIC_API_KEY) + opcional ANTHROPIC_BASE_URL (FOUNDRY_BASE_URL quando o modo Foundry está habilitado)

Variáveis relacionadas:

VariávelPadrão / comportamento
ANTHROPIC_SEARCH_API_KEYChave de busca explícita de maior prioridade
ANTHROPIC_SEARCH_BASE_URLPadrão https://api.anthropic.com quando omitida
ANTHROPIC_SEARCH_MODELPadrão claude-haiku-4-5
ANTHROPIC_BASE_URLURL base de fallback genérica para o caminho de autenticação nível 4
VariávelComportamento
PI_AUTH_NO_BORROWSe definida, desabilita o caminho de empréstimo de token de aplicativo nativo macOS no fluxo de login Perplexity

VariávelPadrão / comportamento
PI_PYOverride do modo de ferramenta Python: 0/bash=bash-only, 1/py=ipy-only, mix/both=both; valores inválidos são ignorados
PI_PYTHON_SKIP_CHECKSe 1, pula verificações de disponibilidade/aquecimento do kernel Python
PI_PYTHON_GATEWAY_URLSe definida, usa gateway de kernel externo em vez do gateway compartilhado local
PI_PYTHON_GATEWAY_TOKENToken de autenticação opcional para gateway externo (Authorization: token <value>)
PI_PYTHON_IPC_TRACESe 1, habilita caminho de rastreamento IPC de baixo nível no módulo de kernel
VIRTUAL_ENVCaminho de venv de maior prioridade para resolução do runtime Python

Comportamento condicional extra:

  • Se BUN_ENV=test ou NODE_ENV=test, as verificações de disponibilidade do Python são tratadas como OK e o aquecimento é ignorado.
  • A filtragem de ambiente Python nega chaves API comuns e permite variáveis base seguras + prefixos LC_, XDG_, PI_.

VariávelPadrão / comportamento
PI_SMOL_MODELOverride efêmero de model-role para smol (CLI --smol tem precedência)
PI_SLOW_MODELOverride efêmero de model-role para slow (CLI --slow tem precedência)
PI_PLAN_MODELOverride efêmero de model-role para plan (CLI --plan tem precedência)
PI_NO_TITLESe definida (qualquer valor não vazio), desabilita a geração automática de título de sessão na primeira mensagem do usuário
NULL_PROMPTSe true, o construtor de prompt de sistema retorna string vazia
PI_BLOCKED_AGENTBloqueia um tipo específico de subagente na ferramenta de tarefa
PI_SUBPROCESS_CMDSubstitui o comando de spawn do subagente (bypass da resolução xcsh / xcsh.cmd)
PI_TASK_MAX_OUTPUT_BYTESMáximo de bytes de saída capturados por subagente (padrão 500000)
PI_TASK_MAX_OUTPUT_LINESMáximo de linhas de saída capturadas por subagente (padrão 5000)
PI_TIMINGSe 1, habilita logs de instrumentação de timing de startup/ferramenta
PI_DEBUG_STARTUPHabilita prints de debug de estágio de startup para stderr em múltiplos caminhos de startup
PI_PACKAGE_DIRSubstitui a resolução do diretório base de assets do pacote (busca de caminhos de docs/exemplos/changelog)
PI_DISABLE_LSPMUXSe 1, desabilita detecção/integração do lspmux e força o spawn direto do servidor LSP
LITELLM_BASE_URLURL base do proxy LiteLLM. Quando definida com LITELLM_API_KEY, dispara a auto-geração do models.yml na primeira execução e auto-reparo em cada startup
LM_STUDIO_BASE_URLOverride da URL base de descoberta implícita padrão do LM Studio (http://127.0.0.1:1234/v1 se não definida)
OLLAMA_BASE_URLOverride da URL base de descoberta implícita padrão do Ollama (http://127.0.0.1:11434 se não definida)
LLAMA_CPP_BASE_URLOverride da URL base de descoberta implícita padrão do Llama.cpp (http://127.0.0.1:8080 se não definida)
PI_EDIT_VARIANTSe hashline, força o modo de exibição hashline read/grep quando a ferramenta de edição está disponível
PI_NO_PTYSe 1, desabilita o caminho PTY interativo para a ferramenta bash

PI_NO_PTY também é definida internamente quando o CLI --no-pty é usado.


6) Caminhos raiz de armazenamento e configuração

Seção intitulada “6) Caminhos raiz de armazenamento e configuração”

Estas são consumidas via @f5-sales-demo/pi-utils/dirs e afetam onde o coding-agent armazena dados.

VariávelPadrão / comportamento
PI_CONFIG_DIRNome do diretório raiz de configuração sob o home (padrão .xcsh)
PI_CODING_AGENT_DIROverride completo para o diretório do agente (padrão ~/<PI_CONFIG_DIR ou .xcsh>/agent)
PWDUsado ao fazer correspondência do diretório de trabalho atual canônico em helpers de caminho

(De packages/utils/src/procmgr.ts e integração da ferramenta bash do coding-agent.)

VariávelComportamento
PI_BASH_NO_CISuprime a injeção automática de CI=true no ambiente de shell gerado
CLAUDE_BASH_NO_CIAlias legado de fallback para PI_BASH_NO_CI
PI_BASH_NO_LOGINDestinada a desabilitar o modo de shell de login
CLAUDE_BASH_NO_LOGINAlias legado de fallback para PI_BASH_NO_LOGIN
PI_SHELL_PREFIXWrapper de prefixo de comando opcional
CLAUDE_CODE_SHELL_PREFIXAlias legado de fallback para PI_SHELL_PREFIX
VISUALComando de editor externo preferido
EDITORComando de editor externo de fallback

Nota da implementação atual: PI_BASH_NO_LOGIN/CLAUDE_BASH_NO_LOGIN são lidas, mas a implementação atual de getShellArgs() retorna ['-l','-c'] em ambas as ramificações (efetivamente sem efeito hoje).


8) Detecção de UI/tema/sessão (env auto-detectado)

Seção intitulada “8) Detecção de UI/tema/sessão (env auto-detectado)”

Estas são lidas como sinais de runtime; geralmente são definidas pelo terminal/SO em vez de configuradas manualmente.

VariávelUsada para
COLORTERM, TERM, WT_SESSIONDetecção de capacidade de cor (modo de cor do tema)
COLORFGBGAuto-detecção de fundo claro/escuro do terminal
TERM_PROGRAM, TERM_PROGRAM_VERSION, TERMINAL_EMULATORIdentidade do terminal no prompt/contexto do sistema
KDE_FULL_SESSION, XDG_CURRENT_DESKTOP, DESKTOP_SESSION, XDG_SESSION_DESKTOP, GDMSESSION, WINDOWMANAGERDetecção de desktop/gerenciador de janelas no prompt/contexto do sistema
KITTY_WINDOW_ID, TMUX_PANE, TERM_SESSION_ID, WT_SESSIONIDs de breadcrumb de sessão estáveis por terminal
SHELL, ComSpec, TERM_PROGRAM, TERMDiagnósticos de informações do sistema
APPDATA, XDG_CONFIG_HOMEResolução de caminho de configuração do lspmux
HOMEEncurtamento de caminho na UI de comando MCP

VariávelComportamento
PI_DEVHabilita diagnósticos verbosos de carregamento de addon nativo em packages/natives

10) Flags de runtime da TUI (pacote compartilhado, afeta a UX do coding-agent)

Seção intitulada “10) Flags de runtime da TUI (pacote compartilhado, afeta a UX do coding-agent)”
VariávelComportamento
PI_NOTIFICATIONSoff / 0 / false suprimem notificações de desktop
PI_TUI_WRITE_LOGSe definida, registra escritas da TUI em arquivo
PI_HARDWARE_CURSORSe 1, habilita modo de cursor de hardware
PI_CLEAR_ON_SHRINKSe 1, limpa linhas vazias quando o conteúdo encolhe
PI_DEBUG_REDRAWSe 1, habilita log de debug de redesenho
PI_TUI_DEBUGSe 1, habilita caminho de dump de debug profundo da TUI

VariávelComportamento
PI_COMMIT_TEST_FALLBACKSe true (case-insensitive), força o caminho de geração de commit por fallback
PI_COMMIT_NO_FALLBACKSe true, desabilita fallback quando o agente não retorna nenhuma proposta
PI_COMMIT_MAP_REDUCESe false, desabilita o caminho de análise de commit por map-reduce
DEBUGSe definida, stack traces de erro do agente de commit são impressos

Trate estas como segredos; não as registre em logs nem as commit:

  • Chaves de provedor/API e credenciais OAuth/bearer (todas as *_API_KEY, *_TOKEN, tokens de acesso/refresh OAuth)
  • Credenciais de nuvem (AWS_*, o caminho de GOOGLE_APPLICATION_CREDENTIALS pode expor material de conta de serviço)
  • Variáveis de autenticação de busca/provedor (EXA_API_KEY, BRAVE_API_KEY, PERPLEXITY_API_KEY, chaves de busca Anthropic)
  • Material mTLS Foundry (CLAUDE_CODE_CLIENT_CERT, CLAUDE_CODE_CLIENT_KEY, NODE_EXTRA_CA_CERTS quando aponta para bundles de CA privados)

O runtime Python também remove explicitamente muitas variáveis de chave comuns antes de gerar subprocessos de kernel (packages/coding-agent/src/ipy/runtime.ts).