Variáveis de ambiente
O Jarvis Code CLI usa variáveis de ambiente para controlar um pequeno número de comportamentos de execução — realocar o diretório de dados, desligar a telemetria e trocar de modelo temporariamente sem mexer no arquivo de configuração.
Importante: chaves de API não são configuradas aqui
Variáveis de credencial como JARVIS_API_KEY, ANTHROPIC_API_KEY e OPENAI_API_KEY não são lidas automaticamente das variáveis de ambiente do shell. Executar export JARVIS_API_KEY=xxx no terminal não entrega a chave a provedor nenhum — elas precisam ser escritas no config.toml, em [providers.<name>] ou na subtabela [providers.<name>.env].
A única exceção é a família JARVIS_MODEL_*, um canal explícito que de fato lê credenciais do shell — veja Definir um modelo por variáveis de ambiente.
Para o contexto completo, veja Sobrescritas de configuração: credenciais de provedor.
Caminhos principais
JARVIS_CODE_HOME
Sobrescreve o diretório raiz de dados; o padrão é ~/.jarvis-code. Uma vez definido, o arquivo de configuração, as sessões, os logs, as credenciais OAuth e todos os demais dados passam a ficar sob o novo caminho:
export JARVIS_CODE_HOME="/caminho/para/jarvis-code"Garanta que o diretório é gravável. Várias instâncias do Jarvis Code compartilhando o mesmo
JARVIS_CODE_HOMEcompartilham arquivos de configuração e de credenciais.
Para a estrutura completa do diretório de dados, veja Locais de dados.
JARVIS_DISABLE_TELEMETRY
Defina como 1 para desligar o envio anônimo de telemetria (também aceita true, yes, y, sem diferenciar maiúsculas):
export JARVIS_DISABLE_TELEMETRY=1Família JARVIS_MODEL_*
Troca de modelo temporariamente sem modificar o config.toml — quando JARVIS_MODEL_NAME está definido, o CLI sintetiza um provedor temporário em memória; a mudança não persiste após reiniciar. Veja Definir um modelo por variáveis de ambiente.
JARVIS_CODE_CUSTOM_HEADERS
Anexa cabeçalhos HTTP personalizados a toda requisição de modelo — tanto as requisições de chat de LLM (em todos os protocolos de provedor) quanto as requisições de listagem /models. Útil quando um gateway roteia por cabeçalho, por exemplo para fixar um cluster específico:
export JARVIS_CODE_CUSTOM_HEADERS=$'X-Gateway-Cluster: my-cluster\nX-Custom-Tag: debug'O formato espelha o de ANTHROPIC_CUSTOM_HEADERS: linhas Name: Value separadas por quebra de linha. Nomes e valores têm espaços removidos nas pontas, e linhas sem dois-pontos são ignoradas.
Adicionado
Adicionado na 0.20.2.
Precedência: os cabeçalhos de identidade Kimi (
User-Agent,X-Msh-*) e ocustom_headersde um provedor noconfig.toml(veja Arquivos de configuração) sobrescrevem entradas de mesmo nome definidas aqui. A autenticação depende do protocolo: nos protocoloskimi,openaieopenai_responses, uma entradaAuthorizationexata substitui o bearer token gerado, enquanto requisições de listagem/modelsmantêm a autenticação própria. Uma variação de caixa comoauthorizationnunca é tratada como o mesmo nome — ela é combinada com o cabeçalho real, o que pode quebrar as requisições. Não use esta variável para autenticação nem para outros cabeçalhos reservados. Usecustom_headersquando os cabeçalhos precisarem variar por provedor.
Nomes de chave de credencial de provedor (escritos no config.toml)
Os nomes de chave abaixo não são lidos diretamente do shell — são nomes de chave escritos dentro da subtabela [providers.<name>.env] do config.toml, servindo como valores de fallback para api_key e base_url. O CLI lê apenas do arquivo de configuração, nunca de process.env.
Esse desenho permite manter as convenções de nome de chave familiares enquanto centraliza o gerenciamento de segredos no arquivo de configuração:
[providers.kimi.env]
JARVIS_API_KEY = "sk-xxx"
JARVIS_BASE_URL = "https://api.moonshot.ai/v1"Nomes de chave por provedor:
| Chave | Provedor aplicável | Padrão |
|---|---|---|
JARVIS_API_KEY | Kimi / Moonshot | Nenhum |
JARVIS_BASE_URL | Kimi / Moonshot | https://api.moonshot.ai/v1 |
ANTHROPIC_API_KEY | Anthropic | Nenhum |
ANTHROPIC_BASE_URL | Anthropic | Segue o padrão do SDK da Anthropic |
OPENAI_API_KEY | OpenAI (openai e openai_responses) | Nenhum |
OPENAI_BASE_URL | OpenAI (openai e openai_responses) | https://api.openai.com/v1 |
GOOGLE_API_KEY | Google GenAI, Vertex AI | Nenhum |
VERTEXAI_API_KEY | Vertex AI | Nenhum |
GOOGLE_CLOUD_PROJECT | Vertex AI | Nenhum |
GOOGLE_CLOUD_LOCATION | Vertex AI | Nenhum |
WARNING
O GOOGLE_APPLICATION_CREDENTIALS (caminho de um arquivo JSON de conta de serviço) é a única exceção que passa pelo mecanismo de variáveis de ambiente do sistema — ele é lido diretamente pelo SDK do Google via o fluxo ADC padrão, e o CLI não participa. Todos os demais nomes de chave precisam estar na subtabela [providers.<name>.env] para valer.
Para a referência completa de tipos e campos de provedor, veja Provedores e modelos.
OAuth e serviços gerenciados
Este grupo de variáveis redireciona a autenticação OAuth e os endpoints de serviço gerenciado para um ambiente auto-hospedado ou de teste. Elas não são necessárias no uso cotidiano.
| Variável | Finalidade | Padrão |
|---|---|---|
JARVIS_CODE_OAUTH_HOST | Host de autenticação OAuth; prioridade máxima | Recorre a JARVIS_OAUTH_HOST quando não definida |
JARVIS_OAUTH_HOST | Host de autenticação OAuth; fallback de JARVIS_CODE_OAUTH_HOST | Recorre a https://auth.kimi.com quando não definida |
JARVIS_CODE_BASE_URL | Base URL da API gerenciada usada após o login OAuth | https://api.kimi.com/coding/v1 |
WARNING
JARVIS_CODE_BASE_URL (serviço gerenciado por OAuth, apontando para kimi.com) e JARVIS_BASE_URL (conexão direta por chave de API, apontando para moonshot.ai) são duas variáveis distintas. Use cada uma no contexto apropriado.
Definir um modelo por variáveis de ambiente (JARVIS_MODEL_*)
Quer trocar de modelo para testar sem mexer no config.toml? Quando JARVIS_MODEL_NAME está definido, o CLI sintetiza em memória um provedor e um alias de modelo temporários a partir das variáveis JARVIS_MODEL_* — nada é escrito de volta no arquivo de configuração. Essas variáveis têm prioridade sobre default_model no config.toml, mas a opção -m <alias> na inicialização continua tendo a prioridade máxima.
export JARVIS_MODEL_NAME="kimi-for-coding"
export JARVIS_MODEL_API_KEY="YOUR_API_KEY"
export JARVIS_MODEL_BASE_URL="https://api.example.com/v1"
export JARVIS_MODEL_MAX_CONTEXT_SIZE="262144"
export JARVIS_MODEL_CAPABILITIES="image_in,thinking"
jarvisLista completa de variáveis:
| Variável | Obrigatória | Finalidade | Padrão |
|---|---|---|---|
JARVIS_MODEL_NAME | Sim (também é o interruptor de ativação) | Id do modelo enviado à API | — |
JARVIS_MODEL_API_KEY | Sim | Chave de API | — |
JARVIS_MODEL_PROVIDER_TYPE | Não | Tipo de provedor: kimi, anthropic, openai | kimi |
JARVIS_MODEL_BASE_URL | Não | Base URL da API | Cada tipo tem seu próprio padrão |
JARVIS_MODEL_MAX_CONTEXT_SIZE | Não | Tamanho máximo de contexto (tokens) | 262144 (256 K) |
JARVIS_MODEL_CAPABILITIES | Não | Tags de capacidade separadas por vírgula, unidas às detectadas automaticamente | image_in,thinking |
JARVIS_MODEL_DISPLAY_NAME | Não | Nome exibido em /model | Recorre a JARVIS_MODEL_NAME |
JARVIS_MODEL_MAX_OUTPUT_SIZE | Não | Limite de saída por requisição (somente anthropic); quando definido, supera o teto embutido do Claude | Padrão do modelo |
JARVIS_MODEL_REASONING_KEY | Não | Sobrescrita do nome do campo de raciocínio (somente openai) | Detectado automaticamente |
JARVIS_MODEL_THINKING_EFFORT | Não | Nível de esforço de raciocínio: low/medium/high/xhigh/max | — |
JARVIS_MODEL_ADAPTIVE_THINKING | Não | Força raciocínio adaptativo ligado ou desligado (somente anthropic) | Inferido do nome do modelo |
Se JARVIS_MODEL_NAME estiver definido mas faltar uma variável obrigatória, a inicialização falha imediatamente com uma mensagem de erro clara.
Interruptores de execução
Interruptores que controlam o comportamento de subsistemas como telemetria, tarefas em segundo plano e o marketplace de plugins:
| Variável | Finalidade | Valores válidos |
|---|---|---|
JARVIS_DISABLE_TELEMETRY | Desativa o envio anônimo de telemetria | 1, true, yes, y (sem diferenciar maiúsculas) |
JARVIS_CODE_PASSWORD | Define uma credencial de autenticação paralela para a API do jarvis server, válida junto do bearer token; recomendada ao escutar além do loopback — veja Servidor local e API | Qualquer string não vazia; quando não definida, apenas o token vale |
JARVIS_CODE_BACKGROUND_KEEP_ALIVE_ON_EXIT | Se deve manter tarefas em segundo plano quando a sessão fecha; tem prioridade sobre o config.toml. O padrão é interrompê-las na saída | Verdadeiro: 1/true/yes/on; falso: 0/false/no/off |
JARVIS_CODE_BACKGROUND_MAX_RUNNING_TASKS | Limite de tarefas em segundo plano rodando ao mesmo tempo; tem prioridade sobre [background] max_running_tasks no config.toml (sem definição, sem limite) | Inteiro positivo; valores inválidos são ignorados |
JARVIS_IMAGE_MAX_EDGE_PX | Teto do lado maior (px) na compressão de imagem; tem prioridade sobre [image] max_edge_px no config.toml (padrão 2000) | Inteiro positivo; valores inválidos são ignorados |
JARVIS_IMAGE_READ_BYTE_BUDGET | Orçamento de bytes por imagem em leituras iniciadas pelo modelo (leituras padrão de ReadMediaFile); tem prioridade sobre [image] read_byte_budget no config.toml (padrão 262144, ou 256 KB) | Inteiro positivo; valores inválidos são ignorados |
JARVIS_CODE_PLUGIN_MARKETPLACE_URL | Sobrescreve o JSON do marketplace de plugins carregado por /plugins; útil para servidores locais de desenvolvimento, arquivos de CDN de staging ou diretórios alternativos de marketplace | https://code.kimi.com/kimi-code/plugins/marketplace.json; também aceita URLs http://, file:// e caminhos locais |
JARVIS_CODE_AGENT_SWARM_MAX_CONCURRENCY | Limita quantos subagentes de AgentSwarm rodam ao mesmo tempo durante a subida inicial; deixe sem definir para não limitar | Inteiro positivo; valores inválidos falham imediatamente |
JARVIS_SUBAGENT_TIMEOUT_MS | Tempo máximo de relógio (ms) que um subagente Agent pode rodar; tem prioridade sobre [subagent] timeout_ms no config.toml (padrão 7200000, ou 2 horas) | Inteiro positivo; valores inválidos recorrem à configuração ou ao padrão |
JARVIS_CODE_SWARM_TIMEOUT_MS | Tempo máximo de relógio (ms) que um subagente AgentSwarm pode rodar; tem prioridade sobre [swarm] timeout_ms no config.toml (padrão 7200000, ou 2 horas) | Inteiro positivo; valores inválidos recorrem à configuração ou ao padrão |
JARVIS_CODE_IDENTITY_NAME | Nome de exibição pelo qual o agente se identifica no system prompt; tem prioridade sobre [identity] name no config.toml e nunca é escrito de volta nele | Qualquer string não vazia; valores em branco contam como não definidos |
JARVIS_CODE_IDENTITY_SLUG | Identificador de protocolo do token de produto no User-Agent enviado a provedores de terceiros e do nome do cliente MCP; tem prioridade sobre [identity] slug. Derivado do nome quando não definido | Qualquer string não vazia; normalizado para minúsculas, com sequências não alfanuméricas viradas - |
JARVIS_CODE_BUILTIN_PRODUCT_SKILLS | Se as skills embutidas que documentam o próprio Jarvis Code são oferecidas ao modelo; tem prioridade sobre builtin_product_skills no config.toml (padrão habilitado) | Verdadeiro: 1/true/yes/on; falso: 0/false/no/off |
JARVIS_CODE_TUI_FULL_SCREEN | Habilita a interface experimental de tela cheia: viewport de transcrição rolável, seleção de texto com o mouse, links clicáveis e busca na transcrição com Ctrl-Shift-F | 1 habilita; qualquer outra coisa mantém a interface inline normal |
JARVIS_CODE_EXPERIMENTAL_SECONDARY_MODEL | Habilita o pool de modelos de subagente experimental em todos os modos de inicialização, inclusive na TUI interativa; o interruptor mestre JARVIS_CODE_EXPERIMENTAL_FLAG=1 também habilita | Verdadeiro: 1/true/yes/on; falso: 0/false/no/off |
JARVIS_SECONDARY_MODEL | Modelo secundário; tem prioridade sobre [secondary_model] model no config.toml. Com o experimento de modelo secundário habilitado, subagentes recém-criados (Agent / AgentSwarm) usam esse modelo por padrão, em vez de herdar o do agente principal | O alias de uma entrada [models] configurada, por exemplo jarvis-code/kimi-for-coding; valores em branco são ignorados |
JARVIS_SECONDARY_EFFORT | Esforço de raciocínio do modelo secundário; tem prioridade sobre [secondary_model] default_effort no config.toml e só vale quando o modelo e o experimento estão habilitados | Um valor de esforço, por exemplo low; valores em branco são ignorados |
JARVIS_CODE_EXPERIMENTAL_SUBAGENT_FORK | Habilita o parâmetro experimental fork nas ferramentas Agent e AgentSwarm, permitindo ao modelo iniciar um subagente com um instantâneo do histórico de conversa de quem chamou, em vez de contexto vazio; o interruptor mestre JARVIS_CODE_EXPERIMENTAL_FLAG=1 também habilita | Verdadeiro: 1/true/yes/on; falso: 0/false/no/off |
JARVIS_MCP_STARTUP_TIMEOUT_MS | Tempo limite global padrão de conexão (ms) para todos os servidores MCP; tem prioridade sobre [mcp] startup_timeout_ms no config.toml, mas um startupTimeoutMs por servidor no mcp.json ainda vence (padrão 30000) | Inteiro de 1 a 2147483647; valores inválidos são ignorados |
JARVIS_MCP_TOOL_TIMEOUT_MS | Tempo limite global padrão (ms) de uma chamada de ferramenta para todos os servidores MCP; tem prioridade sobre [mcp] tool_timeout_ms no config.toml, mas um toolTimeoutMs por servidor no mcp.json ainda vence (padrão 60000) | Inteiro de 1 a 2147483647; valores inválidos são ignorados |
JARVIS_LOOP_MAX_STEPS_PER_TURN | Máximo de passos do agente por turno; tem prioridade sobre [loop_control] max_steps_per_turn no config.toml (sem definição ou 0 significa ilimitado) | Inteiro não negativo; valores inválidos são ignorados |
JARVIS_LOOP_MAX_ATTEMPTS_PER_STEP | Máximo de tentativas totais de um passo que falha (incluindo a primeira); tem prioridade sobre [loop_control] max_attempts_per_step no config.toml (padrão 10). O depreciado JARVIS_LOOP_MAX_RETRIES_PER_STEP ainda é honrado com um aviso quando esta variável não está definida | Inteiro não negativo; valores inválidos são ignorados |
JARVIS_CODE_INFINITE_RETRY | Repete indefinidamente toda requisição de LLM que falhar — tanto passos do turno quanto operações em segundo plano como a compactação — em vez de falhar a tarefa; as esperas usam backoff exponencial (limitado a 32 s) e honram o cabeçalho Retry-After do servidor, e abortar ainda cancela imediatamente. Destinado a avaliações longas sem supervisão contra endpoints que podem falhar temporariamente | Verdadeiro: 1/true/yes/on; falso: 0/false/no/off |
JARVIS_TOKEN_COUNTING_STRATEGY | Qual contagem de tokens de contexto é reportada externamente (a exibição de tamanho de contexto); tem prioridade sobre [token_counting] strategy no config.toml (padrão measured+estimated) | measured+estimated, measured, estimated (sem diferenciar maiúsculas); valores inválidos são ignorados |
JARVIS_WEB_SEARCH_BASE_URL | URL da API do serviço de busca web (WebSearch); tem prioridade sobre [services.moonshot_search] base_url no config.toml e habilita o serviço sem aquela seção. Credenciais persistidas e cabeçalhos personalizados não são encaminhados a um endpoint escolhido por variável de ambiente | String não vazia; valores em branco são ignorados |
JARVIS_WEB_SEARCH_API_KEY | Chave de API do serviço de busca web (WebSearch); substitui tanto a chave configurada quanto a credencial OAuth quando definida | String não vazia; valores em branco são ignorados |
JARVIS_WEB_FETCH_BASE_URL | URL da API do serviço de busca de página (FetchURL); tem prioridade sobre [services.moonshot_fetch] base_url. Credenciais persistidas e cabeçalhos personalizados não são encaminhados a um endpoint escolhido por variável de ambiente. Sem endpoint de ambiente ou de configuração, usuários autenticados tentam o serviço gerenciado de fetch por OAuth antes de requisições locais diretas | String não vazia; valores em branco são ignorados |
JARVIS_WEB_FETCH_API_KEY | Chave de API do serviço de busca de página (FetchURL); substitui tanto a chave configurada quanto a credencial OAuth quando definida | String não vazia; valores em branco são ignorados |
JARVIS_BRAVE_BASE_URL | URL da API do backend Brave Search; tem prioridade sobre [services.brave] base_url no config.toml. Credenciais persistidas e cabeçalhos personalizados não são encaminhados a um endpoint escolhido por variável de ambiente. Lido apenas pelo engine padrão agent-core-v2 | String não vazia; valores em branco são ignorados |
JARVIS_BRAVE_API_KEY | Chave de API do backend Brave Search; tem prioridade sobre [services.brave] api_key. Exige active_search_provider = "brave" para servir o WebSearch. Lido apenas pelo engine padrão agent-core-v2 | String não vazia; valores em branco são ignorados |
JARVIS_CODE_EXPERIMENTAL_FLAG | Interruptor mestre: habilita todos os recursos experimentais registrados neste processo; não seleciona o engine do agente. Veja Flags experimentais | 1, true, yes, on |
JARVIS_CODE_EXPERIMENTAL_TOWER | Habilita o modo Tower; apenas engine v2, e é preciso reiniciar depois de habilitar | Verdadeiro: 1/true/yes/on; falso: 0/false/no/off |
JARVIS_CODE_EXPERIMENTAL_AUTO_SESSION_TITLE | Habilita títulos de sessão gerados por IA; exige login OAuth gerenciado | Verdadeiro: 1/true/yes/on; falso: 0/false/no/off |
JARVIS_CODE_EXPERIMENTAL_TOOL_SELECT | Habilita a divulgação progressiva de ferramentas, para esquemas de ferramenta MCP carregarem sob demanda; apenas engine legado | Verdadeiro: 1/true/yes/on; falso: 0/false/no/off |
JARVIS_CODE_EXPERIMENTAL_PERSISTENCE_MINIDB_READMODEL | Usa o read model baseado em minidb para indexação de sessões e replay de wire; ligado por padrão | Verdadeiro: 1/true/yes/on; falso: 0/false/no/off |
JARVIS_CODE_EXPERIMENTAL_SEARCH_WORKER | Executa o índice global de busca em uma thread de worker dedicada; ligado por padrão | Verdadeiro: 1/true/yes/on; falso: 0/false/no/off |
JARVIS_CODE_LEGACY_FLAG | Usa o engine legado agent-core para jarvis, jarvis -p, jarvis doctor, jarvis acp, jarvis export e jarvis provider; esses comandos usam agent-core-v2 por padrão | 1, true, yes, on |
JARVIS_SHELL_PATH | Sobrescreve o caminho do Git Bash no Windows (usado quando a detecção automática falha) | Caminho absoluto |
JARVIS_MODEL_MAX_COMPLETION_TOKENS | Teto rígido de max_completion_tokens por passo de LLM; aplica-se apenas ao provedor kimi | Inteiro positivo; 0 ou negativo desativa o limite |
JARVIS_MODEL_TEMPERATURE | Temperatura de amostragem de toda requisição; aplica-se apenas ao provedor kimi (global — independente de JARVIS_MODEL_NAME) | Número, por exemplo 0.3 |
JARVIS_MODEL_TOP_P | top_p de amostragem por núcleo de toda requisição; aplica-se apenas ao provedor kimi (global) | Número, por exemplo 0.95 |
JARVIS_MODEL_THINKING_EFFORT | Força um esforço de raciocínio específico no protocolo (thinking.effort), ignorando o support_efforts declarado pelo modelo; aplica-se apenas ao provedor kimi, e apenas com o raciocínio ligado | Um valor de esforço, por exemplo max |
JARVIS_MODEL_THINKING_KEEP | Repasse de raciocínio preservado; no kimi é enviado como thinking.keep, no anthropic (Claude e o modo compatível com Anthropic do Kimi) é enviado como uma edição context_management clear_thinking_20251015 (habilitar o keep roteia requisições Anthropic para a API Messages beta); sobrescreve [thinking] keep (cujo padrão é "all"); só é injetado com o raciocínio ligado | Um valor que a API aceite, por exemplo all; um valor de desligamento (false/0/no/off/none/null) o desativa |
JARVIS_VISUAL_MODEL | Alias do modelo visual usado em tarefas de inspeção de imagem, captura de tela e vídeo; tem prioridade sobre [visual_model] model no config.toml. Enquanto definido, nunca vaza para o config.toml. Lido apenas pelo engine padrão agent-core-v2 | Alias de uma entrada [models] configurada |
JARVIS_VISUAL_EFFORT | Esforço de raciocínio aplicado quando tarefas visuais usam o modelo visual; tem prioridade sobre [visual_model] default_effort | Um valor de esforço, por exemplo low |
JARVIS_CODE_NO_AUTO_UPDATE | Desativa completamente a verificação prévia de atualização — sem checagem, sem instalação em segundo plano, sem prompt. O alias legado JARVIS_CLI_NO_AUTO_UPDATE também é honrado | Verdadeiro: 1/true/yes/on |
JARVIS_DISABLE_CRON | Desativa a ferramenta de tarefas agendadas (o CronCreate rejeita novos agendamentos; tarefas existentes não disparam) | 1 para desativar |
As variáveis JARVIS_CODE_INFINITE_RETRY, JARVIS_CODE_IDENTITY_* e JARVIS_CODE_BUILTIN_PRODUCT_SKILLS são lidas pelo engine padrão agent-core-v2. O caminho legado de jarvis e jarvis -p, selecionado por JARVIS_CODE_LEGACY_FLAG=1, as ignora. Já JARVIS_SECONDARY_MODEL e JARVIS_SECONDARY_EFFORT são lidas apenas pelo engine legado, e o engine padrão as ignora. O JARVIS_CODE_EXPERIMENTAL_SECONDARY_MODEL é lido por ambos: ele controla o pool de modelos de subagente do v2 e a receita de modelo secundário do legado.
Flags experimentais
Recursos experimentais são registrados por domínio do engine e cada um declara sua própria variável de ambiente. O JARVIS_CODE_EXPERIMENTAL_FLAG=1 é o interruptor mestre que habilita todas as flags registradas no processo; ele não seleciona o engine do agente. Uma flag que já vem ligada é desligada definindo sua variável com um valor falso.
| Id da flag | Variável de ambiente | Padrão | O que faz |
|---|---|---|---|
tower | JARVIS_CODE_EXPERIMENTAL_TOWER | desligada | Modo Tower: coordena vários agentes em um mesmo objetivo, controlado por /tower. Apenas engine v2, e exige reinício depois de habilitar |
secondary-model | JARVIS_CODE_EXPERIMENTAL_SECONDARY_MODEL | desligada | O pool de modelos de subagente. Lida pelos dois engines |
subagent-fork | JARVIS_CODE_EXPERIMENTAL_SUBAGENT_FORK | desligada | O parâmetro fork nas ferramentas Agent e AgentSwarm, iniciando um subagente a partir de um instantâneo do histórico de quem chamou |
auto_session_title | JARVIS_CODE_EXPERIMENTAL_AUTO_SESSION_TITLE | desligada | Títulos de sessão gerados por IA pela ferramenta gerenciada chat_title. Exige login OAuth gerenciado |
tool-select | JARVIS_CODE_EXPERIMENTAL_TOOL_SELECT | desligada | Divulgação progressiva de ferramentas: mantém esquemas de ferramenta MCP fora da lista de nível superior e deixa o modelo carregá-los sob demanda. Apenas engine legado |
persistence_minidb_readmodel | JARVIS_CODE_EXPERIMENTAL_PERSISTENCE_MINIDB_READMODEL | ligada | Usa o read model baseado em minidb para indexação de sessões e replay de wire |
search_worker | JARVIS_CODE_EXPERIMENTAL_SEARCH_WORKER | ligada | Executa o índice global de busca em uma thread de worker dedicada, em vez da thread principal do servidor |
As flags também podem ser definidas na seção [experimental] do config.toml, ou alternadas pelo painel /experiments na TUI. A variável de ambiente tem prioridade sobre o arquivo de configuração.
Logs de diagnóstico
Estas variáveis controlam o nível de log e a rotação de arquivos, e são lidas uma única vez na inicialização do processo:
| Variável | Finalidade | Padrão |
|---|---|---|
JARVIS_LOG_LEVEL | Nível de log: off, error, warn, info, debug | info |
JARVIS_LOG_GLOBAL_MAX_BYTES | Máximo de bytes por arquivo de log global | 6291456 (6 MB) |
JARVIS_LOG_GLOBAL_FILES | Quantidade de arquivos de log global a reter | 5 |
JARVIS_LOG_SESSION_MAX_BYTES | Máximo de bytes por arquivo de log de sessão | 5242880 (5 MB) |
JARVIS_LOG_SESSION_FILES | Quantidade de arquivos de log de sessão a reter | 3 |
Variáveis de ambiente do sistema
O CLI também lê algumas variáveis de sistema padrão para detectar o ambiente de execução; ele não as modifica:
HOME: usada para resolver o caminho de dados padrãoVISUAL,EDITOR: comando de editor externo (VISUALtem precedência)PATH: usada para localizar dependências comorg,fd,fdfindegit; no Windows, a detecção do Git Bash checa cadagit.exeencontrado noPATH, incluindo shims de gerenciadores de pacote como o ScoopNO_COLOR,FORCE_COLOR: controlam a saída colorida (seguindo a convenção de no-color.org)CI: quando não vazia e diferente de"0", desativa a detecção de tema e recorre ao tema escuroTERM_PROGRAM,TERM,TMUX: detectam recursos do terminal e suporte a notificaçõesDISPLAY,WAYLAND_DISPLAY,XDG_SESSION_TYPE: detectam sessões gráficas no Linux (para recursos de área de transferência e imagem)WSL_DISTRO_NAME,WSLENV: detectam o WSL para a ponte de área de transferência via PowerShellLOCALAPPDATA: usada no Windows como alternativa ao procurar o caminho de instalação do Git Bash
Proxy HTTP
O Jarvis Code honra as variáveis de ambiente padrão de proxy em todo o tráfego de saída — chamadas de API de modelo, servidores MCP, ferramentas web, telemetria, login e verificações de atualização:
HTTP_PROXY/http_proxy: proxy para requisiçõeshttp://HTTPS_PROXY/https_proxy: proxy para requisiçõeshttps://ALL_PROXY/all_proxy: proxy de fallback usado quando a variável específica do esquema não está definida; é aqui que normalmente se define um proxy SOCKSNO_PROXY/no_proxy: hosts separados por vírgula que passam ao largo do proxy
Proxies HTTP(S) e SOCKS são suportados. Um proxy SOCKS é reconhecido pelo esquema — socks5://, socks5h://, socks4:// ou socks:// (um alias de socks5://) — e normalmente é definido por ALL_PROXY (a forma usada por ferramentas como Clash e V2RayN). Um proxy HTTP(S) tem precedência sobre ALL_PROXY no tráfego HTTP/HTTPS.
O proxy é aplicado apenas quando uma dessas variáveis está definida; caso contrário, as conexões são diretas. Hosts de loopback (localhost, 127.0.0.1, ::1) sempre passam ao largo do proxy, então um servidor local, como um servidor MCP em localhost, continua funcionando com um proxy configurado — adicione seus próprios hosts internos a NO_PROXY para isentá-los também.
Servidores MCP stdio que rodam como processos filhos Node honram HTTP_PROXY, HTTPS_PROXY e NO_PROXY automaticamente quando a versão de Node do processo filho suporta NODE_USE_ENV_PROXY (Node ≥ 22.21 ou ≥ 24.5); o proxy SOCKS se aplica somente ao tráfego do próprio Jarvis Code.
Próximos passos
- Sobrescritas de configuração — como variáveis de ambiente, opções de CLI e o arquivo de configuração interagem por prioridade
- Locais de dados — estrutura de diretórios afetada por
JARVIS_CODE_HOME - Provedores e modelos — exemplos completos de conexão por tipo de provedor