> Acumular escalões gratuitos manualmente é penoso — dezenas de SDKs, dezenas de limites de utilização e nenhuma noção da quantidade realmente disponível. O OmniRoute cataloga **489 entradas de escalões gratuitos em 35 chaves de conjuntos recorrentes** e calcula o total de tokens em destaque a partir dos **17 conjuntos com um orçamento mensal positivo publicado, mais cinco limites da Groq por modelo**, eliminando duplicações por conjunto partilhado. As quotas que apenas ficam disponíveis após uma verificação de identidade regional (atualmente: ModelScope) são apresentadas separadamente, +~6M mediante verificação de identidade regional, e nunca são incluídas no total em destaque. O resultado permanece visível no painel (`/dashboard/free-tiers`).
> Resumo animado da página `/dashboard/free-tiers` em tempo real. Metodologia completa (eliminação de duplicações por conjunto, escalões de crédito, termos dos fornecedores): **[docs/reference/FREE_TIERS.md](docs/reference/FREE_TIERS.md)**.
>
> Estes valores são novamente auditados a cada duas semanas com base no catálogo em tempo real e **podem variar em ambos os sentidos** — se um fornecedor terminar um escalão gratuito, o número diminui; se surgir um novo, aumenta. Publicamos aquilo que o catálogo realmente calcula, nunca um cenário ideal arredondado por excesso.
⭐ Dê uma estrela ao repositório se o OMNIROUTE o ajudou a poupar dinheiro e a facilitar o seu trabalho.
[](https://github.com/diegosouzapw/OmniRoute)
[](https://www.star-history.com/diegosouzapw/omniroute)
[](https://olud.ai/project/diegosouzapw-omniroute.html)
### 💬 Junte-se à comunidade
**👋 Siga o responsável pela manutenção — seja o primeiro a receber novos fornecedores, versões e sugestões:**
[](https://www.linkedin.com/in/diegosouzapw/)
[](https://github.com/diegosouzapw)
[](https://discord.gg/U47eFqAXCn)
[](https://t.me/omnirouteOficial)
[](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4)
[](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4)
[](https://omniroute.online)
**Perguntas, sugestões de fornecedores, roteiro e apoio → [Discord](https://discord.gg/U47eFqAXCn) · [Telegram](https://t.me/omnirouteOficial) · WhatsApp [🌍 Global](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4) / [🇧🇷 Brasil](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4) / [Portal](https://portal.sthub.com.br/communities/groups/st-hub/channels/Omniroute-World-8kRjmK)**
## 📈 O Gateway Continua a Crescer
## 🆓 Funciona assim que o instala — sem chaves, sem configuração
```bash
# Instalação nova, zero credenciais — `auto` já funciona:
curl http://localhost:20128/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"auto","messages":[{"role":"user","content":"Hello!"}]}'
```
Prefere um backend gratuito específico? Chame `oc/…` (OpenCode Free) diretamente. Depois, passe para `auto` e deixe o OmniRoute escolher.📦 Scripts de início rápido para copiar e colar para **Python, Node.js, PHP e cURL** → [`examples/quickstart/`](examples/quickstart/)
# 💥 A Promessa
# 🤔 Porquê o OmniRoute?
## 🤝 Apoiado pelos nossos Amigos de Código Aberto
> **Quer juntar-se como Amigo de Código Aberto?** Estas são as empresas que apoiam o código aberto e ajudam a manter o OmniRoute em movimento — e nós dizemos publicamente para onde vai cada token que nos dão. Contacte-nos: [diegosouza.pw@outlook.com](mailto:diegosouza.pw@outlook.com)
Kimi Moonshot AI
Obrigado à Kimi (Moonshot AI), o nosso Amigo Fundador de Código Aberto, por apoiar este projeto! A Kimi é o laboratório de IA por trás das famílias de modelos de peso aberto K2 e K3 — o Kimi K3 oferece uma janela de contexto de 1M de tokens, visão nativa e codificação de nível de fronteira a uma fração dos preços dos modelos fechados, e funciona de imediato com Claude Code, Codex e todas as ferramentas de codificação que o OmniRoute serve.
O que o apoio da Kimi impulsiona: Os créditos da API da Kimi alimentam o pipeline de lançamento validado por IA do OmniRoute — a fase de validação de fusão impulsionada pelo Kimi K3 que revê cada pull request antes de ser enviada — além do desenvolvimento diário de funcionalidades. O suporte de primeira classe da Kimi é enviado em ambas as vias: a API direta da Kimi (kimi-k3) e o plano de codificação Kimi Code (OAuth e chave API). O OmniRoute é também o primeiro projeto de código aberto brasileiro no programa de apoio da Kimi. Obtenha uma chave API da Kimi com 15% de créditos extra →
Cheaper Inference cheaperinference.com
Obrigado à Cheaper Inference, um Amigo de Código Aberto do OmniRoute, por apoiar este projeto! A Cheaper Inference é um gateway classificado por custo que revende 42 modelos de fronteira — Claude, GPT-5.x, Gemini, Kimi K3, GLM, DeepSeek, Grok e MiniMax — por trás de um único endpoint compatível com OpenAI, encaminhando cada pedido para o fornecedor elegível mais barato sem nunca cobrar acima do preço de tabela do criador do modelo.
Suporte de primeira classe no OmniRoute: Chat Completions, o endpoint nativo /v1/responses, visão, chamada de ferramentas e 3 modelos de imagem (grok-imagine, nano-banana-pro, nano-banana-2, acessíveis como cheaperinference/<model>). Obtenha uma chave API →
Os links marcados com aff=omniroute são links de parceiros. Eles financiam o projeto sem custo adicional para si. 🎟️ Promoção de Afiliados — cupões de inscrição gratuitos de fornecedores que não patrocinamos (clique para expandir)Esta secção destina-se apenas a códigos de referência/cupão. As parcerias patrocinadas encontram-se em 🤝 Apoiado pelos nossos Amigos de Código Aberto acima. O OmniRoute não tem patrocínio ou parceria com os fornecedores aqui listados — estes são cupões públicos que qualquer pessoa pode usar.
AgentRouter agentrouter.org
AgentRouter — inscrição de afiliado · $100 em créditos gratuitos na inscrição (servidor gratuito, espere maior latência — melhor para testes, não para produção). Suporte de primeira classe no OmniRoute desde a v3.8.50: Chat Completions, o formato de comunicação compatível com Anthropic e o caminho compatível com OpenAI. Os modelos disponíveis incluem claude-opus-4-8, claude-opus-5, gpt-5.6-sol e mais. Agarre os seus $100 →
⚠️ Link de afiliado — O OmniRoute não tem patrocínio ou parceria com este fornecedor.
Conhece outro fornecedor com um cupão de inscrição gratuito generoso que beneficie os utilizadores do OmniRoute? Abra uma issue e nós adicioná-lo-emos aqui.
## 🎯 Combos — O Destaque Principal
> Um **combo** é uma cadeia de modelos pelos quais o OmniRoute encaminha pedidos **automaticamente**. Se a quota se esgotar, um fornecedor falhar ou os custos dispararem, o combo pode passar para o próximo modelo elegível e operacional. 🛡️
### ⚡ Configuração zero — basta utilizar `auto`
Não é necessário criar qualquer combo. Defina o seu modelo como `auto` (ou uma variante) e o OmniRoute cria um combo virtual a partir dos fornecedores ligados, avaliados em tempo real:
ID do modelo
O que otimiza
auto
🎯 Predefinição equilibrada (LKGP — mantém-se no último fornecedor que funcionou)
auto/coding
🧑💻 Ponderações que dão prioridade à qualidade para geração de código
auto/fast
⚡ Menor latência primeiro
auto/cheap
💰 Menor custo por token primeiro
auto/offline
🔋 Maior margem de quota/limite de pedidos primeiro
auto/smart
🔭 Prioridade à qualidade + 10% de exploração para descobrir modelos melhores
auto/lkgp
📌 Afinidade explícita com o último fornecedor que funcionou
auto/chaos
🧪 Ponderações de injeção de falhas para testes de resiliência (engenharia do caos)
##
### 🔀 Ou crie o seu próprio — 19 estratégias de encaminhamento
Todas as **19** estratégias — combine-as livremente em cada passo do combo:
#
Estratégia
O que faz
1
priority
Lista ordenada pelo primeiro alvo — esgota cada um antes de passar ao seguinte 🥇
2
fill-first
Utiliza totalmente a quota de cada alvo antes de avançar
3
weighted
Seleção aleatória ponderada pelo peso de cada alvo
4
round-robin
Percorre os alvos ciclicamente pela ordem definida
5
p2c
Balanceamento de carga aleatório com duas opções
6
least-used
Seleciona o alvo com a carga atual mais baixa
7
random
Seleção aleatória uniforme (sem duplicados)
8
strict-random
Seleção aleatória sem eliminar repetições 🎲
9
cost-optimized
Minimiza o custo por pedido com base nos preços atuais do catálogo 💸
10
headroom
Seleciona o alvo com a maior quota restante
11
reset-window
Dá preferência ao alvo cuja janela de quota é reposta mais cedo
12
reset-aware
Ordena pela hora de reposição da quota — janelas curtas primeiro 📊
13
context-relay
Transfere o contexto entre alvos em conversas longas 🧠
14
context-optimized
Seleciona o alvo mais adequado ao tamanho atual do contexto
15
cache-optimized
Fixa cada prefixo reutilizável do prompt na mesma conta — maximiza os acertos na cache de prompts 🎯
16
lkgp
Último Caminho Conhecido como Bom — fixa o último fornecedor bem-sucedido e, em seguida, recorre às regras
17
auto
Avaliação em tempo real com 16 fatores em todas as ligações 🤖
18
fusion
Distribui o pedido por um painel de modelos + um avaliador sintetiza uma única resposta 🧬
19
pipeline
Encadeia passos — a saída de cada alvo alimenta o seguinte 🔗
O motor Auto-Combo avalia cada candidato com base em **16 fatores** (estado, quota, custo, latência, adequação à tarefa, qualidade, disponibilidade da sessão…) — consulte [`docs/routing/AUTO-COMBO.md`](docs/routing/AUTO-COMBO.md).
##
### 🧱 A resiliência está integrada (3 camadas independentes)
📖 [Motor de combinação automática](docs/routing/AUTO-COMBO.md) · [Guia de resiliência](docs/architecture/RESILIENCE_GUIDE.md)
## 🏆 O Que Distingue o OmniRoute
📊 Metodologia completa & detalhes por funcionalidade vs 9router, OpenRouter, CLIProxyAPI & LiteLLM → [`docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md`](docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md)
## 💚 Apoie o OmniRoute
O OmniRoute tem licença MIT e é mantido de forma aberta. Se lhe poupar tempo ou dinheiro, veja como pode ajudar a mantê-lo independente — escolha a opção mais adequada para si. O patrocínio nunca afeta a prioridade de encaminhamento; proporciona visibilidade, não uma posição superior.
⭐ Dê uma estrela ao repositório
Grátis — ajuda genuinamente a aumentar a visibilidade
**🇧🇷 PIX** — instantâneo, sem taxas (Brasil)
Chave (aleatória): `5d865059-bc44-483a-962d-43ceb80126eb`
Pix para copiar e colar:
```
00020101021126580014br.gov.bcb.pix01365d865059-bc44-483a-962d-43ceb80126eb5204000053039865802BR5922OMNIROUTE CONTRIBUICAO6006BRASIL62070503***630475DD
```
₿ Criptomoedas — BTC · ETH · USDT-TRC20 · USDC-Solana (clique para expandir)
₿ BTC
Bitcoin (SegWit)
bc1qh00smz004sy85wyl28v77tenkt3ckl6eaep7fd
Ξ ETH
Ethereum (ERC20)
0x64Cf6B68A6Ff34288e89172950a2d00102337a84
₮ USDT
Tron (TRC20)
TKAF41JpuQrHbKTnsQa9svJE2T192Hvsc2
$ USDC
Solana
2emNNZzVVWQc3FQ2wk9M6qXUQmW8AKdjjL174fXR28Tu
⚠️ Envie cada moeda apenas através da rede indicada — o envio através da rede errada pode resultar na perda dos fundos.
🐛 Encontrou um erro ou tem algum comentário? Abra uma [Discussão](https://github.com/diegosouzapw/OmniRoute/discussions).
Notas para programadores: O projeto pode gerar um ficheiro .env local durante npm install/postinstall, para conveniência dos programadores. Este ficheiro é intencionalmente ignorado através de .gitignore (consulte .gitignore) e nunca deve ser incluído num commit — se for incluído acidentalmente, substitua quaisquer segredos expostos e remova o ficheiro do histórico. Consulte docs/DEVELOPER-ENVIRONMENT.md para obter orientações sobre a gestão de ficheiros de ambiente locais e segredos.
## 📡 OmniRoute Radar
O valor principal do nível gratuito continua a ser **~1,62 mil milhões de tokens/mês**, com base no catálogo documentado e sem duplicações entre pools apresentado acima. Os créditos temporários de registo dos fornecedores podem aumentar separadamente o total do primeiro mês para **~2,22 mil milhões**. O Radar é uma sobreposição opcional e assinada do catálogo, destinada a quem pretende informações mais atualizadas sobre a disponibilidade de modelos gratuitos entre lançamentos do OmniRoute; o catálogo da comunidade e todas as funcionalidades gratuitas existentes continuam a ser gratuitos.
Os apoiantes podem receber o catálogo em tempo real e oportunidades adicionais de fornecedores. O respetivo limite máximo, separado e variável, é de **aproximadamente 3 mil milhões de tokens/mês, no máximo**, dependendo da disponibilidade dos fornecedores. Este limite máximo não constitui uma garantia: os fornecedores podem alterar as quotas, os critérios de elegibilidade, os modelos ou as regiões a qualquer momento.
O Radar é opcional e utiliza apenas pedidos GET. O cliente OmniRoute não envia prompts, tráfego, configurações de fornecedores, telemetria de utilização nem o estado local relativo à dispensa de anúncios. Saiba mais sobre a elegibilidade e o catálogo atual em **[radar.omniroute.online/planos](https://radar.omniroute.online/planos)**.
## ✨ Novidades
> Destaques recentes de **v3.8.20 → v3.8.50**. Histórico completo em [`CHANGELOG.md`](CHANGELOG.md).
- **🎛️ OmniConductor** — delegação A2A de entrada para a sua frota de agentes, competências do Conductor no Agent Card e um painel de controlo com conversação por voz push-to-talk do Faro. → [Servidor A2A](docs/frameworks/A2A-SERVER.md)
- **🛂 Admissão adaptativa e proteção contra sobrecarga** — os pedidos de conversação pesados entram em fila em vez de devolverem 503, com concessões contínuas atómicas de RPM por ligação. → [Guia de Resiliência](docs/architecture/RESILIENCE_GUIDE.md)
- **🗂️ Ordenação canónica de `/v1/models`** — um bloco contíguo agrupado por fornecedor para cada fornecedor (combinações fixadas primeiro), estável em todas as fontes de catálogo. → [Referência da API](docs/reference/API_REFERENCE.md)
- **🗜️ Reforço da compressão** — proteção contra expansão ativa por predefinição, pacotes Caveman para DE / FR / JA + chinês (wényán), filtros RTK para Gradle e .NET. → [Compressão](docs/compression/COMPRESSION_ENGINES.md)
- **💸 Custo fixo transparente** — os fornecedores de subscrições/planos de programação apresentam **$0** na análise de custos; o orçamento, a quota e o encaminhamento continuam a fazer estimativas. → [Referência da API](docs/reference/API_REFERENCE.md)
- **⚖️ Encaminhamento Quota-Share** — divide de forma justa a quota de uma conta partilhada entre chaves agrupadas, preservando o trabalho para que as parcelas inativas sejam cedidas. → [Guia de Resiliência](docs/architecture/RESILIENCE_GUIDE.md)
- **🤖 Configuração de CLI/agente com um só comando** — 13 comandos `setup-*` registados; `omniroute run` inicia 7 CLIs (Claude Code, Codex, Aider, Goose, OpenCode, Qwen Code, Gemini CLI); `omniroute configure` suporta 10 destinos, com um seletor interativo de fornecedor+modelo e favoritos por contexto. → [Integrações de CLI](docs/guides/CLI-INTEGRATIONS.md)
- **🛰️ Modo remoto** — controle remotamente o OmniRoute com tokens de âmbito limitado (`connect` / `contexts` / `tokens`) + um auxiliar OAuth `antigravity` para instalações em VPS. → [Modo Remoto](docs/guides/REMOTE-MODE.md)
- **🧭 Encaminhamento automático mais inteligente** — combinações `auto/:`, **Fusion** (painel de modelos + juiz), encaminhamento sensível à tarefa e substituições por pedido de modelo/modo/orçamento em USD. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **🗜️ Compressão extensível** — 12 motores combináveis + Compression Studios: LLMLingua-2, Ultra de dois níveis, omniglyph, controlo de fidelidade por etapa, GCF v3.2 e editor com reordenação por arrastar. → [Compressão](docs/compression/COMPRESSION_ENGINES.md)
- **🕵️ Desencriptação MITM transparente (TPROXY)** — intercepte CLIs que ignoram variáveis de ambiente de proxy, com uma CA por SNI + instalador no arquivo de confiança. → [MITM/TPROXY](docs/security/MITM-TPROXY-DECRYPT.md)
- **💸 Telemetria de custos em todo o lado** — cabeçalhos de custo/utilização `X-OmniRoute-*` em todos os endpoints, cabeçalho de poupança por acerto de cache e quotas de despesas em USD por chave. → [Referência da API](docs/reference/API_REFERENCE.md)
- **🧠 Memória sob o seu controlo** — desativada por predefinição, quantização vetorial int8 opcional + decaimento tipificado, `x-omniroute-no-memory` por pedido. → [Memória](docs/frameworks/MEMORY.md)
- **🛡️ Segurança** — proteção contra injeção de prompts em todas as rotas de LLM (conjunto de testes de red team), mecanismo opcional de ocultação de credenciais (censura chaves de API/segredos expostos em ambos os sentidos), pesquisa Web gratuita no DuckDuckGo como último recurso e uma barreira de início de sessão OIDC opcional para o painel de controlo (o início de sessão por palavra-passe permanece sempre disponível). → [Mecanismos de Proteção](docs/security/GUARDRAILS.md)
- **🖼️ Novos endpoints** — `/v1/ocr` (Mistral OCR) e `/v1/audio/translations` (ao estilo do Whisper) completam a interface de multimédia. → [Referência da API](docs/reference/API_REFERENCE.md)
- **🎨 Geração de imagem/vídeo/áudio** — uma API para multimédia: xAI Grok Imagine e vídeo da Novita AI, ComfyUI, Magnific, Adobe Firefly, Segmind e fornecedores de voz como a ElevenLabs. → [Referência da API](docs/reference/API_REFERENCE.md)
- **🌍 Implementação e operações** — `basePath` de proxy inverso, deteção automática do idioma do navegador, monitorização de dispositivos por chave, confiança MITM sem privilégios de root e localização zh-TW. → [Ambiente](docs/reference/ENVIRONMENT.md)
- **🤝 Mais fornecedores e agentes** — agentes na nuvem (Codex Cloud, Cursor, Devin, Jules), Grok Build (xAI) com navegador + início de sessão OAuth, cartão de primeira classe para Ollama, Claude Opus 5 e Sonnet 5, parceria oficial com a Kimi (Code/Web/Moonshot), Zed, Requesty, SenseNova, Yuanbao, Agnes AI… e um **catálogo de 352 fornecedores** atualizado. → [Fornecedores](docs/reference/PROVIDER_REFERENCE.md)
- **📡 Transparência de encaminhamento** — todas as respostas incluem um cabeçalho `X-OmniRoute-Decision` que identifica a estratégia/o fornecedor/a latência usados, uma nova estratégia de combinação `cache-optimized` + o fator `cacheAffinity` do Auto-Combo encaminham pedidos repetidos de volta para a ligação que detém o prefixo em cache, e um endpoint só de leitura `/v1/auto-combo/{channel}/candidates` expõe o conjunto ativo de candidatos de um canal `auto/*`. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **⚡ Desempenho local e infraestrutura** — Redis local com um clique, ferramentas de implementação de relés para Cloudflare Workers / Deno Deploy, Bifrost e Mux como serviços incorporados supervisionados. → [Serviços Incorporados](docs/frameworks/EMBEDDED-SERVICES.md)
- **🧩 Também incluído** — framework de plugins + marketplace, frameworks de competências Omni/Agent/GitHub, integração com cofres do Obsidian (22 ferramentas MCP), APIs Batch e Files compatíveis com OpenAI, cache semântica de respostas, gamificação com tabelas classificativas, descoberta de agentes ACP (15 agentes incorporados), exportação programada de registos para o BigQuery, injeção de falhas `auto/chaos`, uma ponte para bots do Telegram, um gestor de versões na aplicação e classificações de fornecedores gratuitos LMArena-ELO. → [Documentação](docs/README.md)
## 🤖 CLIs e agentes de programação compatíveis
> Uma configuração — `http://localhost:20128/v1` — e **todos** os IDEs ou CLIs de IA funcionam com modelos gratuitos e de baixo custo.
+ também funciona com · Agent Deck · Kiro · Command Code · Antigravity · Windsurf · AMP · qualquer ferramenta compatível com OpenAI
📖 Configuração por ferramenta para todas as 36 ferramentas (26 CLI de código + 10 agentes CLI) → [`docs/reference/CLI-TOOLS.md`](docs/reference/CLI-TOOLS.md) · 🧩 Plugin do OpenCode → [`@omniroute/opencode-provider`](https://www.npmjs.com/package/@omniroute/opencode-provider)
**Execute qualquer CLI suportada através do OmniRoute com um único comando** — sem escrever ficheiros de configuração,
com as credenciais injetadas por processo e um diretório pessoal isolado e descartável para Qwen/Gemini:
```bash
omniroute run claude --model openai/gpt-5.4 # Claude Code
omniroute run codex --model glm/glm-5.2 # OpenAI Codex CLI
omniroute run aider --model glm/glm-5.2 -- --message "reply OK"
omniroute run goose --model glm/glm-5.2
omniroute run opencode --model glm/glm-5.2 -- run "reply OK"
omniroute run qwen --model glm/glm-5.2 -- -p "reply OK"
omniroute run gemini --model glm/glm-5.2 -- --skip-trust -p "reply OK"
# Em alternativa, escolha interativamente o fornecedor+modelo e escreva a configuração da própria ferramenta:
omniroute configure codex # também: claude opencode qwen aider goose gemini cline continue kilo
```
Todos os comandos respeitam o contexto remoto ativo (`omniroute connect `), `--dry-run`
pré-visualiza as variáveis de ambiente/argumentos exatos sem executar, e `--api-key-env NAME` mantém os segredos fora
do histórico da shell. → [Integrações CLI](docs/guides/CLI-INTEGRATIONS.md)
## 🌐 357 fornecedores de IA — 152 assinalados no catálogo como gratuitos
> **357 fornecedores registados** nas coleções canónicas de chat, multimédia, pesquisa, local, agentes na cloud e sistema, incluindo **152 com metadados de descoberta `hasFree: true`**. O registo de modelos de chat abrange **229 fornecedores / 2 554 pares distintos fornecedor-modelo / 1 283 IDs de modelo em bruto**; o catálogo separado de orçamentos gratuitos tem **491 entradas por modelo**, **35 reservas recorrentes** e **54 fornecedores gratuitos para sempre, recorrentes/sem chave**. Estes denominadores são diferentes propositadamente; as definições e os cálculos com eliminação de duplicados entre reservas encontram-se na [Referência de Fornecedores](docs/reference/PROVIDER_REFERENCE.md) e nos [Níveis Gratuitos](docs/reference/FREE_TIERS.md).
### 🏢 Todos os principais laboratórios — através de um único endpoint
OpenAI
Anthropic
Gemini
xAI Grok
DeepSeek
Mistral
Qwen
Meta Llama
Groq
NVIDIA
MiniMax
Cohere
Perplexity
HuggingFace
Together
Fireworks
Cloudflare
Baidu
…e mais de 330 — todos os ícones são obtidos em tempo real a partir do catálogo de fornecedores do painel. 📖 [Referência de Fornecedores](docs/reference/PROVIDER_REFERENCE.md)
### 🆓 Grátis para sempre — $0, sem cartão
OpenCode Zen DeepSeek V4, Nemotron 3 Sem limite de tokens
Kilo Code Encaminhamento automático, Tencent Hy3 Gratuito para sempre
Requesty GPT-OSS 120B, Nemotron Gratuito para sempre
SiliconFlow DeepSeek V3.2 / R1 Plano gratuito
Z.AI GLM GLM-4.7 / 4.5-Flash Gratuito para sempre
Baidu ERNIE ERNIE 4.0 Gratuito para sempre
Qoder AI Qwen3-Max, Kimi-K2 GRATUITO e ilimitado
Pollinations GPT, Llama, Claude Não requer chave
Cloudflare AI Mais de 50 modelos 10 mil neurónios/dia
NVIDIA NIM GLM, MiniMax ~40 RPM gratuitamente
Cerebras GLM 4.7, GPT-OSS 1 milhão de tokens/dia
OpenRouter Modelos :free +10 $ → RPM mais elevado
📖 Catálogo completo legível por máquina → [`docs/reference/PROVIDER_REFERENCE.md`](docs/reference/PROVIDER_REFERENCE.md)
## 🖥️ Onde o OmniRoute funciona — em qualquer lugar
> A mesma aplicação, a sua máquina, as suas regras. Desde uma instalação global via npm até ao **seu telemóvel** através do Termux.
Plataforma
Instalação
Destaques
📦 npm (global)
npm install -g omniroute
Um comando, qualquer sistema operativo
🐳 Docker
docker run … diegosouzapw/omniroute
Multiarquitetura AMD64 + ARM64
🖥️ Ambiente de trabalho (Electron)
npm run electron:build
Janela nativa + área de notificação — Windows / macOS / Linux
🎩 Barra de menus (OmniRouteTray)
brew install --cask zoispag/tap/omniroute-tray
Supervisiona e atualiza automaticamente o servidor — macOS
💪 ARM
arm64 nativo
Raspberry Pi, servidores ARM, Apple Silicon
📱 Android (Termux)
pkg install nodejs && npx -y omniroute
Funciona no seu telemóvel, 24 horas por dia, 7 dias por semana, sem root
📲 PWA
"Adicionar ao ecrã principal"
Ecrã inteiro, funcionamento offline, instalável a partir do navegador
🧩 Plugin do OpenCode
@omniroute/opencode-provider
Integração nativa com o OpenCode
🤖 VS Code Copilot Chat
instale a extensão OmniCopilot
Todos os modelos do OmniRoute no seletor nativo do Copilot Chat — versões estável e Insiders
🛠️ A partir do código-fonte
npm install && npm run dev
Modifique-o, contribua
📖 [Guia do Docker](docs/guides/DOCKER_GUIDE.md) · [Ambiente de trabalho](electron/README.md) · [Ícone da barra de menus](https://github.com/zoispag/omniroute-tray) · [Termux](docs/guides/TERMUX_GUIDE.md) · [PWA](docs/guides/PWA_GUIDE.md) · [OpenCode](docs/frameworks/OPENCODE.md)
### 🧩 Novo: OmniRoute integrado no Copilot Chat nativo do VS Code
> Sem uma nova barra lateral nem uma nova interface de chat — todos os modelos disponibilizados pelo OmniRoute aparecem diretamente no
> **seletor de modelos do Copilot Chat que já utiliza**. Desde o VS Code 1.122, os modelos de fornecedores funcionam
> sem iniciar sessão no GitHub nem ter uma subscrição do Copilot — modo de agente, chamada de ferramentas e visão,
> gratuitamente.
Instale a extensão **[OmniCopilot](https://github.com/diegosouzapw/OmniCopilot)**, configure-a
para utilizar o seu servidor OmniRoute (a predefinição é `localhost:20128`) e, em seguida, abra o Copilot Chat → seletor de modelos
→ **Gerir modelos…** → **OmniRoute**.
No editor: abra a vista **Extensões**, procure **"OmniRoute"** e clique em **Instalar**
— funciona da mesma forma em ambas as lojas. O código-fonte, as ocorrências e o guia de publicação estão disponíveis em
[diegosouzapw/OmniCopilot](https://github.com/diegosouzapw/OmniCopilot).
📖 [Guia do VS Code Copilot Chat](docs/guides/VSCODE-COPILOT.md) — configuração, o que é apresentado no seletor, painel num separador, resolução de problemas
### 🎩 Novo: OmniRouteTray — o seu gateway, sempre presente na barra de menus
> O `omniroute serve` funciona melhor quando está sempre ativo. O **[OmniRouteTray](https://github.com/zoispag/omniroute-tray)**
> transforma-o numa aplicação para a barra de menus do macOS que basta configurar e esquecer: inicia o servidor, mantém-no em funcionamento
> após reinícios, atualiza-o localmente e coloca o seu orçamento de tokens em tempo real à distância de um clique — **sem
> deixar uma janela do terminal aberta nem ter de cuidar do `npm install -g omniroute`.**
Desenvolvido com [Tauri v2](https://v2.tauri.app/) (um núcleo em Rust com um tamanho praticamente insignificante), inclui
o seu próprio runtime Node 24 assinado e gere uma instalação do OmniRoute pertencente à aplicação, pelo que nunca entra em conflito com o seu
`node`/`bun` global. **Partilha a configuração e a base de dados existentes em `~/.omniroute/`** — portanto, é o
mesmo OmniRoute que já utiliza, mas agora com um chapéu. 🎩
O que faz
Como
🟢 Supervisiona o servidor
Inicia omniroute serve e adota uma instância que já esteja em execução, em vez de a duplicar
📊 Utilização em tempo real num relance
Barras de quotas dos fornecedores, limites de sessão/semanais do Claude com contagens decrescentes até à reposição e discriminação dos custos de 30 dias
🔄 Atualiza-se automaticamente no local
Instalação faseada, substituição atómica e reversão em caso de falha — sempre na versão mais recente
🚀 Inicia ao iniciar sessão
Arranque opcional ao iniciar sessão; apenas na barra de menus, sem ícone na Dock
🩺 Diagnósticos e registos
Diagnósticos com um clique e acesso aos registos do servidor
```sh
brew install --cask zoispag/tap/omniroute-tray
```
Prefere uma transferência? Obtenha o ficheiro .dmg mais recente em
Versões. O código-fonte, os problemas e a documentação
de compilação encontram-se em zoispag/omniroute-tray.
💛 Um projeto da comunidade por @zoispag — não é uma versão oficial do OmniRoute.
> Para além do servidor, o OmniRoute é um **painel de controlo completo através da linha de comandos**, com **mais de 80 comandos**, além de protocolos abertos para agentes, permitindo que um agente de IA o controle **autonomamente**.
### ⌨️ Uma CLI a sério (não apenas `start`)
```bash
omniroute # disponibilizar o gateway + painel de controlo (porta 20128)
omniroute chat # cliente de chat TUI interativo (atalhos: /model /combo /skill /memory)
omniroute setup # assistente guiado para a primeira execução
omniroute doctor # diagnosticar fornecedores, portas e dependências nativas
```
### 🛰️ Modo remoto — execute a CLI aqui e o OmniRoute num VPS
Tem o OmniRoute num servidor? Controle-o a partir do seu portátil com a **mesma CLI**. Inicie sessão uma vez
com um token de acesso com âmbito definido; depois, todos os comandos terão como destino o servidor remoto.
```bash
omniroute connect 192.168.0.15 # palavra-passe → token com âmbito definido, guardado como contexto
omniroute models list # ← executado no servidor REMOTO
omniroute configure codex # ← seleciona um modelo remoto e cria um perfil Codex local
omniroute tokens create --name ci --scope read # emitir tokens com âmbito mais restrito para outras máquinas
omniroute contexts use default # ← voltar ao servidor local
```
Os tokens têm os âmbitos `read` / `write` / `admin`; as rotas que iniciam processos permanecem acessíveis apenas através de loopback.
📖 [Modo Remoto](docs/guides/REMOTE-MODE.md)
### 🤝 Ligue um agente — e este controla o próprio OmniRoute
Exponha o OmniRoute através de **MCP**, **A2A**, uma **API REST**, **webhooks** ou uma **CLI remota** — qualquer agente compatível (ou o seu próprio código) obtém acesso a todo o gateway: encaminhamento, fornecedores, combinações, cache, compressão e memória — de forma autónoma. Os endpoints HTTP abaixo são disponibilizados em `http://localhost:20128`.
Interface
Endpoint / comando
Utilize para
🧰 MCP (stdio)
omniroute --mcp
Integrar com o Claude Desktop, Cursor ou qualquer cliente MCP
Agente para agente, JSON-RPC 2.0 + SSE, 6 competências
🌐 API REST
/v1/*
Compatível com OpenAI — chat, embeddings, imagens, áudio e OCR
🔔 Webhooks
/api/webhooks
Enviar eventos de pedidos / quotas para o Slack, Discord, Telegram ou qualquer URL
🛰️ CLI Remota
omniroute connect
Controlar uma instância remota com tokens de acesso com âmbito definido
```bash
# Disponibilizar ao Claude Code o conjunto completo de ferramentas do OmniRoute através de MCP:
claude mcp add-server omniroute --type http --url http://localhost:20128/api/mcp/stream
```
📖 [Servidor MCP](docs/frameworks/MCP-SERVER.md) · [Servidor A2A](docs/frameworks/A2A-SERVER.md) · [Protocolos de Agentes](docs/frameworks/AGENT_PROTOCOLS_GUIDE.md)
## 🗜️ Poupe 15–95% de tokens — Automaticamente
### 📖 Como funciona — pipeline, arquitetura e cálculo das poupanças
A combinação em cadeia predefinida executa `RTK → Caveman`. Quando ambos atuam sobre o mesmo payload de ferramentas/contexto, as poupanças acumulam-se:
```txt
combined = 1 − (1 − RTK) × (1 − Caveman_input)
average = 1 − (1 − 0.80) × (1 − 0.46) = 89.2%
range = 78.4 – 94.6%
```
Os blocos de código, URLs, JSON e dados estruturados são **sempre protegidos** pelo motor de preservação.
> **Porquê usar muitos tokens quando poucos são suficientes?** Todos os pedidos passam pelo pipeline de compressão do OmniRoute de forma **transparente** — sem alterações no cliente. É agora uma **pilha de 12 motores combináveis** que são executados por ordem e podem ser combinados para cada combinação de encaminhamento — com base em ideias do [RTK](https://github.com/rtk-ai/rtk), [Caveman](https://github.com/JuliusBrussee/caveman) (⭐ 90K+), [LLMLingua-2](https://github.com/microsoft/LLMLingua) e [Troglodita](https://github.com/leninejunior/troglodita) (PT-BR).
### 🧱 A pilha de 12 motores
Os motores são executados pela ordem do pipeline; cada um pode ser ativado ou desativado e configurado independentemente para cada combinação:
#
Motor
O que faz
1
Session-Dedup
Remove conteúdo repetido entre interações (endereçado por conteúdo, entre interações)
2
CCR
Arquiva blocos grandes atrás de marcadores de recuperação, obtidos a pedido
3
Lite
Redução de espaços em branco e URLs de imagens (base de referência com baixa latência)
4
RTK
Filtragem, desduplicação e truncagem inteligentes dos resultados de ferramentas (com reconhecimento de comandos)
5
Responses Tool Output
JSON prioritariamente sem perdas + compressão limitada de diagnósticos para resultados de shell/patch/pesquisa/compilação (Responses API)
6
Headroom
Compactação tabular sem perdas de arrays JSON (~30%) através de um codec GCF integrado
7
Relevance
Pontuação extrativa de frases relativamente à última consulta do utilizador
8
Caveman
Compressão de prosa baseada em regras (~65–75% na saída)
9
Aggressive
Resumo + envelhecimento progressivo de interações antigas
10
LLMLingua-2
Poda semântica por ML através do MobileBERT ONNX — segura para código, assíncrona
11
Ultra
Poda heurística de tokens com um nível opcional baseado num modelo pequeno (SLM)
12
OmniGlyph
Codificação experimental do contexto como imagem para o Claude Fable 5 medido na ligação direta à Anthropic; os transformadores GPT 5.6 permanecem bloqueados por predefinição enquanto se aguardam comprovativos do fornecedor. Quatro perfis de compressão (agressivo por predefinição, equilibrado, seguro para programação, passagem direta) (o mais agressivo; adesão explícita)
Os blocos de código, URLs e dados estruturados são **sempre preservados** byte a byte. As **predefinições de um clique** combinam os motores:
Modo
Poupanças
Ideal para
🪶 Lite
~15%
Predefinição segura sempre ativa
🪨 Standard (Caveman)
~30%
Programação diária
⚡ Aggressive
~50%
Sessões longas com utilização intensiva de ferramentas
🔥 Ultra
~75%
Poupança máxima
🧰 RTK
60–90%
Resultados de shell/testes/compilação/git
🔗 Em cadeia (RTK → Caveman)
78–95%
Prompts mistos + registos de ferramentas
**Exemplo real — modo Standard:**
> **Antes (69 tokens):** _"A razão pela qual o seu componente React está a ser novamente renderizado deve-se provavelmente à criação de uma nova referência de objeto em cada ciclo de renderização. Quando passa um objeto inline como prop, a comparação superficial do React considera-o um objeto diferente todas as vezes, o que desencadeia uma nova renderização. Recomendo a utilização de useMemo para memorizar o objeto."_
>
> **Depois (19 tokens):** _"Nova referência de objeto em cada renderização. Objeto inline como prop = nova referência = nova renderização. Envolva em useMemo."_
>
> **A mesma resposta. Menos 72% de tokens. Sem qualquer perda de precisão.** ✅
**Exemplo em PT-BR — modo [Troglodita](https://github.com/leninejunior/troglodita):**
> **Antes (42 tokens):** _"O problema é que o componente está a renderizar novamente porque é criada uma nova referência de objeto em cada ciclo de renderização. Recomendaria utilizar useMemo."_
>
> **Depois (12 tokens):** _"Nova renderização: nova ref. em cada ciclo (objeto inline recriado). Utilizar `useMemo`."_
>
> **Mesma resposta. ~70% menos tokens. Precisão técnica intacta.** ✅
### 🎚️ Para além dos motores — estilos de saída, ajuste adaptativo e controlo por pedido
Os 12 motores acima reduzem o que **entra**. Mais três camadas definem **como**, **quando** e o que **sai**:
- **🪄 Estilos de saída** _(controlo do eixo de saída)_ — injetam instruções determinísticas e compatíveis com cache para moldar as respostas; são combináveis, cada uma com intensidade `lite` / `full` / `ultra`. Adicionar um estilo requer apenas uma linha no registo:
- **Prosa concisa** — remover texto supérfluo / artigos / ressalvas; manter a substância técnica exata.
- **Menos código** — YAGNI de «programador sénior preguiçoso»: a menor alteração funcional, sem estrutura não solicitada.
- **Ponytail (programador sénior preguiçoso)** — subir a escada YAGNI, corrigir a causa principal, produzir o menor diff funcional.
- **Tenho PHDA (ação primeiro)** — começar pela próxima ação, numerar os passos, indicar um próximo passo concreto, sem preâmbulo.
- **CJK conciso (文言)** — estilo ultraconciso de chinês clássico (limitado à região `zh`).
- **🎯 Orçamento de contexto adaptativo** _(o ajuste)_ — em vez de um único limiar de tokens para ativar/desativar, intensifica apenas os motores mais económicos e com menos perdas, na medida necessária para **caber na janela de contexto do modelo**. Política: `reserve-output` (predefinida, dependente do modelo) · `percentage` · `absolute`. Modo: `floor` (garante que cabe) · `replace-autotrigger` (a sua escolha explícita prevalece) · `off` (limiar legado).
- **🎛️ Onde é decidida a compressão** _(precedência, da mais alta para a mais baixa)_ — cabeçalho `x-omniroute-compression` por pedido › substituição da combinação de encaminhamento › perfil nomeado ativo › acionamento adaptativo / automático › predefinição do painel › desativada. O plano aplicado é devolvido no cabeçalho de resposta `X-OmniRoute-Compression: ; source=`.
Utilize o acionamento automático por limiar de tokens, ative o ajuste adaptativo, fixe um perfil nomeado, defina uma configuração pontual por pedido ou atribua um pipeline a cada combinação de encaminhamento — consoante o que melhor se adequar à carga de trabalho. Um **sistema de avaliação** offline opcional (`npm run eval:compression`) classifica a fidelidade face à poupança num corpus fixado antes de promover uma alteração.
📖 [`COMPRESSION_GUIDE.md`](docs/compression/COMPRESSION_GUIDE.md) · [`RTK_COMPRESSION.md`](docs/compression/RTK_COMPRESSION.md) · [`COMPRESSION_ENGINES.md`](docs/compression/COMPRESSION_ENGINES.md)
# ⚡ Início rápido
**1) Instalar e executar**
```bash
npm install -g omniroute
omniroute
```
> 💡 Vê `npm warn ERESOLVE` ou avisos de dependências entre pares? [São inofensivos](docs/guides/TROUBLESHOOTING.md#npm-install-warnings-eresolve--peer--deprecated).
Painel em `http://localhost:20128` · API em `http://localhost:20128/v1`.
**2) Ligar um fornecedor GRATUITO (sem registo)**
Painel → **Fornecedores** → ligue o **Kiro AI** (Claude gratuito, ~50 créditos/mês por conta) ou o **OpenCode Free** (sem autenticação) → concluído.
**3) Configurar a sua ferramenta de programação**
```txt
URL base: http://localhost:20128/v1
Chave da API: [copiar de Painel → Endpoints]
Modelo: auto (encaminhamento inteligente sem configuração — ou qualquer fornecedor/modelo)
```
**4) Confirmar que está a funcionar**
```bash
curl http://localhost:20128/v1/models -H "Authorization: Bearer YOUR_KEY"
```
Deverá ver os modelos ligados na lista. 🎉 É tudo — comece a programar e o OmniRoute encarrega-se do encaminhamento automático e da seleção de alternativas.
Se o seu cliente não conseguir enviar cabeçalhos personalizados, o OmniRoute também disponibiliza aliases de compatibilidade com token:
```txt
Catálogo OpenAI: http://localhost:20128/vscode/YOUR_KEY/
Modelos OpenAI: http://localhost:20128/vscode/YOUR_KEY/models
Chat OpenAI: http://localhost:20128/vscode/YOUR_KEY/chat/completions
Respostas OpenAI: http://localhost:20128/vscode/YOUR_KEY/responses
Chat Ollama: http://localhost:20128/vscode/YOUR_KEY/api/chat
Etiquetas Ollama: http://localhost:20128/vscode/YOUR_KEY/api/tags
```
Utilize-os apenas para clientes que não consigam anexar `Authorization: Bearer ...`. A autenticação por cabeçalho continua a ser o modo preferencial.
## 📦 Mais métodos de instalação — Docker, código-fonte, pnpm, Arch
**🐳 Docker**
```bash
docker run -d --name omniroute --restart unless-stopped --stop-timeout 40 \
-p 127.0.0.1:20128:20128 -v omniroute-data:/app/data diegosouzapw/omniroute:latest
```
`:latest` acompanha a versão SemVer estável **publicada** mais elevada. Não acompanha o `main` do git. Fixe `:X.Y.Z` para GitOps. Consulte [Canais de lançamento do Docker](docs/guides/DOCKER_GUIDE.md#release-channels). A imagem fixa **`OMNIROUTE_MEMORY_MB=1024`**. Isto é suficiente para o painel e uma conversa ligeira. Os **agentes de programação** (`POST /v1/responses` do Claude Code, Codex, Grok, …) necessitam de uma heap V8 muito maior, caso contrário o processo termina com `FATAL ERROR` quando atinge ~12 GiB com dois contextos longos sobrepostos. Dimensione o contentor acima do tamanho da heap (os buffers nativos ficam fora do V8):
| Carga de trabalho | Heap (`-e OMNIROUTE_MEMORY_MB`) | Contentor (`--memory`) |
| ----------------------------------------- | ------------------------------- | ---------------------- |
| Painel / conversa ligeira | `1024` (predefinição da imagem) | ≥2 g |
| Um agente de programação | `8192` | ≥10 g |
| Dois `/v1/responses` longos em simultâneo | `10240`–`12288` | ≥12–16 g |
```bash
docker run -d --name omniroute --restart unless-stopped --stop-timeout 40 \
-e OMNIROUTE_MEMORY_MB=8192 --memory=10g \
-p 127.0.0.1:20128:20128 -v omniroute-data:/app/data diegosouzapw/omniroute:latest
```
Tabela completa: [Guia do Docker — RAM em tempo de execução](docs/guides/DOCKER_GUIDE.md#runtime-ram-for-coding-agents).
> **Canal de pré-lançamento do Docker:** `diegosouzapw/omniroute:next` e
> `diegosouzapw/omniroute:next-web` acompanham o branch `release/v*` predefinido
> atual. Estas etiquetas mutáveis destinam-se apenas a testar correções ainda não lançadas e
> **não são suportadas em produção**. Consulte
> [Canais de lançamento do Docker](docs/guides/DOCKER_GUIDE.md#release-channels).
**🥟 Bun**
O `bun install` padrão e a instalação global (`bun install -g omniroute`) são suportados através da deteção do ambiente de execução Bun:
- **`bun:sqlite` integrado**: o OmniRoute utiliza o controlador `bun:sqlite` integrado do Bun quando é executado no Bun, recorrendo ao `better-sqlite3` no Node.js ou ao `sql.js` como alternativas.
- **Seleção automática do empacotador Webpack em desenvolvimento**: o ambiente de desenvolvimento (`bun run dev`) deteta automaticamente o Bun e desativa o Turbopack em favor do Webpack, para evitar incompatibilidades com bindings nativos do V8. As compilações de produção (`bun run build`) seguem `OMNIROUTE_USE_TURBOPACK` exatamente como no Node: Turbopack por predefinição, `OMNIROUTE_USE_TURBOPACK=0` para compilar com Webpack (`Dockerfile.bun` disponibiliza esta opção como `--build-arg`).
- **Dockerfile dedicado ao Bun**: `Dockerfile.bun` multifase para implementações de produção nativas do Bun (`docker build -f Dockerfile.bun -t omniroute:bun .`).
```bash
# Instalar e executar com o Bun
bun install
bun run dev
```
**🛠️ A partir do código-fonte**
```bash
cp .env.example .env && npm install
PORT=20128 npm run dev
```
**📦 pnpm**
```bash
pnpm add -g omniroute@latest --allow-build=better-sqlite3 --allow-build=@swc/core && omniroute
```
**🐧 Arch Linux (AUR)**
```bash
yay -S omniroute-bin && systemctl --user enable --now omniroute.service
```
**🔧 Nix (Flake)**
```bash
# Utilizar flakes do Nix
nix develop
npm run dev
# Ou utilizar o devbox
devbox run npm run dev
```
📖 [Guia do Docker](docs/guides/DOCKER_GUIDE.md) — perfis do Compose, Caddy HTTPS e túneis do Cloudflare.
**🦭 Podman**
```bash
# 1. Preparar o diretório de dados montado por bind
mkdir -p data
# 2. Apenas Linux + Podman rootless local (nunca um cliente remoto Podman Machine):
podman unshare chown 1000:1000 ./data
# 3. Definir a indicação do ambiente de execução, criar a imagem local do Compose e iniciar
echo "CONTAINER_HOST=podman" >> .env
podman compose --profile base up -d --build
```
No macOS ou Windows, o Podman utiliza uma Podman Machine remota: ignore `podman unshare` e
siga as [orientações para o diretório de dados específicas da topologia](contrib/podman/README.md#data-directory-permissions-by-topology).
📖 [Guia do Podman](contrib/podman/README.md) — compilações do Compose, Podman Machine e
configuração do Quadlet com Linux/systemd.
**⚡ Instalação mais rápida / leve (ignorar a compilação nativa)**
O motor SQLite nativo (`better-sqlite3`) é uma dependência **opcional**, pelo que uma instalação
global nunca fica bloqueada a compilar a partir do código-fonte: utiliza um binário pré-compilado quando existe um compatível
com a sua plataforma/Node e, caso contrário, recorre de forma transparente a um motor JavaScript puro
(`node:sqlite` no Node 22+, ou o WASM `sql.js` incluído) — sem necessidade de ferramentas de compilação.
Para ignorar completamente a preparação nativa pós-instalação (CI, sistemas sem interface gráfica ou máquinas lentas):
```bash
OMNIROUTE_SKIP_POSTINSTALL=1 npm install -g omniroute # CI=1 também a ignora
```
Para instalações mais rápidas, prefira o **pnpm** (armazenamento endereçado por conteúdo + hard links — consulte acima).
Para um ambiente de execução sem painel nem interface gráfica, utilize o perfil `base` do Docker (acima) ou o
[guia do Termux](docs/guides/TERMUX_GUIDE.md). A CLI e o painel Web são disponibilizados pelo
mesmo processo numa única porta, pelo que atualmente não existe um pacote separado apenas para a CLI.
OAuth 2.0 (PKCE) + JWT + Chaves de API + autenticação com âmbito MCP · AES-256-GCM em repouso · DOMPurify
Furtividade
wreq-js — personificação de fingerprint JA3 / JA4 TLS, proxy de 3 níveis
Resiliência
Disjuntor, backoff exponencial, anti-thundering-herd, auto-combo de autocorreção
Registo
pino — registos JSON estruturados com contexto de pedido
Testes
Node.js test runner + Vitest — 39.000+ declarações de teste estáticas em mais de 5.100 ficheiros de teste monitorizados (unidade, integração, E2E, segurança, ecossistema)
Estratégia de cobertura de testes para mais de 39 000 declarações estáticas de testes em mais de 5 100 ficheiros de teste monitorizados
# ⭐ Principais Colaboradores
> O OmniRoute é moldado por uma comunidade apaixonada pelo código aberto. Estas pessoas deram contributos excecionais que têm um impacto direto na qualidade, estabilidade e alcance do projeto. **Obrigado.**
### Colaboradores externos por pull requests integrados
Dados fixados na ponta ativa de release/v3.8.50, commit dafb4ae808, com integrações até 2026-08-24 05:26:03 UTC. O levantamento paginado através da API GraphQL do GitHub contém 5,911 PRs integrados: 2,707 pelo proprietário do repositório, 179 pelo Dependabot e 3,025 PRs externos de 535 colaboradores distintos. «Linhas alteradas» corresponde às adições + eliminações do GitHub e inclui ficheiros gerados, ficheiros de bloqueio, catálogos, traduções e documentação; representa o volume de alterações, não as LOC da autoria dos colaboradores. Os empates no limite são mantidos.
### Commits atribuídos pelo GitHub
Bob.Hou 🏅 51 commits atribuídos pelo GitHub · empate no 10.º lugar
Xiangzhe 🏅 51 commits atribuídos pelo GitHub · empate no 10.º lugar
Verificado novamente em 2026-08-24 06:14:31 UTC: commits atribuídos pelo GitHub, conforme reportados pela API de Colaboradores do repositório para o ramo predefinido release/v3.8.50. A API devolveu 525 identidades (415 utilizadores, 2 bots e 108 anónimas); esta tabela exclui o responsável pela manutenção, bots e identidades anónimas, e mantém os empates na classificação. É distinta tanto da classificação acima, baseada em PR integrados, como do recenseamento abaixo de 639 pessoas, baseado nos metadados do Git.
> 🙏 As funcionalidades, correções de erros e melhorias de infraestrutura destes colaboradores são uma **parte essencial** do que torna o OmniRoute fiável e rico em funcionalidades. Todos os pull requests, todos os casos de teste e todos os ficheiros de tradução i18n são importantes. O código aberto é construído por pessoas como estas.
---
## 💖 Patrocinadores
Um agradecimento sincero às pessoas que financiam o OmniRoute do seu próprio bolso — cada contribuição mantém o projeto gratuito, independente e em evolução.
… e outros que preferem manter-se anónimos 💛Patrocinadores públicos do GitHub revalidados em 2026-08-24. O estado activeOnly do GitHub determina as etiquetas de atividade acima; os apoiantes públicos pontuais anteriormente divulgados continuam a ser reconhecidos, e os patrocinadores privados permanecem anónimos.💖 Torne-se patrocinador → — cada dólar mantém o OmniRoute gratuito e independente.
## 👥 Mais de 600 colaboradores
[](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)
Auditado em 2026-08-24 na base congelada ac02c5b42f e novamente verificado na ponta ativa de release/v3.8.50, dafb4ae808: 639 identidades humanas normalizadas do Git — 407 surgem como autores de commits (incluindo o responsável pela manutenção) e 232 apenas em rodapés explícitos Co-authored-by. O levantamento normaliza os identificadores noreply do GitHub, exclui 26 identidades de bots/agentes/serviços/marcadores de posição e não combina endereços de e-mail comuns apenas porque os respetivos nomes de apresentação coincidem.
### Como contribuir
1. Crie um fork do repositório
2. Crie um ramo a partir da ponta **ativa** de `release/vX.Y.Z` (não de `main`) — consulte o [Modelo de ramificação e lançamento](docs/ops/BRANCHING_MODEL.md)
3. Crie o seu ramo de funcionalidade (`git checkout -b feat/amazing-feature`)
4. Faça commit das suas alterações (`git commit -m 'feat: add amazing feature'`)
5. Envie para o ramo (`git push origin feat/amazing-feature`)
6. Abra um Pull Request com a **base = esse ramo `release/vX.Y.Z`**
Consulte [CONTRIBUTING.md](CONTRIBUTING.md) para obter orientações detalhadas.
### Lançar uma nova versão
```bash
# Criar um lançamento — npm publish é executado automaticamente
VERSION=x.y.z
gh release create "v${VERSION}" --title "v${VERSION}" --generate-notes
```
## 📊 Estrelas
## 🌍 StarMapper
## 🙏 Agradecimentos
O OmniRoute apoia-se no trabalho de gigantes. Começou como um fork do **[9router](https://github.com/decolua/9router)** e uma adaptação para TypeScript do projeto em Go **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** — e, a partir daí, cada subsistema abaixo foi inspirado por um projeto open source que abriu caminho. Cada um deles deu forma a uma parte concreta do OmniRoute. Esta é a nossa forma de agradecer a todos. 🙏
> ⭐ contagens de estrelas verificadas através da API REST do GitHub em 24 de agosto de 2026 — dê uma estrela a estes projetos. As contagens representam um retrato exato dessa data e irão naturalmente mudar.
### 🧬 Linhagem e gateway
O gateway de IA cujo conjunto público de dados de preços alimenta a nossa sincronização do acompanhamento de custos e cujo modelo de normalização de fornecedores orientou o nosso encaminhamento.
Código-fonte MIT adaptado para a ponte incluída ChatGPT Web → Codex Responses, incluindo adaptadores de sessão do navegador, enquadramento de respostas, utilização e pesquisa na Web.
Padrões adaptados para recuperação de streams, aliases sem raciocínio, pesquisa na Web de recurso, limites de janela deslizante, ocultação de dados nos registos e fluxos de inicialização reforçados.
Predefinições de transformação compatíveis com o Claude Code e comportamento dos cabeçalhos de faturação generalizados na ponte orientada por configuração do OmniRoute.
Os respetivos mapeamentos de modelos Grok, gerador Statsig de TypeError falso, predefinições de pedidos e dispositivos e processador de respostas NDJSON foram substancialmente adaptados para o executor Grok Web do OmniRoute.
A principal fonte de código transitiva subjacente ao grok2api-merged; as respetivas implementações de modelos, cabeçalhos, payloads, Statsig e processadores são preservadas na linhagem do Grok Web.
O código-fonte MIT subjacente para as predefinições de payloads e dispositivos do Grok, o gerador Statsig e o processador result.response transmitido através do TQZHR e do grok2api-merged.
Uma fonte transitiva creditada pelo grok2api-merged pela respetiva camada de conjunto de proxies; o OmniRoute preserva essa menção de linhagem, mas não reivindica uma adaptação do conjunto de proxies no seu executor Grok Web de âmbito limitado.
A implementação original do Grok Web consultou a respetiva arquitetura de upstream HTTP/navegador; o seu caminho HTTP direto deriva do GrokProxy, pelo que não é reivindicada qualquer adaptação de código independente.
Os respetivos esquemas Rust ChatOptions e de envelopes de resposta orientaram os tipos TypeScript de pedidos e respostas em streaming do Grok no OmniRoute.
O projeto viral «porquê usar muitos token quando poucos token resolver» — a sua filosofia de fala pré-histórica sustenta o nosso modo de compressão padrão e mais de 30 regras de remoção de conteúdo supérfluo/condensação.
Compressão de alto desempenho da saída de comandos — inspirou o nosso motor RTK, a DSL de filtragem de JSON, a recuperação de saída em bruto e o pipeline encadeado RTK → Caveman.
Investigação sobre compressão de prompts (LLMLingua / LLMLingua-2) — inspirou o nosso motor llmlingua assíncrono, seguro para código e tolerante a falhas.
Compressão de tokens em PT-BR — sustenta o nosso pacote linguístico pt-BR: redução de pleonasmos e remoção de conteúdo supérfluo ajustadas à gramática do português do Brasil.
A competência viral de programação YAGNI do «programador sénior preguiçoso» — inspirou o nosso estilo de saída less-code: orientação para a alteração funcional mais pequena, que reduz o código _gerado_ (o equivalente, no eixo da saída, à prosa concisa do Caveman).
O seu formato compacto de grafos e a conceção de perfis genéricos contribuíram para a compactação tabular do OmniRoute e para o formato do codec Headroom.
Compressão de saída sensível ao conteúdo e por tipo de ficheiro, com interrupção em caso de falha — validou o nosso encaminhamento por tipo e a omissão quando o ganho é inferior ao mínimo.
JSON colunar em Rust + recuperação endereçada por conteúdo + desduplicação entre mensagens — validou a conceção dos nossos motores headroom/ccr/session-dedup e a propriedade invariável, estável em cache, de que «a forma comprimida é independente da posição».
Kit de ferramentas para a API do compilador TypeScript — inspirou a nossa remoção de comentários baseada num analisador sintático, que preserva literais de strings, modelos e expressões regulares.
A interceção/análise MITM do tráfego entre assistentes de programação ↔ LLM serviu de base aos requisitos iniciais do Inspetor de Tráfego. Quatro módulos anteriormente derivados — combinação de SSE, normalização de conversas, ocultação de segredos e sanitização de cabeçalhos — foram substituídos por implementações independentes de sala limpa, baseadas em normas públicas de protocolos. As duas superfícies de passagem direta do anfitrião (passthrough.ts e _internal/bypass.cjs) continuam a ser implementações internas do OmniRoute classificadas de forma independente; não foram reescritas como parte dessa substituição.
Encaminhamento de proxy transparente por processo — inspirou o nosso encerramento MITM resistente a falhas, tempos-limite de inatividade de sockets, atribuição de processos através de /proc e captura TPROXY.
Observabilidade da malha de serviços Istio — inspirou os nossos indicadores de disjuntor e elementos visuais de ligações com erros no Estúdio de Encaminhamento/Combinação.
Uma lista selecionada de bibliotecas seguras por predefinição que orienta as nossas escolhas de segurança (Helmet.js, DOMPurify, ssrf-req-filter, safe-regex, Google Tink).
Inspirou a desduplicação de pedidos, a alternativa de emergência sem custos, as estratégias Auto-Combo modulares e a classificação multilingue de intenções.
O seu remapeamento de modelos com reconhecimento de contas, validação do caminho do executável e comportamento dos rótulos de planos serviram de base ao runtime Antigravity do OmniRoute.
O seu formato compacto de contagem decrescente para a reposição de quotas inspirou a apresentação correspondente dos limites dos fornecedores no OmniRoute.
Identificou a interface de quotas do Grok Build; posteriormente, o OmniRoute verificou e corrigiu de forma independente o formato real dos dados transmitidos.
## 📄 Licença
Licença MIT - consulte [LICENSE](LICENSE) para mais informações.
---
**[⬆ Voltar ao topo](#-omniroute)** · Desenvolvido com ❤️ para a comunidade de IA de código aberto.
OmniRoute v3.8.51 · Node ≥22.22.2 · Licença MIT · omniroute.online