Pular para o conteúdo
OmniRoute source

Environment Variables Reference (Português (Brasil))


Estes devem ser definidos antes da primeira execução. Sem eles, a aplicação se recusará a iniciar ou operará com padrões inseguros.

Variável Obrigatória Padrão Arquivo de origem Descrição
JWT_SECRET Sim (nenhum) src/lib/auth Assina/verifica todos os cookies de sessão do painel (JWT). Gere com openssl rand -base64 48.
API_KEY_SECRET Sim (nenhum) src/lib/db/apiKeys.ts Chave de criptografia AES para os valores das chaves de API armazenados no SQLite. Gere com openssl rand -hex 32.
INITIAL_PASSWORD Sim CHANGEME Script de inicialização Define a senha inicial de administrador do painel (corresponde ao padrão de .env.example — mantida propositalmente insegura para forçar uma alteração). Altere antes do primeiro uso. Após entrar, altere-a em Painel → Configurações → Segurança.
OMNIROUTE_WS_BRIDGE_SECRET Sim (produção) (não definida) src/app/api/internal/codex-responses-ws/route.ts Segredo compartilhado para a ponte WebSocket interna do Codex Responses. Autentica as solicitações da ponte entre o retransmissor WS do Electron/navegador e o OmniRoute. ⚠️ OBRIGATÓRIA em produção — quando não está definida, todas as solicitações à ponte WS são rejeitadas. Gere com openssl rand -base64 32.
OMNIROUTE_SW_BUILD_ID Não (SHA do git) next.config.mjs, scripts/build/assembleStandalone.mjs ID explícito para invalidação de cache do service worker do shell da PWA (#11779); é o primeiro na cadeia de resolução.
SOURCE_VERSION Não (não definida) next.config.mjs, scripts/build/assembleStandalone.mjs Segundo na cadeia — definido por sistemas de build de PaaS (por exemplo, no estilo Heroku) como o commit implantado.
NEXT_PUBLIC_SW_BUILD_ID Não (derivado) src/shared/components/PwaRegister.tsx Valor público definido no momento do build que o cliente usa para registrar /sw.js?v=…; derivado dos dois valores acima e, em seguida, do SHA do git.
OMNIROUTE_PEER_STAMP_TOKEN Não (automática) (automática a cada inicialização) src/server/authz/policies/management.ts Segredo por processo que comprova que a marca de IP do par confiável veio do próprio servidor HTTP do OmniRoute (scripts/dev/peer-stamp.mjs). O middleware de autorização confia na localidade da solicitação (restrição de rotas LOCAL_ONLY a loopback/LAN) somente quando a marca contém esse token. Gerado automaticamente a cada inicialização — deixe-o sem definir; fixe-o apenas em configurações com vários processos que precisam compartilhar a marca.
Janela do terminal
# Gere os quatro segredos de uma só vez:
echo "JWT_SECRET=$(openssl rand -base64 48)"
echo "API_KEY_SECRET=$(openssl rand -hex 32)"
echo "INITIAL_PASSWORD=$(openssl rand -base64 16)"
echo "OMNIROUTE_WS_BRIDGE_SECRET=$(openssl rand -base64 32)"

[!CAUTION] Nunca faça commit de arquivos .env com segredos reais no controle de versão. O .gitignore já exclui .env, mas verifique antes de enviar.


O OmniRoute usa SQLite (via better-sqlite3) para toda a persistência. Essas variáveis controlam a localização, a criptografia e o ciclo de vida dos dados.

Variável Padrão Arquivo de origem Descrição
DATA_DIR ~/.omniroute/ src/lib/db/core.ts Diretório raiz para o banco de dados SQLite, backups e arquivos de dados. Sobrescreva-o para volumes do Docker ou caminhos personalizados.
OMNIROUTE_ALLOW_DEFAULT_DATA_DIR (não definida) src/lib/dataPaths.ts Mecanismo de escape para a proteção de DATA_DIR em testes/avaliações (#10428). Testes e sondagens de avaliação/impressão do Node (-e/--eval/-p/--print, incluindo as formas --eval=/--print=) sem DATA_DIR são redirecionados para um diretório temporário descartável, para que não possam abrir o banco de dados real do operador; defina como 1 para voltar a usar o diretório real.
OMNIROUTE_BUILD_SHA (não definida) src/lib/monitoring/buildSha.ts SHA do Git do artefato em execução. Gravado por npm run build:release; pode ser injetado em contêineres distribuídos sem o sentinela dist/BUILD_SHA. Exposto como system.buildSha em /api/monitoring/health.
OMNIROUTE_RELEASE_REF origin/main scripts/build/buildProvenance.ts Referência com a qual a verificação de proveniência do empacotamento do artefato compara o SHA da compilação (#10427).
OMNIROUTE_ALLOW_CANARY_BUILD (não definida) scripts/build/buildProvenance.ts Defina como 1 para permitir o empacotamento de uma compilação cujo SHA não esteja na linha de lançamento, registrando-a como um canário deliberado em vez de reprovar na verificação (#10427).
OMNIROUTE_SMOKE_API_KEY (não definida) scripts/ops/deploy-canary.mjs Chave de API para a sondagem de smoke test da implantação canário, enviada como Authorization: Bearer em /v1/chat/completions. Usada apenas pelo script de implantação (#10429), nunca pelo servidor. Não está relacionada às variáveis OMNIROUTE_SMOKE_* do conjunto opcional de smoke tests da CLI (RUN_CLI_SMOKE=1, OMNIROUTE_SMOKE_BASE_URL/MODEL/API_KEY_ENV/TARGETS/TIMEOUT_MS em tests/integration/upstream-cli-smoke.int.test.ts) — consulte Integrações da CLI → Varredura de smoke tests reais.
OMNIROUTE_BUILDING (não definida) src/lib/buildPhase.ts Sinal da fase de compilação (#10060): definido como 1 por scripts/build/build-next-isolated.mjs e herdado por cada worker de compilação iniciado, para que a camada do banco de dados retorne um stub sem operação em vez de carregar o addon nativo better-sqlite3 (que encerra o worker de forma abrupta na saída). Nunca é definido para o servidor em execução.
OMNIROUTE_SKIP_NATIVE_DEP_CHECK 0 scripts/check/check-native-deps.mjs Defina como 1 para ignorar a verificação de pré-compilação das dependências nativas opcionais em árvores vendorizadas exóticas. Isso não torna compilável uma dependência ausente; use apenas quando as dependências nativas forem fornecidas por um canal externo.
OMNIROUTE_DATA_DIR (não definida) open-sse/executors/promptql/threadSticky.ts Alias de fallback para DATA_DIR, verificado apenas quando DATA_DIR não está definida. Usado para localizar o cache em disco das sessões fixas por thread do executor PromptQL (<dir>/promptql-thread-sessions.json); se nenhuma das variáveis estiver definida, o cache permanecerá apenas na memória (não será persistido entre reinicializações).
OMNIROUTE_PLUGINS_DIR (não definida) src/lib/plugins/scanner.ts Diretório lido pelo scanner de plugins em tempo de execução — e diretório raiz no qual o gerenciador de plugins instala —, sobrescrevendo o padrão derivado do diretório inicial (#11827). Aponte-o para a árvore de plugins montada via bind no Docker/K8s, em vez de mover HOME apenas para realocar o caminho de varredura (HOME também rege todos os outros comportamentos relativos ao diretório inicial). Não definida = ~/.omniroute/plugins, ou /tmp/.omniroute/plugins quando o processo não exporta nenhum diretório inicial — evitando a não detecção silenciosa que esta variável elimina. O diretório resolvido é registrado uma vez na inicialização como scanner.dir_resolved, junto com a entrada selecionada. Apenas no lado do servidor: os plugins de comando da CLI mantêm seu próprio OMNIROUTE_PLUGIN_PATH (seção 9).
STORAGE_ENCRYPTION_KEY (vazio = desabilitado) src/lib/db/encryption.ts Chave AES para criptografia completa do banco de dados SQLite em repouso. Gere com openssl rand -hex 32.
STORAGE_ENCRYPTION_KEY_VERSION v1 scripts/build/bootstrap-env.mjs, electron/main.js Rótulo de versão da chave de criptografia. Incremente-o ao realizar a rotação de chaves para permitir a descriptografia de backups antigos.
DISABLE_SQLITE_AUTO_BACKUP false src/lib/db/backup.ts Quando definido como true, ignora backups rotineiros/anteriores à gravação do arquivo SQLite (salvamento/limpeza de preços do models.dev e gravações de configurações). Backups manuais e anteriores à restauração ainda são executados. Isso não desabilita o snapshot de segurança durável obrigatório do executor de migrações nem a proteção contra migração em massa para um banco de dados persistente existente. Backups não manuais são limitados a, no máximo, um a cada 60 minutos. A opção Configurações → Armazenamento do painel pode desabilitar o backup automático rotineiro de forma independente.
OMNIROUTE_CRYPT_KEY (não definida) src/lib/db/encryption.ts Alias legado de STORAGE_ENCRYPTION_KEY. Aceito como alternativa quando a variável principal estiver ausente.
OMNIROUTE_API_KEY_BASE64 (não definida) src/lib/db/encryption.ts Alias legado (formato codificado em Base64) aceito como alternativa. Decodificado automaticamente antes do uso.
OMNIROUTE_DB_HEALTHCHECK_INTERVAL_MS (não definida) src/lib/db/core.ts Sobrescreve o intervalo da verificação de integridade periódica do SQLite (ms). Quando não definido, os valores padrão são derivados de NODE_ENV.
OMNIROUTE_WAL_TRUNCATE_INTERVAL_MS (removida) src/lib/db/walMaintenance.ts Removida. Uma execução periódica de wal_checkpoint(TRUNCATE) em produção pode invalidar o mapeamento compartilhado do wal-index e causar o encerramento do processo com SIGBUS (#13973), portanto, o agendador não existe mais. A variável não tem efeito: um valor positivo registra um aviso de descontinuação uma única vez, enquanto 0 ou a ausência de valor não gera mensagens. O WAL é mantido por checkpoints PASSIVE (abaixo) e truncado pelo checkpoint de encerramento.
OMNIROUTE_WAL_PASSIVE_INTERVAL_MS 300000 (5 min) src/lib/db/walMaintenance.ts Sobrescreve o intervalo frequente de wal_checkpoint(PASSIVE) (ms). Mantém pequeno o número de quadros WAL pendentes para que os checkpoints permaneçam rápidos e o arquivo WAL se mantenha limitado entre os truncamentos de encerramento. 0 desabilita.
OMNIROUTE_WAL_GUARD_MAX_MB 256 src/lib/db/walMaintenance.ts Quando uma execução PASSIVE encontra o arquivo WAL acima desse tamanho, executa wal_checkpoint(RESTART) para que o WAL recomece sem regravar o wal-index mapeado. Os checkpoints em modo de truncamento durante a execução foram removidos (consulte a linha OMNIROUTE_WAL_TRUNCATE_INTERVAL_MS).
OMNIROUTE_PRESSURE_SELF_RESTART false open-sse/utils/resourcePressure.ts Defina como 1/true/yes/on para encerrar o processo após a pressão crítica sobre os recursos persistir por OMNIROUTE_PRESSURE_SELF_RESTART_AFTER_MS, permitindo que um supervisor (systemd Restart=always, política de reinicialização do Docker) inicie um processo limpo em vez de retornar erros 503 indefinidamente.
OMNIROUTE_PRESSURE_SELF_RESTART_AFTER_MS 120000 (2 min) open-sse/utils/resourcePressure.ts Por quanto tempo a pressão crítica deve persistir antes que o encerramento para autorreinicialização seja acionado.
OMNIROUTE_SQLJS_WASM_PATH (detecção automática) src/lib/db/adapters/sqljsAdapter.ts Caminho explícito (absoluto ou relativo ao cwd) para sql-wasm.wasm ao usar o adaptador de fallback WASM sql.js. Quando não definido, é detectado automaticamente por meio das dependências do pacote e de layouts candidatos.
OMNIROUTE_BATCH_RETENTION_DAYS 30 src/lib/db/cleanup.ts Quantidade de dias durante os quais os checkpoints, os arquivos referenciados de entrada/saída/erro e o registro de um trabalho terminal da Batch API (concluído/com falha/cancelado/expirado) são mantidos pela limpeza automática antes da exclusão. Só entra em vigor quando BATCH_AND_FILE_AUTO_CLEANUP_ENABLED é habilitada; corresponde ao período de retenção de saída da própria Batch API da OpenAI. Não afeta a rota DELETE /api/v1/batches/delete-completed acionada pelo operador, que permanece incondicional (sem filtro de idade) por design.
BATCH_AND_FILE_AUTO_CLEANUP_ENABLED false src/lib/db/cleanup.ts Quando definida como true, permite que a limpeza automática exclua trabalhos terminais da Batch API (e seus checkpoints) após OMNIROUTE_BATCH_RETENTION_DAYS e limpe o conteúdo BLOB dos arquivos enviados após o respectivo expires_at. Desabilitada por padrão: cada instalação existente mantém esses dados exatamente como antes até que um operador habilite o recurso. Também é um sinalizador de recurso editável pelo painel — consulte docs/reference/FEATURE_FLAGS.md → Tempo de execução.
OMNIROUTE_SKIP_DB_HEALTHCHECK 0 src/lib/db/core.ts, src/lib/db/healthCheck.ts Defina como 1 para ignorar totalmente a verificação de integridade do banco de dados na inicialização. Útil para tarefas de curta duração e testes de integração.
OMNIROUTE_FORCE_DB_HEALTHCHECK 0 src/lib/db/core.ts Defina como 1 para forçar a ativação do loop de verificação de integridade do banco de dados, mesmo quando ele normalmente seria ignorado (por exemplo, em tarefas de curta duração).
OMNIROUTE_SKIP_POSTINSTALL 0 scripts/postinstall.mjs Defina como 1 para ignorar o aquecimento do runtime nativo durante npm install. Útil em instalações de CI/headless nas quais o sqlite já está compilado.
OMNIROUTE_MIGRATIONS_DIR (detecção automática) src/lib/db/migrationRunner.ts Substitui o diretório verificado pelo executor de migrações. Útil ao distribuir migrações empacotadas em builds personalizados.
OMNIROUTE_EXTRA_MIGRATIONS_DIRS (não definido) src/lib/db/migrationRunner/extraDirs.ts Diretórios de migração adicionais como entradas namespace=dir separadas pelo delimitador de caminhos da plataforma (por exemplo, ee=/opt/app/enterprise/db/migrations). Os arquivos encontrados nesses diretórios são registrados como <namespace>-<number>, de modo que uma distribuição que inclua suas próprias migrações nunca entre em conflito com os slots numéricos upstream. Uma entrada malformada, um namespace inválido ou um diretório ausente causa um erro na inicialização, em vez de ignorar silenciosamente o esquema.
OMNIROUTE_MAX_PENDING_MIGRATIONS 50 src/lib/db/migrationRunner.ts Limite de segurança para migrações pendentes em massa (#3416). A inicialização é interrompida se houver mais migrações pendentes do que esse limite em um banco de dados existente (protege contra uma tabela de rastreamento apagada). Aumente-o para restaurar um backup mais antigo; defina como 0 para desativar a verificação.
OMNIROUTE_INSTALL_UPGRADE_WORKDIR (<repo>/.install-upgrade) scripts/check/check-install-upgrade.mjs Diretório de trabalho para o gate de release check:install-upgrade. Ele precisa de aproximadamente 12 GB (duas árvores de instalação de ~3 GB mais o tarball), portanto não deve ser executado em um tmpfs pequeno — no runner auto-hospedado, /tmp é um tmpfs de 12 GB baseado em RAM, e o gate o esgotou, truncando o pacote.
OMNIROUTE_SPEND_FLUSH_INTERVAL_MS (padrão no código) src/lib/spend/batchWriter.ts Intervalo de flush (ms) para o gravador em lote de gastos/custos. Valores menores reduzem o agrupamento de gravações; valores maiores reduzem a contenção no banco de dados.
OMNIROUTE_SPEND_MAX_BUFFER_SIZE (padrão no código) src/lib/spend/batchWriter.ts Número máximo de entradas de gastos armazenadas em buffer antes de um flush forçado. Aumente em implantações com QPS alto; reduza quando limitar o uso de memória for mais importante.
OMNIROUTE_PROXY_FETCH_DEBUG (não definido) open-sse/utils/proxyFetch.ts Defina como "true" para emitir logs de depuração [ProxyFetch] no caminho de relay da Vercel. Desativado por padrão para evitar o vazamento de informações de roteamento.
PROXY_LOG_INCLUDE_IPS false src/lib/proxyLogger.ts Defina como "true" ou "1" para incluir os IPs do cliente/de saída e o prefixo da conta na linha detalhada [ProxyEgress] do log do processo. Mantido DESATIVADO por padrão para que o log do processo não vaze IPs nem o prefixo da conta.
OMNIROUTE_DEBUG (não definido) bin/cli/commands/quota.mjs Defina como 1 para imprimir diagnósticos de tempo por solicitação ([omniroute] GET <path> completed in Nms) dos comandos de cota da CLI em stderr.
OMNIROUTE_HEALTHCHECK_PATH (automático) scripts/dev/healthcheck.mjs Caminho explícito sondado pela verificação de integridade do contêiner. Quando não definido, a sonda o deriva de OMNIROUTE_BASE_PATH; defini-lo reativa o endpoint de monitoramento profundo.
OMNIROUTE_DEBUG_COMPLETION (não definido) bin/cli/commands/completion.mjs Defina como qualquer valor não vazio para emitir diagnósticos [omniroute completion] dos caminhos de cache do preenchimento automático do shell pela CLI (leitura/atualização/gravação). Desativado por padrão — falhas nesses caches são silenciosas para que um cache ausente/corrompido nunca interrompa o preenchimento com Tab.
BATCH_RETRY_DURATION_MS 86400000 (24h) open-sse/services/batchProcessor.ts Janela máxima de novas tentativas para itens individuais do lote (ms). Os itens que excederem essa duração serão marcados como falhos.
BATCH_BACKOFF_BASE_MS 5000 open-sse/services/batchProcessor.ts Atraso base (ms) para backoff exponencial nas novas tentativas de itens em lote.
BATCH_BACKOFF_MAX_MS 3600000 (1h) open-sse/services/batchProcessor.ts Limite (ms) para backoff exponencial entre novas tentativas de itens em lote.
BATCH_MAX_CONCURRENT 1 open-sse/services/batchProcessor.ts Número máximo de lotes processados simultaneamente. Aumente para melhorar a vazão; mantenha baixo para evitar picos de limitação de taxa.

[!IMPORTANT] Antes de alterar um banco de dados persistente existente, o executor de migrações publica um snapshot completo, endereçado por conteúdo, em DATA_DIR/db_backups/. A publicação exige um sistema de arquivos que ofereça hard links no mesmo sistema de arquivos, sem sobrescrita, além de sincronização durável de arquivos. Hosts POSIX também exigem sincronização de diretórios; no Windows, o Node pode rejeitar identificadores de diretório, portanto, o OmniRoute descarrega o arquivo publicado e trata a sincronização da entrada de diretório como uma operação de melhor esforço. Se o DATA_DIR montado não puder fornecer essas garantias, a inicialização será interrompida com segurança antes de aplicar uma migração. Mova DATA_DIR para um volume que ofereça esses recursos; não use DISABLE_SQLITE_AUTO_BACKUP para contornar a segurança da migração.

Cenário Configuração
Desenvolvimento local Mantenha todos os valores padrão. O banco de dados fica em ~/.omniroute/omniroute.db.
Docker DATA_DIR=/data + monte um volume em /data.
Criptografado em repouso Defina STORAGE_ENCRYPTION_KEY + mantenha backups da chave! Perdê-la = perder os dados.
CI/Testes DATA_DIR=/tmp/omniroute-test — efêmero, sem necessidade de criptografia.

Variável Padrão Arquivo de origem Descrição
PORT 20128 src/lib/runtime/ports.ts Porta principal para a interface do Dashboard e os endpoints da API (modo de porta única).
OMNIROUTE_BASE_PATH (vazio = raiz) next.config.mjs, scripts/docker/ensure-docker-base-path.mjs Subcaminho da URL para disponibilizar o OmniRoute por trás de um proxy reverso (define o basePath do Next.js; os redirecionamentos de autenticação consideram o basePath). Por exemplo, /omniroute. No Docker, o valor é incorporado durante o docker build (ARG OMNIROUTE_BASE_PATH); imagens raiz pré-compiladas podem aplicar um valor diferente em tempo de execução uma única vez, na inicialização do contêiner, antes que o Next.js seja iniciado. Defina NEXT_PUBLIC_BASE_URL como a origem pública incluindo o mesmo subcaminho.
NEXT_PUBLIC_OMNIROUTE_BASE_PATH (vazio = raiz) src/shared/hooks/useDisplayBaseUrl.ts Espelho de OMNIROUTE_BASE_PATH visível no navegador, incorporado durante a compilação para que a exibição do endpoint no dashboard mostre https://host/omniroute/v1 em vez de https://host/v1. Quando não definido, usa OMNIROUTE_BASE_PATH como alternativa. Recompile após alterá-lo (o basePath do Next é definido em tempo de compilação).
DASHBOARD_ALLOW_EMBED (não definido = nunca incorporável) next.config.mjs, scripts/build/dashboardEmbed.mjs Permite opcionalmente a incorporação das páginas HTML em iframe. Quando não definido, todas as rotas são fornecidas com frame-ancestors 'none' + X-Frame-Options: DENY. Defina como vscode para disponibilizar as páginas (dashboard, login, documentação e página inicial) com frame-ancestors 'self' vscode-webview: e sem X-Frame-Options, para que o Navegador Simples do VS Code possa renderizá-las (modo dashboardOpen: "editor" do OmniCopilot). A superfície da API (/api, /v1, /v1beta, /a2a, /healthz, aliases no nível raiz) mantém os cabeçalhos estritos em ambos os casos. Somente vscode é reconhecido — 1/true não habilitam essa opção. Em tempo de compilação: recompile após alterá-la (docker build --build-arg DASHBOARD_ALLOW_EMBED=vscode para imagens; defini-la em uma instalação pré-compilada não tem efeito).
API_PORT (não definido) src/lib/runtime/ports.ts Quando definida, disponibiliza a API de proxy /v1/* nesta porta separada.
API_HOST 0.0.0.0 src/lib/runtime/ports.ts Endereço de vinculação para a porta da API.
DASHBOARD_PORT (não definido) src/lib/runtime/ports.ts Quando definida, disponibiliza a interface do Dashboard nesta porta separada.
OMNI_MAX_CONCURRENT_CONNECTIONS 0 (desabilitado) src/sse/utils/backpressure.ts Limita as conexões simultâneas de chat em andamento; as solicitações acima do limite recebem 503 com Retry-After. Um número inteiro positivo habilita a proteção; não definido/0 a desabilita.
OMNIROUTE_INSTANCE_ID (não definido) src/shared/resilience/peerRouting.ts ID estável e exclusivo deste gateway ao encadear instâncias do OmniRoute. Habilita verificações de loop de pares para conexões de entrada. Caracteres permitidos: letras, dígitos, ., _, : e -; máximo de 64 caracteres.
OMNIROUTE_PEER_URLS (não definido) src/shared/resilience/peerRouting.ts, open-sse/executors/base.ts URLs base do OmniRoute, separadas por vírgulas, que podem receber X-OmniRoute-Peer-Trace. Somente URLs de upstream explicitamente incluídas na lista de permissões recebem metadados de pares; todos os outros provedores permanecem inalterados.
OMNIROUTE_PEER_MAX_HOPS 4 src/shared/resilience/peerRouting.ts Número máximo de instâncias do OmniRoute visitadas anteriormente que são aceitas em uma solicitação encadeada (1-32). Instâncias repetidas ou um limite esgotado retornam HTTP 508 Loop Detected.
PROD_DASHBOARD_PORT 20130 docker-compose.prod.yml Porta publicada no host para o Dashboard no modo de produção do Docker.
PROD_API_PORT 20131 docker-compose.prod.yml Porta publicada no host para a API no modo de produção do Docker.
OMNIROUTE_PORT (não definido) src/lib/runtime/ports.ts Tem precedência sobre PORT durante a execução no Electron ou em outros wrappers.
LIVE_WS_PORT 20129 src/server/ws/liveServer.ts Porta do servidor WebSocket de monitoramento em tempo real.
LIVE_WS_HOST 127.0.0.1 src/server/ws/liveServer.ts Endereço de vinculação do servidor WebSocket em tempo real. Defina como 0.0.0.0 para expô-lo na LAN (configure também LIVE_WS_ALLOWED_ORIGINS).
LIVE_WS_ALLOWED_ORIGINS (não definido) src/server/ws/liveServer.ts Origens adicionais, separadas por vírgulas, que têm permissão para abrir um WebSocket em tempo real. As origens de loopback do dashboard já são permitidas por padrão.
LIVE_WS_ALLOWED_HOSTS (não definido) src/server/ws/liveServerAllowList.ts Nomes de host adicionais, separados por vírgulas, permitidos para origens do WebSocket em tempo real. Diferentemente de LIVE_WS_ALLOWED_ORIGINS (URLs completas de origem), corresponde somente à parte do host — útil para configurações de LAN/Tailscale.
NEXT_PUBLIC_LIVE_WS_PUBLIC_URL (não definido) src/hooks/useLiveDashboard.ts URL pública do WebSocket do dashboard em tempo real (no navegador). Defina-a ao colocar o servidor WS atrás de um proxy reverso ou Cloudflare Tunnel (por exemplo, wss://ws.my-ai.com/live-ws); o navegador se conecta a esse endereço em vez de ws://hostname:20132. A parte do caminho também é usada como o caminho de upgrade do WebSocket (padrão: /live-ws).
OMNIROUTE_ENABLE_LIVE_WS true src/server/ws/liveServer.ts e scripts/start-ws-server.mjs Defina como 0 ou false para desativar o servidor WebSocket em tempo real (ativado por padrão, vinculado ao loopback). Alternância de CI/harness que desativa o script auxiliar autônomo do WebSocket em tempo real.
RELAY_IP_PER_MINUTE 30 src/app/api/v1/relay/chat/completions/route.ts Limite de taxa do relay por (token, IP), em solicitações/minuto. Em memória, por instância. 0 ou um valor negativo desativa a restrição por IP (o limite por token no banco de dados continua sendo aplicado).
NODE_ENV production Núcleo do Next.js Controla o nível de detalhamento dos logs, o cache, a exposição de detalhes de erros e as otimizações do Next.js.
OMNIROUTE_USE_TURBOPACK 1 (Turbopack — padrão do código) package.json / Next.js 16 O Turbopack é o empacotador padrão para npm run dev e npm run build (compilações 2–3 vezes mais rápidas, segundo benchmarks). Defina como 0 para voltar ao webpack no Windows, ao encontrar incompatibilidades de bindings nativos ou de compatibilidade do empacotador, ou em máquinas com RAM limitada — sabe-se que as compilações de produção do Turbopack nesta linha de versões do Next.js (16.2.x) atingem picos de uso de memória muito maiores do que o webpack em grafos de módulos grandes (a correção de liberação de memória do Turbopack no Next 16.3 ainda não está estável); o fallback para webpack atinge picos muito menores. Consulte #6409.
OMNIROUTE_SKIP_DB_HEALTHCHECK (não definida) src/lib/db/core.ts / src/lib/db/healthCheck.ts Defina como 1 para ignorar a verificação de integridade do SQLite na inicialização. Útil para uma inicialização mais rápida em bancos de dados grandes.
NOTIFY_SOCKET (não definida) systemd (protocolo sd_notify) Definida pelo systemd quando o processo é executado em uma unidade de serviço com integração sd_notify; o OmniRoute a lê (consulte OMNIROUTE_DISABLE_SD_NOTIFY) para enviar notificações READY/WATCHDOG. Nunca deve ser definida pelo usuário.
OMNIROUTE_DISABLE_SD_NOTIFY (não definida) scripts/dev/systemd-notify.mjs Defina como 1 para desabilitar o sd_notify do systemd (Type=notify / WatchdogSec=), mesmo durante a execução em uma unidade do systemd. O notificador não realiza nenhuma operação fora do systemd, independentemente dessa configuração.
CREDENTIAL_HEALTH_CHECK_INTERVAL 300000 open-sse/config/constants.ts / src/lib/credentialHealth/scheduler.ts Intervalo (ms) do agendador de verificação de integridade de credenciais em segundo plano. Mínimo: 10000 (10s).
CREDENTIAL_HEALTH_CACHE_TTL 300000 open-sse/config/constants.ts / src/lib/credentialHealth/cache.ts TTL (ms) do status de integridade de credenciais armazenado em cache.
OMNIROUTE_DISABLE_CREDENTIAL_HEALTH_CHECK false src/lib/credentialHealth/scheduler.ts Defina como 1 ou true para desabilitar os testes periódicos em segundo plano das conexões dos provedores. Provedores de pesquisa (SEARCH_VALIDATOR_CONFIGS em src/lib/providers/validation/searchProviders.ts, por exemplo, tavily-search) são sempre excluídos da verificação — sua “validação” é uma consulta real e faturada ao provedor, portanto, a integridade deles nunca é verificada periodicamente (#9970).
HOST 0.0.0.0 scripts/dev/run-next.mjs Endereço de associação do servidor de desenvolvimento/inicialização do Next.js. Quando definido, substitui o padrão 0.0.0.0.
HOSTNAME 127.0.0.1 scripts/dev/run-next-playwright.mjs Endereço de associação usado pelo executor do Playwright ao iniciar o Next.js. O padrão é 127.0.0.1 para testes herméticos. Não use para omniroute serve — use OMNIROUTE_SERVER_HOST em vez disso (shells POSIX definem automaticamente HOSTNAME como o nome da máquina; .env não pode substituí-la).
OMNIROUTE_SERVER_HOST 0.0.0.0 bin/cli/commands/serve.mjs Endereço de associação para omniroute serve. Evita conflito com a variável HOSTNAME do shell POSIX (sempre definida como o nome da máquina pelo bash/zsh). Usa 0.0.0.0 como fallback quando não definida. (#6194)
┌─────────────────────────── Porta Única (padrão) ───────────────────────────┐
│ PORT=20128 │
│ → Painel: http://localhost:20128 │
│ → API: http://localhost:20128/v1/chat/completions │
└─────────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────── Portas Separadas ───────────────────────────────┐
│ DASHBOARD_PORT=20128 │
│ API_PORT=20129 │
│ API_HOST=0.0.0.0 │
│ → Painel: http://localhost:20128 │
│ → API: http://0.0.0.0:20129/v1/chat/completions │
│ Caso de uso: expor a API à LAN e restringir o Painel ao localhost. │
└─────────────────────────────────────────────────────────────────────────────┘
┌─────────────────────────── Produção com Docker ────────────────────────────┐
│ PROD_DASHBOARD_PORT=443 PROD_API_PORT=8443 │
│ → Mapeia as portas do contêiner para as portas do host em │
│ docker-compose.prod.yml. │
└─────────────────────────────────────────────────────────────────────────────┘

Variável Padrão Arquivo de origem Descrição
MACHINE_ID_SALT endpoint-proxy-salt src/lib/auth Salt combinado com identificadores de hardware para gerar a impressão digital da máquina. Altere-o em cada implantação para garantir o isolamento.
OMNIROUTE_CLI_SALT (não definido = salt aleatório por instalação, persistido em <DATA_DIR>/cli-token-salt.json) src/lib/machineToken.ts Salt HMAC usado para derivar o token de autenticação local da CLI. Definir esse valor rotaciona todos os tokens da CLI na máquina e sempre tem prioridade sobre o salt persistido. Consulte docs/security/CLI_TOKEN.md.
AUTH_COOKIE_SECURE false src/lib/auth Define o atributo Secure nos cookies de sessão. Deve ser true ao executar por trás de HTTPS.
REQUIRE_API_KEY false Middleware da API Quando true, todas as solicitações de proxy para /v1/* devem incluir uma chave de API válida. Esse sinalizador não controla o acesso a GET /v1/models, que segue a configuração de login do painel (requireAuthForModels) — portanto, um 401 de /v1/models NÃO significa que a inferência está protegida. Consulte docs/security/INFERENCE_AUTH_POSTURE.md (#13695).
ALLOW_API_KEY_REVEAL false src/shared/constants/featureFlagDefinitions.ts Permite revelar os valores completos das chaves de API na interface do painel. Configurável nos sinalizadores de recursos do painel; representa um risco de segurança em instâncias compartilhadas.
NO_LOG_API_KEY_IDS (vazio) src/lib/compliance/index.ts IDs de chaves de API separados por vírgulas que ignoram o registro de solicitações (conformidade com o GDPR).
DEFAULT_RATE_LIMIT_PER_DAY (não definido = ilimitado) src/shared/utils/apiKeyPolicy.ts Orçamento diário alternativo de solicitações aplicado às chaves de API cuja coluna rate_limits seja nula. Não definido ou vazio: sem limite implícito (#2289, #11017). 0 tem o mesmo efeito (ilimitado). Um inteiro positivo N habilita N/dia, 5N/semana e 20N/mês. Valores não vazios malformados utilizam os limites legados de 1000/dia, 5000/semana e 20000/mês.
MAX_BODY_SIZE_BYTES 10485760 (10 MB) src/shared/middleware/bodySizeGuard.ts Tamanho máximo permitido para o corpo da solicitação. Rejeita cargas que excedam esse limite.
OMNIROUTE_CHAT_LARGE_BODY_BYTES 262144 (256 KB) src/shared/middleware/chatBodyAdmission.ts Corpos reais de solicitações com tamanho igual ou superior a esse limite adquirem a concessão atômica local ao processo para admissão de carga pesada antes da análise do JSON (caminho BYTE, incluindo POST /v1/responses). Usa a mesma saída com margem operacional saudável de #10437 aplicada a cargas estruturalmente pesadas; ainda limitada por OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES / #10110, para que #7849 não volte a ocorrer.
OMNIROUTE_CHAT_HARD_MAX_BODY_BYTES 52428800 (50 MB) src/shared/middleware/chatBodyAdmission.ts Limite rígido das rotas de chat aplicado aos bytes lidos durante a ingestão limitada, incluindo solicitações com Content-Length ausente, inválido ou desonesto; o excesso recebe 413.
OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT (não definido — sem limite de quantidade de solicitações) src/shared/middleware/chatBodyAdmission.ts #503-fanout: este limite legado de QUANTIDADE de solicitações agora só é aplicado quando definido explicitamente. Quando não definido (o padrão), a admissão de chats pesados é controlada por OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES — um orçamento de BYTES derivado automaticamente, dimensionado a partir do limite real de memória do processo em um processo (um heap V8). Duas solicitações /v1/responses sobrepostas com ~750 mil tokens abortam heaps de ~12 GiB (#7849) — um alerta de orçamento de memória, não um máximo rígido de produto igual a 2. Um processo saudável (heap abaixo da proporção de descarte) PODE admitir mais solicitações /v1/responses longas simultâneas por meio de OMNIROUTE_CHAT_ADMISSION_HEALTHY_HEADROOM. Dezenas de clientes SSE de longa duração (40–50) são uma questão de heap + OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES / #10110, não de “máximo de 2”. Aumentar isso às cegas para “usar o host” reintroduz o problema #7849. Multiplique os heaps com N DATA_DIRs independentes (#11024); nunca use replicas>1 com um único arquivo SQLite.
OMNIROUTE_CHAT_MAX_INFLIGHT_BYTES (derivado automaticamente) src/shared/middleware/admissionBudget.ts #503-fanout: substituição do orçamento de bytes de ingestão derivado automaticamente (25% do limite mais restritivo de memória do V8/cgroup, dividido pela amplificação transitória de 8x). Valores derivados e explícitos são limitados ao intervalo de 8 MiB–2 GiB. Um corpo maior que o orçamento efetivo falha imediatamente com 413 body_exceeds_budget; a contenção entre corpos que podem ser processados individualmente continua podendo ser repetida com 503. De 40 a 50 clientes SSE longos simultâneos são uma questão desse orçamento + heap, não de um “máximo de 2” rígido. Consulte chatAdmission.maxInflightBytes / budgetSource / pressureSeverity em /api/monitoring/health antes de fazer ajustes.
OMNIROUTE_CHAT_ADMISSION_HEAP_SHED_RATIO 0.75 src/shared/middleware/chatBodyAdmission.ts Proporção de descarte por pressão do heap (heapUsed / heap_size_limit) para admissão pesada por BYTES e ESTRUTURA (#10183, #10268, #10437). Uma solicitação pesada simultânea que ultrapasse OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT só é descartada com o 503 repetível quando o heap TAMBÉM está nessa proporção ou acima dela; em um heap saudável, ela é admitida por meio da folga saudável.
OMNIROUTE_CHAT_ADMISSION_HEALTHY_HEADROOM OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT (padrão 1) src/shared/middleware/chatBodyAdmission.ts Capacidade adicional limitada para o caminho rápido de heap saudável (#10437), tanto para ESTRUTURA quanto para BYTES (admitChatRequest, incluindo corpos ≥ OMNIROUTE_CHAT_LARGE_BODY_BYTES). Sem esse limite, toda solicitação com o sistema ocupado, mas com heap saudável, ignorava a admissão sem qualquer teto. Quando essa quantidade de concessões simultâneas está ativa pelo caminho de heap saudável, outras solicitações com o sistema ocupado passam para o MESMO caminho de espera limitada/descarte usado sob pressão real do heap. 0 desabilita completamente esse desvio.
OMNIROUTE_CHAT_HEAVY_MESSAGE_COUNT 200 src/shared/middleware/chatBodyAdmission.ts Quantidade de mensagens que classifica uma solicitação de chat como pesada, mesmo quando seu corpo está abaixo do limite de bytes.
OMNIROUTE_CHAT_HEAVY_TOOL_COUNT 64 src/shared/middleware/chatBodyAdmission.ts Quantidade de ferramentas que classifica uma solicitação de chat como pesada, mesmo quando seu corpo está abaixo do limite de bytes.
OMNIROUTE_CHAT_HEAVY_ESTIMATED_TOKENS 32000 src/shared/middleware/chatBodyAdmission.ts Estimativa conservadora de tokens com base no tamanho das strings que classifica uma solicitação como pesada; trata-se de uma aproximação do custo de admissão, não da tokenização de cobrança do provedor.
OMNIROUTE_CHAT_HARD_MAX_MESSAGES 0 (desabilitado) src/shared/middleware/chatBodyAdmission.ts Limite opcional e explícito do histórico de chat. Desabilitado por padrão: a quantidade de mensagens é uma política de implantação, não uma propriedade universal de uma solicitação, e aplicar um limite aqui rejeita conversas com um 413 terminal antes que o pipeline de compactação possa torná-las processáveis. O crescimento do heap é limitado por OMNIROUTE_CHAT_MAX_HEAVY_IN_FLIGHT e pelo descarte por pressão do heap. Defina um valor positivo em implantações com restrição de memória que precisem de um teto rígido; o excesso então recebe um 413 estruturado indicando que a compactação é necessária.
OMNIROUTE_MAX_NONSTREAMING_RESPONSE_BYTES 67108864 (64 MB) open-sse/handlers/chatCore/nonStreamingResponseBody.ts Limite rígido para uma resposta sem streaming do upstream armazenada integralmente em buffer na memória. Ao ultrapassá-lo, o leitor do upstream é cancelado e a solicitação falha rapidamente, em vez de expandir uma string sem limite até esgotar o heap.
OMNIROUTE_FORWARDING_HEADER_BUDGET_BYTES 768 open-sse/handlers/chatCore/responseHeaders.ts Máximo de bytes transmitidos encaminhados dos cabeçalhos de resposta do upstream. Quando o limite é excedido, os cabeçalhos de menor prioridade (por exemplo, x-codex-*, x-oai-request-id) são descartados para permanecer dentro dos limites comuns de cabeçalhos de proxies reversos. Defina um valor maior para encaminhar mais metadados do upstream, ao custo de aumentar o tamanho dos cabeçalhos de resposta.
CORS_ORIGIN (não definido) src/server/cors/origins.ts Lista legada de origens permitidas pelo CORS, com uma única origem. Prefira CORS_ALLOWED_ORIGINS para novas implantações. O CORS destina-se apenas a clientes de API de navegador entre origens; as gravações autenticadas do painel usam solicitações da mesma origem, além de proteção CSRF vinculada à sessão.
CORS_ALLOWED_ORIGINS (não definido) src/server/cors/origins.ts Lista de origens permitidas pelo CORS, separadas por vírgulas. Nenhum curinga é enviado, a menos que CORS_ALLOW_ALL=true seja configurado explicitamente.
CORS_ALLOW_ALL false src/server/cors/origins.ts Mecanismo de escape exclusivo para desenvolvimento que ecoa qualquer Origin do navegador. Não habilite em implantações compartilhadas ou de produção.
OUTBOUND_SSRF_GUARD_ENABLED true src/shared/network/outboundUrlGuard.ts Bloqueia chamadas de provedores direcionadas a intervalos de IP privados, de loopback ou link-local. Desabilite somente em ambientes de teste isolados.
OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS false src/shared/network/outboundUrlGuard.ts Permite URLs de provedores que apontem para redes privadas/locais (localhost, 192.168.x.x, 10.x.x.x etc.). OBRIGATÓRIO para provedores auto-hospedados (LM Studio, Ollama, vLLM, Llamafile, Triton, SearXNG). Quando definido como false, o painel rejeita a validação de URLs locais.
OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS true src/shared/network/outboundUrlGuard.ts Permite adicionar/validar provedores em endereços locais/privados (127.0.0.1, localhost, LAN, intervalos privados) — restrito ao caminho de validação do provedor. Padrão true (local primeiro); defina como false para impor o bloqueio estrito, permitindo apenas endereços públicos. Endpoints de metadados de nuvem (169.254.169.254, metadata.google.internal) permanecem bloqueados independentemente dessa configuração. (#5066)
AUDIO_REMOTE_PROVIDER_NODES false src/app/api/v1/_shared/audioProviderNodes.ts Permite que as rotas /v1/audio/* (transcrições, fala, traduções) usem um nó de provedor compatível com OpenAI hospedado fora do localhost. Desativado por padrão — rotear áudio para um host remoto altera a identidade de saída e deve ser uma decisão explícita do operador. Nós de loopback/privados (localhost, 127.0.0.1, 172.16-31.x) são sempre permitidos e não são afetados. (#3963)
RERANK_REMOTE_PROVIDER_NODES false src/app/api/v1/_shared/rerankProviderNodes.ts Permite que POST /v1/rerank (e a etapa de reranqueamento por loopback do mecanismo de memória) use um nó de provedor compatível com OpenAI hospedado fora do localhost — uma máquina na LAN ou um par do Tailscale executando TEI, Infinity, vLLM etc. Desativado por padrão — rotear para um host remoto altera a identidade de saída e deve ser uma decisão explícita do operador. Nós de loopback (localhost, 127.0.0.1, 172.16-31.x) são sempre permitidos e não são afetados. Os nós remotos também devem ser aprovados pela política de URLs de saída do provedor (OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS / OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS); hosts de metadados de nuvem nunca são usados para roteamento.
OMNIROUTE_OIDC_DISABLE_PASSWORD_LOGIN false src/app/api/auth/login/route.ts Quando o OIDC está habilitado, desabilita o login por senha para que os usuários possam se autenticar somente por meio do Single Sign-On via OIDC. O alias simples OIDC_DISABLE_PASSWORD_LOGIN também é aceito; o sinalizador de recurso do painel com a mesma chave tem precedência. (#10889)
OIDC_DISABLE_PASSWORD_LOGIN false src/app/api/auth/login/route.ts Alias simples de OMNIROUTE_OIDC_DISABLE_PASSWORD_LOGIN (#10889).
Janela do terminal
# Requisitos mínimos de segurança para produção:
AUTH_COOKIE_SECURE=true # Requer HTTPS
REQUIRE_API_KEY=true # Autentica todas as chamadas de proxy
ALLOW_API_KEY_REVEAL=false # Nunca expõe chaves na interface
CORS_ALLOWED_ORIGINS=https://your.domain.com
MAX_BODY_SIZE_BYTES=5242880 # Limite de 5 MB

O OmniRoute oferece uma defesa em duas camadas: verificação de injeção nas requisições e remoção de PII nas respostas.

⚠️ Limitações: Essas proteções são detecções heurísticas de melhor esforço, não um firewall completo contra injeção de prompt nem um sistema de DLP para PII. Elas podem produzir falsos positivos (prompts inofensivos de persona/RPG sinalizados) e falsos negativos (leetspeak, espaçamento, padrões em outros idiomas). Por si só, elas não são suficientes para garantir conformidade. Ajuste os modos e teste-os com o seu tráfego antes de confiar neles.

Requisição: Proteção contra Injeção de Prompt

Seção intitulada “Requisição: Proteção contra Injeção de Prompt”
Variável Padrão Arquivo de Origem Descrição
INPUT_SANITIZER_ENABLED true src/middleware/promptInjectionGuard.ts Habilita a verificação de mensagens recebidas em busca de padrões de injeção de prompt.
INPUT_SANITIZER_MODE warn src/middleware/promptInjectionGuard.ts Política de injeção: warn = apenas registrar, block = rejeitar a requisição com 400. O modo legado redact não remove o texto de injeção; use PII_REDACTION_ENABLED para reescrever PII nas requisições.
INJECTION_GUARD_MODE (não definido) src/middleware/promptInjectionGuard.ts Alias legado de INPUT_SANITIZER_MODE — mesmo comportamento.
INPUT_SANITIZER_BLOCK_THRESHOLD high src/shared/utils/injectionSeverity.ts Severidade mínima rejeitada por MODE=block: high (padrão), medium ou low. Padrões de severidade média são apenas observados, a menos que o limite seja reduzido.
INJECTION_GUARD_BLOCK_THRESHOLD (não definido) src/shared/utils/injectionSeverity.ts Alias legado de INPUT_SANITIZER_BLOCK_THRESHOLD — mesmo comportamento.
PII_REDACTION_ENABLED false src/lib/guardrails/piiMasker.ts Quando definido como true, oculta PII nas requisições recebidas (independentemente do modo de injeção).
CREDENTIAL_REDACTION_ENABLED false src/lib/guardrails/credentialMasker.ts Oculta padrões conhecidos de chaves de API/tokens secretos nos payloads de requisição e resposta. Opcional; funciona de forma semelhante a PII_REDACTION_ENABLED.
Variável Padrão Arquivo de Origem Descrição
PII_RESPONSE_SANITIZATION false src/lib/piiSanitizer.ts Verifica se as respostas do LLM contêm PII vazada antes de retorná-las ao cliente.
PII_RESPONSE_SANITIZATION_MODE redact src/lib/piiSanitizer.ts redact = mascarar PII, warn = apenas registrar, block = descartar toda a resposta.

Sanitizador de Contexto de Rotas Tokenizadas do VS Code

Seção intitulada “Sanitizador de Contexto de Rotas Tokenizadas do VS Code”
Variável Padrão Arquivo de Origem Descrição
OMNIROUTE_VSCODE_SANITIZE_CONTEXT 1 src/app/api/v1/vscode/contextSanitizer.ts Remove o contexto implícito do editor ativo (editorContext, activeEditor, currentFile, selection, openTabs…) das requisições para /v1/vscode/[token]/* e oculta o conteúdo de arquivos confidenciais anexados explicitamente. Seguro por padrão; defina como 0 para desabilitar.
Cenário Configuração
Conformidade empresarial INPUT_SANITIZER_ENABLED=true, INPUT_SANITIZER_MODE=block, PII_REDACTION_ENABLED=true, PII_RESPONSE_SANITIZATION=true (bloqueio de injeção + ocultação de PII em requisições/respostas; os modos são independentes)
Somente monitoramento INPUT_SANITIZER_ENABLED=true, INPUT_SANITIZER_MODE=warn — registra, mas nunca bloqueia
Uso pessoal Deixe tudo desabilitado — nenhuma sobrecarga

Variável Padrão Arquivo de origem Descrição
TOOL_POLICY_MODE disabled src/lib/toolPolicy.ts Controla o acesso do LLM a ferramentas/chamadas de função. allowlist = somente as ferramentas listadas, denylist = todas, exceto as listadas, disabled = sem restrições.
OMNIROUTE_PAYLOAD_RULES_PATH ./config/payloadRules.json open-sse/services/payloadRules.ts Caminho para o arquivo JSON de regras de manipulação de payload (ajustes de upstream por modelo/protocolo).
OMNIROUTE_PAYLOAD_RULES_RELOAD_MS 5000 open-sse/services/payloadRules.ts Intervalo de recarregamento (ms) para recarregar dinamicamente o arquivo de regras de payload. Mínimo de 1000.
OMNIROUTE_PREFER_CLAUDE_CODE_FOR_UNPREFIXED_CLAUDE_MODELS false open-sse/services/model.ts Ativação opcional: roteia IDs de modelos claude-* sem prefixo provenientes de clientes Claude Code pela conta OAuth do Claude Code, em vez de exigir um prefixo de provedor. Prefixos de provedor explícitos continuam tendo prioridade. Também pode ser configurado por meio de uma opção no painel, na página do provedor Claude.
COMBO_CONCURRENCY_PER_MODEL 3 open-sse/services/comboConfig.ts Limite de simultaneidade por modelo para combinações round-robin (#9100). O semáforo de combinações round-robin tinha um limite fixo de 3 solicitações simultâneas por modelo, sem possibilidade de substituição, serializando o tráfego com maior simultaneidade atrás desse limite. Validado como >= 1, limitado a <= 32.
DISABLE_CONTEXT_WINDOW_CHECKS false open-sse/handlers/chatCore.ts Ativação opcional perigosa que ignora a verificação local do OmniRoute de janela de contexto/máximo de tokens de entrada para solicitações diretas a um único modelo. Os provedores upstream ainda impõem seus limites reais; a compactação do prompt e o próprio limite de tokens de saída do modelo permanecem ativos. A precedência efetiva é substituição pelo banco de dados de Feature Flags > variável de ambiente > padrão; nenhuma reinicialização é necessária.
OMNIROUTE_SELF_HOSTED_PROVIDERS (não definido) open-sse/services/selfHostedEntry.ts Documento YAML providers: embutido (RIC-738, D4). Quando definido (com ou sem um bloco strategy:), /v1/chat/completions é desviado para a entrada unificada auto-hospedada compatível com OpenAI, em vez de seguir pelo pipeline de nuvem. Quando não definido (o padrão), a rota segue diretamente para o pipeline de nuvem existente. Consulte docs/routing/SELF_HOSTED_OPENAI_ENTRY.md.
OMNIROUTE_SELF_HOSTED_PROVIDERS_FILE (não definido) open-sse/services/selfHostedEntry.ts Caminho para um arquivo YAML contendo o mesmo documento providers: que OMNIROUTE_SELF_HOSTED_PROVIDERS, para implantações que prefiram um arquivo em vez de uma variável de ambiente embutida. Qualquer uma das opções ativa a entrada auto-hospedada.
OMNIROUTE_SELF_HOSTED_API_KEY (não definido — rota aberta) open-sse/services/selfHostedEntry.ts Chave de API compartilhada opcional para a entrada unificada auto-hospedada (estrutura D5, reservada para o sistema de cotas por chave). Quando definida, as solicitações devem incluir Authorization: Bearer &lt;key&gt;. Quando não definida, a rota fica aberta, correspondendo ao padrão existente de provedor local auto-hospedado (implantação em loopback/rede confiável).
OMNIROUTE_SELF_HOSTED_STRATEGY (não definido) open-sse/services/routingStrategies.ts Documento YAML strategy: embutido para o mecanismo de roteamento determinístico (M2/RIC-740, D3) — lista de bloqueio/lista de permissão, disjuntor com período de espera, prioridade por custo, reconhecimento de latência e cadeia de fallback. Substitui, por chave, um bloco strategy: embutido e aninhado em OMNIROUTE_SELF_HOSTED_PROVIDERS. Consulte docs/routing/DETERMINISTIC_ROUTING.md.
OMNIROUTE_SELF_HOSTED_STRATEGY_FILE (não definido) open-sse/services/routingStrategies.ts Caminho para um arquivo YAML contendo o mesmo documento strategy: que OMNIROUTE_SELF_HOSTED_STRATEGY, para implantações que prefiram um arquivo em vez de uma variável de ambiente embutida.
OMNIROUTE_DISABLE_CONVERSATION_TRACKING (não definido) open-sse/services/conversationTracker.ts Defina como 1 para interromper a coleta do histórico de conversas. resolveConversationId() retorna um resultado não rastreado antes de ler o SQLite ou analisar o histórico de mensagens, e os IDs de sessão fornecidos pelo cliente também são abrangidos. O tratamento de sessões de roteamento permanece inalterado, e os registros existentes não são excluídos. Destina-se a implantações que não usam a visualização de conversas do painel e desejam impedir que a tabela de turnos continue crescendo.

Variável Padrão Arquivo de origem Descrição
BASE_URL http://localhost:20128 src/lib/cloudSync.ts URL do lado do servidor usada por tarefas internas de sincronização para chamar /api/sync/cloud. Mantenha-a como uma URL de loopback/contêiner, mesmo quando o aplicativo estiver publicamente acessível por meio de um proxy.
CLOUD_URL (vazio) src/lib/cloudSync.ts URL do endpoint de retransmissão na nuvem (recurso premium).
CLOUD_SYNC_TIMEOUT_MS 12000 src/lib/cloudSync.ts Tempo limite de HTTP para solicitações de sincronização na nuvem.
OMNIROUTE_BUILD_PROFILE full Configuração de build do Webpack Perfil usado durante o build (defina como minimal para excluir fisicamente do bundle os módulos privilegiados).
OMNIROUTE_STANDALONE_DIR .build/ saída standalone scripts/build/colocate-standalone.mjs Substituição, durante o build, do diretório de saída standalone utilizado pela etapa de colocalização pós-build. Não é uma configuração de runtime.
OMNIROUTE_CLOUD_SYNC_SECRET (vazio) src/lib/cloudSync.ts Segredo compartilhado usado para verificar a assinatura HMAC-SHA256 das respostas da sincronização na nuvem.
OMNIROUTE_CLOUD_SYNC_SECRETS false src/lib/cloudSync.ts Defina como true para permitir que o endpoint de sincronização na nuvem sobrescreva as credenciais locais. O padrão é false.
OMNIROUTE_CLOUD_SYNC_ENFORCE_SIGNATURE false src/lib/cloudSync.ts Defina como true para rejeitar uma resposta não assinada da sincronização na nuvem quando nenhum segredo local estiver configurado (#13679). Uma assinatura presente sempre será verificada — e sempre será rejeitada quando OMNIROUTE_CLOUD_SYNC_SECRET não estiver definido — independentemente dessa opção. O padrão passará a exigir a assinatura na v3.9.
OMNIROUTE_ZED_IMPORT_LEGACY_ONE_STEP false src/app/api/providers/zed/import/route.ts Defina como true para retornar ao comportamento de uma única etapa da v3.8.5, que “importa tudo” sem confirmação do usuário.
NEXT_PUBLIC_BASE_URL http://localhost:20128 OAuth, Dashboard, sincronização URL pública para o redirect_uri do OAuth, links do Dashboard e URLs públicas geradas. Defina-a como a URL pública estável quando os callbacks do OAuth ou os links gerados para o navegador precisarem usar um host canônico de proxy reverso.
NEXT_PUBLIC_CLOUD_URL (vazio) Lado do cliente Espelho de CLOUD_URL no lado do cliente.
NEXT_PUBLIC_APP_URL (não definida) src/shared/services/cloudSyncScheduler.ts Alternativa legada para NEXT_PUBLIC_BASE_URL.
NEXT_PUBLIC_PORT (não definida — usa PORT como alternativa) src/shared/hooks/useDisplayBaseUrl.ts Porta alternativa no lado do cliente para URLs de exibição quando nenhuma origem é conhecida (SSR/testes); lida antes de PORT.
OMNIROUTE_PUBLIC_BASE_URL (não definida) Resolvedor de origem pública, URLs de imagens Origem do OmniRoute voltada ao navegador com a maior prioridade, usada para gerar URLs públicas e validar a origem do navegador fora do painel. Defina-a quando o OpenWebUI ou outro retransmissor acessar o OmniRoute por uma URL interna, mas o navegador do usuário precisar buscar a mídia gerada em uma origem de LAN, túnel ou pública. Não inclua /v1.
OMNIROUTE_PROVIDER_MANIFEST_URL (não definida) open-sse/config/providerPluginManifestUrl.ts URL absoluta do manifesto do plugin do provedor anunciada aos clientes sidecar. Quando não definida, o OmniRoute deriva /api/v1/provider-plugin-manifest da origem da solicitação ou de HOST/PORT.
OMNIROUTE_PUBLIC_PROTOCOL http open-sse/config/providerPluginManifestUrl.ts Protocolo usado ao derivar a URL do manifesto do plugin do provedor de HOST/PORT sem uma origem de solicitação. Defina como https por trás de um proxy público que encerra TLS quando nenhuma OMNIROUTE_PROVIDER_MANIFEST_URL explícita estiver definida.
OMNIROUTE_TRUST_PROXY (não definida) src/server/origin/publicOrigin.ts Modo de confiança opcional para cabeçalhos encaminhados de origem pública. Não definida = não confiar em Forwarded / X-Forwarded-* para decisões de segurança. true / loopback confia no host/protocolo encaminhado somente quando proveniente de um proxy de loopback marcado por token. private / lan também confia em pares de proxy da LAN privada. Em produção, prefira definir explicitamente NEXT_PUBLIC_BASE_URL.
KIE_CALLBACK_URL (não definida) open-sse/utils/kieTask.ts URL pública de callback para trabalhos assíncronos da kie.ai. Substituição de maior prioridade, antes de OMNIROUTE_KIE_CALLBACK_URL e OMNIROUTE_PUBLIC_URL.
OMNIROUTE_KIE_CALLBACK_URL (não definida) open-sse/utils/kieTask.ts Grafia alternativa de KIE_CALLBACK_URL. Usada como alternativa quando a variável principal não está definida.
OMNIROUTE_PUBLIC_URL (não definida) open-sse/utils/kieTask.ts Origem pública usada para compor URLs de callback assíncronas. Alternativa de menor prioridade para callbacks da kie.ai; também usada como URL pública genérica para outros retransmissores.
OMNIROUTE_CROF_USAGE_URL https://crof.ai/usage_api/ open-sse/services/usage.ts Endpoint de consulta de cota da CrofAI usado pela página Uso. Substitua-o para retransmissores / fixtures de teste.
OMNIROUTE_OPENCODE_QUOTA_URL https://opencode.ai/zen/go/v1/usage open-sse/services/opencodeQuotaFetcher.ts Endpoint oficial de uso do OpenCode Go autenticado por chave de API, usado pela página Uso. Substitua-o para retransmissores / fixtures de teste.
OPENCODE_SYNTHESIZE_CLI_HEADERS true open-sse/executors/opencode.ts Sintetiza cabeçalhos de identidade da CLI do OpenCode (User-Agent, x-opencode-client/project, UUIDs de solicitação/sessão) em solicitações upstream opencode-go/zen que não tenham sido enviadas pelo cliente, para que o Cloudflare as aceite na saída de VPS (#6210/#5997). Ativado por padrão desde #10571; desative com false/0/no/off.
OPENCODE_USER_AGENT opencode/1.18.31 open-sse/utils/opencodeHeaders.ts User-Agent padrão usado quando OPENCODE_SYNTHESIZE_CLI_HEADERS está ativado e nenhuma substituição <PROVIDER>_USER_AGENT por provedor está definida. Aplicado somente aos executores opencode. Em uma solicitação sem chave bloqueada pelo upstream, um valor configurado que não contenha opencode/<version >= 1.17> é substituído por esse padrão, em vez de ser recusado.
OPENCODE_CLIENT desktop open-sse/executors/opencode.ts Valor do cabeçalho x-opencode-client sintetizado quando OPENCODE_SYNTHESIZE_CLI_HEADERS está habilitado.
OPENCODE_PROJECT global open-sse/executors/opencode.ts Valor do cabeçalho x-opencode-project sintetizado quando OPENCODE_SYNTHESIZE_CLI_HEADERS está habilitado.
OPENCODE_FREE_TIER_REQUEST_CONTRACT (não definido) open-sse/executors/opencodeFreeTierContract.ts Defina como off para interromper o ajuste do corpo das solicitações do OpenCode sem chave (indicador de streaming e lista de ferramentas). Os cabeçalhos continuam sendo aplicados. O valor é lido a cada solicitação, portanto uma alteração entra em vigor imediatamente.
OPENCODE_FREE_TIER_PLACEHOLDER_TOOLS (não definido) open-sse/executors/opencodeFreeTierContract.ts Nomes de ferramentas separados por vírgulas a serem declarados em uma solicitação do OpenCode sem chave que não contenha nenhuma, quando ainda não tiver sido observada nenhuma para esse modelo. Um valor vazio faz com que seja usado um único espaço reservado que o modelo é instruído a não chamar. No máximo 32 entradas, [A-Za-z_][A-Za-z0-9_-]{0,63}; entradas inválidas são ignoradas.
OMNIROUTE_OLLAMA_CLOUD_USAGE_URL https://ollama.com/settings open-sse/services/usage.ts URL das configurações do Ollama Cloud usada para extração de dados de cota. Substitua para retransmissores / fixtures de teste.
OLLAMA_USAGE_COOKIE (não definido) open-sse/services/usage.ts Cookie __Secure-session do Ollama Cloud usado para extração de dados de cota da página de configurações. Sensível; prefira o campo correspondente por conexão no Dashboard quando várias contas estiverem configuradas.
OLLAMA_CLOUD_USAGE_COOKIE (não definido) open-sse/services/usage.ts Variável de ambiente alternativa para o cookie __Secure-session do Ollama Cloud. Sensível; prefira o campo correspondente por conexão no Dashboard quando várias contas estiverem configuradas.
OMNIROUTE_OLLAMA_USAGE_COOKIE (não definido) open-sse/services/usage.ts Variável de ambiente alternativa para o cookie __Secure-session do Ollama Cloud, usada antes dos aliases mais curtos. Sensível; prefira o campo correspondente por conexão no Dashboard quando várias contas estiverem configuradas.
OMNIROUTE_CODEWHISPERER_BASE_URL https://codewhisperer.us-east-1.amazonaws.com open-sse/services/usage.ts Endpoint de limites de uso do CodeWhisperer (AWS Kiro). Substitua para retransmissores / fixtures de teste.

[!IMPORTANT] Ao implantar por trás de um proxy reverso (nginx, Caddy), defina NEXT_PUBLIC_BASE_URL como sua URL pública estável (por exemplo, https://omniroute.example.com) quando os callbacks de OAuth ou links públicos gerados precisarem usar esse nome de host. Sem isso, os callbacks de OAuth podem falhar porque o redirect_uri não corresponderá, e os links públicos gerados poderão apontar para a origem interna do contêiner.

Mantenha BASE_URL como uma URL interna de loopback/contêiner para tarefas de servidor para servidor. Não use um Origin do navegador nem um nome de host público para buscas internas feitas pelo próprio servidor que incluam credenciais.

As gravações autenticadas no dashboard não exigem uma URL base pública estática: o dashboard envia solicitações não seguras de mesma origem com um token CSRF vinculado à sessão. O OmniRoute ainda centraliza a validação de origem pública para integrações de navegador que não sejam do dashboard: variáveis de ambiente explícitas de URL pública são consideradas confiáveis primeiro; cabeçalhos Forwarded / X-Forwarded-* brutos são ignorados, a menos que OMNIROUTE_TRUST_PROXY esteja habilitado e o par de proxy imediato esteja marcado com token como confiável. Não use configurações de CORS para corrigir solicitações de mesma origem do dashboard; o CORS serve apenas para clientes de navegador de origem cruzada.


Encaminhe as chamadas aos provedores de LLM upstream por meio de um proxy HTTP ou SOCKS5 para controle de saída, roteamento geográfico ou mascaramento de IP.

Variável Padrão Arquivo de origem Descrição
ENABLE_SOCKS5_PROXY true open-sse/executors Habilita o agente de proxy SOCKS5 para chamadas upstream. Desative com false.
NEXT_PUBLIC_ENABLE_SOCKS5_PROXY true Lado do cliente Permite que o lado do cliente reconheça a disponibilidade do SOCKS5.
PROXY_SKIP_RECENTLY_FAILED false src/shared/utils/featureFlags.ts Flag de recurso opcional (consulte FEATURE_FLAGS.md; uma substituição no banco de dados do painel prevalece). Os pools de proxies e a rotação por conta deixam de reutilizar temporariamente um membro que acabou de falhar (sondagem TCP recusada ou erro 429 por meio dele), por um período que dobra a cada repetição, até um limite máximo. true (ou 1, yes) habilita esse recurso.
HTTP_PROXY (não definido) Padrão do Node.js Proxy HTTP para chamadas upstream.
HTTPS_PROXY (não definido) Padrão do Node.js Proxy HTTPS para chamadas upstream.
ALL_PROXY (não definido) Padrão do Node.js Proxy universal (compatível com socks5://).
OMNIROUTE_PROXY_ECHO_URL (não definido) src/lib/proxyEchoTarget.ts Fixa em uma única URL o destino de eco de IP usado pelas sondagens de saída do proxy. Quando não definida, a sondagem tenta api64.ipify.org e depois api4.ipify.org, para que túneis compatíveis apenas com IPv4 não sejam indicados como inativos (#9694).
NO_PROXY (não definido) Padrão do Node.js Nomes de host/IPs separados por vírgulas que devem ignorar o proxy.
OMNIROUTE_PROXY_DISPATCHER_CONNECTIONS 32 open-sse/utils/proxyDispatcher.ts Máximo de sockets simultâneos por dispatcher de proxy HTTP/SOCKS em cache. Streams SSE de longa duração, como os de Codex /v1/responses, precisam de mais de uma conexão quando várias solicitações compartilham o mesmo proxy no nível da conta. Valores acima de 256 são limitados.
SOCKS_HANDSHAKE_TIMEOUT_MS 10000 open-sse/utils/socksConnectorWithFamily.ts Tempo limite, em ms, para o handshake (conexão) SOCKS5. Aumente-o quando um único host de gateway residencial receber alta concorrência (por exemplo, 100 solicitações simultâneas) — o handshake real pode exceder 10 s em um pool saturado, mesmo que o proxy esteja acessível, o que, caso contrário, resultaria em um falso [Proxy Fast-Fail] Proxy unreachable. Limitado a 120000.
PROXY_FAIL_OPEN false src/sse/handlers/chatHelpers.ts Quando definido como false (padrão), uma solicitação cujo proxy atribuído não possa ser resolvido é recusada (falha fechada), em vez de usar uma conexão direta como alternativa — isso evita vazamentos do IP real. Defina como true para restaurar o fallback DIRECT legado.
ENABLE_TLS_FINGERPRINT false open-sse/executors Falsifica a impressão digital TLS usando wreq-js (imita o Chrome 124). Contorna bloqueios JA3/JA4.
TLS_FINGERPRINT_PROVIDERS (não definido) open-sse/utils/proxyFetch.ts Lista de provedores permitidos, separada por vírgulas, para o novo roteamento TLS via proxy (open-sse/utils/proxyFetch.ts). O TLS direto mantém seu comportamento legado quando não definido; somente esses provedores são roteados pela ponte de impressão digital do Chrome 124.
OMNIROUTE_TURNSTILE_IGNORE_TLS_ERRORS false open-sse/services/claudeTurnstileSolver.ts Permite que o contexto do navegador Playwright do Claude Turnstile ignore erros de certificado HTTPS.
Cenário Configuração
SOCKS5 por túnel SSH ALL_PROXY=socks5://127.0.0.1:7890, ENABLE_SOCKS5_PROXY=true
Proxy HTTP corporativo HTTP_PROXY=http://proxy.corp.com:3128, HTTPS_PROXY=http://proxy.corp.com:3128, NO_PROXY=localhost,internal.corp.com
Anti-impressão digital ENABLE_TLS_FINGERPRINT=true — requer wreq-js (incluído)
Saída controlada/sem acesso direto Mantenha PROXY_FAIL_OPEN=false (padrão). As solicitações falham imediatamente quando o proxy está indisponível, em vez de vazarem por uma conexão direta.
Legado/desenvolvimento — permitir fallback direto PROXY_FAIL_OPEN=true. Restaura o comportamento anterior ao reforço de segurança: a conexão direta é usada quando a resolução do proxy falha.

Observação (desvio da validação da NVIDIA — #3226): o endpoint de validação de chave de API da NVIDIA trava quando roteado pelo fetch global com proxy/correção de TLS (dispatcher do undici → 504). src/lib/providers/validation.ts::directHttpsRequest() ignora intencionalmente a correção de proxy nessa única chamada de validação usando safeOutboundFetch({ bypassProxyPatch: true }). Esta é uma exceção documentada e com escopo limitado — ela não afeta a saída de chat/uso. O escopo do desvio é fixado por tests/unit/proxy-bypass-scope-guard-3226.test.ts.


Controla como o OmniRoute descobre e inicia sidecars de CLI (Claude Code, Codex etc.).

Variável Padrão Arquivo de origem Descrição
CLI_MODE auto src/shared/services/cliRuntime.ts auto = pesquisar no PATH do sistema; manual = usar somente caminhos explícitos.
CLI_EXTRA_PATHS (não definido) src/shared/services/cliRuntime.ts Entradas adicionais no PATH para localizar binários de CLI (separadas por dois-pontos).
CLI_CONFIG_HOME (não definido) src/shared/services/cliRuntime.ts Substitui o diretório inicial usado para ler as configurações de CLI (~/.claude, ~/.codex). Deve ser absoluto e estar dentro do diretório inicial do processo — ou, em um contêiner, ser um caminho montado por bind (é assim que /host-home funciona). Qualquer outro caminho faz com que o diretório inicial seja usado.
CLI_ALLOW_CONFIG_WRITES true src/shared/services/cliRuntime.ts Permite que o OmniRoute grave arquivos de configuração de CLI (renovação de token, dados de sessão). Defina como false para fazer com que toda gravação de configuração de CLI falhe com um erro explícito de “gravações desabilitadas”.
CLI_CLAUDE_BIN claude src/shared/services/cliRuntime.ts Caminho personalizado para o binário da CLI Claude.
CLI_CODEX_BIN codex src/shared/services/cliRuntime.ts Caminho personalizado para o binário da CLI Codex.
CLI_DROID_BIN droid src/shared/services/cliRuntime.ts Caminho personalizado para o binário da CLI Droid.
CLI_OPENCLAW_BIN openclaw src/shared/services/cliRuntime.ts Caminho personalizado para o binário da CLI OpenClaw.
CLI_CURSOR_BIN agent, depois cursor src/shared/services/cliRuntime.ts Caminho personalizado para o binário do agente Cursor. Sem ele, a detecção tenta primeiro agent e, caso não o encontre, usa cursor.
CLI_CLINE_BIN cline src/shared/services/cliRuntime.ts Caminho personalizado para o binário da CLI Cline.
CLI_5DIVE_BIN 5dive src/shared/services/cliRuntime.ts Caminho personalizado para o binário da CLI 5dive.
CLI_5DIVE_STATE_DIR /var/lib/5dive src/shared/services/cliRuntime.ts Diretório de estado do sistema do 5dive (perfis de autenticação pertencentes ao usuário root); espelha o valor padrão de STATE_DIR do próprio 5dive.
CLI_CONTINUE_BIN cn src/shared/services/cliRuntime.ts Caminho personalizado para o binário da CLI Continue.
CLI_QODER_BIN qodercli src/shared/services/cliRuntime.ts Caminho personalizado para o binário da CLI Qoder.
CLI_QWEN_BIN qwen src/shared/services/cliRuntime.ts Caminho personalizado para o binário da CLI Qwen Code.
CLI_AIDER_BIN aider src/shared/services/cliRuntime.ts Caminho personalizado para o binário da CLI Aider.
CLI_GOOSE_BIN goose src/shared/services/cliRuntime.ts Caminho personalizado para o binário da CLI Goose.
CLI_GEMINI_BIN gemini src/shared/services/cliRuntime.ts Caminho personalizado para o binário da CLI Google Gemini — apenas para detecção/verificações de integridade no servidor; omniroute run gemini resolve o binário gemini a partir do PATH do sistema.
CLI_KILO_BIN kilocode src/shared/services/cliRuntime.ts Caminho personalizado para o binário da CLI Kilo Code.
CLI_OPENCODE_BIN opencode src/shared/services/cliRuntime.ts Caminho personalizado para o binário da CLI OpenCode.
CLI_HERMES_BIN hermes src/shared/services/cliRuntime.ts Caminho personalizado para o binário do Hermes. Compartilhado por ambas as entradas do catálogo (hermes e hermes-agent).
CLI_FORGE_BIN forge src/shared/services/cliRuntime.ts Caminho personalizado para o binário da CLI ForgeCode.
CLI_JCODE_BIN jcode src/shared/services/cliRuntime.ts Caminho personalizado para o binário da CLI jcode.
CLI_DEEPSEEK_TUI_BIN deepseek-tui src/shared/services/cliRuntime.ts Caminho personalizado para o binário da TUI DeepSeek.
CLI_CODEWHALE_BIN codewhale src/shared/services/cliRuntime.ts Caminho personalizado para o binário da CLI CodeWhale.
CLI_SMELT_BIN smelt src/shared/services/cliRuntime.ts Caminho personalizado para o binário da CLI Smelt.
CLI_PI_BIN pi src/shared/services/cliRuntime.ts Caminho personalizado para o binário do Pi (pi-coding-agent).
CLI_CRUSH_BIN crush src/shared/services/cliRuntime.ts Caminho personalizado para o binário da CLI Crush.
CLI_OMP_BIN omp src/shared/services/cliRuntime.ts Caminho personalizado para o binário do agente Oh My Pi (omp).
CLI_LETTA_BIN letta src/shared/services/cliRuntime.ts Caminho personalizado para o binário da CLI Letta.
CLI_PRIME_AGENT_BIN prime-agent src/shared/services/cliRuntime.ts Caminho personalizado para o binário do Prime Agent (Prime Intellect).
CLI_WINDSURF_BIN (nenhum) src/shared/services/cliRuntime.ts Caminho personalizado para o binário do Windsurf. O Windsurf não inclui nenhum comando padrão — a detecção do binário permanece desativada até que esta variável seja definida.
CLI_DEVIN_BIN devin open-sse/executors/devin-cli.ts Caminho personalizado para o binário da CLI Devin (v3.8.0). Usado pelo executor Windsurf/Devin.
DEVIN_DESKTOP_VERSION 3.6.27 open-sse/executors/devin-desktop.ts ide_version do Devin Desktop. As substituições devem usar o formato x.y.z; valores inválidos retornam ao padrão verificado.
DEVIN_DESKTOP_EXTENSION_VERSION 1.48.2 open-sse/executors/devin-desktop.ts extension_version do Codeium/language-server incluído, distinta da ide_version do Desktop. As substituições devem usar x.y.z; valores inválidos usam o padrão incluído.
CLI_DEVIN_AGENTIC_BIN devin open-sse/executors/devin-cli-agentic.ts Substituição da CLI Devin exclusiva para a ponte agêntica. O executor aceita apenas o upstream ACP stdio local.
DEVIN_AGENTIC_HOME (obrigatório) open-sse/executors/devin-cli-agentic.ts Diretório inicial absoluto e isolado para o subprocesso agêntico do Devin; os caminhos aceitos pela ponte são /home/bridge e caminhos .sandbox locais da tarefa (no Windows, C:\...\.sandbox\...).
DEVIN_AGENTIC_ACP_TIMEOUT_MS 120000 open-sse/executors/devin-cli-agentic.ts Duração máxima de um turno ACP do Devin antes que a ponte encerre o processo filho e retorne explicitamente um timeout.
DEVIN_BRIDGE_MODEL devin-cli-agentic/swe-1-7 docker/devin-bridge/compose.yml Alias principal do modelo Claude Code para a ponte isolada. O harness ativo substitui o exemplo por um modelo retornado pela conta atual do Devin.
DEVIN_BRIDGE_SONNET_MODEL DEVIN_BRIDGE_MODEL docker/devin-bridge/compose.yml Alias da ponte isolada usado quando o Claude Code solicita seu padrão Sonnet.
DEVIN_BRIDGE_OPUS_MODEL DEVIN_BRIDGE_MODEL docker/devin-bridge/compose.yml Alias da ponte isolada usado quando o Claude Code solicita seu padrão Opus.
DEVIN_BRIDGE_HAIKU_MODEL DEVIN_BRIDGE_MODEL docker/devin-bridge/compose.yml Alias da ponte isolada usado quando o Claude Code solicita seu padrão Haiku.
DEVIN_BRIDGE_SUBAGENT_MODEL DEVIN_BRIDGE_MODEL docker/devin-bridge/compose.yml Alias da ponte isolada usado para subagentes do Claude Code.
DEVIN_SEAT_API_URL https://server.codeium.com open-sse/services/usage/devinCli.ts Substituição opcional para a API de gerenciamento de licenças do Codeium usada pela cota do Devin CLI (GetUserStatus).
AUGGIE_BIN auggie open-sse/executors/auggie.ts Substituição por caminho absoluto para o binário da CLI do Augment (Auggie) usado pelo provedor local auggie. Se não definido, usa CLI_AUGGIE_BIN e, em seguida, faz uma busca no PATH.
CLI_AUGGIE_BIN auggie open-sse/executors/auggie.ts Substituição alternativa para o caminho do binário da CLI do Augment (Auggie), verificada após AUGGIE_BIN.
ZCODE_BIN zcode open-sse/executors/zcode.ts Binário usado pelo cliente stdio do provedor local zcode. Se não definido, usa zcode no PATH.
ZCODE_ARGS — open-sse/executors/zcode.ts Matriz JSON (≤16 strings) de argumentos adicionais passados ao binário zcode quando iniciado por meio de cliTools.
ZCODE_CWD process.cwd() open-sse/executors/zcode.ts Diretório de trabalho do subprocesso do servidor de aplicativos do ZCode.
ZCODE_PROVIDER_ID builtin:zai-coding-plan open-sse/executors/zcode.ts Substituição do ID do provedor enviado ao servidor de aplicativos.
ZCODE_SERVER_RUNTIME_ROOT ~/.zcode/server open-sse/executors/zcode.ts Raiz do ambiente de execução do servidor de aplicativos do ZCode (onde ficam o node e o zcode-server.cjs incluídos).
ZCODE_SERVER_NODE &lt;runtimeRoot&gt;/node open-sse/executors/zcode.ts Executável do Node usado para hospedar o servidor de aplicativos do ZCode.
ZCODE_SERVER_ENTRY &lt;runtimeRoot&gt;/zcode-server.cjs open-sse/executors/zcode.ts Script de entrada do servidor de aplicativos usado para hospedar o servidor ZCode.
ZCODE_STARTUP_TIMEOUT_MS 10000 open-sse/executors/zcode.ts Tempo limite de inicialização (ms) antes que a inicialização de um servidor de aplicativos do ZCode seja considerada malsucedida.
ZCODE_RPC_TIMEOUT_MS 30000 open-sse/executors/zcode.ts Tempo limite de RPC por solicitação (ms) para uma chamada ao servidor de aplicativos do ZCode.
ZCODE_TURN_TIMEOUT_MS 120000 open-sse/executors/zcode.ts Duração máxima (ms) de um turno do ZCode antes que o supervisor o encerre por tempo limite.
ZCODE_POLL_INTERVAL_MS 250 open-sse/executors/zcode.ts Intervalo de consulta (ms) para verificar a conclusão do turno do ZCode.
HERMES_HOME ~/.hermes src/lib/cli-helper/config-generator/hermesHome.ts Diretório inicial do Hermes Agent no qual o OmniRoute lê/grava a configuração da CLI do Hermes. Corresponde à variável de ambiente definida no Windows pelo instalador PowerShell do Hermes (%LOCALAPPDATA%\hermes).

Esses sinalizadores de recurso são opcionais e ficam desativados por padrão. Eles também podem ser alternados no painel CLI Code.

Variável Padrão Arquivo de origem Descrição
OMNIROUTE_AUTO_SYNC_CODEX_PROFILES false src/shared/constants/featureFlagDefinitions.ts Após a sincronização dos modelos de um provedor, regrava automaticamente os arquivos de perfil ~/.codex/*.config.toml usando o catálogo ativo. Requer CLI_ALLOW_CONFIG_WRITES; nunca altera a configuração ativa/padrão do Codex, a autenticação, as configurações do Codex-lb nem a escolha do provedor.
OMNIROUTE_AUTO_SYNC_CLAUDE_PROFILES false src/shared/constants/featureFlagDefinitions.ts Após a sincronização dos modelos de um provedor, regrava automaticamente os arquivos de perfil do Claude Code em ~/.claude/profiles/&lt;name&gt;/settings.json usando o catálogo ativo. Requer CLI_ALLOW_CONFIG_WRITES; nunca altera a configuração ativa/padrão do Claude, a autenticação nem a escolha do provedor.
Janela do terminal
# Monte os binários do host no contêiner e informe ao OmniRoute onde eles estão:
CLI_EXTRA_PATHS=/host-cli/bin
CLI_CONFIG_HOME=/host-home
CLI_ALLOW_CONFIG_WRITES=true
CLI_CLAUDE_BIN=/host-cli/bin/claude

CLI_CONFIG_HOME só entra em vigor quando o caminho é realmente montado via bind mount a partir do host — combine-o com montagens como ~/.codex:/host-home/.codex:rw (consulte o perfil host em docker-compose.yml). Um caminho que não esteja no diretório pessoal do usuário do contêiner nem seja um bind mount é ignorado, pois qualquer conteúdo gravado nele seria descartado quando o contêiner fosse recriado.

A imagem é executada como USER node, portanto um /root não montado não é uma sobrescrita válida.

Variável Padrão Arquivo de origem Descrição
OMNIROUTE_CONTAINER (auto) src/shared/utils/containerEnv.ts Força a detecção de contêiner a ser ativada (1/true) ou desativada (0/false). Necessário apenas em runtimes que a detecção automática não identifica.
OMNIROUTE_ALLOW_CONTAINER_CONFIG_WRITE false src/shared/services/cliRuntime.ts Permite, mesmo assim, que a ferramenta de CLI grave configurações em um caminho não montado do contêiner. O equivalente na CLI é --allow-container-write.

Estas variáveis ajustam o comportamento do próprio binário da CLI omniroute (não a detecção do sidecar acima).

Variável Padrão Arquivo de origem Descrição
OMNIROUTE_LANG (sistema) bin/cli/i18n.mjs Força o idioma da saída da CLI. Localidade BCP-47 (por exemplo, en, pt-BR). Sobrescreve as variáveis de ambiente de localidade do sistema (LC_ALL, LC_MESSAGES).
OMNIROUTE_SHOW_LOG (não definido) bin/cli/runtime/processSupervisor.mjs Defina como 1 para encaminhar stdout/stderr do servidor ao terminal no modo supervisionado. Equivale à opção --log em omniroute serve.
OMNIROUTE_CLI_TOKEN (não definido) bin/cli/api.mjs Token de autenticação de máquina injetado como o cabeçalho x-omniroute-cli-token. Gerado automaticamente na tarefa 8.12.
OMNIROUTE_HTTP_TIMEOUT_MS 30000 bin/cli/api.mjs Tempo limite HTTP por tentativa (ms) para solicitações da CLI → servidor.
OMNIROUTE_READY_TIMEOUT_MS 60000 bin/cli/utils/pid.mjs Tempo máximo (ms) que a CLI aguarda pelo endpoint de integridade do servidor antes de exibir um aviso de tempo limite. Útil para inicializações a frio lentas (por exemplo, no Windows). Também pode ser definido por meio de --ready-timeout.
OMNIROUTE_VERBOSE 0 bin/cli/api.mjs Defina como 1 para exibir diagnósticos de novas tentativas/recuo em stderr durante comandos da CLI.
OMNIROUTE_PLUGIN_PATH (não definido) bin/cli/plugins.mjs Diretório personalizado para descoberta de plugins da CLI (pacotes omniroute-cmd-*). Quando não definido, o padrão é ~/.omniroute/plugins/. Somente para a CLI — ele nunca chega ao verificador de plugins do lado do servidor, que é indicado por OMNIROUTE_PLUGINS_DIR (seção 2).

Variável Padrão Arquivo de Origem Descrição
OMNIROUTE_BASE_URL detecção automática open-sse/mcp-server/server.ts URL explícita para que as ferramentas MCP/A2A acessem o OmniRoute. Substitui a detecção automática de localhost.
OMNIROUTE_API_KEY (não definida) Módulos MCP/A2A Chave de API para chamadas internas de ferramentas MCP e habilidades A2A.
OMNIROUTE_API_KEY_ID (não definida) open-sse/mcp-server/audit.ts ID da chave para atribuição no log de auditoria do MCP.
ROUTER_API_KEY (não definida) Legado Alias legado para OMNIROUTE_API_KEY.
OMNIROUTE_A2A_HISTORY_RETENTION_DAYS 30 src/lib/a2a/taskManager.ts Quantidade de dias durante os quais o histórico de tarefas A2A é mantido no banco de dados local antes que a limpeza diária exclua uma linha. Se não definida, não numérica ou <= 0, usa 30 como valor alternativo.
OMNIROUTE_A2A_MEMORY_HITS 1 src/lib/a2a/taskExecution.ts Interruptor de desativação do recurso de observabilidade de acertos de memória A2A. Defina como 0 para ignorar totalmente a consulta de recuperação de memória de uma tarefa; qualquer outro valor (inclusive se não definida) mantém o recurso habilitado.
OMNIROUTE_ISSUE_AGENT_ENABLED false src/app/api/issue-agent/runs/route.ts Habilita o endpoint offline/local de triagem gravada do Issue Agent. Mantenha desabilitado, a menos que esteja executando explicitamente fluxos de trabalho locais de triagem gravada.
OMNIROUTE_ISSUE_AGENT_TIMEOUT_MS (não definida) src/lib/issueAgent/execution.ts Tempo limite (ms) para uma única execução de triagem gravada do Issue Agent. Limitado a um máximo interno; usa o padrão integrado como alternativa quando não definido ou inválido.
OMNIROUTE_CONTEXT (contexto ativo) bin/cli/program.mjs, bin/cli/api.mjs Contexto/perfil do modo remoto da CLI para comandos omniroute; substitui o contexto ativo no armazenamento local de contextos. Equivale a --context &lt;name&gt;.
OMNIROUTE_CONTEXT_KEYCHAIN_DISABLED 0 bin/cli/contexts.mjs Desabilita o backend opcional de chaveiro do sistema operacional keytar para credenciais de contexto da CLI. Quando habilitada, as credenciais permanecem em config.json com o modo 0600, e a CLI emite uma única vez um aviso sobre o mecanismo alternativo; destinada à operação deliberada em ambientes headless/contêineres.
OMNIROUTE_MCP_ENFORCE_SCOPES false open-sse/mcp-server/server.ts Impõe controle de acesso baseado em escopos às chamadas de ferramentas MCP.
OMNIROUTE_MCP_SCOPES (todos) open-sse/mcp-server/server.ts Escopos separados por vírgulas: admin, combos, health, models, routing, budget, metrics, pricing, memory, skills.
OMNIROUTE_MCP_COMPRESS_DESCRIPTIONS false open-sse/mcp-server/descriptionCompressor.ts Compacta as descrições das ferramentas MCP antes de serializar o manifesto. Valores de habilitação: 1, true, on.
OMNIROUTE_MCP_DESCRIPTION_COMPRESSION rtk open-sse/mcp-server/descriptionCompressor.ts Algoritmo/perfil de compactação. Valores de desabilitação: 0, false, off.
OMNIROUTE_MCP_FETCH_TIMEOUT_MS 10000 open-sse/mcp-server/fetchTimeout.ts Limite de interrupção (ms) para leituras internas de gerenciamento do servidor MCP (integridade, resiliência, combinações, cota, uso).
OMNIROUTE_MCP_UPSTREAM_TIMEOUT_MS 60000 open-sse/mcp-server/fetchTimeout.ts Limite de tempo para cancelamento (ms) de saltos MCP que aguardam um provedor (route_request, web_search, web_fetch).
OMNIROUTE_CORPUS_CACHE_SIZE 5 src/lib/localCorpus/configured.ts Número máximo de instâncias de índice do corpus local armazenadas em cache na memória (LRU, uma por diretório raiz indexado). Limitado a um mínimo de 1.
MODEL_SYNC_INTERVAL_HOURS 24 src/shared/services/modelSyncScheduler.ts Intervalo de sincronização do catálogo de modelos em horas.
PROVIDER_LIMITS_SYNC_INTERVAL_MINUTES 70 src/lib/usage/providerLimits.ts Intervalo de consulta dos limites de taxa e das cotas do provedor.
PROVIDER_LIMITS_SYNC_SPACING_MS 1500 src/lib/usage/providerLimits.ts Intervalo (ms) entre buscas consecutivas de cota OAuth em uma sincronização em massa; as conexões OAuth são consultadas uma por vez para evitar uma rajada de requisições ao serviço upstream. 0 desativa esse espaçamento (concorrente).
OMNIROUTE_QUOTA_FETCH_MIN_INTERVAL_MS 250 open-sse/services/quotaFetchThrottle.ts Intervalo mínimo (ms) entre buscas consecutivas de cota no upstream durante a verificação prévia/monitoramento por requisição; espaça as chamadas de rede concorrentes para que muitas contas em um único IP não sobrecarreguem o upstream com uma rajada de requisições. Integrado aos mecanismos de busca de cotas do Codex (/wham/usage), DeepSeek, Bailian (em ambos os locais de busca), OpenCode e Crof (#6009, #6911). O caminho genérico de despacho usage.ts::getUsageForProvider (github/glm/minimax/nanogpt/xai/etc.) ainda não está coberto — rastreado separadamente. Acertos de cache não são afetados. 0 desativa; limitado a 0..5000.
PROVIDER_LIMITS_POST_USAGE_REFRESH_DELAY_MS 5000 src/lib/usage/providerLimits.ts Atraso (ms) antes de atualizar os limites do provedor após um evento real de uso, dando tempo para que a API de cotas upstream registre o consumo.
OMNIROUTE_LOGIN_BROWSER_PATH detecção automática open-sse/services/adobeFireflyBrowserLogin.ts Caminho absoluto para um executável do Chrome ou Edge do sistema usado para autenticação interativa no Adobe Firefly e renovação em segundo plano.
ADOBE_FIREFLY_BROWSER_REFRESH habilitado open-sse/services/adobeFireflySession.ts Mantém atualizados o IMS e o estado de risco do navegador com sessões Chrome CDP com escopo por conta. Defina como 0 para desativar a renovação pelo navegador.
ADOBE_FIREFLY_SESSION_DISK habilitado open-sse/services/adobeFireflySession.ts Persiste sessões reparadas da Adobe em DATA_DIR entre reinicializações do processo. Defina como 0 para manter as sessões apenas na memória.
ADOBE_FIREFLY_MIN_SUBMIT_GAP_MS 12000 open-sse/services/adobeFireflySession.ts Espaçamento mínimo, em milissegundos, entre envios de geração do Adobe Firefly; 0 desativa o espaçamento.
ADOBE_FIREFLY_BATCH_EXTRA_GAP_MS 15000 open-sse/services/adobeFireflySession.ts Período adicional de espera, em milissegundos, após cada terceiro envio bem-sucedido à Adobe.
ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS 8000 open-sse/services/adobeFireflyClient.ts Recuo base, em milissegundos, após respostas 408 transitórias da Adobe; combinado com o espaçamento entre envios em até cinco tentativas.
OMNIROUTE_DISABLE_BACKGROUND_SERVICES false src/instrumentation-node.ts Desativa todos os serviços em segundo plano (sincronização, preços, atualização de modelos). Útil para CI/testes.
OMNIROUTE_ENABLE_RUNTIME_BACKGROUND_TASKS (não definido) src/lib/config/runtimeSettings.ts Força a ativação de tarefas em segundo plano quando testes automatizados são detectados. Defina como 1 para ignorar a heurística de teste.
OMNIROUTE_BUDGET_RESET_JOB_INTERVAL_MS 600000 src/lib/jobs/budgetResetJob.ts Frequência de verificação da redefinição de orçamento (ms). Mínimo de 10000.
OMNIROUTE_CONNECTION_RECOVERY_INTERVAL_MS 60000 src/lib/quota/connectionRecovery.ts Cadência da recuperação proativa do período de espera da conexão (ms): revalida conexões cujo rate_limited_until transitório expirou, fora do caminho crítico da solicitação. Mínimo de 5000.
OMNIROUTE_DISABLE_CONNECTION_RECOVERY false src/lib/quota/connectionRecovery.ts Desativa o agendador de recuperação proativa do período de espera da conexão (a recuperação sob demanda em getProviderCredentials ainda se aplica).
OMNIROUTE_REASONING_CACHE_CLEANUP_INTERVAL_MS 1800000 src/lib/jobs/reasoningCacheCleanupJob.ts Cadência de limpeza do cache de raciocínio (ms). Mínimo de 60000.
OMNIROUTE_REASONING_MIN_BUDGET não definido (desativado) open-sse/services/reasoningTokenBuffer.ts Limite mínimo opcional para orçamentos de saída de modelos de pensamento: o max_tokens do chamador no intervalo [256, limite mínimo) é elevado até o limite mínimo (limitado pelo máximo de saída do modelo). Não definido = os orçamentos do cliente nunca são ampliados (#9507).
OMNIROUTE_LOG_EXPORT_CRON 0 * * * * src/lib/jobs/logExportJob.ts Expressão cron (UTC) para a tarefa de exportação de logs de chamadas, que esvazia todos os destinos de exportação de logs habilitados.
OMNIROUTE_CONFIG_HOT_RELOAD_MS 5000 src/lib/config/hotReload.ts Intervalo de sondagem (ms) para o recarregamento dinâmico da configuração. Valores inferiores a 1000 são rejeitados.
OMNIROUTE_DISABLE_REDIS_AUTH_CACHE (ativado) src/lib/db/apiKeys.ts Defina como 1 para ignorar o cache de autenticação de chaves de API baseado em Redis (força leituras do banco de dados).
OMNIROUTE_RTK_TRUST_PROJECT_FILTERS 0 open-sse/services/compression/engines/rtk/filterLoader.ts Confia nas regras de filtro de projeto RTK gerenciadas pelo usuário sem verificações rigorosas de assinatura.
OMNIROUTE_LITE_MAX_TOOL_LENGTH 2000 open-sse/services/compression/lite.ts Limite de caracteres para o truncamento proativo de resultados de ferramentas do Lite quando lite.maxToolLength não está definido. Intervalo de 256–1000000. A configuração do painel prevalece sobre esta variável de ambiente.
OMNI_COMPRESSION_WORKERS 2 open-sse/services/compression/compressionWorkerPool.ts Número máximo de workers RTK/Caveman síncronos simultâneos; tarefas excedentes aguardam em ordem FIFO.
OMNI_COMPRESSION_WORKER_TIMEOUT_MS 120000 open-sse/services/compression/compressionWorkerPool.ts Tempo limite por tarefa em milissegundos. Workers que excedem o tempo limite são encerrados, e a solicitação continua sem alterações.
OMNI_COMPRESSION_WORKER_IDLE_MS 60000 open-sse/services/compression/compressionWorkerPool.ts Tempo de vida ocioso em milissegundos antes que um worker de compressão não utilizado seja encerrado.
COMPRESSION_PIPELINE_BREAKER_ENABLED false open-sse/services/compression/pipelineEngineBreaker.ts Chave geral do disjuntor por mecanismo do pipeline empilhado T02. Opcional (desativado por padrão) — quando ativado, um mecanismo que gera erros repetidamente entre solicitações é ignorado (continua sem interrupção) durante um período de espera; desativado = comportamento legado idêntico byte a byte.
COMPRESSION_PIPELINE_BREAKER_THRESHOLD 3 open-sse/services/compression/pipelineEngineBreaker.ts Número de falhas consecutivas entre solicitações antes que o disjuntor de um mecanismo seja aberto.
COMPRESSION_PIPELINE_BREAKER_COOLDOWN_MS 30000 open-sse/services/compression/pipelineEngineBreaker.ts Milissegundos durante os quais um mecanismo com o disjuntor aberto permanece ignorado antes de uma tentativa em estado semiaberto.
COMPRESSION_CCR_RETRIEVAL_RAMP_FACTOR 2 open-sse/services/compression/engines/ccr/index.ts Rampa de feedback de recuperação T08/H8 CCR: cada recuperação anterior de um bloco armazenado aumenta linearmente seu minChars efetivo (conteúdo recuperado com frequência é menos comprimido; >=3 recuperações = nunca comprimido). 1 desativa a rampa (ignoramento binário somente no limite).
COMPRESSION_CCR_DURABLE_STORE true open-sse/services/compression/engines/ccr/index.ts Armazenamento durável de blocos do CCR (#9061). Usa SQLite como suporte para o armazenamento em memória, de modo que um bloco sobreviva à remoção por LRU, ao TTL, a uma reinicialização ou a uma recuperação realizada em outra instância. Defina como false para manter os blocos somente na memória. Blocos com mais de 512 KB e ambientes de execução em nuvem permanecem somente na memória, independentemente dessa configuração.
COMPRESSION_PREFIX_FREEZE_ENABLED false open-sse/services/compression/prefixFreeze.ts Chave mestra do congelamento de prefixo observado pelo uso T08/H5. Adesão opcional (desativado por padrão) — quando ativada, um prompt do sistema observado >= ao limite é tratado como um prefixo estável armazenável em cache e preservado durante a compactação, mesmo para provedores que a heurística de cache estático não detecta (o congelamento apenas preserva, nunca modifica).
COMPRESSION_PREFIX_FREEZE_THRESHOLD 3 open-sse/services/compression/prefixFreeze.ts Número de observações de um prompt do sistema antes que ele seja tratado como um prefixo estável congelado.
OMNIROUTE_BOOTSTRAPPED false src/app/(dashboard)/dashboard/page.tsx Definido como true pelo script de inicialização após a configuração inicial. Controla a visibilidade do assistente de configuração.
OMNIROUTE_ALLOW_BODY_PROJECT_OVERRIDE 0 open-sse/executors/antigravity.ts Mecanismo de escape: permite que o corpo da solicitação substitua o campo de projeto do Antigravity.
ANTIGRAVITY_CREDITS off open-sse/services/antigravityCredits.ts Política de créditos do Google One AI: off nunca injeta créditos, retry injeta uma vez após um erro 429 de cota elegível e always injeta na primeira solicitação.
ANTIGRAVITY_ALLOW_SIGNATURE_BYPASS 0 open-sse/translator/request/openai-to-gemini.ts Permite que o tradutor de solicitações do Antigravity ignore sua validação estrita da assinatura de solicitação da CLI quando o serviço upstream recusar assinaturas reais (modo de depuração/CLI obsoleta). Um valor diferente de zero habilita essa opção.
AGY_TOKEN_FILE ~/.gemini/antigravity-cli/antigravity-oauth-token src/app/api/providers/agy-auth/apply-local/route.ts Substitui o caminho do arquivo de token da CLI do Antigravity (agy) para a importação de login local por detecção automática.
Variável Padrão Arquivo de origem Descrição
OMNIROUTE_SERVER detecção automática src/lib/oauth/config/index.ts URL do servidor para a ponte de autenticação CLI↔OmniRoute.
OMNIROUTE_TOKEN (não definido) src/lib/oauth/config/index.ts Token de autenticação para a ponte da CLI.
OMNIROUTE_USER_ID cli src/lib/oauth/config/index.ts ID do usuário para sessões da ponte da CLI.
SERVER_URL (não definido) src/lib/oauth/config/index.ts Alias legado de OMNIROUTE_SERVER.
CLI_TOKEN (não definido) src/lib/oauth/config/index.ts Alias legado de OMNIROUTE_TOKEN.
CLI_USER_ID (não definido) src/lib/oauth/config/index.ts Alias legado de OMNIROUTE_USER_ID.

Credenciais integradas para desenvolvimento local. Para implantações remotas, registre as suas próprias no console de desenvolvedor de cada provedor.

Variável Provedor Observações
CLAUDE_OAUTH_CLIENT_ID Claude Code (Anthropic) Cliente público — não é necessário segredo.
CLAUDE_CODE_REDIRECT_URI Claude Code Substituir URI de redirecionamento. Padrão: https://platform.claude.com/oauth/code/callback
CODEX_OAUTH_CLIENT_ID Codex / OpenAI Cliente público.
GEMINI_OAUTH_CLIENT_ID Gemini (Google) Requer _SECRET correspondente.
GEMINI_OAUTH_CLIENT_SECRET Gemini (Google) —
KIMI_CODING_OAUTH_CLIENT_ID Kimi Coding (Moonshot) Cliente público.
MUSE_CODE_OAUTH_CLIENT_ID Muse Code (Meta) Substituição opcional para o ID do cliente de fluxo de dispositivo da CLI pública do Muse. Deixe sem definir para usar o cliente público integrado.
ANTIGRAVITY_OAUTH_CLIENT_ID Antigravity (Google) Requer _SECRET correspondente.
ANTIGRAVITY_OAUTH_CLIENT_SECRET Antigravity (Google) —
GITHUB_OAUTH_CLIENT_ID GitHub Copilot Cliente público.
GHE_COPILOT_OAUTH_CLIENT_ID GHE Copilot Substituição opcional para o ID do cliente OAuth do GitHub Enterprise Copilot. Retorna ao padrão público de GITHUB_OAUTH_CLIENT_ID quando não definido.
COPILOT_INTEGRATION_ID GitHub Copilot Substituição opcional para o ID de integração do cliente GitHub Copilot enviado nos cabeçalhos Copilot-Integration-Id e Editor-Plugin-Version. O padrão é copilot-developer-cli.
WINDSURF_API_KEY Windsurf / Devin (v3.8) Chave de API de fallback usada por open-sse/executors/devin-cli.ts quando nenhuma credencial por conexão está disponível. Opcional.
CLI_DEVIN_BIN Devin CLI (v3.8) Caminho personalizado para o binário da CLI do Devin (devin). Resolvido por open-sse/executors/devin-cli.ts.
GITLAB_DUO_OAUTH_CLIENT_ID GitLab Duo (v3.8) ID do cliente OAuth para GitLab Duo. Registre um aplicativo em https://gitlab.com/-/profile/applications com URI de redirecionamento <NEXT_PUBLIC_BASE_URL>/callback e escopos api, read_user, openid, profile, email. Retorna a GITLAB_OAUTH_CLIENT_ID.
GITLAB_DUO_OAUTH_CLIENT_SECRET GitLab Duo (v3.8) Segredo do cliente OAuth para GitLab Duo. Opcional — o fluxo PKCE não requer um segredo. Retorna a GITLAB_OAUTH_CLIENT_SECRET.
GITLAB_DUO_BASE_URL GitLab Duo (v3.8) Substitui a URL base do GitLab (GitLab auto-hospedado). O padrão é https://gitlab.com. Retorna a GITLAB_BASE_URL.
GITLAB_BASE_URL GitLab Duo (v3.8) Fallback legado para GITLAB_DUO_BASE_URL. Usado quando a variante _DUO_ não está definida.
GITLAB_OAUTH_CLIENT_ID GitLab Duo (v3.8) Fallback legado para GITLAB_DUO_OAUTH_CLIENT_ID consumido por src/lib/oauth/constants/oauth.ts.
GITLAB_OAUTH_CLIENT_SECRET GitLab Duo (v3.8) Fallback legado para GITLAB_DUO_OAUTH_CLIENT_SECRET consumido por src/lib/oauth/constants/oauth.ts.
QODER_OAUTH_CLIENT_SECRET Qoder —
QODER_OAUTH_AUTHORIZE_URL Qoder Definido para habilitar o Qoder OAuth.
QODER_OAUTH_TOKEN_URL Qoder —
QODER_OAUTH_USERINFO_URL Qoder —
QODER_OAUTH_CLIENT_ID Qoder —
QODER_PERSONAL_ACCESS_TOKEN Qoder Fallback direto da chave de API (ignora o OAuth).
QODER_CLI_WORKSPACE Qoder ID do espaço de trabalho para o Qoder CLI.
OMNIROUTE_QODER_WORKSPACE Qoder Alias para QODER_CLI_WORKSPACE.
QODER_CLI_CONFIG_DIR Qoder Substitui o diretório de configuração do Qoder CLI (sessão PAT isolada, evita sobrescrever um login de navegador).
BLACKBOX_WEB_VALIDATED_TOKEN Blackbox Web Token tk de frontend para enviar como validated em /api/chat. Necessário quando o Blackbox impõe a correspondência de tokens; caso contrário, o OmniRoute retorna a um UUID aleatório. Consulte o problema #2252.
VISION_BRIDGE_BASE_URL Guardrail Vision Bridge URL base compatível com OpenAI para chamadas não-Anthropic do vision-bridge. O padrão é a variável de ambiente da URL legada do OpenAI ou api.openai.com. Aponte para o auto-loop /v1 do OmniRoute ou qualquer endpoint compatível com OpenAI (Gemini OpenAI-compat, OpenRouter). Problema #2232. Quando a URL é o próprio /v1 do OmniRoute, a sub-requisição de descrição envia x-omniroute-admission-bypass: internal e autentica com a credencial de auto-loop resolvida (sentinela sk_omniroute no modo local, ou OMNIROUTE_API_KEY / ROUTER_API_KEY — #1350) para que as implantações REQUIRE_API_KEY=true funcionem.
VISION_BRIDGE_API_KEY Guardrail Vision Bridge Chave de API para a URL acima. Substitui as variáveis de ambiente OpenAI / Google por provedor para chamadas não-Anthropic do vision-bridge. Os modelos Anthropic mantêm seu caminho de chave Anthropic dedicado. Problema #2232.
OMNIROUTE_VISION_BRIDGE_NEGATIVE_CACHE_MS Guardrail Vision Bridge Por quanto tempo um resultado de roteamento “nenhum candidato utilizável” é armazenado em cache, em ms (padrão 30000). Valores inválidos ou negativos retornam ao padrão; 0 desabilita o cache negativo. Fonte: src/lib/guardrails/visionBridgeRouter.ts.

[!WARNING]

  1. Vá para Google Cloud Console → Credenciais
  2. Crie um ID de Cliente OAuth 2.0 (tipo: “Aplicativo da web”)
  3. Adicione a URL do seu servidor como URI de redirecionamento autorizado
  4. Substitua os valores das credenciais em .env.

Substitua o cabeçalho User-Agent enviado a cada provedor upstream. Isso é resolvido dinamicamente em tempo de execução pela classe base do executor:

process.env[`${PROVIDER_ID}_USER_AGENT`]

Fonte: open-sse/executors/base.ts → buildHeaders()

| Variável | Valor padrão | Quando atualizar | | –––––––––––––––– | ——————————————— | ———————————————————————————————— | —————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————— | | CLAUDE_USER_AGENT | claude-cli/2.1.258 (external, cli) | Quando a Anthropic lançar uma nova versão da CLI | | CLAUDE_DISABLE_TOOL_NAME_CLOAK | false | executors/base.ts + executors/cliproxyapi.ts | Defina como 1/true para encaminhar literalmente à Anthropic os nomes de ferramentas de harnesses de terceiros nos dois caminhos destinados à Anthropic (OAuth nativo e CLIProxyAPI). Por padrão, o executor atribui aliases determinísticos a nomes de ferramentas que não sejam do Claude Code (usando o mapeamento canônico do Claude Code quando houver um; caso contrário, PascalCase) e os reverte na resposta por meio de _toolNameMap, para que harnesses com ferramentas em snake_case não sejam recusados por serem identificados como clientes de terceiros. Somente para depuração. | | CODEX_USER_AGENT | codex-cli/0.155.0 (Windows 10.0.26200; x64) | Quando a OpenAI atualizar a CLI do Codex | | CODEX_CLIENT_VERSION | 0.155.0 | Substitua a versão do cliente Codex independentemente da string completa do UA | | CLAUDE_CODE_CLIENT_VERSION | 2.1.258 | Substitua a versão anunciada do Claude Code independentemente de CLAUDE_USER_AGENT. A Anthropic restringe alguns modelos com base nesse valor (#12417). | | GITHUB_COPILOT_CLI_VERSION | 1.0.81-6 | Substitua a versão anunciada da CLI do Copilot independentemente de GITHUB_USER_AGENT | | GITHUB_USER_AGENT | GitHubCopilotChat/0.54.0 | Quando o GitHub Copilot Chat for atualizado | | ANTIGRAVITY_USER_AGENT | antigravity/2.0.1 darwin/arm64 | Quando o Antigravity IDE for atualizado | | KIRO_USER_AGENT | AWS-SDK-JS/3.0.0 kiro-ide/1.0.0 | Quando o Kiro IDE for atualizado | | KIRO_OAUTH_CLIENT_ID | kiro-cli | Substitua o clientId (ID público) do código de dispositivo social do Kiro | | KIRO_VERIFY_FULL_CRC | false | Opcional: validação completa do CRC de cada quadro no fluxo de eventos do Kiro (para depurar fluxos corrompidos) | | QODER_USER_AGENT | Qoder-Cli | Quando a CLI do Qoder for atualizada | | CURSOR_USER_AGENT | Cursor/3.3 | Quando o Cursor for atualizado |

[!TIP] Você pode adicionar substituições de User-Agent para qualquer provedor usando o padrão {PROVIDER_ID}_USER_AGENT. O executor constrói dinamicamente o nome da variável de ambiente.


Quando habilitado, o OmniRoute reordena os cabeçalhos HTTP e os campos do corpo JSON para corresponder à assinatura exata das ferramentas de CLI oficiais. Isso reduz o risco de sinalização da conta enquanto preserva o IP do seu proxy.

Fonte: open-sse/config/cliFingerprints.ts, open-sse/executors/base.ts

Variável Ativação Efeito
CLI_COMPAT_CODEX =1 Imita a assinatura de requisição da CLI do Codex
CLI_COMPAT_CLAUDE =1 Imita a assinatura de requisição do Claude Code
CLI_COMPAT_GITHUB =1 Imita a assinatura de requisição do GitHub Copilot
CLI_COMPAT_ANTIGRAVITY =1 Imita a assinatura de requisição do Antigravity
CLI_COMPAT_CURSOR =1 Imita a assinatura de requisição do Cursor
CLI_COMPAT_KIMI_CODING =1 Imita a assinatura de requisição do Kimi Coding
CLI_COMPAT_KILOCODE =1 Imita a assinatura de requisição do Kilo Code
CLI_COMPAT_CLINE =1 Imita a assinatura de requisição do Cline
Variável Ativação Efeito
CLI_COMPAT_ALL =1 Habilita a compatibilidade de fingerprint para todos os provedores de uma só vez.

Substituições de identidade da CLI do Kimi Coding

Seção intitulada “Substituições de identidade da CLI do Kimi Coding”
Variável Padrão Arquivo de origem Descrição
KIMI_CLI_VERSION 1.36.0 src/lib/oauth/providers/kimi-coding.ts Substitui a versão da CLI do Kimi enviada durante chamadas OAuth/API.
KIMI_CODING_DEVICE_ID (padrão capturado) src/lib/oauth/providers/kimi-coding.ts Substitui o ID de dispositivo do Kimi capturado usado nos cabeçalhos do cliente.

[!NOTE] Este recurso funciona em conjunto com as substituições de User-Agent (§12). O sistema de fingerprint lida com a ordenação dos cabeçalhos e dos campos do corpo, enquanto as substituições de User-Agent lidam com a string específica de UA. Ambos podem ser habilitados independentemente.


Chaves de API para provedores que usam autenticação direta. Configuração preferencial: Painel → Provedores → Adicionar chave de API.

A configuração por meio de variáveis de ambiente é uma alternativa para implantações Docker ou sem interface gráfica.

Padrão reconhecido: {PROVIDER_ID}_API_KEY

Variável Provedor
DEEPSEEK_API_KEY DeepSeek
NVIDIA_API_KEY NVIDIA NIM
JINA_AI_API_KEY Jina AI (Foundation API + fallback do Reader)
JINA_API_KEY Jina AI (alias de JINA_AI_API_KEY)
GEMINI_API_KEY Gemini (Google AI Studio) embeddings + fallback de chat
GOOGLE_API_KEY Gemini (alias de GEMINI_API_KEY)

[!NOTE] As entradas estáticas ${PROVIDER}_API_KEY para Groq, xAI, Mistral, Perplexity, Together AI, Fireworks, Cerebras, Cohere, Nebius e Qianfan foram removidas na v3.8.0 porque o runtime não as lê mais — esses provedores dependem exclusivamente do Painel / data/provider-credentials.json / banco de dados criptografado. Consulte a seção Auditoria: variáveis removidas / inativas no final deste documento para ver o caminho de migração.

[!TIP] As chaves definidas pelo Painel são armazenadas de forma criptografada no SQLite e têm precedência sobre as variáveis de ambiente.

Jina: embeddings jina-ai/…, rerank, classify, segment e jina-search não cobram uma chave de ambiente do cluster quando existe uma conexão jina-ai (ou jina-reader compartilhada) no painel — getProviderCredentials usa a estratégia fill-first. JINA_AI_API_KEY / JINA_API_KEY são usadas somente quando não existe uma chave utilizável no painel. Os logs de chamadas atribuem o fallback do ambiente como connection_id=env:JINA_AI_API_KEY. O cartão Reader (jina-reader, r.jina.ai) nunca atende a /v1/embeddings ou /v1/rerank.

Gemini: gemini/gemini-embedding-2 (alias google/gemini-embedding-2) usa primeiro a conexão gemini do painel. GEMINI_API_KEY / GOOGLE_API_KEY são usadas somente quando não existe uma chave utilizável no painel. Os logs de chamadas atribuem o fallback do ambiente como connection_id=env:GEMINI_API_KEY. O tráfego multimodal nativo usa x-goog-api-key em relação a :embedContent / :batchEmbedContents — N itens OpenAI em input tornam-se N vetores.


Todos os valores estão em milissegundos. Resolução centralizada em src/shared/utils/runtimeTimeouts.ts.

REQUEST_TIMEOUT_MS (substituição global)
├─→ FETCH_TIMEOUT_MS (chamadas a provedores upstream, padrão: 600000)
│ ├─→ FETCH_HEADERS_TIMEOUT_MS (herda de FETCH_TIMEOUT_MS)
│ ├─→ FETCH_BODY_TIMEOUT_MS (herda de FETCH_TIMEOUT_MS)
│ ├─→ TLS_CLIENT_TIMEOUT_MS (herda de FETCH_TIMEOUT_MS)
│ │ └── TLS_FIRST_BYTE_WATCHDOG_MS (independente, padrão: 10000)
│ ├── RESPONSES_FIRST_BYTE_TIMEOUT_MS (independente, padrão: 15000)
│ ├── FETCH_CONNECT_TIMEOUT_MS (independente, padrão: 30000)
│ └── FETCH_KEEPALIVE_TIMEOUT_MS (independente, padrão: 4000)
├─→ STREAM_IDLE_TIMEOUT_MS (herda de REQUEST_TIMEOUT_MS, padrão: 600000)
├─→ STREAM_ACTIVE_TIMEOUT_MS (independente, padrão: 1260000; 0 desabilita)
├─→ STREAM_READINESS_TIMEOUT_MS (herda de REQUEST_TIMEOUT_MS, padrão: 80000)
├─→ STREAM_READINESS_MAX_TIMEOUT_MS (limita extensões adaptativas de prontidão, padrão: 180000)
└─→ API_BRIDGE_PROXY_TIMEOUT_MS (herda de REQUEST_TIMEOUT_MS, padrão: 30000)
├─→ API_BRIDGE_SERVER_REQUEST_TIMEOUT_MS (derivado, padrão: 300000)
├── API_BRIDGE_SERVER_HEADERS_TIMEOUT_MS (padrão: 60000)
├── API_BRIDGE_SERVER_KEEPALIVE_TIMEOUT_MS (padrão: 5000)
└── API_BRIDGE_SERVER_SOCKET_TIMEOUT_MS (padrão: 0 = desabilitado)
Variável Padrão Descrição
REQUEST_TIMEOUT_MS (não definido) Atalho global — substitui os valores padrão de FETCH_TIMEOUT_MS e STREAM_IDLE_TIMEOUT_MS.
FETCH_TIMEOUT_MS 600000 Tempo limite total da requisição HTTP para chamadas ao provedor upstream.
STREAM_IDLE_TIMEOUT_MS 600000 Período máximo de silêncio entre bytes brutos recebidos do upstream antes de abortar. Modelos com raciocínio estendido raramente pausam por mais de 90 s.
STREAM_ACTIVE_TIMEOUT_MS 1260000 Duração total máxima de um fluxo SSE ativo; nunca é reiniciada por bytes do upstream e independe de REQUEST_TIMEOUT_MS. Derivada do maior timeoutMs por modelo no registro (1200000, Codex), acrescido de uma margem de 60000, para que um modelo autorizado a usar todo o seu orçamento nunca seja interrompido no meio da resposta. Defina como 0 para desabilitar.
OMNIROUTE_SSE_COMMENTS (desabilitado) Define se o OmniRoute pode emitir linhas de comentário SSE : (por exemplo, o heartbeat : keepalive e os trailers de metadados x-omniroute-*). Desabilitado por padrão (#10524), pois clientes estritamente compatíveis com a OpenAI executam JSON.parse em cada linha SSE e falham em comentários :; heartbeats data: não são afetados. Defina como on/true/1/yes para reativar. Usado por open-sse/utils/sseHeartbeat.ts.
STREAM_READINESS_TIMEOUT_MS 80000 Tempo para receber o primeiro evento SSE que não seja um ping. Herda REQUEST_TIMEOUT_MS quando definido.
STREAM_READINESS_MAX_TIMEOUT_MS 180000 Janela adaptativa máxima de prontidão do primeiro evento para requisições de streaming grandes, com uso intensivo de ferramentas ou alto nível de raciocínio.
OMNIROUTE_AGENT_GOAL_POLICY_ENABLED true Interruptor de emergência para a heurística de /goal. Defina como false/0/off para desabilitar completamente a detecção — os tempos limite de prontidão e a recuperação do fluxo nunca são elevados pelo corpo/cabeçalhos da requisição, reduzindo a amplificação do tempo limite controlada pelo cliente.
OMNIROUTE_AGENT_GOAL_READINESS_MAX_TIMEOUT_MS 600000 Janela máxima de prontidão do primeiro evento para execuções de agente /goal detectadas ou requisições forçadas com x-omniroute-agent-goal.
OMNIROUTE_AGENT_GOAL_STREAM_RECOVERY true Habilita automaticamente a recuperação antecipada do fluxo para execuções de agente /goal detectadas. Defina como false/0/off para desabilitar a ativação específica de objetivo. Isso somente pode ADICIONAR recuperação à configuração padrão do operador — nunca substitui uma desativação explícita nas configurações de STREAM_RECOVERY_ENABLED/DB.
OMNIROUTE_CODEX_DROP_NONSTANDARD_EVENTS true Remove eventos SSE codex.* não padronizados (por exemplo, codex.rate_limits) que fazem o responses.stream() do SDK da OpenAI falhar com um erro 502. ATIVADO por padrão (#11014). Defina como 0/false/no/off para encaminhá-los.
OMNIROUTE_CODEX_APPSERVER_WS (não definido) Transporte do app-server Codex mediante ativação explícita. Endpoint WebSocket (ws:///wss://) de um sidecar local codex app-server. Quando definido junto com um token, as requisições do Codex são roteadas por JSON-RPC ao sidecar, em vez de usar a API HTTP Responses. Também pode ser definido por conexão via providerSpecificData.codexAppServerUrl. Usado por open-sse/executors/codex/appServerConfig.ts.
OMNIROUTE_CODEX_APPSERVER_WS_TOKEN (não definido) Token inline de capacidade/bearer apresentado ao app-server. Substituição por conexão: providerSpecificData.codexAppServerToken.
OMNIROUTE_CODEX_APPSERVER_WS_TOKEN_FILE (não definido) Caminho para um arquivo que contém o token de capacidade do app-server (proveniente de codex app-server --ws-token-file). Usado quando OMNIROUTE_CODEX_APPSERVER_WS_TOKEN não está definido. Substituição por conexão: providerSpecificData.codexAppServerTokenFile.
OMNIROUTE_CODEX_APPSERVER_CWD /tmp Diretório de trabalho no qual o turno do app-server é executado. Substituição por conexão: providerSpecificData.codexAppServerCwd.
OMNIROUTE_CODEX_APPSERVER_APPROVAL (não definido) Política de aprovação passada ao turno do app-server (por exemplo, never, on-request). Substituição por conexão: providerSpecificData.codexAppServerApprovalPolicy.
OMNIROUTE_CODEX_APPSERVER_SANDBOX (não definido) Política de sandbox passada ao turno do app-server (por exemplo, read-only, workspace-write, danger-full-access). Quando não definida, o executor usa workspace-write por padrão (mais seguro; anteriormente, danger-full-access). Substituição por conexão: providerSpecificData.codexAppServerSandbox.
OMNIROUTE_CODEX_APPSERVER_AUTO_APPROVE false Aprova automaticamente as próprias solicitações de aprovação do app-server (execução de comandos/arquivos/permissões no host). Desativado por padrão — as solicitações são negadas automaticamente; as chamadas de ferramentas do harness não são afetadas (elas percorrem o passthrough separado item/tool/call). Aceita true/1/yes. Substituição por conexão: providerSpecificData.codexAppServerAutoApprove.
FETCH_HEADERS_TIMEOUT_MS = FETCH_TIMEOUT_MS Tempo para receber os cabeçalhos da resposta.
OMNIROUTE_DIRECT_HEADERS_TIMEOUT_MS 30000 (30s) Tempo máximo de espera (ms) pelo início da resposta para cada tentativa direta sem proxy. Em caso de timeout, uma nova tentativa é feita uma vez em um socket novo; defina como 0 para desabilitar o limite e manter o comportamento anterior.
OMNIROUTE_DIRECT_RESPONSE_RETRY_TIMEOUT_MS 600000 (10 min) Limite máximo (ms) para a tentativa RETRY em um socket novo após um timeout de início da resposta em uma tentativa com conexão do pool descrita acima (#13703). Aplica-se somente quando o chamador já anexou seu próprio sinal de prazo limite (a cascata resolvida de conexão/modelo/provedor/FETCH_TIMEOUT_MS); esse sinal é o limite real e dispara primeiro no fluxo esperado, portanto este é um mecanismo de segurança generoso, e não um limite fixo — sem ele, a nova tentativa reutilizava a mesma janela curta de OMNIROUTE_DIRECT_HEADERS_TIMEOUT_MS da tentativa com conexão do pool e retornava 504 para modelos de raciocínio íntegros com TTFB lento. Nunca pode ser definido abaixo do limite mínimo fixo acima; quando o chamador não fornece nenhum sinal de prazo limite, a nova tentativa mantém o limite mínimo fixo inalterado.
FETCH_BODY_TIMEOUT_MS = FETCH_TIMEOUT_MS Tempo para receber o corpo completo da resposta.
FETCH_CONNECT_TIMEOUT_MS 30000 Timeout para estabelecer a conexão TCP.
FETCH_KEEPALIVE_TIMEOUT_MS 4000 Timeout de inatividade do socket keep-alive.
TLS_CLIENT_TIMEOUT_MS = FETCH_TIMEOUT_MS Timeout do proxy de impressão digital TLS (wreq-js).
TLS_FIRST_BYTE_WATCHDOG_MS 10000 Limita especificamente o tempo até o primeiro byte do corpo no transporte de impressão digital TLS do wreq-js; TLS_CLIENT_TIMEOUT_MS sozinho não consegue detectar um corpo travado, pois é resolvido assim que os cabeçalhos chegam (#12656). Um timeout cancela o leitor do wreq e usa como fallback o dispatcher direto/proxy; 0 desabilita o watchdog.
RESPONSES_FIRST_BYTE_TIMEOUT_MS 15000 Somente para o executor OpenCode e apenas enquanto a feature flag OPENCODE_RESPONSES_STALL_ROTATION estiver ativada (desativada por padrão): limita a espera pelo primeiro byte do corpo de uma resposta Responses transmitida por streaming após seus cabeçalhos (#13484). Um stream Responses começa com response.created, portanto o silêncio além dessa janela indica uma paralisação: a conta entra em cooldown e a solicitação é direcionada uma vez para a próxima conta; uma segunda paralisação falha imediatamente. 0 desabilita a proteção mesmo com a flag ativada.
OPENCODE_PARK_AND_RESUME false Somente para o executor OpenCode: coloca a solicitação em espera com um heartbeat após erros 429 transitórios repetidos (ou um marcador recente de sobrecarga do pool) e, em seguida, repete uma etapa limitada de até 3 contas sequenciais, em vez de distribuir as tentativas por toda a frota (#13924). Desativado por padrão: cada erro 429 direciona a solicitação para a próxima conta exatamente como antes.
OPENCODE_POOL_STRAIN_MARKER_PATH (não definido) Somente para o executor OpenCode: substitui o caminho do marcador de sobrecarga do pool lido antes de colocar a solicitação em espera ({since, reason, ttl_s}, padrão /tmp/opencode-pool-strain.json, #13924). Um marcador recente coloca a solicitação em espera sem refazer a contagem; se estiver ausente ou obsoleto, o contador de rajadas será usado como fallback.
API_BRIDGE_PROXY_TIMEOUT_MS 30000 Timeout do salto de proxy para solicitações da ponte /v1.
FIRECRAWL_BASE_URL https://api.firecrawl.dev Direciona o executor de busca na Web do Firecrawl para uma instância auto-hospedada (chave de API opcional fora da nuvem).
FIRECRAWL_TIMEOUT_MS 30000 Timeout por solicitação para o executor de busca na Web do Firecrawl.
API_BRIDGE_SERVER_REQUEST_TIMEOUT_MS 300000 Timeout geral da solicitação do servidor para a ponte.
API_BRIDGE_SERVER_HEADERS_TIMEOUT_MS 60000 Tempo para enviar os cabeçalhos da resposta por meio da ponte.
API_BRIDGE_SERVER_KEEPALIVE_TIMEOUT_MS 5000 Timeout de inatividade do keep-alive da ponte.
API_BRIDGE_SERVER_SOCKET_TIMEOUT_MS 0 Timeout do socket bruto (0 = desabilitado).
SHUTDOWN_TIMEOUT_MS 30000 Período de carência após SIGTERM/SIGINT antes do encerramento forçado.
OMNIROUTE_DEFAULT_FETCH_TIMEOUT_MS 120000 Fallback usado por src/shared/utils/fetchTimeout.ts quando FETCH_TIMEOUT_MS não está definido.
OMNIROUTE_PROVIDER_PROBE_TIMEOUT_MS 8000 Timeout (ms) para as predefinições validationRead e modelsProbe em src/shared/network/safeOutboundFetch.ts. Aumente-o para endpoints lentos (Cerebras, Cloudflare AI, Groq) a fim de evitar alternância constante entre ativo/erro no dashboard. Usa 8000ms como fallback para valores inválidos (<1000) ou não numéricos.
OMNIROUTE_RELAY_FETCH_TIMEOUT_MS 25000 Tempo limite de fetch específico do relay em open-sse/utils/proxyFetch.ts (#9158). Um relay travado deve falhar antes do tempo limite do cliente/agente (~30s), para que os chamadores vejam uma falha específica do relay em vez de um tempo limite genérico do upstream. Limitado a 29000 para que sempre seja acionado primeiro.
OMNIROUTE_RETRY_BACKOFF_MS 10 Backoff de nova tentativa compartilhado para os fluxos de uma única nova tentativa direta/via relay/via proxy em open-sse/utils/proxyFetch.ts (#9158). 0 = tentar novamente imediatamente.
OMNIROUTE_CLAUDE_TLS_TIMEOUT_MS 60000 Tempo limite nativo de requisição do wreq-js (claudeTlsClient.ts).
OMNIROUTE_CLAUDE_TLS_GRACE_MS 10000 Margem do prazo-limite absoluto do JS adicionada ao tempo limite nativo.
OMNIROUTE_PPLX_TLS_TIMEOUT_MS 30000 Tempo limite nativo de requisição do wreq-js (perplexityTlsClient.ts).
OMNIROUTE_PPLX_TLS_GRACE_MS 10000 Margem do prazo-limite absoluto do JS adicionada ao tempo limite nativo.
OMNIROUTE_PPLX_SEARCH_HINT 0 (desativado) Anexa “Você tem pesquisa integrada na web. Responda às perguntas diretamente usando os resultados da pesquisa.” à mensagem de sistema do chamador (perplexity-web/protocol.ts). Desativado por padrão — o Perplexity realiza pesquisas de qualquer forma, e a frase aparece nas respostas como metacomentário para clientes de programação. Defina como 1/true/yes/on para restaurar.
OMNIROUTE_GROK_TLS_TIMEOUT_MS 60000 Tempo limite nativo de requisição do wreq-js (grokTlsClient.ts).
OMNIROUTE_GROK_TLS_GRACE_MS 10000 Margem do prazo-limite absoluto do JS adicionada ao tempo limite nativo.
OMNIROUTE_NOTION_TLS_TIMEOUT_MS 30000 Tempo limite nativo de requisição do wreq-js (notionTlsClient.ts); notion-web aumenta esse valor por requisição para 180000 em gerações longas.
OMNIROUTE_NOTION_TLS_GRACE_MS 10000 Margem do prazo-limite absoluto do JS adicionada ao tempo limite nativo.
OMNIROUTE_BROWSER_POOL on Pool compartilhado de navegadores Playwright para chat com cookies da web baseado em navegador (browserPool.ts); defina como off para desativar.
OBSCURA_BIN auto-detect Caminho para o binário obscura usado como mecanismo principal pelo pool de navegadores e pelo executor do Cloudflare Playground (open-sse/services/obscura.ts); detectado automaticamente no PATH do sistema quando não definido.
OBSCURA_CDP_ENDPOINT (não definido) Aponta para uma instância do Obscura já em execução (http://host:port) em vez de iniciar uma; o módulo não é proprietário desse processo (open-sse/services/obscura.ts).
OBSCURA_PORT porta livre aleatória Porta explícita para o obscura serve iniciado; uma porta livre é escolhida automaticamente quando não definida (open-sse/services/obscura.ts).
WEB_COOKIE_USE_BROWSER 0 Faz com que uma requisição de chat com cookies da web use o fluxo baseado em navegador (browserBackedChat.ts); 1 para habilitar.
KIMI_WEB_BASE_URL https://www.kimi.ai URL base do executor Kimi Web (Connect-RPC internacional do kimi.ai) (kimi-web.ts); substitua somente para endpoints de espelho/proxy.
KIMI_WEB_CHAT_URL <KIMI_WEB_BASE_URL>/apiv2/kimi.gateway.chat.v1.ChatService/Chat Endpoint completo de chat do executor Kimi Web (kimi-web.ts).
OMNIROUTE_LOGIN_BROWSER_PATH (detectado automaticamente) Caminho para um executável do Chrome/Edge do sistema usado no login interativo pelo navegador do Adobe Firefly (adobeFireflyBrowserLogin.ts); substitui a detecção automática específica de cada SO.
OMNIROUTE_STANDALONE_DIR saída standalone de .build/ Substituição em tempo de build do diretório de saída standalone consumido pela etapa de colocalização pós-build (scripts/build/colocate-standalone.mjs); usado pelas ferramentas de build, não em runtime.

As tentativas de destinos combo herdam o tempo limite resolvido da requisição upstream (FETCH_TIMEOUT_MS ou REQUEST_TIMEOUT_MS quando ele fornece o padrão de fetch). Defina targetTimeoutMs em um combo, nos padrões do combo ou na substituição do provedor somente para tornar o fallback do combo mais rápido; valores acima do tempo limite upstream atual são limitados ao tempo limite upstream.

comboTimeoutMs é um orçamento de tempo de relógio separado para todo o combo, abrangendo os destinos de failover. Deixe-o não definido ou como 0 para manter a iteração ilimitada (um mecanismo de interrupção de travamentos fixo de 10 minutos em comboPredicates.ts ainda se aplica). Um valor positivo substitui essa proteção para o combo. Mantenha comboTimeoutMs maior que targetTimeoutMs para que o failover ainda tenha tempo após um primeiro destino lento.

Ajuste do circuit breaker no nível do provedor. Os padrões refletem os valores escalonados usados desde a v3.6 para mais de 500 conexões.

Variável Padrão Arquivo-fonte Descrição
OMNIROUTE_CIRCUIT_BREAKER_OAUTH_THRESHOLD 8 open-sse/config/constants.ts Limite de falhas consecutivas para provedores OAuth antes do acionamento do circuit breaker.
OMNIROUTE_CIRCUIT_BREAKER_OAUTH_RESET_MS 60000 open-sse/config/constants.ts Janela de redefinição (ms) para o circuit breaker de provedores OAuth.
OMNIROUTE_CIRCUIT_BREAKER_API_KEY_THRESHOLD 12 open-sse/config/constants.ts Limite de falhas consecutivas para provedores com chave de API.
OMNIROUTE_CIRCUIT_BREAKER_API_KEY_RESET_MS 30000 open-sse/config/constants.ts Janela de redefinição (ms) para o circuit breaker de provedores com chave de API.
OMNIROUTE_CIRCUIT_BREAKER_LOCAL_THRESHOLD 2 open-sse/config/constants.ts Limite de falhas consecutivas para provedores locais (Ollama, LM Studio, …).
OMNIROUTE_CIRCUIT_BREAKER_LOCAL_RESET_MS 15000 open-sse/config/constants.ts Janela de redefinição (ms) para o circuit breaker de provedores locais.
OMNIROUTE_PROVIDER_BREAKER_OAUTH_FAILURE_THRESHOLD 10 open-sse/config/constants.ts Circuit breaker no nível do provedor: falhas dentro da janela antes de todo o provedor OAuth entrar em período de espera.
OMNIROUTE_PROVIDER_BREAKER_OAUTH_FAILURE_WINDOW_MS 900000 open-sse/config/constants.ts Circuit breaker no nível do provedor: janela móvel de contagem de falhas (ms) para provedores OAuth.
OMNIROUTE_PROVIDER_BREAKER_OAUTH_COOLDOWN_MS 300000 open-sse/config/constants.ts Circuit breaker no nível do provedor: período de espera (ms) quando o limite do provedor OAuth é atingido.
OMNIROUTE_PROVIDER_BREAKER_OAUTH_DEGRADATION_THRESHOLD 5 open-sse/config/constants.ts O provedor OAuth entra no estado DEGRADED após esta quantidade de falhas.
OMNIROUTE_PROVIDER_BREAKER_OAUTH_MAX_BACKOFF_MULTIPLIER 8 open-sse/config/constants.ts Multiplicador máximo de escalonamento de resetTimeout do provedor OAuth.
OMNIROUTE_PROVIDER_BREAKER_OAUTH_BACKOFF_ESCALATION_COUNT 2 open-sse/config/constants.ts O provedor OAuth escalona após esta quantidade de ciclos abertos.
OMNIROUTE_PROVIDER_BREAKER_API_KEY_FAILURE_THRESHOLD 15 open-sse/config/constants.ts Circuit breaker no nível do provedor: falhas dentro da janela antes de todo o provedor com chave de API entrar em período de espera.
OMNIROUTE_PROVIDER_BREAKER_API_KEY_FAILURE_WINDOW_MS 1800000 open-sse/config/constants.ts Circuit breaker no nível do provedor: janela móvel de contagem de falhas (ms) para provedores com chave de API.
OMNIROUTE_PROVIDER_BREAKER_API_KEY_COOLDOWN_MS 600000 open-sse/config/constants.ts Circuit breaker no nível do provedor: período de espera (ms) quando o limite do provedor com chave de API é atingido.
OMNIROUTE_PROVIDER_BREAKER_API_KEY_DEGRADATION_THRESHOLD 7 open-sse/config/constants.ts O provedor com chave de API entra no estado DEGRADED após esta quantidade de falhas.
OMNIROUTE_PROVIDER_BREAKER_API_KEY_MAX_BACKOFF_MULTIPLIER 4 open-sse/config/constants.ts Multiplicador máximo de escalonamento de resetTimeout do provedor com chave de API.
OMNIROUTE_PROVIDER_BREAKER_API_KEY_BACKOFF_ESCALATION_COUNT 3 open-sse/config/constants.ts O provedor com chave de API escalona após esta quantidade de ciclos abertos.
OMNIROUTE_PROVIDER_BREAKER_LOCAL_FAILURE_THRESHOLD 2 open-sse/config/constants.ts Circuit breaker no nível do provedor: falhas antes de todo o provedor local entrar em período de espera.
OMNIROUTE_PROVIDER_BREAKER_LOCAL_FAILURE_WINDOW_MS 300000 open-sse/config/constants.ts Circuit breaker no nível do provedor: janela móvel de contagem de falhas (ms) para provedores locais.
OMNIROUTE_PROVIDER_BREAKER_LOCAL_COOLDOWN_MS 60000 open-sse/config/constants.ts Circuit breaker no nível do provedor: período de espera (ms) quando o limite do provedor local é atingido.
PIN_DROP_BACKOFF_LEVEL 2 open-sse/services/combo.ts Nível de recuo no qual o provedor de um pin do cache de contexto é considerado persistentemente indisponível, e o pin é removido para permitir o failover.
PIN_DROP_GRACE_MS 20000 open-sse/services/combo.ts Janela antioscilação (ms) que tolera breves períodos de espera transitórios antes de remover um pin do cache de contexto.
Cenário Configuração
Geração de código de longa duração REQUEST_TIMEOUT_MS=900000 (15 min)
Limitar a duração total do stream STREAM_ACTIVE_TIMEOUT_MS=1260000 (21 min)
Falha rápida para API de produção API_BRIDGE_PROXY_TIMEOUT_MS=10000
Modelos de raciocínio estendido STREAM_IDLE_TIMEOUT_MS=300000 (5 min entre fragmentos)

O sistema de logs grava tanto na saída padrão (stdout) quanto em arquivos de log rotacionados. Toda a configuração é lida por src/lib/logEnv.ts.

Variável Padrão Descrição
APP_LOG_LEVEL info Nível mínimo de log: debug, info, warn, error.
APP_LOG_FORMAT text Formato de saída: text (legível por humanos) ou json (estruturado).
APP_LOG_TO_FILE true Grava os logs em arquivo, além da saída padrão (stdout).
APP_LOG_FILE_PATH logs/application/app.log Caminho do arquivo de log (relativo à raiz do projeto ou a DATA_DIR).
APP_LOG_MAX_FILE_SIZE 50M Tamanho máximo do arquivo antes da rotação. Aceita: 50M, 1G, 512K ou bytes simples.
APP_LOG_RETENTION_DAYS 7 Dias durante os quais os arquivos de log rotacionados da aplicação são mantidos.
APP_LOG_MAX_FILES 20 Número máximo de backups de arquivos de log rotacionados.
CALL_LOG_RETENTION_DAYS 7 Dias durante os quais as entradas de log de requisições/chamadas são mantidas no banco de dados.
CALL_LOG_MAX_ENTRIES 10000 Número máximo de entradas de log de chamadas no buffer em memória.
CALL_LOGS_TABLE_MAX_ROWS 100000 Número máximo de linhas na tabela SQLite call_logs antes da limpeza.
ENABLE_REQUEST_LOGS (não definido) Força a ativação ou desativação do registro detalhado de requisições, substituindo a configuração do painel.
MAX_PENDING_REQUEST_AGE_MS 3600000 (1 hora) Idade máxima das entradas órfãs de log de requisições ativas antes da limpeza na memória.
CALL_LOG_PIPELINE_CAPTURE_STREAM_CHUNKS false Armazena blocos do fluxo nos artefatos do pipeline quando call_log_pipeline_enabled=true. Opcional (true) — desativado por padrão para economizar espaço em disco.
CALL_LOG_PIPELINE_MAX_SIZE_KB 512 Tamanho máximo, em KB, do artefato de log de chamadas do pipeline quando call_log_pipeline_enabled=true.
PROXY_LOGS_TABLE_MAX_ROWS 100000 Número máximo de linhas na tabela SQLite proxy_logs antes da limpeza.
PROXY_LOG_INCLUDE_IPS false Inclui IPs do cliente/de saída e prefixos de conta nos logs de console [ProxyEgress]. Os registros de log do proxy no painel/banco de dados mantêm todos os detalhes.
APP_LOG_ROTATION_CHECK_INTERVAL_MS 60000 (1 min) Frequência com que src/lib/logRotation.ts verifica novamente o tamanho do arquivo de log ativo.
CHAT_LOG_TEXT_LIMIT 65536 Comprimento máximo das strings mantidas nos artefatos de log de chat (padrão: 64 KB).
CHAT_LOG_ARRAY_TAIL_ITEMS 128 Número de itens do final do array mantidos ao truncar os dados dos logs de chat.
CHAT_LOG_MAX_DEPTH 6 Profundidade máxima de aninhamento antes que os dados dos logs de chat sejam truncados.
CHAT_LOG_MAX_OBJECT_KEYS 80 Número máximo de chaves de objeto mantidas nos dados dos logs de chat (0 = ilimitado).
CHAT_LOG_MAX_BODY_KB 1024 Tamanho total do corpo da requisição/resposta (KB) a partir do qual ele é substituído por um resumo básico em vez da cópia completa. Aumente esse valor se conversas agênticas longas exibirem um marcador de posição no painel em vez das mensagens reais.
CHAT_DEBUG_FILE false Quando definido como true, serializeArtifactForStorage ignora o truncamento baseado no tamanho. Somente para depuração.

Variável Padrão Descrição
OMNIROUTE_MEMORY_MB automático (máquina física); 1024 na imagem Docker Limite recomendado de heap do V8 (MB) para Docker/execução autônoma. Quando não definido, é calibrado dinamicamente (~35% da RAM do sistema, limitado ao intervalo [512, 4096]); 512 é apenas o limite mínimo quando não é possível ler a memória total. Em run-standalone.mjs (Docker CMD), um valor explícito é anexado como --max-old-space-size e prevalece sobre um sinalizador de heap conflitante em NODE_OPTIONS (o último sinalizador prevalece no V8). omniroute serve ainda dá preferência a uma configuração de heap existente em NODE_OPTIONS (#5238). Não defina ambos com números diferentes — o processo registra um aviso indicando os dois valores e qual deles prevalece. A imagem Docker oficial sempre define 1024, portanto a calibração nunca é executada nela. O endpoint /v1/responses do agente de programação precisa de 8192–12288, além de uma margem para o cgroup — consulte o Guia do Docker — RAM em tempo de execução.
PROMPT_CACHE_MAX_SIZE 50 Número máximo de entradas de prompt do sistema em cache.
PROMPT_CACHE_MAX_BYTES 2097152 (2 MB) Tamanho total máximo do cache de prompts.
PROMPT_CACHE_TTL_MS 300000 (5 min) TTL das entradas do cache de prompts.
SEMANTIC_CACHE_MAX_SIZE 100 Número máximo de respostas com temperature=0 armazenadas em cache.
SEMANTIC_CACHE_MAX_BYTES 4194304 (4 MB) Tamanho total máximo do cache semântico.
SEMANTIC_CACHE_TTL_MS 1800000 (30 min) TTL das entradas do cache semântico.
OMNIROUTE_CORPUS_CACHE_SIZE 5 Raízes de corpus locais que mantêm simultaneamente um índice ativo na memória (src/lib/localCorpus/configured.ts). LRU: ao atingir o limite, o índice da raiz usada menos recentemente é removido e reconstruído na próxima consulta. Limitado ao mínimo de 1; um valor não numérico faz com que o padrão seja usado.
STREAM_HISTORY_MAX 50 Número máximo de eventos recentes de streaming no buffer de visualização em tempo real do Dashboard.
CONTEXT_LENGTH_DEFAULT 128000 Limite máximo global de contexto usado como alternativa para modelos sem configuração explícita.
USAGE_TOKEN_BUFFER 100 Margem adicional de tokens reservada ao monitorar cotas de uso.
Variável Padrão Descrição
OMNIROUTE_RTK_TRUST_PROJECT_FILTERS não definido Confia no .rtk/filters.json do projeto sem um hash em .rtk/trust.json. Use somente em desenvolvimento local controlado.

Custo no loop de eventos da memória, das habilidades e da renovação de tokens (#10349)

Seção intitulada “Custo no loop de eventos da memória, das habilidades e da renovação de tokens (#10349)”

O OmniRoute é um único processo Node. A extração/recuperação de memória, a injeção de habilidades e a renovação de tokens do provedor são executadas no mesmo loop de eventos que GET /healthz e o Dashboard. Elas não são executadas em uma thread de trabalho.

Trabalho Código Padrão Controle do operador
Extração / recuperação de memória src/lib/memory/ memoryEnabled no painel (ativado por padrão) Desative em Configurações → Memória. Não há uma variável de ambiente separada para desativação de emergência além de desabilitar o recurso nas configurações.
Injeção de skills src/lib/skills/injection.ts skillsEnabled no painel (ativado por padrão) Desative em Configurações → Memória/Skills (skillsEnabled). Os controles de sandbox abaixo apenas limitam a execução depois que a injeção já está ativada.
Atualização de token src/sse/services/tokenRefresh.ts Ativada para provedores OAuth/web conectados Desconecte o provedor ou mantenha os tokens válidos; atualmente não há uma variável de ambiente TOKEN_REFRESH=0.

Se /healthz estiver lento em uma máquina ociosa, desative primeiro memória + skills e depois verifique a carga do catálogo/compactação (#10303, #9685). Esses recursos cedem a execução nos pontos de await, mas ainda competem pela única thread.

Controles da camada de embeddings, do armazenamento vetorial e de reranqueamento para o subsistema de memória persistente (src/lib/memory/).

Variável Padrão Descrição
MEMORY_EMBEDDING_CACHE_TTL_MS 300000 (5 min) TTL do cache de embeddings em memória (por assinatura de origem/modelo/dimensão).
MEMORY_EMBEDDING_CACHE_MAX 1000 Número máximo de entradas LRU mantidas no cache de embeddings.
MEMORY_TRANSFORMERS_MODEL Xenova/all-MiniLM-L6-v2 ID do repositório HF para o pipeline MiniLM local opcional de @huggingface/transformers (~23 MB int8, ~400 MB de RAM).
MEMORY_STATIC_MODEL minishlab/potion-base-8M ID do repositório HF para o gerador de embeddings estático por tabela de consulta potion/Model2Vec. Baixado sob demanda no diretório de cache.
MEMORY_STATIC_CACHE_DIR <DATA_DIR>/embeddings Diretório usado para armazenar em cache os arquivos do modelo potion estático. Quando não definido, o padrão fica sob DATA_DIR.
HF_HUB_ENDPOINT https://huggingface.co Substitui a URL-base do Hugging Face Hub usada por staticPotion.ts (por exemplo, endpoint de espelho para ambientes isolados da rede).
MEMORY_VEC_TOP_K 20 Top-K padrão usado pela busca vetorial por força bruta do sqlite-vec em src/lib/memory/vectorStore.ts.
MEMORY_RRF_K 60 Constante k da Reciprocal Rank Fusion para recuperação híbrida com FTS5 + vetores (receita do sqlite-vec).
VECTOR_STORE_DISABLE_VEC false Ponto de teste/diagnóstico em getVectorStore() (src/lib/memory/vectorStore.ts): quando true, força o armazenamento vetorial a null (simula um ambiente de nuvem/WASM sem sqlite-vec), reduzindo a recuperação de memória à busca por palavras-chave do FTS5. Deixe sem definir em produção.
NOTION_API_KEY (não definido) Chave de API para o backend do Notion (usada pela predefinição de backend conhecido de genericBackend.ts).
NOTION_API_URL https://api.notion.com/v1 URL-base da API do Notion (pode ser substituída para alternativas auto-hospedadas ao Notion).
OBSIDIAN_API_KEY (não definido) Chave de API para o backend do Obsidian Vault (usada pela predefinição de backend conhecido de genericBackend.ts).
OBSIDIAN_API_URL http://localhost:27123 URL-base da API do Obsidian Vault (pode ser substituída para um cofre remoto).
MEMORY_TYPED_DECAY_ENABLED false Interruptor principal da expiração de memória tipada TV6. Adesão opcional (desativado por padrão) — a varredura exclui memórias expiradas. Quando desativado, access_count/last_accessed_at são apenas telemetria e nada é excluído.
MEMORY_TYPED_DECAY_EPISODIC_DAYS 30 TTL (em dias) após o qual uma memória episodic não utilizada expira. 0 também torna as memórias episódicas imunes. Tipos duráveis (factual/procedural/semantic) são sempre imunes. O relógio de expiração é reiniciado com base em last_accessed_at.
MEMORY_TYPED_DECAY_ACCESS_IMMUNITY 3 Uma memória injetada >= este número de vezes torna-se imune à expiração, independentemente do tipo. 0 desativa a imunidade por acesso.
MEMORY_TYPED_DECAY_SWEEP_INTERVAL 0 (desativado) Intervalo (em segundos) da varredura periódica opcional de expiração em src/lib/memory/typedDecay.ts. 0/não definido = sem varredura periódica. Exige adesão dupla: também requer MEMORY_TYPED_DECAY_ENABLED=true.
OMNIROUTE_STRICT_SYSTEM_PROVIDERS (não definido) IDs de provedores separados por vírgulas (sem diferenciação entre maiúsculas e minúsculas) que aceitam uma mensagem system somente no índice 0 (src/lib/memory/injection.ts). Para eles, a inserção de memória no meio do array, segura para cache, não é segura em conversas de vários turnos; portanto, a memória é mesclada/adicionada no início como a mensagem de sistema inicial. O padrão inclui apenas xiaomi-mimo/mimo; estenda para endpoints auto-hospedados compatíveis com OpenAI (por exemplo, Qwen3.5+/3.6) cujo template de chat imponha a mesma restrição de uma única mensagem de sistema inicial.

128 destina-se apenas ao painel. Agentes de programação com esse heap apresentam FATAL ERROR durante solicitações /v1/responses longas. Não use este exemplo como gateway para Claude/Codex/Grok.

Janela do terminal
OMNIROUTE_MEMORY_MB=128
PROMPT_CACHE_MAX_SIZE=20
PROMPT_CACHE_MAX_BYTES=524288 # 512 KB
SEMANTIC_CACHE_MAX_SIZE=25
SEMANTIC_CACHE_MAX_BYTES=1048576 # 1 MB
STREAM_HISTORY_MAX=10

Sincronização automática dos dados de preços dos modelos a partir de fontes externas.

Variável Padrão Arquivo-fonte Descrição
PRICING_SYNC_ENABLED false src/lib/pricingSync.ts Sincronização periódica de preços opcional.
PRICING_SYNC_INTERVAL 86400 (24h) src/lib/pricingSync.ts Intervalo de sincronização em segundos.
PRICING_SYNC_SOURCES litellm src/lib/pricingSync.ts Fontes de dados separadas por vírgulas.

Variável Padrão Arquivo-fonte Descrição
ARENA_ELO_SYNC_ENABLED true src/shared/constants/featureFlagDefinitions.ts Sincronização periódica do ELO do ranking da Arena AI, configurável pelas flags de recursos do Dashboard ou com false para desativá-la.
MODELS_CATALOG_PREFIX_MODE dual src/shared/constants/featureFlagDefinitions.ts, src/app/api/v1/models/catalog.ts Forma do prefixo usada para IDs de modelos em GET /v1/models. dual anuncia tanto o prefixo curto do alias quanto o prefixo canônico do provedor para cada modelo (compatibilidade retroativa — aproximadamente dobra o catálogo); alias emite um ID por modelo; canonical emite apenas o prefixo completo do ID do provedor (os provedores cujo alias já corresponde ao ID canônico mantêm sua única entrada). Os clientes podem sobrescrever essa configuração por solicitação com ?prefix=alias. Consulte API_REFERENCE.
ARENA_ELO_SYNC_INTERVAL 86400 (24h) src/lib/arenaEloSync.ts Intervalo de sincronização em segundos.

Provedor do Playground PromptQL (não oficial/experimental)

Seção intitulada “Provedor do Playground PromptQL (não oficial/experimental)”

Ponte de sessão GraphQL obtida por engenharia reversa para prompt.ql.app (src/shared/constants/providers/web-cookie.ts). Tudo é opcional — os valores padrão apontam para os endpoints públicos do playground; sobrescreva-os apenas para uma implantação do PromptQL auto-hospedada ou alternativa.

Variável Padrão Arquivo-fonte Descrição
PROMPTQL_GRAPHQL_ENDPOINT https://data.prompt.ql.app/promptql/playground-v2-hge/v1/graphql open-sse/executors/promptql.ts Endpoint GraphQL usado para operações de chat/sessão.
PROMPTQL_CREDITS_ENDPOINT https://data.pro.ql.app/v1/graphql open-sse/executors/promptql.ts, open-sse/services/usage/promptql.ts Endpoint GraphQL usado para consultar o saldo/uso de créditos.
PROMPTQL_TOKEN_REFRESH_URL https://auth.pro.ql.app/ddn/project/token open-sse/executors/promptql.ts Endpoint usado para a atualização de token por melhor esforço.
PROMPTQL_POLL_TIMEOUT_MS 180000 open-sse/executors/promptql.ts Tempo máximo (ms) para consultar thread_events antes de atingir o tempo limite.

Provedor Web do HyperAgent (Não oficial/Experimental)

Seção intitulada “Provedor Web do HyperAgent (Não oficial/Experimental)”

Ponte de sessão submetida a engenharia reversa para hyperagent.com (src/shared/constants/providers/web-cookie.ts). Opcional — o padrão aponta para o endpoint público de cobrança/uso; substitua-o apenas para uma implantação auto-hospedada/alternativa do HyperAgent.

Variável Padrão Arquivo de origem Descrição
HYPERAGENT_USAGE_URL https://hyperagent.com/api/settings/billing/usage open-sse/services/usage/hyperagent.ts Endpoint usado para buscar blocos de créditos de cobrança/uso.

Consulta do saldo pessoal em USD e do uso do Kilo Pass para o provedor Kilo Code. Opcional — o padrão aponta para a API pública do Kilo; substitua-o apenas para um relay/fixture de teste. A autenticação usa o token de acesso OAuth existente da conexão.

Variável Padrão Arquivo de origem Descrição
KILO_API_URL https://api.kilo.ai open-sse/services/usage/kilocode.ts URL base usada para buscar o saldo pessoal do Kilo Code e o uso do Kilo Pass.

Provedor Web do Adobe Firefly (Não oficial/Experimental)

Seção intitulada “Provedor Web do Adobe Firefly (Não oficial/Experimental)”

Atualização de sessão controlada pelo navegador para o provedor web do Adobe Firefly (open-sse/services/adobeFireflyBrowserLogin.ts, open-sse/services/adobeFireflySession.ts, open-sse/services/adobeFireflyClient.ts). Opcional — todos os padrões são ajustados para uma instalação normal em desktop.

Removido em #9255. O antigo runtime do Chrome conectado via CDP (adobeFireflyChromeRuntime.ts) foi substituído por um serviço de login via navegador do Playwright, e seus parâmetros de configuração não existem mais. As variáveis ADOBE_FIREFLY_CHROME_ CDP_PORT / VISIBLE / HEADED / PING / FORCE_RESTART, além de ADOBE_FIREFLY_LOGIN_WAIT_MS e ADOBE_FIREFLY_FORTER_WAIT_MS, não são lidas em nenhum lugar da base de código — defini-las não produz efeito.

Variável Padrão Arquivo de origem Descrição
ADOBE_FIREFLY_CHROME_HEADLESS 0 open-sse/services/adobeFireflyBrowserLogin.ts Defina como 1 para usar o Chrome verdadeiramente headless (sabidamente incompatível com a geração; apenas para depuração).
ADOBE_FIREFLY_BROWSER_REFRESH 1 open-sse/services/adobeFireflySession.ts Ativa/desativa o aquecimento proativo do navegador. 0 desativa o aquecimento proativo (a recuperação de erro 408 no meio do lote ainda se aplica).
ADOBE_FIREFLY_SESSION_DISK 1 open-sse/services/adobeFireflySession.ts Defina como 0 para desativar a persistência da sessão do Adobe Firefly em disco.
ADOBE_FIREFLY_MIN_SUBMIT_GAP_MS (não definido) open-sse/services/adobeFireflySession.ts Intervalo mínimo (ms) imposto entre envios sucessivos, substituindo o padrão integrado.
ADOBE_FIREFLY_BATCH_EXTRA_GAP_MS (não definido) open-sse/services/adobeFireflySession.ts Intervalo adicional (ms) aplicado após um lote bem-sucedido, substituindo o padrão integrado.
ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS (não definido) open-sse/services/adobeFireflyClient.ts Atraso base (ms) antes de enviar uma solicitação de geração, substituindo o padrão integrado.

Variável Padrão Arquivo de origem Descrição
MODELS_DEV_SYNC_ENABLED (não definido) src/lib/modelsDevSync.ts Substituição explícita para a sincronização de preços do models.dev. Não definido = respeita Configurações > IA (modelsDevSyncEnabled). 0/false/off/no prevalece sobre o banco de dados e ignora tanto a sincronização periódica quanto as varreduras SQL/JSON de getModelsDevPricing() (recuperação quando o painel fica travado no mesmo loop de eventos). 1/true/on/yes força a ativação da sincronização. Salvar/limpar preços ainda chama backupDbFile("pre-write"), que não realiza nenhuma operação durante a limitação de 60 minutos ou quando DISABLE_SQLITE_AUTO_BACKUP está definido.
MODELS_DEV_SYNC_INTERVAL 86400 (24 h) src/lib/modelsDevSync.ts Intervalo de sincronização do catálogo de modelos durante o desenvolvimento, em segundos.
CONTEXT_WINDOW_RECONCILE_INTERVAL 86400 (24 h) src/lib/contextWindowResolver.ts Intervalo (em segundos) do reconciliador autocorretivo da janela de contexto (5004): fixa as janelas declaradas pelo provedor, obtidas pela descoberta em /models, como substituições auto:discovery quando divergem do catálogo. Defina como 0 para desativar. Reutiliza dados já sincronizados (sem nova busca); nunca sobrescreve substituições manual.

Variável Padrão Arquivo de origem Descrição
OPENROUTER_CATALOG_TTL_MS 86400000 (24h) src/lib/catalog/openrouterCatalog.ts TTL do cache do catálogo de modelos do OpenRouter.
MODEL_CATALOG_INCLUDE_NAMES true src/shared/constants/featureFlagDefinitions.ts Inclui campos name fáceis de exibir nas respostas de /v1/models. Desative para clientes que esperam apenas IDs.
CATALOG_BUILD_TIMEOUT_MS 8000 (8s) src/app/api/v1/models/catalogCache.ts Limite de espera do caminho frio para uma reconstrução agrupada do catálogo de GET /v1/models (#12627). Em caso de timeout, a última resposta 200 válida é fornecida quando disponível.
OMNIROUTE_SYNCED_CATALOG_STALE_AFTER_MS 2592000000 (30 dias) src/lib/db/models/activeSyncedCatalog.ts Tempo após o qual a lista sincronizada de modelos de uma conexão deixa de ser considerada autoritativa para o roteamento e passa a recorrer ao registro em caso de falha (#12849). Linhas sem registro de data/hora são consideradas desatualizadas.
NANOBANANA_POLL_TIMEOUT_MS 120000 open-sse/handlers/imageGeneration.ts Tempo máximo de espera para trabalhos de geração de imagens do NanoBanana.
NANOBANANA_POLL_INTERVAL_MS 2500 open-sse/handlers/imageGeneration.ts Frequência de consulta do status de trabalhos do NanoBanana.
ADOBE_FIREFLY_SUBMIT_BASE_DELAY_MS 8000 open-sse/services/adobeFireflyUpscale.ts Atraso base do backoff exponencial para novas tentativas de envio de ampliação ao Adobe Firefly.
AWS_REGION (não definido) src/lib/providers/validation.ts, open-sse/handlers/audioSpeech.ts Região usada para construir endpoints do AWS Bedrock (Kiro, áudio).
AWS_DEFAULT_REGION (não definido) src/lib/providers/validation.ts, open-sse/handlers/audioSpeech.ts Valor alternativo quando AWS_REGION não está definido.
CLOUDFLARE_ACCOUNT_ID (não definido) open-sse/executors/cloudflare-ai.ts ID da conta do Cloudflare Workers AI.
CLOUDFLARE_PLAYGROUND_CHROME_PATH (não definido) open-sse/executors/cloudflare-playground.ts Caminho completo para o binário do Chrome para desktop usado pelo executor do Cloudflare AI Playground quando a verificação de impressão digital no modo headless bloqueia o Chromium incluído no Playwright.
CLOUDFLARE_API_BASE https://api.cloudflare.com/client/v4 src/app/api/settings/proxy/cloudflare-deploy/route.ts Substitui a base da API REST do Cloudflare usada pelo implantador do relay do Workers para o pool de proxies (#4640 / 9router#1360).
NEXT_PUBLIC_CLOUDFLARE_RELAY_DEFAULT_PROJECT omniroute-relay src/app/(dashboard)/dashboard/settings/components/proxy/CloudflareRelayModal.tsx Nome padrão do projeto de worker sugerido no modal “Deploy Relay” do pool de proxies.
NEXT_PUBLIC_CLOUDFLARE_RELAY_ENABLED true src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx Defina como false para ocultar a opção de relay do Cloudflare Workers na guia Pool de Proxies.
CLOUDFLARED_BIN detecção automática src/lib/cloudflaredTunnel.ts Caminho personalizado para o binário cloudflared.
CLOUDFLARED_PROTOCOL http2 src/lib/cloudflaredTunnel.ts Protocolo de transporte do túnel: http2 (padrão), quic ou auto.
CLOUDFLARED_CONFIG (não definido) src/lib/cloudflaredTunnel.ts Caminho para um config.yml do cloudflared gerenciado localmente (com tunnel:, credentials-file: e ingress:). Quando definido, o OmniRoute executa tunnel --config &lt;path&gt; run (túnel nomeado) em vez de um túnel rápido efêmero.
CLOUDFLARED_HOSTNAME (do ingresso da configuração) src/lib/cloudflaredTunnel.ts Substituição para o nome de host público do túnel nomeado (por exemplo, ai.example.com), informado como publicUrl/apiUrl. Quando não definido, ele é lido do primeiro nome de host de ingress da configuração.
DENO_DEPLOY_API_BASE https://api.deno.com/v2 src/app/api/settings/proxy/deno-deploy/route.ts Substitui a base da API REST do Deno Deploy usada pelo implantador de relay do pool de proxies (#4643 / 9router#1437).
NEXT_PUBLIC_DENO_RELAY_DEFAULT_PROJECT omniroute-deno-relay src/app/(dashboard)/dashboard/settings/components/proxy/DenoRelayModal.tsx Nome padrão do aplicativo Deno Deploy sugerido no modal “Implantar Relay” do pool de proxies.
NEXT_PUBLIC_DENO_RELAY_ENABLED true src/app/(dashboard)/dashboard/settings/components/proxy/ProxyPoolTab.tsx Defina como false para ocultar a opção de relay do Deno Deploy na aba Pool de Proxies.
SEARCH_CACHE_TTL_MS 300000 (5 min) open-sse/services/searchCache.ts TTL do cache de respostas da API de pesquisa (Perplexity, Brave etc.).
ENABLE_CC_COMPATIBLE_PROVIDER false src/shared/utils/featureFlags.ts Exibe a interface experimental do provedor compatível com CC para relays exclusivos do Claude Code.
NINEROUTER_HOST 127.0.0.1 open-sse/executors/ninerouter.ts Substitui o host no qual a instância incorporada do 9router escuta.
NINEROUTER_PORT 20130 open-sse/executors/ninerouter.ts Substitui a porta na qual a instância incorporada do 9router escuta.
EMBED_WS_PROXY_HOST 127.0.0.1 src/lib/services/embedWsProxy.ts Host de vinculação do proxy WebSocket do serviço incorporado (somente loopback por padrão).
EMBED_WS_PROXY_PORT 20131 src/lib/services/embedWsProxy.ts Porta do servidor proxy WebSocket do serviço incorporado.
CLIPROXYAPI_HOST 127.0.0.1 open-sse/executors/cliproxyapi.ts Host da ponte CLIProxyAPI (integração legada).
CLIPROXYAPI_PORT 5544 open-sse/executors/cliproxyapi.ts Porta da ponte CLIProxyAPI.
CLIPROXYAPI_API_KEY (vazio) open-sse/handlers/chatCore/cliproxyapiCredentials.ts Chave alternativa do plano de dados quando a configuração cliproxyapi_api_key estiver ausente.
CLIPROXYAPI_MANAGEMENT_KEY (vazio) src/lib/services/cliproxyAccountHealth.ts Chave de gerenciamento para leituras da integridade da conta em uma instância CLIProxyAPI gerenciada externamente.
CLIPROXYAPI_CONFIG_DIR ~/.cli-proxy-api src/lib/versionManager/processManager.ts Diretório de configuração da CLIProxyAPI.
CLIPROXY_BIND_HOST 127.0.0.1 docker-compose.yml Interface do host na qual o docker-compose publica o sidecar cliproxyapi (#12578). Seu volume de dados contém credenciais OAuth/API do provedor, e a imagem fixada não oferece uma substituição de api-keys do plano de dados baseada em variáveis de ambiente (apenas um config.yaml montado); portanto, 0.0.0.0 expõe um serviço que contém credenciais para toda a LAN.
MUX_SERVICE_PORT 8322 src/lib/services/bootstrap.ts Substitui a porta na qual o daemon incorporado de orquestração de agentes Mux (coder/mux) escuta (sempre 127.0.0.1).
OPENWA_SERVICE_PORT 8323 src/lib/services/bootstrap.ts Substitui a porta na qual o daemon incorporado open-wa (automação do WhatsApp Web) escuta (sempre 127.0.0.1).
DARIO_HOST 127.0.0.1 open-sse/executors/dario.ts Host de vinculação/conexão do serviço incorporado Dario (somente loopback por padrão).
DARIO_PORT 3456 open-sse/executors/dario.ts Porta do serviço incorporado Dario.
DARIO_HOST 127.0.0.1 open-sse/executors/dario.ts Host de vinculação/conexão do serviço incorporado Dario (somente loopback por padrão).
DARIO_PORT 3456 open-sse/executors/dario.ts Porta do serviço incorporado Dario.
LOCAL_HOSTNAMES (vazio) open-sse/config/providerRegistry.ts Nomes de host adicionais, separados por vírgulas, tratados como “locais” (nomes de serviços do Docker etc.).

ENABLE_CC_COMPATIBLE_PROVIDER destina-se apenas a relays de terceiros que aceitam clientes do Claude Code exclusivamente. O OmniRoute reescreve as solicitações para que esses relays as aceitem. Se você deseja apenas usar a CLI do Claude Code ou não tem certeza do que são esses relays, mantenha esta opção desativada e adicione um provedor compatível com a Anthropic em seu lugar.


Variável Padrão Arquivo de origem Descrição
PROXY_FAST_FAIL_TIMEOUT_MS 2000 src/lib/proxyHealth.ts Tempo limite da verificação de integridade com falha rápida.
PROXY_LATENCY_WINDOW_HOURS 3 src/lib/db/proxies.ts Janela de tempo (em horas) para calcular a latência média dos proxies candidatos na estratégia de pool otimizada para latência.
PROXY_HEALTH_CACHE_TTL_MS 30000 src/lib/proxyHealth.ts TTL do cache dos resultados da verificação de integridade.
PROXY_HEALTH_UNHEALTHY_CACHE_TTL_MS 2000 src/lib/proxyHealth.ts TTL do cache para sondagens de integridade de proxy que falharam. Mantenha-o menor que PROXY_HEALTH_CACHE_TTL_MS para que tempos limite transitórios de proxy sob alta concorrência sejam testados novamente rapidamente, sem desativar a falha rápida para proxies que realmente estejam inativos.
PROXY_HEALTH_ENABLED true src/lib/proxyHealth/scheduler.ts Defina como false para desativar o agendador de integridade de proxies em segundo plano, que sonda periodicamente os proxies registrados.
PROXY_HEALTH_INTERVAL_MS 600000 src/lib/proxyHealth/scheduler.ts Intervalo de varredura do agendador de integridade em segundo plano, em ms (mínimo de 60000).
PROXY_HEALTH_RECOVERY_INTERVAL_MS 600000 src/lib/proxyHealth/scheduler.ts Intervalo em ms da rotina de recuperação em segundo plano: define com que frequência proxies anteriormente não íntegros são testados novamente para que um proxy recuperado volte à rotação sem uma reinicialização. Valores abaixo de 60000 retornam ao padrão.
PROXY_HEALTH_TEST_URL https://httpbin.org/ip src/lib/proxyHealth/probeTarget.ts Destino do teste de acessibilidade usado pelo agendador e pelo endpoint /api/settings/proxies/auto-test. Aponte-o para uma URL interna/auto-hospedada para evitar o padrão público.
PROXY_HEALTH_TEST_CONCURRENCY 10 src/lib/proxyHealth/probeTarget.ts Número de testes iniciados simultaneamente por lote, compartilhado pelo agendador e pelo endpoint /api/settings/proxies/auto-test. Arredondado para baixo, com mínimo de 1 e máximo de 50.
PROXY_HEALTH_TEST_STAGGER_MS 100 src/lib/proxyHealth/probeTarget.ts Atraso em ms entre o início de dois testes dentro de um lote. Sem ele, todo o lote é enviado ao mesmo tempo, e um IP de saída compartilhado pode acionar o limite de requisições do destino. Defina como 0 para desativar o espaçamento; limitado a 5000.
PROXY_HEALTH_USE_PROVIDER_TARGET true src/lib/proxyHealth/providerProbeTarget.ts Defina como “false” para deixar de testar o host real do provedor atribuído a um proxy (GET /models, sem chave de API) e sempre usar PROXY_HEALTH_TEST_URL em vez disso.
PROXY_HEALTH_AUTO_DEACTIVATE false src/lib/proxyHealth/statusPolicy.ts Quando false (padrão), os testes automatizados de acessibilidade (o agendador + o botão “Test All” de /api/settings/proxies/auto-test) são somente leitura e nunca alteram o status de um proxy — somente o operador define como ativo/inativo, portanto um teste instável não pode deixar um proxy atribuído indisponível (#6246). Defina como true para restaurar o comportamento legado de testar e definir.
FLUSH_EMPTY_RETRY_ENABLED false src/shared/utils/featureFlags.ts Flag de recurso opcional (consulte FEATURE_FLAGS.md; uma substituição no banco de dados do painel tem precedência). true (ou 1, yes) repete turnos de streaming traduzidos vazios pelo fluxo normal de credenciais (até STREAM_RECOVERY.EMPTY_TURN_RETRY_MAX tentativas adicionais), em vez de expor uma resposta 200 vazia ou uma resposta 502 com conteúdo vazio.
PROXY_POOL_EGRESS_OBSERVATION false src/shared/utils/featureFlags.ts Flag de recurso opcional (consulte FEATURE_FLAGS.md; uma substituição no banco de dados do painel tem precedência). true (ou 1, yes) exibe a observação somente leitura da saída do pool abaixo de um pool de proxies no painel (IPs de saída distintos, conexões e o maior número observado por trás de um único IP nas últimas 24 h, com base no log de proxies). Nunca é usada para roteamento.
PROXY_AUTO_REMOVE false src/lib/proxyHealth/scheduler.ts Defina como true para permitir que o agendador remova proxies automaticamente após falhas consecutivas repetidas.
PROXY_AUTO_REMOVE_AFTER 3 src/lib/proxyHealth/scheduler.ts Número de falhas consecutivas antes que o agendador remova automaticamente um proxy (quando PROXY_AUTO_REMOVE=true).
PROXY_AUTO_DISABLE false src/lib/proxyHealth/scheduler.ts Defina como true para permitir que o agendador desative temporariamente (status dead, sem nunca excluir) um proxy após falhas consecutivas repetidas, em vez de removê-lo. Alternativa não destrutiva a PROXY_AUTO_REMOVE: o proxy é imediatamente retirado da resolução de pool/rotação (o filtro de status ativo usado pela resolução do pool de escopo já o exclui) e é reativado automaticamente assim que volta a passar pelas sondagens. Compartilha o limite PROXY_AUTO_REMOVE_AFTER. Se ambas as opções forem true, PROXY_AUTO_REMOVE prevalece.
OMNIROUTE_CONTROL_PLANE_PROXY_DIRECT_FALLBACK false src/shared/constants/featureFlagDefinitions.ts Permite que os fluxos de OAuth e validação de provedores ignorem um proxy fixado e se conectem diretamente quando as pré-verificações de acessibilidade do proxy falharem. A precedência efetiva é: substituição no banco de dados de Feature Flags > variável de ambiente > padrão.
RATE_LIMIT_MAX_WAIT_MS 30000 (30 s) src/lib/resilience/settings.ts Orçamento padrão de espera na fila: por quanto tempo uma solicitação pode aguardar um slot do provedor e permanecer na fila antes de ser rejeitada, sem nunca chegar ao upstream. O temporizador é removido assim que a tarefa começa a ser executada — a execução é limitada separadamente por RATE_LIMIT_EXECUTION_MAX_WAIT_MS. A variável de ambiente define apenas o padrão: um resilienceSettings.requestQueue.maxWaitMs persistido e, depois, um rateLimitOverrides.maxWaitMs por conexão têm precedência sobre ela, nessa ordem.
RATE_LIMIT_EXECUTION_MAX_WAIT_MS 600000 (10 min) open-sse/services/rateLimitManager.ts Limite máximo de tempo durante o qual uma solicitação admitida pode permanecer em execução antes que sua reserva de limite de taxa expire — desacoplado do orçamento de espera na fila para que o início lento da busca em gateways não incrementais não resulte em tempo limite (#12027).
RATE_LIMIT_MAX_QUEUE_DEPTH 0 (desativado) open-sse/services/rateLimitManager.ts Limite de admissão na fila: rejeita com um erro 429 queue_full quando essa quantidade de solicitações já estiver na fila. 0 = ilimitado (padrão).
RATE_LIMIT_AUTO_ENABLE (não definido) open-sse/services/rateLimitManager.ts Força a ativação ou desativação da proteção de limite de taxa com ativação automática, independentemente da configuração persistida no Dashboard. Aceita true/1/on para forçar a ativação e false/0/off para forçar a desativação.
PROVIDER_COOLDOWN_ENABLED (não definido → desativado) open-sse/services/providerCooldownTracker.ts Rastreamento global opcional, entre requisições, do período de espera de provedores/conexões. DESATIVADO por padrão (sobrepõe-se ao período de espera da conexão/disjuntor do provedor). Aceita true/1/on para habilitar.
PROVIDER_COOLDOWN_MIN_MS 5000 open-sse/services/providerCooldownTracker.ts Período de espera mínimo (ms) antes de uma nova tentativa com um provedor/conexão que falhou. Aumenta exponencialmente com falhas consecutivas. Usado somente quando PROVIDER_COOLDOWN_ENABLED está habilitado.
PROVIDER_COOLDOWN_MAX_MS 300000 (5 min) open-sse/services/providerCooldownTracker.ts Limite máximo do período de espera (ms) antes de uma nova tentativa com um provedor/conexão que falhou. Usado somente quando PROVIDER_COOLDOWN_ENABLED está habilitado.
STREAM_RECOVERY_ENABLED (não definido → desativado) src/lib/resilience/settings.ts (valor inicial) → open-sse/services/streamRecovery.ts (lógica) O que é: recuperação transparente de streams upstream truncados (port do free-claude-code). Retém a janela SSE inicial por até STREAM_RECOVERY.HOLDBACK_MS (750 ms), para que uma interrupção pré-confirmação — que ocorre antes de qualquer byte chegar ao cliente — seja reaberta e repetida de forma invisível. Quando habilitar: upstreams instáveis/que frequentemente truncam com 0 bytes no início do stream; mantenha DESATIVADO se não puder aceitar até 750 ms adicionais no tempo até o primeiro token em cada stream. Aceita true/1/on. Define o valor inicial da configuração persistente de Resiliência; depois que definida, a configuração do Dashboard prevalece.
STREAM_RECOVERY_MIDSTREAM_ENABLED (não definido → desativado) src/lib/resilience/settings.ts (valor inicial) → open-sse/services/streamRecovery.ts (lógica) O que é: continuação no meio do stream (Fase 4.4) — após uma truncagem pós-confirmação (os bytes já chegaram ao cliente), faz uma nova requisição usando o texto parcial como prefill do assistente e concatena o sufixo ausente. Somente para streams de texto simples compatíveis com OpenAI; nunca é acionada enquanto uma chamada de ferramenta está em andamento. Quando habilitar: gerações longas que são interrompidas no meio da resposta, caso você aceite que a parte final recuperada chegue de uma só vez, em vez de token por token. Independente de STREAM_RECOVERY_ENABLED (perfil de risco diferente). Aceita true/1/on.
STREAM_THROUGHPUT_WATCHDOG_ENABLED (não definido → desativado) src/lib/resilience/settings.ts → open-sse/services/throughputWatchdog.ts Watchdog opcional de saída útil para streams ativos. Detecta streams que continuam enviando chunks, mas permanecem abaixo da taxa configurada de saída do assistente; heartbeats, eventos de uso, deltas vazios e fases de ferramenta/raciocínio não se passam por progresso. Separado dos timeouts por inatividade e de prazo máximo.
STREAM_THROUGHPUT_WATCHDOG_WARMUP_MS 30000 src/lib/resilience/settings/normalize.ts Período de tolerância antes da avaliação da taxa de transferência, limitado a 0–600000 ms.
STREAM_THROUGHPUT_WATCHDOG_WINDOW_MS 30000 src/lib/resilience/settings/normalize.ts Janela móvel de saída útil, limitada a 1000–600000 ms; é necessária uma janela completa antes do cancelamento.
STREAM_THROUGHPUT_WATCHDOG_MIN_BYTES_PER_SECOND 4 src/lib/resilience/settings/normalize.ts Taxa mínima, em bytes UTF-8, da saída do assistente (proxy conservador de tokens), limitada a 1–1000000.
STREAM_THROUGHPUT_WATCHDOG_MIN_USEFUL_BYTES 1 src/lib/resilience/settings/normalize.ts Amostra mínima diferente de zero de saída útil considerada mensurável, limitada a 1–1000000 bytes.
HEALTHCHECK_STAGGER_MS 3000 src/lib/tokenHealthCheck.ts Intervalo de escalonamento (ms) entre as verificações de integridade dos tokens dos provedores durante a inicialização.
HEALTHCHECK_JITTER_MIN_MS 500 src/lib/tokenHealthCheck.ts Jitter aleatório mínimo (ms) adicionado a HEALTHCHECK_STAGGER_MS entre as verificações de integridade dos tokens dos provedores, para evitar rajadas (Problema nº 1220).
HEALTHCHECK_JITTER_MAX_MS 5000 src/lib/tokenHealthCheck.ts Jitter aleatório máximo (ms) adicionado a HEALTHCHECK_STAGGER_MS entre as verificações de integridade dos tokens dos provedores, para evitar rajadas (Problema nº 1220).
HEALTHCHECK_BATCH_SIZE 20 src/lib/tokenHealthCheck.ts Tamanho do lote de verificações simultâneas para a varredura de integridade dos tokens na inicialização; valores maiores verificam mais conexões em paralelo, enquanto valores menores reduzem a carga em rajadas (Problema nº 7875, regressão do nº 7719).
REQUEST_RETRY 2 src/sse/services/cooldownAwareRetry.ts Número de novas tentativas automáticas em respostas de espera no escopo do modelo antes de retornar o erro ao cliente.
MAX_RETRY_INTERVAL_SEC 30 src/sse/services/cooldownAwareRetry.ts Intervalo máximo de recuo (segundos) entre novas tentativas após uma espera. Limitado por esse valor, independentemente do Retry-After do upstream.
HEADROOM_URL http://localhost:8787 src/lib/headroom/detect.ts URL do proxy de economia de tokens Headroom. Por padrão, o ciclo de vida do painel (api/headroom/*) inicia uma CLI headroom-ai local na interface de loopback; sobrescreva apenas para apontar para um proxy sidecar externo no Docker.

O comportamento de retenção da recuperação é ajustado por constantes fixas no código em open-sse/config/constants.ts (STREAM_RECOVERY), mostradas aqui para referência — alterá-las exige uma edição no código, não uma variável de ambiente:

  • STREAM_RECOVERY.HOLDBACK_MS = 750 — por quanto tempo a janela SSE inicial é retida para que um truncamento antecipado possa ser repetido antes que qualquer byte seja enviado ao cliente.
  • STREAM_RECOVERY.BUFFER_MAX_BYTES = 65536 — limite rígido da janela retida; efetua o envio (flush + passagem direta) assim que essa quantidade de bytes for acumulada, independentemente do temporizador.
  • STREAM_RECOVERY.EARLY_RETRY_MAX = 4 — número máximo de reaberturas transparentes do stream upstream enquanto a retenção ainda não tiver sido enviada.

Limite de taxa por janela deslizante e por provedor (sem variável de ambiente): o fallback de limite de taxa por janela deslizante e por provedor, portado do FCC, existe no código (open-sse/services/providerDefaultRateLimit.ts, conectado por meio de open-sse/services/rateLimitManager.ts), mas é distribuído com um mapa padrão vazio e atualmente não possui uma variável de ambiente para operadores — ele é habilitado apenas por meio de um hook de teste / uma edição no código. Intencionalmente, ele não está listado na tabela acima. O limitador do relay por (token, IP) que possui um parâmetro de configuração é RELAY_IP_PER_MINUTE (§3 Rede e portas).


[!CAUTION] Estas variáveis produzem saída detalhada e podem vazar dados confidenciais. Nunca as habilite em produção.

Variável Padrão Arquivo-fonte Descrição
CURSOR_DEBUG (não definida) open-sse/executors/cursor.ts Defina como 1 para habilitar logs detalhados do executor Cursor (blocos SSE decodificados etc.).
CURSOR_STREAM_DEBUG (não definida) open-sse/executors/cursor.ts Alias retrocompatível de CURSOR_DEBUG.
CURSOR_DUMP_FILE (não definida) open-sse/executors/cursor.ts Caminho de arquivo opcional que recebe blocos brutos decodificados do Cursor quando CURSOR_DEBUG=1.
CURSOR_STREAM_TIMEOUT_MS 300000 open-sse/executors/cursor.ts Tempo limite de inatividade do fluxo (ms) para o executor Cursor.
CURSOR_KV_GRACE_MS 2000 open-sse/executors/cursor.ts Janela de tolerância (ms) após um terminador flexível composer kv_after_text quando ainda há bytes no buffer — concede tempo para que uma chamada de ferramenta exec_mcp posterior conclua seu quadro.
CURSOR_TOOL_DIRECTIVE habilitada (!== "0") open-sse/executors/cursor.ts Diretiva de confirmação de ferramenta que faz com que o composer-2.5 emita chamadas de ferramenta de forma confiável. Defina como 0 para desabilitar.
OMNIROUTE_SYSTEM_INSTRUCTION_APPEND (não definida) open-sse/translator/request/claude-to-openai.ts, open-sse/translator/response/openai-to-claude.ts Texto de prompt do sistema definido pelo operador e anexado à mensagem do sistema APÓS a tradução (injeção pós-tradução), alcançando os caminhos codex/Responses e /v1/messages. Também é usado como prefixo de diretiva removido de blocos de preâmbulo do sistema repetidos na saída. Deixe-a não definida para desabilitar.
OMNIROUTE_STRIP_SYSTEM_PREAMBLE 0 (desativada) open-sse/translator/response/openai-to-claude.ts, open-sse/utils/directivePreambleStripper.ts Defina como 1 para remover blocos de preâmbulo do prompt do sistema repetidos no início de um fluxo openai→claude. Desativada por padrão — as heurísticas são moldadas para prosa em inglês e alteram o payload da resposta; portanto, uma resposta que legitimamente comece com uma seção desse tipo a perderia.
CURSOR_IMAGE_FETCH_TIMEOUT_MS 15000 open-sse/utils/cursorImages.ts Tempo limite de busca por imagem (ms) para entradas remotas de visão image_url.
CURSOR_STATE_DB_PATH (detectado) open-sse/utils/cursorVersionDetector.ts Substitui a consulta ao banco de dados de estado do Cursor IDE usada para detectar a versão do IDE.
CURSOR_AGENT_CLI_VERSION (detectar / fixar) open-sse/utils/cursorAgentCliVersion.ts ID da compilação da Agent CLI (YYYY.MM.DD-&lt;hash&gt;) para x-cursor-client-version: cli-… no Agent Run.
CURSOR_AGENT_BIN (não definida) open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts Caminho para o binário do Cursor Agent usado na geração de imagens. Quando não definida, o manipulador usa providerSpecificData.agentBin e depois PATH.
CURSOR_IMG_TIMEOUT_MS 210000 open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts Tempo decorrido máximo por imagem (ms) para tarefas de imagem do Cursor Agent.
CURSOR_IMG_MAX_CONCURRENT 2 open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts Limite de concorrência do acesso compartilhado para tarefas de imagem do Cursor.
CURSOR_IMG_MODEL solicitação / auto open-sse/handlers/imageGeneration/providers/cursorAgentImage.ts Substitui a opção --model da Cursor CLI para tarefas de imagem.
UC_IMAGE_POLL_INTERVAL_MS 2000 open-sse/handlers/imageGeneration/providers/ucImage.ts Cadência de consulta do resultado da geração de imagens da UC (uncensored.com), em ms.
UC_IMAGE_POLL_TIMEOUT_MS 60000 open-sse/handlers/imageGeneration/providers/ucImage.ts Tempo decorrido máximo (ms) para consultar o resultado da geração de imagens da UC.
UC_VIDEO_POLL_INTERVAL_MS 3000 open-sse/handlers/videoGeneration/providers/ucVideo.ts Cadência de consulta do resultado da geração de vídeos da UC (uncensored.com), em ms.
UC_VIDEO_POLL_TIMEOUT_MS 300000 open-sse/handlers/videoGeneration/providers/ucVideo.ts Tempo decorrido máximo (ms) para consultar o resultado da geração de vídeos da UC.
CURSOR_DATA_DIR (detectado) open-sse/utils/cursorAgentCliVersion.ts Substitui o diretório de dados da Cursor Agent CLI (…/versions/&lt;id&gt;); é a mesma variável usada pelo agente oficial.
CURSOR_TOKEN (não definida) scripts/ad-hoc/cursor-tap.cjs Token bearer direto do Cursor usado pelas ferramentas de desenvolvimento.
OMNIROUTE_LOG_REQUEST_SHAPE desabilitada (ativação opcional por meio de "1") src/app/api/v1/chat/completions/route.ts Registra marcadores de tipo/tamanho de conteúdo para payloads grandes de chat quando "1" está definido. Desativada por padrão para reduzir o ruído dos logs.
DEBUG_RESPONSES_SSE_TO_JSON (não definida) open-sse/handlers/responseTranslator.ts Defina como true para registrar detalhes da tradução de SSE→JSON da Responses API.
DEBUG_CLAUDE_NONSTREAM (não definida) open-sse/handlers/responseTranslator.ts Defina como true para expor blocos textContent vazios no caminho de tradução de respostas do Claude (somente para depuração).
NEXT_PUBLIC_OMNIROUTE_E2E_MODE (não definida) Estrutura de testes E2E Defina como true para habilitar o modo de teste E2E (autenticação flexibilizada, hooks de teste).

Permite que os usuários relatem problemas diretamente pelo Dashboard.

Variável Padrão Arquivo de origem Descrição
GITHUB_ISSUES_REPO (não definido) src/app/api/v1/issues/report/route.ts Repositório no formato owner/repo.
GITHUB_ISSUES_TOKEN (não definido) src/app/api/v1/issues/report/route.ts Token de acesso pessoal do GitHub com o escopo issues:write.
GITHUB_TOKEN (não definido) triagem de problemas / auxiliares do agente na nuvem Token genérico de acesso ao GitHub usado como alternativa para GITHUB_ISSUES_TOKEN e utilizado pelos auxiliares do agente na nuvem em src/lib/cloudAgent/*.

Para obter orientações de SRE sobre o backend de relay (comportamento de ts/bifrost/auto, posicionamento de 9router em comparação com CLIProxyAPI e estratégia de fallback para alta vazão), consulte Estratégia de Backend de Relay.

Janela do terminal
JWT_SECRET=$(openssl rand -base64 48)
API_KEY_SECRET=$(openssl rand -hex 32)
INITIAL_PASSWORD=dev123
PORT=20128
NODE_ENV=development
Janela do terminal
JWT_SECRET=&lt;gerado&gt;
API_KEY_SECRET=&lt;gerado&gt;
INITIAL_PASSWORD=&lt;gerado&gt;
STORAGE_ENCRYPTION_KEY=&lt;gerado&gt;
DATA_DIR=/data
PORT=20128
API_PORT=20129
NODE_ENV=production
AUTH_COOKIE_SECURE=true
REQUIRE_API_KEY=true
NEXT_PUBLIC_BASE_URL=https://omniroute.example.com
BASE_URL=http://localhost:20128
OMNIROUTE_MEMORY_MB=8192
CORS_ORIGIN=https://your-frontend.example.com
Janela do terminal
JWT_SECRET=test-jwt-secret-for-ci
API_KEY_SECRET=test-api-key-secret-for-ci
INITIAL_PASSWORD=testpass
NODE_ENV=production
OMNIROUTE_DISABLE_BACKGROUND_SERVICES=true
APP_LOG_TO_FILE=false
Janela do terminal
JWT_SECRET=&lt;gerado&gt;
API_KEY_SECRET=&lt;gerado&gt;
STORAGE_ENCRYPTION_KEY=&lt;gerado&gt;
PORT=20128
AUTH_COOKIE_SECURE=true
REQUIRE_API_KEY=true
NEXT_PUBLIC_BASE_URL=https://omniroute.example.com
BASE_URL=http://127.0.0.1:20128
CORS_ORIGIN=https://omniroute.example.com
ENABLE_TLS_FINGERPRINT=true
CLI_COMPAT_ALL=1

Limites e controles de segurança aplicados quando o framework de Skills (src/lib/skills/) executa automações definidas pelo usuário em um ambiente isolado.

Variável Padrão Arquivo de origem Descrição
SKILLS_SANDBOX_TIMEOUT_MS 10000 (10 s) src/lib/skills/builtins.ts Tempo limite de relógio por execução para código de skill no sandbox. Limite rígido; qualquer execução mais longa é encerrada.
SKILLS_EXECUTION_TIMEOUT_MS (usa SKILLS_SANDBOX_TIMEOUT_MS como fallback) src/lib/skills/ Tempo limite da orquestração de skills em alto nível. Defina um valor maior que SKILLS_SANDBOX_TIMEOUT_MS para permitir fluxos de trabalho com várias etapas.
SKILLS_MAX_FILE_BYTES 1048576 (1 MB) src/lib/skills/builtins.ts Número máximo de bytes que uma skill pode ler de um único arquivo no sandbox.
SKILLS_MAX_HTTP_RESPONSE_BYTES 256000 (250 KB) src/lib/skills/builtins.ts Número máximo de bytes capturados de uma única resposta HTTP dentro de uma skill.
SKILLS_MAX_SANDBOX_OUTPUT_CHARS 100000 src/lib/skills/builtins.ts Limite rígido de caracteres de stdout/stderr retornados por uma invocação do sandbox.
SKILLS_SANDBOX_NETWORK_ENABLED false src/lib/skills/builtins.ts Defina como 1/true para permitir acesso de saída à rede de dentro do sandbox. Por segurança, o padrão é isolado.
SKILLS_ALLOWED_SANDBOX_IMAGES (vazio) src/lib/skills/builtins.ts Lista de permissões, separada por vírgulas, das imagens de contêiner permitidas para execução no sandbox. Vazio significa somente o padrão integrado.
SKILLS_SANDBOX_DOCKER_IMAGE (padrão integrado) src/lib/skills/ Imagem de contêiner usada ao iniciar um sandbox baseado em Docker. Sobrescreva para fixar uma imagem-base personalizada e reforçada.
SKILLS_SANDBOX_RUNTIME auto src/lib/skills/sandbox.ts, src/lib/skills/containerProvider.ts Runtime de contêiner para o isolamento de skills: auto | docker | apple | wsl | orbstack | podman. auto seleciona o melhor runtime instalado para cada sistema operacional do host (Apple Container/OrbStack no macOS, WSL Container no Windows, Podman no Linux), usando Docker como fallback.

[!CAUTION] Ativar SKILLS_SANDBOX_NETWORK_ENABLED=true abre um caminho de saída para código arbitrário de skills. Em implantações compartilhadas, use essa opção em conjunto com OUTBOUND_SSRF_GUARD_ENABLED=true e uma política rigorosa de CORS_ORIGIN/proxy.


25. Cotas de provedores, túneis, backups e outros itens de runtime

Seção intitulada “25. Cotas de provedores, túneis, backups e outros itens de runtime”

Endpoints de cotas de provedores, túneis de rede (Tailscale, Ngrok, proxy de depuração MITM), o pool de saída 1Proxy, backups de banco de dados e pequenas substituições específicas por recurso referenciadas pela camada de execução ou por scripts.

Variável Padrão Arquivo-fonte Descrição
REDIS_URL redis://localhost:6379 src/shared/utils/rateLimiter.ts String de conexão do Redis para o backend do limitador de taxa.
ALIBABA_CODING_PLAN_HOST (host de produção) open-sse/services/bailianQuotaFetcher.ts Substitui o host usado para buscar as cotas do plano de codificação do Alibaba Bailian.
ALIBABA_CODING_PLAN_QUOTA_URL derivada do host open-sse/services/bailianQuotaFetcher.ts Substituição da URL completa de cotas do Alibaba Bailian.
QWEN_CLOUD_COOKIE (não definido) open-sse/services/qwenTokenPlanQuotaFetcher.ts Cookie de sessão do console para o gateway de cotas do Token Plan pessoal do Qwen Cloud / Model Studio (a chave da API de inferência não consegue acessá-lo). Copie todo o cabeçalho de requisição Cookie — ele contém login_qwencloud_ticket — de qualquer chamada a api.json para cs-data.qwencloud.com em home.qwencloud.com › Billing › Subscription (F12 › Network). É sensível e vinculado à sessão; prefira o campo qwenCloudCookie por conexão no Dashboard.
QWEN_CLOUD_SEC_TOKEN (não definido) open-sse/services/qwenTokenPlanQuotaFetcher.ts Substituição manual de sec_token para o gateway do console do Token Plan. É sensível; quando não definido, o buscador o resolve a partir do HTML do Dashboard usando o cookie.
QWEN_TOKEN_PLAN_HOST https://cs-data.qwencloud.com open-sse/services/qwenTokenPlanQuotaFetcher.ts Substituição do host do gateway para o buscador de cotas do Token Plan pessoal (por exemplo, bailian-singapore-cs.alibabacloud.com para o console do Model Studio).
QWEN_TOKEN_PLAN_DASHBOARD_URL https://home.qwencloud.com/ open-sse/services/qwenTokenPlanQuotaFetcher.ts URL do Dashboard usada para resolver sec_token a partir do HTML da sessão autenticada.
ALIBABA_FREE_TIER_VISION_FE_PATH /costing-balance/free-quota-image-video open-sse/services/alibabaFreeTierQuotaFetcher.ts Substituição do caminho do front-end do console para buscar a cota gratuita de visão/mídia do Alibaba Model Studio.
ALIBABA_FREE_TIER_MULTIMODAL_FE_PATH /costing-balance/free-quota-multimodal open-sse/services/alibabaFreeTierQuotaFetcher.ts Substituição do caminho do front-end do console para consultar a cota multimodal do nível gratuito do Alibaba Model Studio.
ALIBABA_FREE_TIER_AUDIO_FE_PATH /costing-balance/free-quota-audio open-sse/services/alibabaFreeTierQuotaFetcher.ts Substituição do caminho do front-end do console para consultar a cota de áudio do nível gratuito do Alibaba Model Studio.
ALIBABA_FREE_TIER_ALLOWLIST_PATH (não definido) open-sse/services/alibabaFreeTierAllowlist.ts Caminho opcional para um arquivo JSON local que substitui a lista de permissões integrada de modelos de texto do nível gratuito da Alibaba. Usa $DATA_DIR/alibaba-free-tier-allowlist.json como alternativa e, em seguida, config/alibaba-free-tier-allowlist.json.
CONTEXT_RESERVE_TOKENS 1024 open-sse/services/contextManager.ts Tokens reservados para a saída da conclusão ao calcular os limites do prompt.
CONTEXT_KEEP_LATEST_IMAGES 2 open-sse/services/contextManager.ts Quantidade de imagens inline mais recentes a manter ao remover as mais antigas para ajustá-las à janela de contexto (#8560).
MODEL_ALIAS_COMPAT_ENABLED habilitado open-sse/services/model.ts Ativa ou desativa a camada legada de compatibilidade com aliases de modelos usada por clientes mais antigos.
OMNIROUTE_EMERGENCY_FALLBACK habilitado open-sse/services/emergencyFallback.ts Defina como false (ou 0) para desativar o fallback de emergência por esgotamento do orçamento, que redireciona solicitações com falha para o modelo gratuito nvidia/openai/gpt-oss-120b. A precedência efetiva é: substituição no banco de dados de Feature Flags > variável de ambiente > padrão; se não estiver disponível, o serviço usa como fallback o valor bruto da variável de ambiente.
COMMAND_CODE_CALLBACK_PORT (não definido) src/app/api/providers/command-code/auth/shared.ts Porta local usada para callbacks no estilo OAuth provenientes do utilitário de CLI do Command Code.
COMMAND_CODE_VERSION 0.33.2 open-sse/executors/commandCode.ts Valor enviado como o cabeçalho x-command-code-version ao serviço upstream do Command Code. Substitua-o para atualizar a versão da CLI.
COMMANDCODE_API_URL https://api.commandcode.ai open-sse/services/usage/command-code.ts URL base do serviço upstream de uso/cota do Command Code, utilizada pela telemetria do coletor de cotas para smartphones. Substitua-a para usar uma API do Command Code auto-hospedada ou alternativa.
MITM_LOCAL_PORT 443 src/mitm/server.cjs Porta de vinculação local para o proxy de depuração MITM.
MITM_DISABLE_TLS_VERIFY 0 src/mitm/server.cjs Defina como 1 para desativar a verificação TLS upstream (somente para desenvolvimento).
MITM_IDLE_TIMEOUT_MS 60000 src/mitm/socketTimeouts.ts, src/mitm/server.cjs Tempo limite de inatividade do socket (ms) para conexões submetidas a proxy; sockets que permanecerem inativos além desse período serão encerrados para evitar o vazamento de túneis semiabertos.
BRIDGE_PORT 20129 bin/antigravity-bridge.mjs Porta na qual a ponte MITM do Antigravity escuta.
ROUTER_URL http://127.0.0.1:20128/v1/antigravity bin/antigravity-bridge.mjs Endpoint do roteador para o qual a ponte encaminha o tráfego do Antigravity.
CERT_DIR ~/.omniroute/mitm bin/antigravity-bridge.mjs Diretório que contém server.key/server.crt para o listener TLS da ponte; a ponte é encerrada se qualquer um deles estiver ausente.
MITM_VERBOSE 1 src/mitm/server.cjs, src/mitm/_internal/bypass.cjs Nível de detalhamento dos logs de decisões de roteamento: 0 silencia os logs; valores maiores registram mais decisões de bypass/roteamento.
MITM_ROOT_CA_ENABLED false src/mitm/manager.ts Defina como true para optar pelo modelo de CA raiz + certificado folha por host (#6684). Instalações novas o recebem automaticamente; instalações com um certificado folha legado confiável preexistente mantêm o certificado SAN fixo legado, a menos que essa opção seja ativada.
MITM_CERT_MODE legacy src/mitm/manager.ts, src/mitm/server.cjs Definido PELO gerenciador MITM para o processo de proxy iniciado (root-ca | legacy) — reflete a decisão de migração do certificado; não deve ser definido manualmente.
OMNIROUTE_NO_SUDO 0 src/mitm/systemCommands.ts Defina como 1 (verdadeiro) para remover o sudo inicial dos comandos de confiança do certificado MITM — para implantações sem root/em namespaces de usuário nas quais o operador confia manualmente na CA (por exemplo, por meio do mecanismo extra-CA-certs do Node).
SKIP_ANTIGRAVITY_DNS (não definido) src/mitm/dns/provision.ts Defina como true para ignorar completamente o provisionamento de entradas DNS em /etc/hosts para os nomes de host do proxy Antigravity — para contêineres sem sudo/root disponível.
OMNIROUTE_SKIP_DNS_WRITE (não definido) src/mitm/dns/dnsConfig.ts Defina como 1 para não gravar no arquivo hosts ao adicionar/remover entradas DNS — para ambientes de teste em sandbox ou somente leitura.
OMNIROUTE_SKIP_SYSTEM_TRUST 0 src/mitm/cert/install.ts, src/mitm/tproxy/caTrust.ts Proteção exclusiva para testes/CI: defina como 1 para fazer com que a instalação/desinstalação da confiança no certificado não realize nenhuma operação, garantindo que a suíte nunca altere o repositório de confiança do SO. Definido automaticamente pela configuração de testes e pelos fluxos de trabalho de CI.
CHANGELOG_BASE_REF (automático) scripts/check/check-changelog-integrity.mjs Referência base explícita para a verificação contra remoções no CHANGELOG (o padrão é o branch base do PR na CI ou o maior release/v*).
FREE_PROXY_AUTO_SYNC_ENABLED false src/lib/freeProxyProviders/scheduler.ts Defina como true para habilitar o agendador de sincronização automática em segundo plano do pool de proxies gratuitos. Recurso opcional, desabilitado por padrão.
FREE_PROXY_AUTO_SYNC_INTERVAL_MS 1800000 src/lib/freeProxyProviders/scheduler.ts Intervalo de sincronização automática em milissegundos (padrão: 30 min).
FREE_PROXY_1PROXY_ENABLED true src/lib/freeProxyProviders/oneproxy.ts Habilita a fonte de proxies gratuitos 1proxy. Defina como false para desabilitá-la.
FREE_PROXY_1PROXY_API_URL (consulte oneproxy.ts) src/lib/freeProxyProviders/oneproxy.ts Substituição da URL da API do 1proxy.
FREE_PROXY_1PROXY_MAX 500 src/lib/freeProxyProviders/oneproxy.ts Número máximo de proxies obtidos por sincronização do 1proxy.
FREE_PROXY_1PROXY_MIN_QUALITY 50 src/lib/freeProxyProviders/oneproxy.ts Limite mínimo da pontuação de qualidade para importações do 1proxy.
FREE_PROXY_PROXIFLY_ENABLED true src/lib/freeProxyProviders/proxifly.ts Habilita a fonte de proxies gratuitos Proxifly. Defina como false para desabilitá-la.
FREE_PROXY_PROXIFLY_QUANTITY 100 src/lib/freeProxyProviders/proxifly.ts Número de proxies a serem obtidos por sincronização do Proxifly.
FREE_PROXY_PROXIFLY_ANONYMITY elite src/lib/freeProxyProviders/proxifly.ts Filtro de nível de anonimato do Proxifly (elite, anonymous, transparent).
FREE_PROXY_IPLOCATE_ENABLED false src/lib/freeProxyProviders/iplocate.ts Habilita a fonte de proxies gratuitos do IPLocate. Requer ativação explícita.
FREE_PROXY_IPLOCATE_BASE_URL https://raw.githubusercontent.com/iplocate/free-proxy-list/main/protocols src/lib/freeProxyProviders/iplocate.ts Substituição da URL base da lista de proxies do IPLocate.
FREE_PROXY_WEBSHARE_ENABLED true src/lib/freeProxyProviders/webshare.ts Habilita a fonte do pool de proxies do Webshare. Defina como false para desabilitá-la; também exige que FREE_PROXY_WEBSHARE_API_KEY esteja definida.
FREE_PROXY_WEBSHARE_API_KEY (nenhum) src/lib/freeProxyProviders/webshare.ts Token da API da conta do Webshare (Authorization: Token &lt;key&gt;). Obrigatório — o provedor permanece desabilitado sem ele.
FREE_PROXY_WEBSHARE_API_URL https://proxy.webshare.io/api/v2/proxy/list/ src/lib/freeProxyProviders/webshare.ts Substituição da URL da API da lista de proxies do Webshare.
FREE_PROXY_WEBSHARE_MAX 500 src/lib/freeProxyProviders/webshare.ts Número máximo de proxies importados por sincronização do Webshare.
NEXT_PUBLIC_VERCEL_RELAY_ENABLED true src/app/(dashboard)/…/ProxyPoolTab.tsx Exibe ou oculta o botão Implantar Vercel Relay na guia Pool de Proxies.
VERCEL_API_BASE https://api.vercel.com src/app/api/settings/proxy/vercel-deploy/route.ts Substituição da URL base da API da Vercel (para testes).
NEXT_PUBLIC_VERCEL_RELAY_DEFAULT_PROJECT omniroute-relay src/app/(dashboard)/…/VercelRelayModal.tsx Nome padrão do projeto, preenchido previamente no modal de implantação do Vercel Relay.
TAILSCALE_BIN (detecção automática) src/lib/tailscaleTunnel.ts Caminho explícito para o binário tailscale.
TAILSCALED_BIN (detecção automática) src/lib/tailscaleTunnel.ts Caminho explícito para o binário do daemon tailscaled.
TAILSCALE_AUTHKEY (não definido) src/lib/tailscaleTunnel.ts Chave de autenticação pré-compartilhada do Tailscale para executar tailscale up de forma não interativa/sem interface gráfica (passada por meio de --auth-key=). Quando não definida, o login usa como alternativa a URL de autenticação interativa no navegador.
NGROK_AUTHTOKEN (não definido) src/lib/ngrokTunnel.ts Autentica túneis ngrok de saída.
DB_BACKUP_MAX_FILES 20 src/lib/db/backup.ts Número máximo de arquivos de backup SQLite mantidos pela limpeza de backups manual/agendada. Os snapshots de migração são endereçados por conteúdo e reutilizados para um estado idêntico do banco de dados; eles não são removidos dentro da janela de migração simultânea. Substitui o valor salvo em Configurações → Retenção de backups do banco de dados.
DB_BACKUP_RETENTION_DAYS 0 src/lib/db/backup.ts Idade máxima (em dias) mantida pela limpeza de backups manual/agendada. 0 desativa a remoção baseada em idade. Os snapshots de migração não são removidos dentro da janela de migração simultânea. Substitui o valor salvo em Configurações → Retenção de backups do banco de dados.
OMNIROUTE_BACKUP_SCHEDULE_JOB_INTERVAL_MS 30000 src/lib/jobs/backupScheduleJob.ts Intervalo de execução (ms) da tarefa no lado do servidor que executa backup-schedule.json. Deve permanecer bem abaixo da granularidade de 1 minuto do cron; valores inferiores a 5000 ou que não possam ser interpretados retornam ao padrão 30000.
CONTAINER_HOST docker scripts/check-permissions.sh Indicação do runtime de contêiner para a verificação de permissões do ponto de entrada. Defina como podman para qualquer topologia do Podman. Como o contêiner não consegue determinar se o mecanismo é local ou acessado por meio do Podman Machine, o aviso permanece neutro em relação à topologia e aponta para contrib/podman/README.md.
QUOTA_STORE_DRIVER sqlite src/lib/quota/storeFactory.ts Backend do armazenamento de consumo de compartilhamento de cotas: sqlite (padrão) ou redis.
QUOTA_STORE_REDIS_URL (não definido) src/lib/quota/storeFactory.ts String de conexão do Redis usada quando QUOTA_STORE_DRIVER=redis (por exemplo, redis://localhost:6379).
QUOTA_SATURATION_THRESHOLD 0.5 src/lib/quota/enforce.ts Taxa de saturação do pool (0..1); ao atingi-la ou ultrapassá-la, o pool entra no modo estrito (sem empréstimos).
QUOTA_SOFT_DEPRIORITIZE_FACTOR 0.7 open-sse/services/combo.ts Multiplicador de pontuação (0..1) aplicado a um destino quando a política de cota flexível reduz sua prioridade.
STATUS_SOFT_DEPRIORITIZE_FACTOR 0.5 open-sse/services/combo/autoStrategy.ts Multiplicador de pontuação (0..1) aplicado a um provedor esgotado (credits_exhausted/rate_limited) na pontuação de combinação automática quando o corte de cota pré-solicitação está DESATIVADO (#4540).
QUOTA_CONSUMPTION_RETENTION_DAYS 14 src/lib/db/quotaConsumption.ts Janela de retenção (em dias) para os buckets de quota_consumption antes da coleta de lixo (gcQuotaConsumption).
QUOTA_PREFLIGHT_CUTOFF_ENABLED false src/lib/resilience/settings.ts Recurso opcional (DESATIVADO por padrão): habilita o corte rígido de cota do roteamento automático, que descarta candidatos com pouca cota antes da pontuação.
OMNIROUTE_AUTO_FREE_FALLBACK_TO_FULL_POOL false open-sse/services/autoCombo/virtualFactory.ts Recurso opcional (DESATIVADO por padrão): quando um filtro auto/&lt;category&gt;:&lt;tier&gt; não corresponde a nenhum candidato conectado, restaura o comportamento legado de recorrer ao pool completo (não filtrado), em vez de retornar um pool vazio. A configuração padrão DESATIVADA faz com que :free signifique “somente nível gratuito”.
OMNIROUTE_CHAOS_MAX_PANEL 5 open-sse/services/autoCombo/virtualFactory.ts Limite do tamanho do painel (restrito a 1–10) para a variante de transmissão auto/*:chaos — uma solicitação é distribuída para, no máximo, essa quantidade de modelos de provedores distintos.
OMNIROUTE_CHAOS_MIN_PANEL (padrão do mecanismo) open-sse/services/autoCombo/virtualFactory.ts Ajuste do tamanho mínimo do painel encaminhado ao manipulador de transmissão de caos; se não for definido, mantém o padrão do mecanismo.
OMNIROUTE_CHAOS_PANEL_TIMEOUT_MS (padrão do mecanismo) open-sse/services/autoCombo/virtualFactory.ts Tempo limite rígido (ms) para toda a distribuição do painel de caos; se não for definido, mantém o padrão do mecanismo.
GROK_AUTH_PATH ~/.grok/auth.json open-sse/services/grokQuotaFetcher.ts Caminho do auth.json da CLI do Grok usado para consultar a cota semanal do grok-web; substitua-o para testes ou para uma instalação não padrão da CLI.
AGENTBRIDGE_UPSTREAM_CA_CERT (não definido) src/mitm/manager.ts Certificado de CA adicional (PEM) confiável para conexões TLS upstream do AgentBridge.
INSPECTOR_BUFFER_SIZE 1000 src/mitm/inspector/buffer.ts Número máximo de requisições capturadas mantidas no buffer circular do Traffic Inspector.
INSPECTOR_MAX_BODY_KB 1024 src/mitm/inspector/buffer.ts Tamanho máximo do corpo de requisição/resposta capturado (KB) antes do truncamento.
INSPECTOR_HTTP_PROXY_PORT 8080 src/mitm/inspector/httpProxyServer.ts Porta local do proxy HTTP do Traffic Inspector.
INSPECTOR_HTTP_PROXY_AUTOSTART false src/mitm/inspector/httpProxyServer.ts Inicia automaticamente o proxy HTTP do inspetor durante a inicialização.
INSPECTOR_TLS_INTERCEPT false src/lib/inspector/captureState.ts Habilita a interceptação TLS (MITM) para o tráfego HTTPS capturado.
INSPECTOR_LLM_HOSTS_EXTRA (não definido) src/lib/inspector/captureState.ts Nomes de host adicionais (separados por vírgulas) tratados como endpoints de LLM para captura.
INSPECTOR_MASK_SECRETS true src/mitm/inspector/buffer.ts Mascara segredos (cabeçalhos de autenticação/chaves de API) no tráfego capturado.
INSPECTOR_SYSTEM_PROXY_GUARD_MINUTES 30 src/app/api/tools/traffic-inspector/capture-modes/system-proxy/route.ts Número de minutos até que a proteção do proxy do sistema reverta automaticamente as configurações de proxy do sistema operacional.
INSPECTOR_INTERNAL_INGEST_TOKEN (automático) src/app/api/tools/traffic-inspector/internal/ingest/route.ts Token que autentica a ingestão interna de capturas no inspetor.
PLAYGROUND_COMPARE_MAX_COLUMNS 4 src/app/(dashboard)/dashboard/playground/ Número máximo de colunas lado a lado no modo de comparação do Playground.
PLAYGROUND_IMPROVE_PROMPT_DEFAULT_MODEL (não definido) src/app/(dashboard)/dashboard/playground/ Modelo padrão para a ação de “melhorar prompt” do Playground (usa o modelo ativo como fallback quando não definido).
BIFROST_ENABLED 1 src/app/api/v1/relay/chat/completions/bifrost/route.ts Chave geral de desativação do proxy sidecar Bifrost. Quando definida como 0, a rota retorna 503 com o cabeçalho X-Bifrost-Killswitch, e o operador é redirecionado para o caminho TS. Use-a para desativar o sidecar sem reimplantar (incidente no roteador de nível 1, rotação de chaves).
BIFROST_BASE_URL (não definido) src/app/api/v1/relay/chat/completions/bifrost/route.ts Quando definida, a rota do proxy sidecar Bifrost encaminha o tráfego de /v1/chat/completions para esse gateway Go, em vez de usar o manipulador de relay TS. Não definida → 503 com fallback. A barra final é removida.
BIFROST_PORT 8080 src/lib/services/bootstrap.ts Porta à qual o serviço Bifrost incorporado e supervisionado se vincula (127.0.0.1:&lt;port&gt;) quando o OmniRoute gerencia o ciclo de vida do sidecar Bifrost. O padrão é 8080.
BIFROST_API_KEY (não definido) src/app/api/v1/relay/chat/completions/bifrost/route.ts Chave de API do gateway Bifrost (enviada como Authorization: Bearer ...). Se não estiver definida, a rota espera que a solicitação contenha uma chave de API válida do OmniRoute; essa chave serve apenas para autenticação no gateway.
BIFROST_STREAMING_ENABLED true src/app/api/v1/relay/chat/completions/bifrost/route.ts Quando verdadeiro, a rota do sidecar Bifrost transmite as respostas via SSE por meio do gateway, em vez de usar o executor de streaming TS. Defina como 0 para forçar respostas JSON sem streaming por meio do gateway.
BIFROST_TIMEOUT_MS 30000 src/app/api/v1/relay/chat/completions/bifrost/route.ts Tempo limite por solicitação ao encaminhar para o gateway Bifrost (ms). Em caso de tempo limite, a rota retorna o caminho de relay TS por meio do cabeçalho X-Bifrost-Fallback.
OMNIROUTE_BIFROST_KEY (não definido) src/app/api/v1/relay/chat/completions/bifrost/route.ts Alias de BIFROST_API_KEY (usado por scripts que leem a variável de ambiente via OMNIROUTE_*). BIFROST_API_KEY tem precedência quando ambas estão definidas.
OMNIROUTE_RELAY_BACKEND ts / auto src/app/api/v1/relay/chat/completions/routingBackend.ts Backend de relay para /api/v1/relay/chat/completions: ts | bifrost | auto. ts = relay TypeScript (padrão quando o Bifrost não está configurado); auto seleciona o Bifrost quando BIFROST_BASE_URL está definida e BIFROST_ENABLED ≠ 0, com fallback automático para TS se o sidecar estiver inacessível; bifrost força o Bifrost (estrito, sem fallback). Autenticação/limitação de taxa/proteção contra injeção/lista de permissões sempre são executadas primeiro na rota Next. As respostas incluem X-Routing-Backend / X-Routing-Fallback / X-Routing-Fallback-Reason.
RELAY_ROUTING_BACKEND (não definido) src/app/api/v1/relay/chat/completions/routingBackend.ts Alias aceito para OMNIROUTE_RELAY_BACKEND (os mesmos valores ts | bifrost | auto). OMNIROUTE_RELAY_BACKEND tem precedência quando ambos estão definidos.
OMNIROUTE_BIFROST_FAILURE_COOLDOWN_MS 5000 src/app/api/v1/relay/chat/completions/bifrostCooldown.ts Período de espera (ms) após uma passagem pelo sidecar Bifrost falhar no modo auto, antes de o relay tentar novamente o sidecar; durante o período de espera, ele encaminha diretamente para o caminho TS e depois tenta novamente. 0 desativa. Aplica-se somente quando OMNIROUTE_RELAY_BACKEND=auto.
OMNIROUTE_TLS_CERT (não definido) bin/cli/commands/serve.mjs Caminho para um certificado TLS PEM para disponibilizar omniroute serve por HTTPS (equivalente a --tls-cert). Deve ser usado em conjunto com OMNIROUTE_TLS_KEY; o servidor autônomo então encerra o TLS no mesmo listener (wss:// funciona sem alterações). Não definido → HTTP simples. Fornecer apenas o certificado ou a chave, ou um caminho ilegível, registra um aviso e mantém o HTTP.
OMNIROUTE_TLS_KEY (não definido) bin/cli/commands/serve.mjs Caminho para a chave privada TLS PEM do HTTPS de omniroute serve (equivalente a --tls-key). Deve ser usado em conjunto com OMNIROUTE_TLS_CERT. Consulte OMNIROUTE_TLS_CERT.
OMNIROUTE_LOCAL_ENDPOINTS_ENABLED 0 src/lib/security/localEndpoints.ts Chave geral para as rotas /api/local/*. Quando não definida ou definida como 0, todas as rotas /api/local/* retornam 503 em produção. Deve ser 1 em implantações fora do loopback para habilitar o inicializador do Redis e iniciadores semelhantes de serviços locais com um clique. Proteção redundante com a classificação de proteção de rotas isLocalOnlyPath() (LOCAL_ONLY_API_PREFIXES em src/server/authz/routeGuard.ts).
OMNIROUTE_LOCAL_ENDPOINTS_TOKEN (não definido) src/lib/security/localEndpoints.ts Token Bearer para clientes de /api/local/* que não estejam no loopback (por exemplo, o aplicativo para desktop). Quando definido, solicitações provenientes de IPs fora do loopback devem incluir Authorization: Bearer &lt;token&gt;. Obrigatório quando OMNIROUTE_LOCAL_ENDPOINTS_ENABLED=1 em implantações fora do loopback.
OMNIROUTE_REDIS_CONTAINER_NAME omniroute-redis bin/cli/commands/redis.mjs Nome do contêiner para o inicializador do Redis com um clique (omniroute redis up). Usado tanto pela CLI quanto pela GUI RedisLauncherPanel.
OMNIROUTE_REDIS_HOST_PORT 6379 bin/cli/commands/redis.mjs Porta do host para o inicializador do Redis com um clique. Altere-a se o host já usar a porta 6379. A porta interna do contêiner permanece 6379.
OMNIROUTE_REDIS_BIND_HOST 127.0.0.1 bin/cli/commands/redis.mjs Interface do host na qual o inicializador do Redis com um clique publica. O inicializador inicia o Redis SEM senha, portanto, associá-lo a 0.0.0.0 disponibiliza um Redis não autenticado para todos os hosts da sua LAN — amplie esse acesso somente se você também definir uma senha na instância por conta própria.
REDIS_BIND_HOST 127.0.0.1 docker-compose.yml Interface do host na qual o docker-compose publica o sidecar Redis (#9286). O Redis do compose é executado sem requirepass; os contêineres do aplicativo o acessam pela rede do compose (redis:6379) — a porta publicada existe apenas para ferramentas executadas no host. 0.0.0.0 expõe um Redis não autenticado para toda a LAN.
REDIS_PORT 6379 docker-compose.yml Porta do host para o sidecar do Redis no Compose.
APP_BIND_HOST 127.0.0.1 docker-compose.yml, docker-compose.prod.yml Interface do host na qual o docker-compose publica as portas do painel/API/WS em tempo real do próprio aplicativo (#12568). Como REQUIRE_API_KEY=false é fornecido como padrão no .env.example, 0.0.0.0 expõe o proxy LLM anônimo /v1 para toda a LAN/WAN — amplie o acesso somente quando REQUIRE_API_KEY=true ou quando um proxy reverso à frente aplicar sua própria autenticação.
QDRANT_BIND_HOST 127.0.0.1 docker-compose.yml Interface do host na qual o docker-compose publica o sidecar de memória Qdrant (#12578). Aplica-se o mesmo raciocínio sobre exposição à LAN que em REDIS_BIND_HOST.
BIFROST_BIND_HOST 127.0.0.1 docker-compose.yml Interface do host na qual o docker-compose publica o sidecar do roteador Bifrost (#12578). Aplica-se o mesmo raciocínio sobre exposição à LAN que em REDIS_BIND_HOST.
REDIS_KEY_PREFIX omniroute: src/shared/utils/rateLimiter.ts Prefixo de namespace aplicado a todas as chaves Redis do OmniRoute (limitador de taxa, cache de autenticação, armazenamento de cotas, disjuntor de aquecimento). Evita colisões de chaves quando a instância do Redis é compartilhada com outros aplicativos (#11042).
OMNIROUTE_INTERNAL_SERVICE_TOKEN (não definido — mecanismo desabilitado) src/lib/api/internalServiceAuth.ts Segredo compartilhado para chamadas REST internas que preservam a identidade (#9260): componentes do OmniRoute que chamam outras rotas locais do OmniRoute o enviam como x-omniroute-internal-service-token, para que a identidade do chamador original seja preservada. Comparado usando timingSafeEqual.
OMNIROUTE_INTERNAL_SERVICE_TOKEN_FILE (não definido) src/lib/api/internalServiceAuth.ts Variante em arquivo secreto do token de serviço interno: caminho para um arquivo cujo conteúdo, após a remoção dos espaços em branco nas extremidades, é o token. Consultado somente quando a variável inline não está definida.
OPENROUTER_PROVIDER_STATS_ENABLED true src/lib/catalog/openrouterProviderStats.ts Enriquece a lista de provedores do painel com estatísticas semanais de classificação do OpenRouter (#9324). Ativado por padrão; defina como false para ignorar completamente a busca em segundo plano (não bloqueante e nunca fatal).
OPENROUTER_PROVIDER_STATS_TTL_MS 86400000 (24h) src/lib/catalog/openrouterProviderStats.ts TTL do cache do snapshot de estatísticas de provedores do OpenRouter, em milissegundos.
OMNIROUTE_REDIS_IMAGE redis:7-alpine bin/cli/commands/redis.mjs Imagem do Redis usada pelo inicializador do Redis com um clique. Substitua por redis:8-alpine ou por um espelho de registro privado, conforme necessário.
QDRANT_HOST qdrant (perfil de cluster opcional) Nome do host do sidecar do Qdrant quando --profile memory está ativo. O padrão aponta para o nome do serviço qdrant na rede; substitua-o para uma implantação externa. Consumido apenas quando qdrantEnabled é true no código (src/lib/memory/vectorStore.ts:108).
QDRANT_PORT 6333 (perfil de cluster opcional) Porta REST do sidecar do Qdrant.
QDRANT_GRPC_PORT 6334 (perfil de cluster opcional) Porta gRPC do sidecar do Qdrant. Usada por bibliotecas cliente que preferem gRPC a REST para operações de streaming.
QDRANT_API_KEY (não definida) (perfil de cluster opcional) Chave de API opcional para o Qdrant Cloud ou uma instância local autenticada. Vazio → nenhum cabeçalho api-key é enviado.
QDRANT_COLLECTION omniroute-memory (perfil de cluster opcional) Nome da coleção para os embeddings da memória de conversas do OmniRoute. Criada na primeira execução com as dimensões definidas por QDRANT_VECTOR_SIZE.
QDRANT_EMBEDDING_MODEL text-embedding-3-small (perfil de cluster opcional) Nome do modelo de embedding padrão registrado nos metadados da coleção do Qdrant. Os embeddings reais são gerados pelo provedor indicado pelo campo embeddingModel nas configurações do OmniRoute.
QDRANT_VECTOR_SIZE 1536 (perfil de cluster opcional) Dimensão do vetor de embedding. Deve corresponder ao modelo usado para gerar os embeddings (text-embedding-3-small → 1536; ada-002 → 1536; nomic-embed-text → 768).
QDRANT_HNSW_EF_CONSTRUCT 128 (perfil de cluster opcional) Precisão do índice HNSW durante a construção. Valor maior = construção mais lenta, pesquisa mais rápida.
OMNIROUTE_ROTATION_ENABLED true open-sse/services/rotationConfig.ts Chave mestra para a rotação de contas configurável pelo operador. Quando false, nenhuma das classes OMNIROUTE_ROTATE_* abaixo aciona o fallback de conta (o estado desativado da chave mestra também bloqueia as classes 429/500/502, habilitadas por padrão). Permite que um front-end supervisor (por exemplo, o aplicativo para desktop VibeProxy) replique suas próprias regras de rotação no mecanismo de fallback de contas do backend.
OMNIROUTE_ROTATION_RATE_LIMIT_RESET_SECONDS 0 open-sse/services/rotationConfig.ts Tempo de espera (em segundos) aplicado a uma conta com limite de taxa atingido quando o serviço upstream não fornece uma indicação explícita de redefinição. 0 = usar o tempo de espera padrão do mecanismo em vez de uma substituição fixa.
OMNIROUTE_ROTATION_DISABLE_TAG_WITHOUT_RESET true open-sse/services/rotationConfig.ts Espelha a preferência do front-end de “não marcar como limitado por taxa sem um horário de redefinição”.
OMNIROUTE_ROTATE_ON_429 true open-sse/services/rotationConfig.ts Habilita o fallback por status para erros 429. Quando definido como false (e OMNIROUTE_ROTATION_ENABLED=true), um erro 429 deixa de acionar a rotação de contas e, em vez disso, é retornado ao cliente.
OMNIROUTE_ROTATE_429_THRESHOLD 1 open-sse/services/rotationConfig.ts Número de erros 429 dentro de OMNIROUTE_ROTATE_429_WINDOW_SECONDS necessário antes que a conta seja alternada. 1 (padrão) alterna imediatamente, preservando o comportamento histórico.
OMNIROUTE_ROTATE_429_WINDOW_SECONDS 120 open-sse/services/rotationConfig.ts Janela deslizante (em segundos) durante a qual os erros 429 são contabilizados para OMNIROUTE_ROTATE_429_THRESHOLD.
OMNIROUTE_ROTATE_ON_500 true open-sse/services/rotationConfig.ts Habilita o fallback por status para erros de servidor 5xx (exceto 502, que tem sua própria classe). Quando definido como false, esses erros deixam de acionar a rotação de contas.
OMNIROUTE_ROTATE_500_THRESHOLD 1 open-sse/services/rotationConfig.ts Número de erros 5xx dentro de OMNIROUTE_ROTATE_500_WINDOW_SECONDS necessário antes que a conta seja alternada. 1 (padrão) alterna imediatamente.
OMNIROUTE_ROTATE_500_WINDOW_SECONDS 120 open-sse/services/rotationConfig.ts Janela deslizante (em segundos) durante a qual os erros 5xx são contabilizados para OMNIROUTE_ROTATE_500_THRESHOLD.
OMNIROUTE_ROTATE_ON_502 true open-sse/services/rotationConfig.ts Habilita o fallback por status para erros 502 (gateway inválido). Quando definido como false, os erros 502 deixam de acionar a rotação de contas.
OMNIROUTE_ROTATE_502_THRESHOLD 1 open-sse/services/rotationConfig.ts Número de erros 502 dentro de OMNIROUTE_ROTATE_502_WINDOW_SECONDS necessário antes que a conta seja alternada. 1 (padrão) alterna imediatamente.
OMNIROUTE_ROTATE_502_WINDOW_SECONDS 120 open-sse/services/rotationConfig.ts Janela deslizante (em segundos) durante a qual os erros 502 são contabilizados para OMNIROUTE_ROTATE_502_THRESHOLD.
OMNIROUTE_ROTATE_ON_400 false open-sse/services/rotationConfig.ts Adesão opcional (DESATIVADA por padrão): quando true, um 400 simples (solicitação inválida) também aciona a rotação de conta. Isso é apenas aditivo — nunca bloqueia o comportamento existente do mecanismo, no qual um 400 contendo texto sobre limite de requisições/cota ainda realiza o failover independentemente desse sinalizador.
OMNIROUTE_ROTATE_400_THRESHOLD 1 open-sse/services/rotationConfig.ts Número de erros 400 dentro de OMNIROUTE_ROTATE_400_WINDOW_SECONDS necessário antes que a conta seja rotacionada (consultado somente quando OMNIROUTE_ROTATE_ON_400=true).
OMNIROUTE_ROTATE_400_WINDOW_SECONDS 120 open-sse/services/rotationConfig.ts Janela deslizante (em segundos) durante a qual os erros 400 são contabilizados para OMNIROUTE_ROTATE_400_THRESHOLD.

Aquecimento controlado por cron para conexões OAuth da Anthropic que aderiram ao recurso, para que a janela de limite de requisições de 5 horas seja aberta por uma solicitação trivial agendada, em vez de pela primeira solicitação real (#8848). O agendador permanece desativado, a menos que OMNIROUTE_WARMUP_ENABLED tenha um valor verdadeiro e a conexão esteja sinalizada em settings.claudeWarmup.connections; uma lista de conexões vazia significa que nenhuma conexão será aquecida, mesmo com a variável de ambiente ativada.

Variável Padrão Arquivo de origem Descrição
OMNIROUTE_WARMUP_ENABLED (não definida → desativado) src/lib/warmupScheduler.ts Chave geral do agendador de aquecimento. Aceita 1/true/yes/on (sem diferenciar maiúsculas de minúsculas e desconsiderando espaços nas extremidades). Qualquer outro valor, ou a ausência de valor, mantém o agendador desativado.
OMNIROUTE_WARMUP_CRON 0 7 * * * src/lib/warmupScheduler.ts Expressão cron de cinco campos para a execução do aquecimento, avaliada em America/Los_Angeles (o fuso horário de redefinição da Anthropic), independentemente do relógio do host.
OMNIROUTE_WARMUP_CONCURRENCY 3 src/lib/warmupScheduler.ts Quantas conexões são aquecidas em paralelo por execução. Limitado ao intervalo de 1 a 10; um valor não numérico usa 3 como padrão.
OMNIROUTE_WARMUP_MODEL claude-3-5-haiku-20241022 src/lib/warmupScheduler.ts Modelo usado para a solicitação de aquecimento. Substitua-o somente se o padrão não estiver disponível em seu plano; escolha o modelo mais barato que ainda abra a janela.

Sessões VNC para login pelo navegador e alias do diretório de dados

Seção intitulada “Sessões VNC para login pelo navegador e alias do diretório de dados”

Chromium+VNC em contêiner usado para a captura interativa de credenciais de login pelo navegador (/api/vnc-session), além de um alias legado DATA_DIR. Tudo é opcional — os padrões do VNC usam como destino a imagem incluída omniroute-vnc-chromium:local e só precisam ser substituídos para usar uma imagem de contêiner personalizada, portas específicas ou ajustes no ciclo de vida.

Variável Padrão Arquivo de origem Descrição
OMNIROUTE_VNC_IMAGE omniroute-vnc-chromium:local src/lib/vncSession/manifest.ts Tag da imagem Docker para o contêiner de login do Chromium+VNC. Compile docker/vnc-browser/chromium ou aponte esta variável para uma imagem personalizada.
OMNIROUTE_DOCKER_BIN docker src/lib/vncSession/manifest.ts Binário do runtime de contêiner usado para iniciar o contêiner VNC (por exemplo, defina como podman).
OMNIROUTE_VNC_CONTAINER_VNC_PORT 3000 src/lib/vncSession/manifest.ts Porta VNC/noVNC exposta dentro do contêiner.
OMNIROUTE_VNC_CONTAINER_CDP_PORT 9223 src/lib/vncSession/manifest.ts Porta do Chrome DevTools Protocol dentro do contêiner.
OMNIROUTE_VNC_CONTAINER_PROFILE_DIR /config src/lib/vncSession/manifest.ts Caminho do diretório de perfil do Chromium dentro do contêiner.
OMNIROUTE_VNC_PROFILE_DIR $HOME/.omniroute/browser-login-profiles src/lib/vncSession/manifest.ts Diretório do host que armazena perfis persistidos de login no navegador.
OMNIROUTE_VNC_IDLE_MS 600000 (10 min) src/lib/vncSession/manifest.ts Tempo limite de inatividade (ms) antes que uma sessão VNC inativa seja encerrada.
OMNIROUTE_VNC_MAX_MS 1800000 (30 min) src/lib/vncSession/manifest.ts Limite máximo absoluto (ms) para a duração de uma única sessão VNC.
OMNIROUTE_VNC_MAX_SESSIONS 4 src/lib/vncSession/manifest.ts Número máximo de sessões VNC simultâneas.
OMNIROUTE_VNC_READY_MS 45000 src/lib/vncSession/manifest.ts Tempo limite (ms) de espera para que o navegador em contêiner fique pronto para CDP.
OMNIROUTE_VNC_HARVEST_MS 20000 src/lib/vncSession/manifest.ts Tempo limite (ms) para coletar a sessão e os cookies capturados após a conclusão do login.
OMNIROUTE_VNC_CHROMIUM_ARGS --remote-debugging-port=9222 --no-first-run --no-default-browser-check src/lib/vncSession/manifest.ts Flags adicionais de linha de comando passadas ao Chromium em contêiner.
OMNIROUTE_VNC_NETWORK omniroute-vnc-browser-login src/lib/vncSession/manifest.ts Rede Docker dedicada à qual o contêiner de login VNC se conecta (#12571), em vez da bridge padrão, para que contêineres irmãos não possam acessar sua porta bridge de CDP.
VIBEPROXY_DATA_DIR (não definida) open-sse/services/notionThreadSessions.ts Alias legado para DATA_DIR, verificado somente quando DATA_DIR e OMNIROUTE_DATA_DIR não estão definidas. Localiza o cache de sessões de threads web do Notion (&lt;dir&gt;/notion-web-thread-sessions.json).

Usado por scripts/dev/run-next-playwright.mjs, scripts/dev/smoke-electron-packaged.mjs, scripts/dev/run-ecosystem-tests.mjs e scripts/build/uninstall.mjs. Deixe todos os valores abaixo não definidos em implantações de produção.

Variável Padrão Arquivo de origem Descrição
OMNIROUTE_E2E_BOOTSTRAP_MODE auth scripts/dev/run-next-playwright.mjs Modo de inicialização E2E (auth, fresh, reuse) para o executor do Playwright.
OMNIROUTE_E2E_PASSWORD usa INITIAL_PASSWORD como fallback scripts/dev/run-next-playwright.mjs Senha de administrador injetada no ambiente do Playwright.
OMNIROUTE_DISABLE_LOCAL_HEALTHCHECK true scripts/dev/run-next-playwright.mjs Desativa a sondagem local de integridade durante as execuções do Playwright.
OMNIROUTE_DISABLE_TOKEN_HEALTHCHECK true scripts/dev/run-next-playwright.mjs Desativa o ciclo de verificação de integridade dos tokens OAuth durante os testes.
OMNIROUTE_HEALTHCHECK_SKIP_PROVIDERS (não definido) src/lib/tokenHealthCheck.ts Provedores separados por vírgulas excluídos da varredura proativa de renovação de tokens (por exemplo, codex,openai). Alternativa direcionada a desativar completamente a verificação de integridade — provedores com TTL curto continuam sendo atualizados, enquanto provedores em cascata permanecem somente reativos.
OMNIROUTE_HIDE_HEALTHCHECK_LOGS true scripts/dev/run-next-playwright.mjs Silencia mensagens de verificação de integridade no stdout do Playwright.
OMNIROUTE_PLAYWRIGHT_SKIP_BUILD 0 scripts/dev/run-next-playwright.mjs Ignora a compilação de produção do Next.js antes que o Playwright seja iniciado (otimização de CI).
OMNIROUTE_SKIP_UNINSTALL_HOOK 0 scripts/build/uninstall.mjs Ignora o hook de desinstalação do OmniRoute (usado pela CI para manter node_modules intacto).
ECOSYSTEM_SERVER_WAIT_MS 180000 scripts/dev/run-ecosystem-tests.mjs Tempo de espera (ms) para que o servidor fique íntegro antes da execução dos testes de ecossistema/protocolo.
ELECTRON_SMOKE_URL http://127.0.0.1:20128/login scripts/dev/smoke-electron-packaged.mjs URL que a estrutura de teste de fumaça do Electron espera que o aplicativo empacotado disponibilize.
ELECTRON_SMOKE_TIMEOUT_MS 45000 scripts/dev/smoke-electron-packaged.mjs Tempo limite total (ms) antes que a estrutura de teste de fumaça desista.
ELECTRON_SMOKE_SETTLE_MS 2000 scripts/dev/smoke-electron-packaged.mjs Janela de estabilização (ms) após o carregamento da página.
ELECTRON_SMOKE_APP_EXECUTABLE (automático) scripts/dev/smoke-electron-packaged.mjs Caminho explícito para o executável do Electron empacotado.
ELECTRON_SMOKE_DATA_DIR (tmpdir) scripts/dev/smoke-electron-packaged.mjs Diretório de dados para a execução do teste de fumaça do Electron.
ELECTRON_SMOKE_KEEP_DATA 0 scripts/dev/smoke-electron-packaged.mjs Defina como 1 para preservar o diretório de dados do teste de fumaça após a execução.
ELECTRON_SMOKE_STREAM_LOGS 0 scripts/dev/smoke-electron-packaged.mjs Defina como 1 para transmitir os logs do Electron para a saída padrão durante a execução.
ELECTRON_SMOKE_COLD_RESTART 0 scripts/dev/smoke-electron-packaged.mjs #7592: reinicia usando o mesmo diretório de dados e verifica se a segunda inicialização seleciona o driver SQLite nativo.
CLI_DEVIN_BIN (consulta ao PATH) open-sse/executors/devin-cli.ts Substitui o caminho do binário da CLI do Devin.

Usado por scripts/i18n/run-translation.mjs (o comando npm run i18n:run). Por padrão, todas as cinco variáveis não estão definidas — defina-as em .env apenas nas máquinas que devem ser capazes de executar o tradutor da documentação.

Variável Padrão Arquivo de origem Descrição
OMNIROUTE_TRANSLATION_API_URL (não definido) scripts/i18n/run-translation.mjs URL base compatível com a OpenAI para o backend de tradução.
OMNIROUTE_TRANSLATION_API_KEY (não definido) scripts/i18n/run-translation.mjs Token Bearer para o backend de tradução (nunca registrado nos logs).
OMNIROUTE_TRANSLATION_MODEL (não definido) scripts/i18n/run-translation.mjs ID do modelo, por exemplo, gpt-4o-mini ou cx/gpt-5.4-mini.
OMNIROUTE_TRANSLATION_TIMEOUT_MS 60000 scripts/i18n/run-translation.mjs Tempo limite por solicitação, em milissegundos.
OMNIROUTE_TRANSLATION_CONCURRENCY 4 scripts/i18n/run-translation.mjs Solicitações de tradução paralelas ao processar vários arquivos/idiomas.

Complemento opcional controlado pelo sinalizador de recurso RADAR_ENABLED (desativado por padrão — um sinalizador de recurso alternado por meio de Configurações/DB, não uma variável de ambiente; consulte docs/frameworks/RADAR.md). As quatro primeiras variáveis abaixo são substituições opcionais para um feed auto-hospedado ou derivado e para fluxos de chaves de apoiadores. A quinta, RADAR_ADMIN_URL, é um link separado, sem valor padrão, para o painel privado de operações do proprietário. Consulte docs/frameworks/RADAR.md para ver a documentação completa do módulo e sua sequência completa de ativação e configuração guiada.

O leitor genérico de anúncios da Página Inicial/Registro de Alterações não é configurado por uma variável de ambiente e não depende do sinalizador de recurso RADAR_ENABLED. Ele lê por meio apenas de GET a URL pública news.json do repositório, declarada em src/shared/utils/releaseNotes.ts; os IDs de dispensas permanecem no armazenamento local do navegador.

Variável Padrão Arquivo de origem Descrição
RADAR_FEED_URL https://radar.omniroute.online src/lib/radar/{sync,referralsSync,offersSync,intelSync}.ts URL base compartilhada pelos feeds assinados separadamente de catálogo, indicações, ofertas para apoiadores e Intel. Substitua-a para apontar para um serviço auto-hospedado ou derivado.
RADAR_FEED_PUBKEY (chave padrão fixada) src/lib/radar/pinnedKeys.ts Chave pública Ed25519 (SPKI DER em base64 ou PEM) usada para verificar as assinaturas de um feed personalizado.
RADAR_CONTRIBUTOR_CLAIM_URL https://radar.omniroute.online/auth/github src/lib/radar/links.ts URL aberta pelo botão “Sou um colaborador” do painel (fluxo de solicitação de chave de apoiador via OAuth do GitHub).
RADAR_SUPPORTER_PLANS_URL https://radar.omniroute.online/planos src/lib/radar/links.ts URL aberta pelo botão “Apoie o projeto” do painel (página de pagamentos/planos).
RADAR_ADMIN_URL (não definida) src/lib/radar/links.ts Link do painel privado de operações exclusivo para o proprietário. HTTPS é obrigatório, exceto para um encaminhamento SSH de loopback HTTP; valores não definidos ou inválidos não criam nenhum item de navegação.

As variáveis a seguir apareciam em versões anteriores de .env.example, mas não possuem referências em tempo de execução na base de código atual. Elas foram removidas:

Variável Motivo
STORAGE_DRIVER=sqlite Nunca é lida por nenhum arquivo-fonte. SQLite é o único driver compatível — nenhuma seleção é necessária.
INSTANCE_NAME=omniroute Presente em documentações/modelos de ambiente antigos, mas não é usada em tempo de execução. Pode retornar em um futuro recurso de múltiplas instâncias.
SQLITE_MAX_SIZE_MB=2048 Não é referenciada no código-fonte. O tamanho do banco de dados não é limitado artificialmente.
SQLITE_CLEAN_LEGACY_FILES=true Não é referenciada no código-fonte. A limpeza de arquivos legados provavelmente foi removida.
CLI_ROO_BIN Não está registrada em src/shared/services/cliRuntime.ts.
CLI_KIMI_CODING_BIN Não está registrada em src/shared/services/cliRuntime.ts (Kimi Coding usa OAuth, não um binário de CLI).
IFLOW_OAUTH_CLIENT_ID / IFLOW_OAUTH_CLIENT_SECRET Não são referenciadas em nenhuma parte do código-fonte.
CEREBRAS_API_KEY / COHERE_API_KEY / FIREWORKS_API_KEY / GROQ_API_KEY / MISTRAL_API_KEY / NEBIUS_API_KEY / PERPLEXITY_API_KEY / TOGETHER_API_KEY / XAI_API_KEY Removidas na v3.8.0. O runtime não lê mais essas variáveis de ambiente — as credenciais vêm do Dashboard / data/provider-credentials.json / banco de dados criptografado.
CURSOR_PROTOBUF_DEBUG Removida na v3.8.0. O executor do Cursor usa CURSOR_DEBUG / CURSOR_STREAM_DEBUG (consulte §22).
CLI_COMPAT_KIRO Removida na v3.8.0. Kiro está em CLI_COMPAT_OMITTED_PROVIDER_IDS — sua opção de ativação não tem efeito.
QIANFAN_API_KEY Removida junto com outros stubs de chaves de API de provedores não utilizados na v3.8.0.
Variável Valor antigo em .env.example Padrão real do código Correção
APP_LOG_RETENTION_DAYS 90 7 ✅ Valor enganoso removido; 7 documentado como padrão
CALL_LOG_RETENTION_DAYS 90 7 ✅ Valor enganoso removido; 7 documentado como padrão

Regeneração da configuração do OpenCode (ferramenta ad hoc)

Seção intitulada “Regeneração da configuração do OpenCode (ferramenta ad hoc)”

Usada por scripts/ad-hoc/regen-opencode-config.ts para regenerar um opencode.json com valores precisos de limit.context e limit.output obtidos da instância do OmniRoute em execução. Nenhuma dessas variáveis é necessária para a operação normal — o script é apenas uma ferramenta para desenvolvedores.

Variável Padrão Arquivo de origem Descrição
OMNIROUTE_URL http://localhost:20128 scripts/ad-hoc/regen-opencode-config.ts URL base da instância do OmniRoute a ser consultada em /v1/models.
OMNIROUTE_KEY (não definida) scripts/ad-hoc/regen-opencode-config.ts Chave de API para autenticação no endpoint /v1/models do OmniRoute. Usa OPENCODE_API_KEY como alternativa quando não definida.
OPENCODE_API_KEY (não definida) scripts/ad-hoc/regen-opencode-config.ts Chave de API no estilo OpenCode (sk-...) gravada no opencode.json regenerado. Usa OMNIROUTE_KEY como alternativa quando não definida.

Ambiente de avaliação offline de compactação (ferramentas ad hoc)

Seção intitulada “Ambiente de avaliação offline de compactação (ferramentas ad hoc)”

Usado por scripts/compression-eval/index.ts, a CLI de avaliação offline de compactação. Não é necessário para a operação normal — apenas ferramentas para desenvolvedores.

Variável Padrão Arquivo de origem Descrição
OMNIROUTE_EVAL_CREDENTIALS {} (vazio) scripts/compression-eval/index.ts Credenciais JSON fornecidas pelo operador para o provedor utilizado pela CLI de avaliação offline de compactação (analisadas com JSON.parse). Deixe sem definir para simulação.

Usado por src/lib/vncSession/manifest.ts para configurar sessões do Chromium sem interface gráfica baseadas em Docker para provedores de automação de navegador. Todas são opcionais — os padrões são mostrados abaixo.

Variável Padrão Arquivo de origem Descrição
OMNIROUTE_DOCKER_BIN docker src/lib/vncSession/manifest.ts Caminho para o binário do Docker usado para iniciar contêineres VNC.
OMNIROUTE_VNC_IMAGE omniroute-vnc-chromium:local src/lib/vncSession/manifest.ts Imagem do Docker para o contêiner VNC do Chromium.
OMNIROUTE_VNC_CHROMIUM_ARGS (flags integradas) src/lib/vncSession/manifest.ts Argumentos adicionais da CLI do Chromium passados ao navegador dentro do contêiner.
OMNIROUTE_VNC_CONTAINER_VNC_PORT 3000 src/lib/vncSession/manifest.ts Porta VNC dentro do contêiner.
OMNIROUTE_VNC_CONTAINER_CDP_PORT 9223 src/lib/vncSession/manifest.ts Porta do Chrome DevTools Protocol dentro do contêiner.
OMNIROUTE_VNC_CONTAINER_PROFILE_DIR /config src/lib/vncSession/manifest.ts Diretório de perfil dentro do contêiner.
OMNIROUTE_VNC_PROFILE_DIR (não definida) src/lib/vncSession/manifest.ts Diretório no host para perfis persistentes do navegador.
OMNIROUTE_VNC_IDLE_MS 600000 src/lib/vncSession/manifest.ts Tempo limite de inatividade (ms) antes que uma sessão VNC seja recolhida.
OMNIROUTE_VNC_MAX_MS 1800000 src/lib/vncSession/manifest.ts Duração máxima da sessão (ms).
OMNIROUTE_VNC_MAX_SESSIONS 4 src/lib/vncSession/manifest.ts Número máximo de sessões VNC simultâneas.
OMNIROUTE_VNC_READY_MS 45000 src/lib/vncSession/manifest.ts Tempo limite para o navegador ficar pronto (ms).
OMNIROUTE_VNC_HARVEST_MS 20000 src/lib/vncSession/manifest.ts Tempo limite de recolhimento/limpeza (ms).
OMNIROUTE_VNC_NETWORK omniroute-vnc-browser-login src/lib/vncSession/manifest.ts Rede dedicada do Docker à qual o contêiner se conecta (#12571), separada da ponte padrão.
VIBEPROXY_DATA_DIR (não definida) open-sse/services/notionThreadSessions.ts Diretório para persistência de sessões de threads do Notion.
Variável Padrão Descrição
OMNIROUTE_INTERNAL_SERVICE_TOKEN – Token embutido para autenticação entre serviços do plano de gerenciamento.
OMNIROUTE_INTERNAL_SERVICE_TOKEN_FILE – Caminho para um arquivo contendo o token de serviço interno (preferível em contêineres; substitui a variável embutida).
Variável Padrão Descrição
OPENROUTER_PROVIDER_STATS_ENABLED true Defina como false para ignorar a obtenção de estatísticas por provedor do OpenRouter para enriquecimento do catálogo.
OPENROUTER_PROVIDER_STATS_TTL_MS 3600000 TTL do cache (ms) para as estatísticas de provedores do OpenRouter obtidas.
Variável Padrão Descrição
REDIS_BIND_HOST 127.0.0.1 Endereço de associação do serviço Redis integrado.
REDIS_PORT 6379 Porta do serviço Redis integrado.
OMNIROUTE_REDIS_BIND_HOST – Substituição no escopo do OmniRoute para o endereço de associação do Redis integrado.

Estas configurações foram introduzidas após o snapshot anterior do contrato de ambiente.

Variável Padrão Arquivo de origem Descrição
OMNIROUTE_CHAT_ADMISSION_QUEUE_MS 2000 src/shared/middleware/chatBodyAdmission.ts Tempo máximo de espera por uma vaga de admissão de chat de alto consumo antes de retornar um 503 que permite nova tentativa; uma espera curta e limitada serializa os picos de agentes em vez de retornar um 503 imediatamente. 0 restaura a rejeição imediata.
OMNIROUTE_CHAT_ADMISSION_MAX_QUEUED_BYTES 4194304 (4 MB) src/shared/middleware/chatBodyAdmission.ts Orçamento de bytes enfileirados para a espera de admissão: limita o total de bytes de corpos armazenados em buffer e mantidos em espera em todo o processo, para que a espera não amplifique o uso de heap (#4380). Esperas acima do orçamento recebem imediatamente um 503 que permite nova tentativa.
OMNIROUTE_CHAT_VIRTUAL_TTL_MS 60000 (60 s) src/shared/middleware/chatBodyAdmission.ts Operação sem efeito obsoleta desde #10110: as faixas de admissão por sessão foram removidas em favor de um único orçamento para todo o processo. Aceita para compatibilidade de configuração; ignorada.
OMNIROUTE_CHAT_VIRTUAL_MAX_SESSIONS 64 src/shared/middleware/chatBodyAdmission.ts Operação sem efeito obsoleta desde #10110: as faixas de admissão por sessão foram removidas em favor de um único orçamento para todo o processo. Aceita para compatibilidade de configuração; ignorada.
OMNIROUTE_CHAT_VIRTUAL_LANES 0 (desativado) open-sse/services/admission/runtime.ts Faixas virtuais adaptativas de admissão em tempo de execução (#9654): chave principal do controle adaptativo por locatário (sistema 2). Diferente das variáveis obsoletas de faixa por conexão acima (TTL_MS / MAX_SESSIONS, sem efeito desde #10110). É também o nome do sinalizador de recurso no painel; a variável de ambiente prevalece sobre a substituição do painel; requer reinicialização.
OMNIROUTE_RUNNOW_TIMEOUT_MS 30000 src/app/api/jobs/[id]/run-now/route.ts Limita por quanto tempo uma chamada de execução imediata aguarda um trabalho em andamento antes de iniciar a execução enfileirada.
ADOBE_FIREFLY_BROWSER_REFRESH habilitado open-sse/services/adobeFireflySession.ts Mantém atualizados o IMS e o estado de risco do navegador por meio de sessões Chrome CDP com escopo de conta; defina como 0 para desabilitar.
ADOBE_FIREFLY_SESSION_DISK habilitado open-sse/services/adobeFireflySession.ts Persiste as sessões reparadas da Adobe em DATA_DIR; defina como 0 para manter o estado somente na memória.
ADOBE_FIREFLY_MIN_SUBMIT_GAP_MS 12000 open-sse/services/adobeFireflySession.ts Intervalo mínimo entre envios de geração ao Adobe Firefly.
ADOBE_FIREFLY_BATCH_EXTRA_GAP_MS 15000 open-sse/services/adobeFireflySession.ts Período adicional de inatividade após cada terceiro envio bem-sucedido à Adobe.
ADOBE_FIREFLY_CHROME_HEADLESS 0 open-sse/services/adobeFireflyBrowserLogin.ts Modo verdadeiramente headless destinado apenas à depuração; o Adobe colligo normalmente rejeita a sessão de risco resultante.
CHROME_PATH detecção automática open-sse/executors/cloudflare-playground.ts, open-sse/executors/chatgpt-web-codex.ts Executável absoluto opcional do Chrome usado pelos executores controlados por navegador quando a detecção automática da plataforma é insuficiente.
TELEGRAM_BOT_TOKEN (não definido) src/lib/telegram/config.ts Token do BotFather que habilita o webhook de entrada e assina o initData do Mini App.
TELEGRAM_WEBHOOK_SECRET (não definido) src/lib/telegram/config.ts Segredo compartilhado registrado por meio de setWebhook e verificado em relação ao cabeçalho X-Telegram-Bot-Api-Secret-Token em cada entrega de webhook. Obrigatório para o caminho do webhook; quando não definido, as entregas de webhook são recusadas com 503.
TELEGRAM_DEFAULT_MODEL auto/chat src/lib/telegram/chatProxy.ts Modelo usado para respostas de chat do Telegram.
TELEGRAM_BOT_API_BASE https://api.telegram.org src/lib/telegram/config.ts Substituição da URL base da Bot API para proxies ou servidores da Bot API auto-hospedados.
TELEGRAM_WEBHOOK_TIMEOUT_MS 60000 src/lib/telegram/config.ts Tempo limite, em milissegundos, para chamadas de saída à Bot API.
OMNIROUTE_OPTIONAL_PACK_TAR 1 (habilitado) scripts/build/optionalPackStaging.mjs Defina como 0 para não gerar arquivos tar .tar.gz durante a preparação de pacotes opcionais de ML/navegador para a árvore autônoma do Electron (os diretórios dos pacotes e o optional-packs.index.json ainda são produzidos). Usado pelo fluxo de trabalho de lançamento para desktop a fim de reduzir o tamanho do upload dos artefatos.

Padrões globais para o navegador headless e o túnel de ferramentas de saída. Os valores de conexão definidos no painel têm precedência.

Variável Padrão Arquivo de origem Descrição
CHATGPT_WEB_CODEX_CHROME_PATH (detecção automática) open-sse/executors/chatgpt-web-codex.ts Caminho explícito do Chrome/Chromium para execução com npm, systemd e PM2.
CHROME_PATH (detecção automática) open-sse/executors/chatgpt-web-codex.ts Fallback compartilhado para um caminho explícito do Chrome/Chromium.
CHATGPT_WEB_CODEX_CDP_URL (não definido) open-sse/executors/chatgpt-web-codex.ts Endpoint CDP interno; o Docker usa o sidecar na porta 9223.
CDP_PROXY_TOKEN (não definido) docker/chatgpt-web-codex-browser/cdp-proxy.mjs Se definido, todas as solicitações ao sidecar de proxy CDP devem enviar esse valor no cabeçalho X-Omni-Cdp-Token (#13679). Sem um valor, o proxy encaminha as solicitações sem autenticação — nesse caso, somente o isolamento da rede chatgpt-web-codex-net do Compose oferece proteção. Gere com openssl rand -hex 32.
CHATGPT_WEB_CODEX_TUNNEL_ID (não definido) open-sse/executors/chatgpt-web-codex.ts ID global do túnel da OpenAI para rodadas locais da ferramenta Codex.
CHATGPT_WEB_CODEX_RUNTIME_KEY (não definido) open-sse/executors/chatgpt-web-codex.ts Chave de runtime global do túnel; nunca a inclua nos logs.
CHATGPT_WEB_CODEX_CONNECTOR_NAME OmniRoute Codex v2 open-sse/executors/chatgpt-web-codex.ts Nome exato do conector personalizado do ChatGPT recém-criado para a ponte MCP.
CODEX_CHATGPT_WEB_HOME <DATA_DIR>/chatgpt-web-codex open-sse/vendor/codex-chatgpt-web/config.ts Diretório dedicado para o estado do navegador, broker e túnel.
CODEX_CHATGPT_WEB_BROWSER_DIAGNOSTICS 0 open-sse/vendor/codex-chatgpt-web/adapters/chatgpt-web/browser-worker.ts Quando definido como 1, imagens de diagnóstico do navegador são capturadas em cada checkpoint.
CODEX_CHATGPT_WEB_LAUNCHER (não definido) open-sse/vendor/codex-chatgpt-web/config.ts Caminho absoluto opcional para um binário persistente do launcher.
CODEX_CHATGPT_WEB_BUN (detecção automática) open-sse/vendor/codex-chatgpt-web/config.ts Caminho absoluto opcional para o binário do runtime Bun.
CODEX_WEB_GPT_BUN (não definido) open-sse/vendor/codex-chatgpt-web/config.ts Fallback legado para CODEX_CHATGPT_WEB_BUN; novas configurações usam o nome canônico.

Consumidor SSE de longa duração que espelha as tarefas do hub OmniConductor no A2A TaskManager local (src/lib/conductor/). Recurso opcional — a ponte só é iniciada quando CONDUCTOR_HUB_URL está definida. Somente no lado do servidor: o token do hub nunca deve chegar ao navegador.

Variável Padrão Arquivo de origem Descrição
CONDUCTOR_HUB_URL (vazio) src/lib/conductor/boot.ts URL base do hub OmniConductor (por exemplo, http://127.0.0.1:7910). Não definida = ponte desabilitada.
CONDUCTOR_HUB_TOKEN (vazio) src/lib/conductor/boot.ts Credencial do hub para o feed SSE — emita um peer do tipo spokesperson no hub (POST /v1/peers, administrador).
CONDUCTOR_ORCHESTRATOR_TOKEN (vazio) src/lib/conductor/hubProxy.ts Credencial para a delegação de tarefas A2A→hub de entrada (POST /v1/tasks); usa CONDUCTOR_HUB_TOKEN como alternativa quando não definida.
CONDUCTOR_SPOKESPERSON_URL http://127.0.0.1:7920 src/lib/conductor/faroProxy.ts URL base do serviço de porta-voz (Faro) por trás do proxy de chat do painel (/api/conductor/ask).

Usado por open-sse/services/combo.ts e src/lib/quota/quotaScheduler.ts para verificações do orçamento de tokens antes das requisições. Recurso opcional — o comportamento padrão de roteamento permanece inalterado quando não definido.

Variável Padrão Arquivo de origem Descrição
OMNIROUTE_QUOTA_AWARE_ROUTING 0 open-sse/services/combo.ts Quando definido como 1, ignora conexões cujo orçamento de tokens por janela (rateLimitOverrides.tpm, tabela provider_quota_state) não consegue cobrir o custo estimado da requisição antes do despacho. Em caso de ausência de orçamento configurado, permite a operação.

Código-fonte do OmniRoute (a58000c7685f)

HagiCode

HagiCode é um ambiente de programação com agentes, fluxos estruturados, execução multiagente e visualizações Hero Dungeon.

Transforme ideias em software útil com um fluxo de trabalho com agentes mais inteligente, rápido e agradável.

Interface principal do HagiCode no tema claro
  • SmartFluxos estruturados transformam intenções em um caminho executável da ideia à entrega.
  • EfficientFluxos multiagente mantêm pesquisa, implementação e revisão em andamento simultaneamente.
  • FunO Hero Dungeon torna longas sessões de programação mais visuais e colaborativas.
Acessar HagiCode