# README (Português (Portugal)) 🌐 **Languages:** 🇺🇸 [English](../../../README.md) · 🇪🇹 [am](../am/README.md) · 🇸🇦 [ar](../ar/README.md) · 🇦🇿 [az](../az/README.md) · 🇧🇬 [bg](../bg/README.md) · 🇧🇩 [bn](../bn/README.md) · 🇧🇦 [bs](../bs/README.md) · 🇨🇿 [cs](../cs/README.md) · 🇩🇰 [da](../da/README.md) · 🇩🇪 [de](../de/README.md) · 🇬🇷 [el](../el/README.md) · 🇪🇸 [es](../es/README.md) · 🇪🇪 [et](../et/README.md) · 🇮🇷 [fa](../fa/README.md) · 🇫🇮 [fi](../fi/README.md) · 🇫🇷 [fr](../fr/README.md) · 🇮🇪 [ga](../ga/README.md) · 🇮🇳 [gu](../gu/README.md) · 🇳🇬 [ha](../ha/README.md) · 🇮🇱 [he](../he/README.md) · 🇮🇳 [hi](../hi/README.md) · 🇭🇷 [hr](../hr/README.md) · 🇭🇺 [hu](../hu/README.md) · 🇦🇲 [hy](../hy/README.md) · 🇮🇩 [id](../id/README.md) · 🇳🇬 [ig](../ig/README.md) · 🇮🇹 [it](../it/README.md) · 🇯🇵 [ja](../ja/README.md) · 🇬🇪 [ka](../ka/README.md) · 🇰🇭 [km](../km/README.md) · 🇮🇳 [kn](../kn/README.md) · 🇰🇷 [ko](../ko/README.md) · 🇱🇹 [lt](../lt/README.md) · 🇱🇻 [lv](../lv/README.md) · 🇮🇳 [ml](../ml/README.md) · 🇮🇳 [mr](../mr/README.md) · 🇲🇾 [ms](../ms/README.md) · 🇲🇹 [mt](../mt/README.md) · 🇲🇲 [my](../my/README.md) · 🇳🇵 [ne](../ne/README.md) · 🇳🇱 [nl](../nl/README.md) · 🇳🇴 [no](../no/README.md) · 🇮🇳 [or](../or/README.md) · 🇮🇳 [pa](../pa/README.md) · 🇵🇭 [phi](../phi/README.md) · 🇵🇱 [pl](../pl/README.md) · 🇧🇷 [pt-BR](../pt-BR/README.md) · 🇷🇴 [ro](../ro/README.md) · 🇷🇺 [ru](../ru/README.md) · 🇱🇰 [si](../si/README.md) · 🇸🇰 [sk](../sk/README.md) · 🇸🇮 [sl](../sl/README.md) · 🇷🇸 [sr](../sr/README.md) · 🇸🇪 [sv](../sv/README.md) · 🇰🇪 [sw](../sw/README.md) · 🇮🇳 [ta](../ta/README.md) · 🇮🇳 [te](../te/README.md) · 🇹🇭 [th](../th/README.md) · 🇹🇷 [tr](../tr/README.md) · 🇺🇦 [uk-UA](../uk-UA/README.md) · 🇵🇰 [ur](../ur/README.md) · 🇺🇿 [uz](../uz/README.md) · 🇻🇳 [vi](../vi/README.md) · 🇳🇬 [yo](../yo/README.md) · 🇨🇳 [zh-CN](../zh-CN/README.md) · 🇹🇼 [zh-TW](../zh-TW/README.md) ---
Painel do OmniRoute

# 🚀 OmniRoute — O Gateway de IA Gratuito OmniRoute — Never stop coding. Every AI tool → 358 providers — 150+ free — through one endpoint. Claude Code, Codex, Cursor, Cline, Copilot & Antigravity into FREE Claude / GPT / Gemini with auto-fallback. RTK + Caveman stacked compression saves 15–95% tokens (~89% avg) — never hit limits. 358 AI providers · 150+ free tiers · ~1.62B free tokens/mo · 19 routing strategies · $0 to start.
## 💰 ~1,62 mil milhões de tokens gratuitos / mês
> 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`). Cartão de orçamento dos escalões gratuitos do OmniRoute: ~1,62 mil milhões de tokens gratuitos por mês de forma contínua, até ~2,22 mil milhões no primeiro mês com créditos de registo, provenientes de 35 chaves documentadas de conjuntos recorrentes que abrangem 489 entradas catalogadas de escalões gratuitos através de um único endpoint. Cálculos transparentes com eliminação de duplicações por conjunto — cada conjunto partilhado é contabilizado uma única vez, incluindo 17 conjuntos recorrentes com um orçamento mensal positivo de tokens publicado, mais cinco limites da Groq por modelo; 13 fornecedores estão marcados como a evitar no catálogo de riscos dos termos, para que possa decidir. A barra do orçamento inclui Mistral 1B, Nara 210M, LLM7 150M, xKiro 150M, Groq 30M (cinco limites por modelo) e conjuntos mais pequenos, além de créditos de registo do primeiro mês e fornecedores permanentemente gratuitos sem limite de tokens, apresentados separadamente para nunca inflacionarem o total em destaque. Utilização e saldo restantes em tempo real em /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.

[![Estrelas](https://img.shields.io/github/stars/diegosouzapw/OmniRoute?style=social)](https://github.com/diegosouzapw/OmniRoute) diegosouzapw%2FOmniRoute | Trendshift [![Posição no histórico de estrelas](https://api.star-history.com/badge?repo=diegosouzapw/OmniRoute&theme=dark)](https://www.star-history.com/diegosouzapw/omniroute) [![olud.ai](https://olud.ai/badge.php?tool=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:** [![Seguir Diego no LinkedIn](https://img.shields.io/badge/Follow_Diego_on-LinkedIn-0A66C2?style=for-the-badge&logo=linkedin&logoColor=white)](https://www.linkedin.com/in/diegosouzapw/) [![Seguir @diegosouzapw no GitHub](https://img.shields.io/github/followers/diegosouzapw?style=for-the-badge&logo=github&logoColor=white&label=Follow%20on%20GitHub&color=181717)](https://github.com/diegosouzapw) [![Discord](https://img.shields.io/badge/Discord-5865F2?style=for-the-badge&logo=discord&logoColor=white)](https://discord.gg/U47eFqAXCn) [![Telegram](https://img.shields.io/badge/Telegram-26A5E4?style=for-the-badge&logo=telegram&logoColor=white)](https://t.me/omnirouteOficial) [![WhatsApp Global](https://img.shields.io/badge/WhatsApp_Global-25D366?style=for-the-badge&logo=whatsapp&logoColor=white)](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4) [![WhatsApp Brasil](https://img.shields.io/badge/WhatsApp_Brasil-25D366?style=for-the-badge&logo=whatsapp&logoColor=white)](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4) [![Site](https://img.shields.io/badge/Website-omniroute.online-blue?logo=google-chrome&logoColor=white)](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
| | v3.8.49 | **v3.8.50** | `v3.8.51+` | | -------------------------------- | :-----: | :----------------------: | :----------------: | | 🌐 Fornecedores | 290 | **357** | mais em preparação | | 🧠 IDs únicos de modelos de chat | 1185 | **1312** | — | | 🖼️ Ponte de modalidades | — | 🆕 visão + áudio + vídeo | — | | 📡 Catálogo gratuito do Radar | — | 🆕 adesão opcional | — | | ⚖️ Agendamento baseado em quotas | — | 🆕 Quota-Share | — | | 📊 Telemetria de quotas | — | 🆕 em direto | — | **→ [Roteiro](ROADMAP.md) — a caminho do `v3.9.0 LTS`**

## 🧩 Disponível [![versão npm](https://img.shields.io/npm/v/omniroute?color=cb3837&logo=npm)](https://www.npmjs.com/package/omniroute) ![NPM mensal](https://img.shields.io/npm/dm/omniroute?label=npm/month&color=cb3837&logo=npm) [![Docker Hub](https://img.shields.io/docker/v/diegosouzapw/omniroute?label=Docker%20Hub&logo=docker&color=2496ED)](https://hub.docker.com/r/diegosouzapw/omniroute) [![Licença: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)](LICENSE) ![Transferências do Docker](https://img.shields.io/docker/pulls/diegosouzapw/omniroute?label=docker%20pulls&logo=docker&color=2496ED) ![Transferências do Electron](https://img.shields.io/github/downloads/diegosouzapw/omniroute/total?style=flat&label=electron%20downloads&logo=electron&color=47848F)
🚀 Começar 🚀 Início rápido 📦 Instalar 🆓 Sem configuração
💡 Saber mais 💥 A promessa 🤔 Porquê o OmniRoute 🏆 O que o distingue
⚙️ Funcionalidades 🎯 Combos 🌐 Fornecedores 🔌 CLI e MCP
🗜️ Compressão 🖥️ Onde é executado 🔒 Privado
👀 Ver 🎬 Em ação ✨ Novidades 🤖 CLIs compatíveis
💚 Apoio 💚 Apoiar / Doar 💬 Comunidade 💖 Patrocinadores
📦 Projeto 🛠️ Tecnologias 📖 Documentação 👥 Colaboradores
🌐 Em 66 idiomas

Inglês (en) Português — Brasil (pt-BR) Português (pt) Espanhol (es) Francês (fr) Italiano (it) Alemão (de) Neerlandês (nl) Russo (ru) Ucraniano (uk-UA) Polaco (pl) Checo (cs) Eslovaco (sk) Romeno (ro) Húngaro (hu) Búlgaro (bg) Dinamarquês (da) Finlandês (fi) Norueguês (no) Sueco (sv) Chinês — Simplificado (zh-CN) Chinês — Tradicional (zh-TW) Japonês (ja) Coreano (ko) Tailandês (th) Vietnamita (vi) Indonésio (id) Malaio (ms) Filipino (phi) Hindi (hi) Gujarati (gu) Marata (mr) Tâmil (ta) Telugu (te) Bengali (bn) Urdu (ur) Persa (fa) Árabe (ar) Hebraico (he) Turco (tr) Azerbaijano (az) Suaíli (sw) Grego (el) Croata (hr) Sérvio (sr) Lituano (lt) Estónio (et) Letão (lv) Esloveno (sl) Maltês (mt) Irlandês (ga) Canarim (kn) Malaiala (ml) Oriá (or) Punjabi (pa) Nepalês (ne) Cingalês (si) Birmanês (my) Khmer (km) Hauçá (ha) Iorubá (yo) Igbo (ig) Amárico (am) Usbeque (uz) Georgiano (ka) Arménio (hy)


## 🆓 Funciona assim que o instala — sem chaves, sem configuração
Funciona assim que o instala — configuração zero. Três passos: 1. Instalar — npm i -g omniroute, o servidor arranca em localhost:20128. 2. Aponte a sua ferramenta para http://localhost:20128/v1 — qualquer ferramenta compatível com OpenAI (Claude Code, Cursor, Cline). 3. Responde — chame o modelo auto para uma resposta instantânea, sem chave API, sem registo, sem configuração. O fornecedor sem chave OpenCode Free está pré-configurado no combo auto, para que uma instalação nova responda de imediato. ```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
A Promessa — Um endpoint e 358 fornecedores. O fallback automático mantém o encaminhamento enquanto houver outro alvo saudável disponível. Seis pilares: fallback resiliente em 358 fornecedores · até 95% de poupança de tokens em cargas de trabalho elegíveis · 0€ para começar com mais de 150 níveis gratuitos e 54 fornecedores recorrentes/sem chave gratuitos para sempre · 36 integrações CLI/agente através de uma configuração · compatibilidade com OpenAI, Claude, Gemini e Responses API em /v1 · controlos de produção incluindo disjuntores, stealth TLS, ferramentas MCP 110, A2A, memória, guardrails, avaliações e mais de 39.000 declarações de teste estáticas em mais de 5.100 ficheiros de teste rastreados.

# 🤔 Porquê o OmniRoute?
Porquê o OmniRoute — pare de fazer malabarismos com 10 dashboards, chaves API mortas e contas surpresa. Dez dores diárias vs. soluções: quota a expirar sem uso → maximizar subscrições; limites de taxa a meio da codificação → fallback automático de 4 níveis (Subscrição → API → Barato → Gratuito); saídas de ferramentas a queimar tokens → compressão RTK + Caveman (15–95%); APIs caras → encaminhamento otimizado para custos; cada ferramenta com a sua própria configuração → um endpoint, um dashboard; IA bloqueada → proxy de 3 níveis + stealth TLS; chaves mortas → resiliência de 3 camadas (disjuntores, cooldown de chaves, bloqueio de modelo); equipa a partilhar uma subscrição → pools de chaves com quotas de partilha justa; prompts através da cloud de alguém → local-first com chaves encriptadas AES-256-GCM; sem visibilidade de gastos → análises em tempo real (uso, quota, poupanças, latência p95).
Fluxo de pedido do OmniRoute: o seu IDE ou CLI (Claude Code, Cursor, Cline…) chama um endpoint local (http://localhost:20128/v1); o OmniRoute Smart Router (compressão RTK + Caveman, 19 estratégias de encaminhamento, disjuntores, stealth TLS, MCP, A2A, guardrails) pode fazer fallback em 4 níveis de fornecedores enquanto um alvo saudável elegível permanecer — Nível 1 Subscrição, Nível 2 Chave API, Nível 3 Barato e Nível 4 Gratuito.

## 🤝 Apoiado pelos nossos Amigos de Código Aberto

Kimi K3 — Open Frontier Intelligence · 2.8T parameters · 1M-token context

> **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)
Kimi
Moonshot AI

Amigo Fundador de Código Aberto
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
Cheaper Inference
cheaperinference.com

Amigo de Código Aberto
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
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
As 19 estratégias de encaminhamento de combos animadas — um mosaico por estratégia: priority, fill-first, weighted, round-robin, p2c, least-used, random, strict-random, cost-optimized, headroom, reset-window, reset-aware, context-relay, context-optimized, cache-optimized, lkgp, auto, fusion, pipeline. Consulte a tabela acima para saber o que cada uma faz. > 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 modeloO 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) Resiliência do OmniRoute — 3 camadas independentes de autorrecuperação, a camada certa para a falha certa. Camada 1: disjuntor do fornecedor (fornecedor completo): é acionado apenas com 408/5xx, limiares OAuth 8× / chave de API 12× / local 2×, é reposto após 60s/30s/15s através de uma sonda HALF-OPEN, recuperação diferida; enquanto estiver OPEN, a combinação redireciona para o fornecedor seguinte. Camada 2: período de espera da ligação (uma chave/conta): base de 5s para OAuth / 3s para chave de API, recuo exponencial ×2 com proteção contra picos simultâneos, o 429 respeita Retry-After, uma resposta bem-sucedida limpa todo o estado de erro; uma chave em período de espera é ignorada, enquanto as chaves associadas continuam a servir pedidos. Camada 3: bloqueio do modelo (um modelo): um 429 por modelo, um 404 local ou recusas de modo bloqueiam apenas esse modelo — nunca a ligação completa. Os estados terminais (banido, expirado, créditos esgotados) destinam-se ao operador, não a períodos de espera. 📖 [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
O que distingue o OmniRoute — um instantâneo de funcionalidades desatualizado vs 9router, OpenRouter, CLIProxyAPI e LiteLLM em 13 capacidades. OmniRoute: 358 fornecedores, mais de 150 níveis gratuitos incorporados, 19 estratégias de encaminhamento, compressão de tokens de 12 motores, servidor MCP integrado com 110 ferramentas, protocolo de agente A2A, memória persistente, guardrails, agentes na nuvem, furtividade de impressão digital TLS, Desktop/Termux/PWA e 42 localizações de UI i18n. O OmniRoute tem licença MIT e é auto-hospedável. As capacidades e contagens dos concorrentes podem mudar; consulte a metodologia associada. 📊 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órioGrátis — ajuda genuinamente a aumentar a visibilidadeDê uma estrela ao OmniRoute
🐙 GitHub SponsorsContribuição única ou mensal · sem comissão da plataformagithub.com/sponsors/diegosouzapw
☕ Ko-fiContribuição única e rápida, sem necessidade de registo para o doadorko-fi.com/diegosouzapw
🧋 Buy Me a CoffeePequeno gesto informalbuymeacoffee.com/diegosouzapw
🖐 LiberapayRecorrente · sem fins lucrativos · código abertoliberapay.com/diegosouzapw
🇧🇷 PIX (Brasil)Instantâneo, sem taxaschave e código QR abaixo
₿ CriptomoedasBTC · ETH · USDT-TRC20 · USDC-Solanaendereços abaixo
**🇧🇷 PIX** — instantâneo, sem taxas (Brasil) Código QR PIX do OmniRoute 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)
₿ BTCBitcoin (SegWit)bc1qh00smz004sy85wyl28v77tenkt3ckl6eaep7fd
Ξ ETHEthereum (ERC20)0x64Cf6B68A6Ff34288e89172950a2d00102337a84
₮ USDTTron (TRC20)TKAF41JpuQrHbKTnsQa9svJE2T192Hvsc2
$ USDCSolana2emNNZzVVWQc3FQ2wk9M6qXUQmW8AKdjjL174fXR28Tu
⚠️ 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.
Claude Code
Claude Code
                           
Codex CLI
Codex CLI
                           
Cline
Cline
                           
Kilo Code
Kilo Code
Zoo Code
Zoo Code
Continue
Continue
                           
Aider
Aider
                           
ForgeCode
ForgeCode
                           
jcode
jcode
                           
DeepSeek TUI
DeepSeek TUI
                           
CodeWhale
CodeWhale
                           
OpenCode
OpenCode
                           
Factory Droid
Factory Droid
                           
GitHub Copilot CLI
Copilot CLI
                           
Cursor CLI
Cursor CLI
                           
Smelt
Smelt
                           
Pi (pi-coding-agent)
Pi
                           
Grok Build (xAI)
Grok Build
                           
Hermes Agent (Nous Research)
Hermes Agent
                           
OpenClaw
OpenClaw
                           
Goose
Goose
                           
Open Interpreter
Open Interpreter
                           
Warp AI
Warp AI
                           
deyin.ai
deyin.ai
                           
+ 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
OpenAI
                           
Anthropic
Anthropic
                           
Gemini
Gemini
                           
xAI Grok
xAI Grok
                           
DeepSeek
DeepSeek
                           
Mistral
Mistral
                           
Qwen
Qwen
                           
Meta Llama
Meta Llama
                           
Groq
Groq
                           
NVIDIA
NVIDIA
                           
MiniMax
MiniMax
                           
Cohere
Cohere
                           
Perplexity
Perplexity
                           
Hugging Face
HuggingFace
                           
Together
Together
                           
Fireworks
Fireworks
                           
Cloudflare
Cloudflare
                           
Baidu
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
OpenCode Zen
DeepSeek V4, Nemotron 3
Sem limite de tokens
Kilo Code
Kilo Code
Encaminhamento automático, Tencent Hy3
Gratuito para sempre
Requesty
Requesty
GPT-OSS 120B, Nemotron
Gratuito para sempre
SiliconFlow
SiliconFlow
DeepSeek V3.2 / R1
Plano gratuito
Z.AI GLM
Z.AI GLM
GLM-4.7 / 4.5-Flash
Gratuito para sempre
Baidu ERNIE
Baidu ERNIE
ERNIE 4.0
Gratuito para sempre
Qoder AI
Qoder AI
Qwen3-Max, Kimi-K2
GRATUITO e ilimitado
Pollinations
Pollinations
GPT, Llama, Claude
Não requer chave
Cloudflare AI
Cloudflare AI
Mais de 50 modelos
10 mil neurónios/dia
NVIDIA NIM
NVIDIA NIM
GLM, MiniMax
~40 RPM gratuitamente
Cerebras
Cerebras
GLM 4.7, GPT-OSS
1 milhão de tokens/dia
OpenRouter
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.
PlataformaInstalaçãoDestaques
📦 npm (global)npm install -g omnirouteUm comando, qualquer sistema operativo
🐳 Dockerdocker run … diegosouzapw/omnirouteMultiarquitetura AMD64 + ARM64
🖥️ Ambiente de trabalho (Electron)npm run electron:buildJanela nativa + área de notificação — Windows / macOS / Linux
🎩 Barra de menus (OmniRouteTray)brew install --cask zoispag/tap/omniroute-traySupervisiona e atualiza automaticamente o servidor — macOS
💪 ARMarm64 nativoRaspberry Pi, servidores ARM, Apple Silicon
📱 Android (Termux)pkg install nodejs && npx -y omnirouteFunciona 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-providerIntegração nativa com o OpenCode
🤖 VS Code Copilot Chatinstale a extensão OmniCopilotTodos os modelos do OmniRoute no seletor nativo do Copilot Chat — versões estável e Insiders
🛠️ A partir do código-fontenpm install && npm run devModifique-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**.
LojaLigaçãoCompatível com
🧩 VS Code MarketplaceInstalar →VS Code — versões estável e Insiders
🔓 Open VSX RegistryInstalar →Cursor, Windsurf, VSCodium, Theia, code-server, Gitpod, Antigravity, Kiro…
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 fazComo
🟢 Supervisiona o servidorInicia omniroute serve e adota uma instância que já esteja em execução, em vez de a duplicar
📊 Utilização em tempo real num relanceBarras 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 localInstalação faseada, substituição atómica e reversão em caso de falha — sempre na versão mais recente
🚀 Inicia ao iniciar sessãoArranque opcional ao iniciar sessão; apenas na barra de menus, sem ícone na Dock
🩺 Diagnósticos e registosDiagnó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.

## 🔒 Privado e Local em Primeiro Lugar
Privado e local em primeiro lugar — o gateway e o plano de controlo do OmniRoute são executados na sua máquina. Os prompts são enviados para o fornecedor upstream selecionado para cada pedido; o OmniRoute não acrescenta qualquer etapa alojada de processamento de prompts e a telemetria está desativada por predefinição. As credenciais são encriptadas em repouso com AES-256-GCM; os controlos incluem a delimitação do âmbito das chaves de API, filtragem de IP, limites de pedidos, proteções contra injeção de prompts, limpeza de cabeçalhos upstream, ocultação opcional de PII, erros sanitizados e um registo de auditoria local em SQLite. O OmniRoute é licenciado sob a licença MIT e pode ser autoalojado. 📖 [Autorização](docs/architecture/AUTHZ_GUIDE.md) · [Proteções](docs/security/GUARDRAILS.md) · [Conformidade](docs/security/COMPLIANCE.md)
## 🔌 CLI Completa + A2A e MCP
> 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)
Demonstração animada no terminal da CLI do OmniRoute — omniroute providers list, omniroute combo list e omniroute health — percorrendo os 86 comandos de nível superior: providers · oauth · keys · combo · nodes · models · cache · compression · cost · usage · quota · health · resilience · telemetry · logs · audit · mcp · a2a · cloud · memory · skills · eval · tunnel · backup · sync · webhooks · policy · pricing · translator · simulate …
### 🤝 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`.
InterfaceEndpoint / comandoUtilize para
🧰 MCP (stdio)omniroute --mcpIntegrar com o Claude Desktop, Cursor ou qualquer cliente MCP
🌊 MCP (HTTP)/api/mcp/streamMCP remoto — 110 ferramentas, 33 âmbitos (aplicação opcional), registo de auditoria completo
📡 MCP (SSE)/api/mcp/sseTransporte MCP por streaming
🤝 A2A/.well-known/agent.jsonAgente 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/webhooksEnviar eventos de pedidos / quotas para o Slack, Discord, Telegram ou qualquer URL
🛰️ CLI Remotaomniroute 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 Pipeline de compressão do OmniRoute: um pedido ilustrativo do cliente com 10 000 tokens passa por 12 motores combináveis — Session-Dedup, CCR, Lite, RTK, Responses Tool Output, Headroom, Relevance, Caveman, Aggressive, LLMLingua-2, Ultra e OmniGlyph — e pode chegar ao fornecedor com cerca de 1080 tokens no exemplo documentado de utilização em cadeia. O conteúdo estruturado é protegido por mecanismos de preservação e controlos de fidelidade em cada etapa; os modos explicitamente com perdas ou experimentais podem transformar conteúdo elegível. 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:
#MotorO que faz
1Session-DedupRemove conteúdo repetido entre interações (endereçado por conteúdo, entre interações)
2CCRArquiva blocos grandes atrás de marcadores de recuperação, obtidos a pedido
3LiteRedução de espaços em branco e URLs de imagens (base de referência com baixa latência)
4RTKFiltragem, desduplicação e truncagem inteligentes dos resultados de ferramentas (com reconhecimento de comandos)
5Responses Tool OutputJSON prioritariamente sem perdas + compressão limitada de diagnósticos para resultados de shell/patch/pesquisa/compilação (Responses API)
6HeadroomCompactação tabular sem perdas de arrays JSON (~30%) através de um codec GCF integrado
7RelevancePontuação extrativa de frases relativamente à última consulta do utilizador
8CavemanCompressão de prosa baseada em regras (~65–75% na saída)
9AggressiveResumo + envelhecimento progressivo de interações antigas
10LLMLingua-2Poda semântica por ML através do MobileBERT ONNX — segura para código, assíncrona
11UltraPoda heurística de tokens com um nível opcional baseado num modelo pequeno (SLM)
12OmniGlyphCodificaçã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:
ModoPoupançasIdeal 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
🧰 RTK60–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.
# 🎬 OmniRoute em ação
## 📹 Guias em Vídeo
Instantâneo do painel em 2026-08-24 · Catálogo bruto: YT 809 | TT 137 | IG 124 · Atualidade (dias): YT 1 | TT 21 | IG 22
Reel do Instagram
🎬 #1 — Instagram
nick_saraev — 3,042,474 visualizações
Reel do Instagram — theopenstack
🎬 #2 — Instagram
theopenstack — 692,419 visualizações
TikTok — milesreevesai
🎬 #3 — TikTok
milesreevesai — 620,400 visualizações
YouTube — Vaibhav Sisinty
🎬 #4 — YouTube
Vaibhav Sisinty — 391,109 visualizações
Reel do Instagram — buildwithai.club
🎬 #5 — Instagram
buildwithai.club — 347,652 visualizações
**Classificação completa (URLs canónicos sem duplicados, `v > 0`, maior alcance):** | #1 | #2 | #3 | #4 | #5 | | -------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | | [nick_saraev — Instagram](https://www.instagram.com/reel/Da8ZthUPK98/) — **3,042,474** | [theopenstack — Instagram](https://www.instagram.com/reel/DaSs65mMrHk/) — **692,419** | [milesreevesai — TikTok](https://www.tiktok.com/@milesreevesai/video/7667980059189366019) — **620,400** | [Vaibhav Sisinty — YouTube](https://www.youtube.com/watch?v=QucgvbO5gsM) — **391,109** | [buildwithai.club — Instagram](https://www.instagram.com/reel/DbIt9AjK7-U/) — **347,652** | | #6 | #7 | #8 | #9 | #10 | | ----------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | | [nivedan.ai — Instagram](https://www.instagram.com/reel/DbIrCksJiqq/) — **331,973** | [vaibhavsisinty — Instagram](https://www.instagram.com/reel/Dae05TSAK1l/) — **263,744** | [Nick Automates — YouTube Shorts](https://www.youtube.com/shorts/fZIBK_4fKq8) — **218,174** | [theroshankrishna — Instagram](https://www.instagram.com/reel/Dapjs58z0P0/) — **186,786** | [midudev — TikTok](https://www.tiktok.com/@midudev/video/7664636453544152342) — **177,800** | Métricas canónicas em 2026-08-24: **1.029 vídeos únicos** · **11.132.922 visualizações conhecidas** (`v > 0`) · **639 canais/perfis por rede**. O painel bruto contém 1.070 linhas; 41 duplicados do Instagram foram normalizados através do URL canónico, mantendo a maior contagem por vídeo. > 🎬 **Criou um vídeo sobre o OmniRoute?** Abra um [issue](https://github.com/diegosouzapw/OmniRoute/issues/new) ou uma [discussão](https://github.com/diegosouzapw/OmniRoute/discussions) com a ligação — iremos destacá-lo aqui.
# 📧 Comunidade e Ajuda > Tudo num único local — siga o responsável pela manutenção, converse com a comunidade ou abra um issue. | Canal | Onde / como | | ---------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | | 💼 **LinkedIn** — siga o responsável pela manutenção | [linkedin.com/in/diegosouzapw](https://www.linkedin.com/in/diegosouzapw/) | | 🐙 **GitHub** — siga para novidades e dicas | [@diegosouzapw](https://github.com/diegosouzapw) | | 💬 **Discord** | [discord.gg/U47eFqAXCn](https://discord.gg/U47eFqAXCn) | | ✈️ **Telegram** | [t.me/omnirouteOficial](https://t.me/omnirouteOficial) | | 🟢 **WhatsApp — 🌍 Global** | [aderir ao grupo](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4) | | 🟢 **WhatsApp — 🇧🇷 Brasil** | [aderir ao grupo](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4) | | 🌍 **Site** | [omniroute.online](https://omniroute.online) | | 🌍 **🌍Comunidade StHub OmniRoute (gratuita)** | [portal StHub](https://portal.sthub.com.br/communities/groups/st-hub/channels/Omniroute-World-8kRjmK) | | 📦 **Código-fonte** | [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute) | | 🐛 **Comunicar um erro** | [abra um problema](https://github.com/diegosouzapw/OmniRoute/issues) — anexe o resultado de `npm run system-info` | | 🤝 **Contribuir** | [CONTRIBUTING.md](CONTRIBUTING.md) · [Modelo de ramificação e lançamento](docs/ops/BRANCHING_MODEL.md) · escolha um `good first issue` | | 💚 **Apoiar o projeto** | [Formas de apoiar ↑](#-support-omniroute) · [Patrocinadores do GitHub](https://github.com/sponsors/diegosouzapw) |
---
## 🛠️ Pilha Tecnológica
CamadaTecnologia
Tempo de ExecuçãoNode.js 22.x / 24.x LTS — >=22.22.2 <23 || >=24.0.0 <27
LinguagemTypeScript 6.0 — 100% TypeScript em src/ e open-sse/ (zero any no núcleo desde a v2.0)
FrameworkNext.js 16 + React 19 + Tailwind CSS 4
Base de Dadosbetter-sqlite3 (SQLite, journaling WAL) + LowDB (JSON legado) — 122 módulos de domínio, 183 migrações
MemóriaSQLite FTS5 texto completo + embeddings de vetor quantizados em int8, decaimento tipado
EsquemasZod 4 — validação I/O da ferramenta MCP + contratos de API
ProtocolosMCP (stdio / HTTP / SSE) + A2A v0.3 (JSON-RPC 2.0 + SSE)
StreamingEventos Enviados pelo Servidor (SSE) + ponte WebSocket (/v1/ws)
Compressãopipeline de 12 motores — RTK, Caveman, LLMLingua-2 (MobileBERT ONNX), GCF, OmniGlyph
Autenticação & segurançaOAuth 2.0 (PKCE) + JWT + Chaves de API + autenticação com âmbito MCP · AES-256-GCM em repouso · DOMPurify
Furtividadewreq-js — personificação de fingerprint JA3 / JA4 TLS, proxy de 3 níveis
ResiliênciaDisjuntor, backoff exponencial, anti-thundering-herd, auto-combo de autocorreção
Registopino — registos JSON estruturados com contexto de pedido
TestesNode.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)
PlataformasDesktop (Electron) · Android (Termux) · PWA (qualquer navegador)
CI/CDGitHub Actions — publicação automática no npm + Docker Hub no lançamento
LigaçõesWebsite · npm · Docker Hub

## 📖 Documentação
### 📘 Introdução
DocumentoDescrição
Guia do UtilizadorFornecedores, combinações, integração com CLI, implementação
Guia de ConfiguraçãoMétodos completos de instalação, configurações de ferramentas CLI, configuração de protocolos, ajuste de tempos limite
Guia de Ferramentas CLIConfiguração por ferramenta para Claude Code, Codex, Cursor, Cline, OpenClaw, Kilo, Copilot
Modo RemotoControle um OmniRoute remoto (VPS) a partir da CLI do seu computador portátil através de tokens de acesso com âmbito limitado
Configuração do Claude CodeLigue o Claude Code ao OmniRoute (local/remoto) com launch + perfis por modelo
Início RápidoInstalação em 3 passos → ligar → configurar
### 🔧 Operações e Implementação
DocumentoDescrição
Guia do DockerDocker run, perfis do Compose, HTTPS com Caddy, túneis, etiquetas de imagens
Guia do PodmanIntegração com o systemd através de Quadlet, podman-compose, SELinux
Implementação em VMGuia completo: configuração de VM + nginx + Cloudflare
Implementação no Fly.ioImplemente no Fly.io com armazenamento persistente
Guia do TermuxExecute o OmniRoute no Android através do Termux
Guia da PWAInstalação, colocação em cache e arquitetura da aplicação Web progressiva
Guia de DesinstalaçãoRemoção completa para todos os métodos de instalação
Configuração do AmbienteVariáveis e referências completas de .env
### 🧠 Funcionalidades e Arquitetura
DocumentoDescrição
ArquiteturaArquitetura do sistema, fluxo de dados e funcionamento interno
Guia de CompressãoPipeline com 7 opções: desativada / ligeira / padrão / agressiva / ultra / RTK / empilhada
Compressão RTKCompressão da saída de comandos, filtros, confiança, verificação, recuperação da saída bruta
Motores de CompressãoCaveman, RTK, pipelines empilhados, interfaces de painel/API/MCP
Formato das Regras de CompressãoEsquemas JSON de pacotes de regras para filtros Caveman e RTK
Pacotes de Idiomas de CompressãoDeteção de idioma e criação de pacotes de regras Caveman
Guia de ResiliênciaDisjuntores, períodos de espera, fila, prevenção de efeito de manada, falsificação de TLS
Motor de Combinação AutomáticaPontuação de 16 fatores, pacotes de modos, autorrecuperação
Guia de ProxySistema de proxy de 3 níveis, mercado 1proxy, operações CRUD do registo
Níveis GratuitosDiretório consolidado: 35 conjuntos recorrentes documentados / 489 entradas de nível gratuito catalogadas
Galeria de FuncionalidadesVisita visual ao painel com capturas de ecrã
Documentação da Base de CódigoApresentação da base de código adequada para principiantes
### 🤖 Protocolos e APIs
DocumentoDescrição
Referência da APITodos os endpoints com exemplos
Especificação OpenAPIEspecificação OpenAPI 3.0
Servidor MCP110 ferramentas MCP, configurações de IDE, clientes Python/TS/Go
Guia do Servidor MCPInstalação do MCP, transportes e referência de ferramentas
Servidor A2AProtocolo JSON-RPC 2.0, competências, transmissão contínua, gestão de tarefas
Guia do Servidor A2ACartão de agente A2A, tarefas, competências e transmissão contínua
### 📋 Projeto e Qualidade
DocumentoDescrição
ContribuirConfiguração e diretrizes de desenvolvimento
Modelo de Ramificação e LançamentoRamos de destino dos PRs (release/*) e significado de main e das etiquetas
Registo de AlteraçõesHistórico completo de lançamentos por versão
Política de SegurançaComunicação de vulnerabilidades e práticas de segurança
Guia de i18nSuporte para 42 idiomas, fluxo de trabalho de tradução e RTL
Lista de Verificação de LançamentoPassos de validação antes do lançamento
Plano de CoberturaEstraté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
PosiçãoColaboradorPRs integrados~Linhas alteradas
1backryun190227,977
2oyi77180407,678
3rdself14580,663
4JxnLexn128387,049
5KooshaPari101125,747
6herjarsa88230,872
7RaviTharuma7955,106
8maxmad64bis69394,715
9artickc5933,260
10HouMinXi5147,334
10chirag127515,153
12xz-dev50245,976
13hartmark4752,185
14rqzbeh39143,181
15dhaern3419,559
16Dingding-leo331,986
17NomenAK3213,854
18MumuTW3016,953
19benzntech2911,641
20pacocartones249,331
20Prudhvivuda246,312
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
backryun
backryun

🥇 220 commits atribuídos pelo GitHub
Paijo
Paijo

🥈 219 commits atribuídos pelo GitHub
Randi
Randi

🥉 108 commits atribuídos pelo GitHub
Ravi Tharuma
Ravi Tharuma

🏅 81 commits atribuídos pelo GitHub
Chris
Chris

🏅 70 commits atribuídos pelo GitHub
Markus Hartung
Markus Hartung

🏅 69 commits atribuídos pelo GitHub · empate no 6.º lugar
Dizzle
Dizzle

🏅 69 commits atribuídos pelo GitHub · empate no 6.º lugar
Jan Leon
Jan Leon

🏅 64 commits atribuídos pelo GitHub
zenobit
zenobit

🏅 62 commits atribuídos pelo GitHub
Bob.Hou
Bob.Hou

🏅 51 commits atribuídos pelo GitHub · empate no 10.º lugar
Xiangzhe
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.
Andrew
Andrew

💛 Patrocinador mensal ativo
Vlad I
Vlad I

💛 Patrocinador mensal ativo
Paco Cartones
Paco Cartones

💛 Patrocinador pontual ativo
Professor Igor Morais Vasconcelos
Prof. Igor Morais

💛 Antigo apoiante pontual
longtao
longtao

💛 Antigo apoiante pontual
… 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
[![Colaboradores](https://contrib.rocks/image?repo=diegosouzapw/OmniRoute&max=639&columns=20&anon=1)](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 Gráfico do histórico de estrelas
## 🌍 StarMapper 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
Projeto⭐Como inspirou o OmniRoute
9router26,161O projeto original no qual este fork se baseia — aqui alargado com APIs multimodais e uma reescrita completa em TypeScript.
CLIProxyAPI48,497A implementação em Go que inspirou esta adaptação para JavaScript / TypeScript.
LiteLLM57,100O 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.
codex-chatgpt-web1,410Có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.
free-claude-code48,112Padrõ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.
composer-api322Padrões de escolha de ferramentas, restrição da saída e confirmação de ferramentas do Cursor Composer adaptados para o executor nativo do Cursor.
codex-multi-auth457Padrões de novo início de sessão e de rotação de tokens de atualização adaptados para a reautenticação OAuth do Codex.
opencode-anthropic-auth510Predefiniçõ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.
grok2api-merged2Os 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.
TQZHR/grok2api705A 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.
chenyme/grok2api7,520O 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.
grok2api-pro27Uma 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.
GrokProxy50O respetivo proxy Grok autenticado por cookies e o padrão de streaming result.response.token orientaram o transporte Grok Web do OmniRoute.
GrokBridge5A 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.
grok-web-api14Os respetivos esquemas Rust ChatOptions e de envelopes de resposta orientaram os tipos TypeScript de pedidos e respostas em streaming do Grok no OmniRoute.
### 🗜️ Compressão de contexto e tokens — motores
Projeto⭐Como inspirou o OmniRoute
Caveman100,538O 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.
RTK – Rust Token Killer77,185Compressã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.
headroom67,310Compressão reversível de contexto (SmartCrusher) — inspirou o nosso motor headroom e o padrão de marcadores de recuperação ccr.
LLMLingua6,598Investigação sobre compressão de prompts (LLMLingua / LLMLingua-2) — inspirou o nosso motor llmlingua assíncrono, seguro para código e tolerante a falhas.
llmlingua-2-js31O porte para JS/ONNX (MobileBERT / XLM-RoBERTa) utilizado como backend baseado em worker threads pelo nosso motor LLMLingua.
Troglodita40Compressã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.
ponytail108,957A 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).
i-have-adhd23,526O seu estilo de resposta orientado para a ação e adaptado a pessoas com PHDA foi incorporado no estilo de saída conciso do OmniRoute em cinco idiomas.
### 🧩 Formatos compactos, investigação sobre tokens e ferramentas sensíveis ao código
Projeto⭐Como inspirou o OmniRoute
TOON25,233Notação de objetos orientada para tokens — o seu modelo colunar de cabeçalho e linhas moldou a nossa fase de compactação tabular.
GCF – Graph Compact Format41O 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.
gcf-typescript4A implementação MIT em TypeScript, integrada diretamente e expandida como codec de perfil genérico do Headroom.
token-optimizer-mcp494Cache Brotli/SQLite + delta de contexto por sessão — inspirou o nosso motor session-dedup.
token-savior1,122Compactação da saída de Bash + perfis MCP — inspirou a nossa disciplina de interrupção da compressão e a redução dos manifestos de ferramentas MCP.
token-saver138Compressã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.
token-optimizer1,951«Encontre os tokens fantasma» — o seu padrão de transferência e identificadores recuperáveis contribuiu para a nossa abordagem à transferência do CCR.
TokenMizer28Um modelo de grafo de sessão + desduplicação de linhas entre interações que contribuiu para a conceção do nosso session-dedup.
OmniCompress3JSON 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».
mcp-compressor113Compressão de esquemas/descrições de ferramentas MCP — contribuiu para a redução da cardinalidade dos manifestos de ferramentas MCP.
RepoMapper197Classificação de mapas de repositórios ao estilo do Aider — contribuiu para a nossa exploração de mapas de repositórios/classificação de recuperação.
quiet-shell-mcp4Redução declarativa da saída da shell através de MCP — validou a nossa compactação declarativa da saída de Bash.
ts-morph6,162Kit 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.
### 🧠 Memória e RAG
Projeto⭐Como inspirou o OmniRoute
Mem063,902Camada de memória universal — o seu modelo de proxy como limite de escrita/leitura moldou a nossa arquitetura de memória.
Letta (MemGPT)24,382Agentes com estado e memória hierarquizada — inspiraram o nosso modelo hierarquizado de Controlo e Recuperação de Contexto (CCR).
WFGY1,781A taxonomia ProblemMap de 16 modos de falha recorrentes em RAG/LLM — o vocabulário partilhado no nosso guia de resolução de problemas.
### 🛰️ Inspeção de tráfego, MITM e proxy transparente
Projeto⭐Como inspirou o OmniRoute
llm-interceptor66A 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.
ProxyBridge5,995Encaminhamento 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.
### 📚 Dados de modelos, observabilidade e IU
Projeto⭐Como inspirou o OmniRoute
models.dev6,555Base de dados aberta de especificações, preços e capacidades de modelos de IA — sincronizada nativamente com o nosso catálogo de modelos.
React Flow / xyflow38,108A biblioteca de grafos baseada em nós que sustenta o nosso Estúdio de Compressão e o Estúdio de Combinação/Encaminhamento em tempo real.
LangGraph40,314A visualização em direto do grafo de fluxos de trabalho do LangGraph Studio inspirou a vista em cascata em tempo real dos nossos Estúdios.
Langfuse33,592O seu modelo de observabilidade rastreio → segmento → geração moldou a vista em cascata do nosso Estúdio de Compressão.
Kiali3,631Observabilidade 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.
lobe-icons2,428Logótipos de marcas de IA/LLM que apresentam os ícones dos fornecedores em todo o nosso painel.
flag-icons12,354Fornece as bandeiras SVG com licença MIT utilizadas pelo seletor de idioma do README.
### 🛡️ Segurança
Projeto⭐Como inspirou o OmniRoute
awesome-secure-defaults721Uma 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).
### 🧭 Ferramentas complementares
Projeto⭐Como inspirou o OmniRoute
ClawRouter6,564Inspirou 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.
Antigravity-Manager30,652O 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.
vscode-antigravity-cockpit4,817O seu formato compacto de contagem decrescente para a reposição de quotas inspirou a apresentação correspondente dos limites dos fornecedores no OmniRoute.
AionUi32,230As suas integrações ACP inspiraram a deteção automática de agentes CLI instalados no OmniRoute.
CodexBar20,507Identificou 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