Se você usa mais de uma ferramenta de IA para programar, já conhece o atrito: cada uma precisa do seu próprio endpoint, sua própria chave de API, sua própria configuração de modelo. Depois você fica sem quota no meio de um refactor e tem que mudar tudo manualmente. 9router resolve isso.
decolua/9router é um roteador local que intercepta requisições de suas ferramentas de programação com IA — Claude Code, Codex, Cursor, Cline, Copilot, OpenCode, OpenClaw — e as reencaminha através de um único endpoint compatível com OpenAI em http://localhost:20128/v1. Você configura os provedores e a lógica de fallback uma única vez. Cada ferramenta fala com o mesmo endereço local.
Que Problema Resolve
Sem uma camada de roteamento, os setups multi-ferramenta são um desastre por design. Você acaba com:
- Modelo de assinatura no Claude Code
- Endpoint customizado do OpenAI no Cursor ou Codex
- Outra chave de API diferente no Cline ou RooCode
- Provedores gratuitos dispersos em configs separadas sem nenhum plano de fallback
9router centraliza tudo isso em um único gateway local. Você configura a ferramenta uma vez, e o roteamento, a seleção de modelo e o fallback ocorrem na camada do proxy — invisível para a ferramenta.
RTK Token Compression
Uma das features mais interessantes de 9router é RTK Token Saver, que comprime o output das ferramentas antes de chegar ao modelo. Comandos como git diff, grep, ls, tree e dumps de logs são os maiores consumidores de tokens em uma sessão de programação. Dependendo do projeto, RTK pode reduzir os tokens de entrada entre 20% e 40% em muitos requests.
Aviso importante: A compressão atua sobre padrões no output das ferramentas, não sobre conteúdo semântico. Para logs críticos, leituras completas de arquivos, ou qualquer coisa onde importa a fidelidade total do output, teste antes de depender disso em produção. A qualidade das respostas pode variar.
Fallback Automático
9router permite empilhar provedores em ordem de prioridade:
- Modelo de assinatura (ex.
cc/claude-opus-4-7) - API econômica (ex.
glm/glm-5.1) - Tier gratuito (ex.
kr/claude-sonnet-4-5)
Quando o primeiro tier atinge um rate limit ou fica sem quota, o roteador cai para o próximo. Sem switching manual, sem sessões interrompidas.
Importante: Fallback implica modelos diferentes. Claude Opus e um tier gratuito de GLM não são equivalentes. Para trabalho onde a consistência importa — refactors grandes, migrações, design de protocolos — mantenha um modelo fixo e mude manualmente quando necessário. O fallback automático é mais útil para trabalho exploratório ou de menor criticidade.
Provedores Gratuitos: Leia a Letra Miúda
O README destaca Kiro, OpenCode Free e Google Vertex como opções atualmente gratuitas. Mas os tiers gratuitos mudam. Antes de rotear cargas de trabalho reais através de qualquer provedor gratuito, verifique:
- A quota gratuita ainda está vigente?
- Tem restrições regionais? (Relevante para devs da América Latina — Vertex e outros têm limitações geográficas)
- Permite acesso automatizado/programático, ou é pensado apenas para uso direto?
- O volume alto pode gerar banimentos de conta?
9router cuida do roteamento. Não o protege de violações de políticas upstream.
Rotação Multi-Conta e Logging de Requisições
Além do fallback, 9router suporta rotação de chaves multi-conta — útil se você gerencia várias contas de API para se manter abaixo dos rate limits por conta. Todas as requisições são registradas no dashboard local em http://localhost:20128/dashboard, onde você pode ver qual provedor tratou cada requisição, o uso de tokens e os erros.
A atualização de 10 de maio incluiu um adapter bun:sqlite e importação em massa de chaves de API, o que torna o gerenciamento de grandes conjuntos de credenciais bem menos tedioso.
Instalação Rápida
npm install -g 9router
9router
Requer Node.js >=18.0.0. Depois configure sua ferramenta para apontar para http://localhost:20128/v1 com a chave de API que o dashboard gera.
Para Codex CLI:
export OPENAI_BASE_URL="http://localhost:20128"
export OPENAI_API_KEY="sua-chave-9router"
codex "seu prompt"
Para deployment em VPS ou LAN, os valores padrão não são seguros. Você precisa configurar JWT_SECRET, INITIAL_PASSWORD, API_KEY_SECRET e colocar autenticação na frente do dashboard antes de expô-lo fora de localhost. Não pule isso.
O Projeto Complementar: OmniRoute
Vale a pena conhecer também diegosouzapw/OmniRoute: cobre 160+ provedores e combina RTK com uma técnica de compressão adicional chamada Caveman para chegar a ~95% de compressão de contexto. É uma filosofia diferente — OmniRoute sacrifica algo de previsibilidade no output em troca de máxima amplitude de provedores. Vale avaliar se os 40+ provedores de 9router não são suficientes para seu setup.
Para Quem É
9router é uma boa opção se você já usa múltiplas ferramentas de programação com IA, gerencia várias contas de provedores, ou queima quotas pagas mais rápido do que gostaria. O valor se multiplica quando você tem Claude Code para raciocínio complexo, uma API mais econômica para código repetitivo, e um tier gratuito para consultas rápidas — tudo roteando através do mesmo endpoint local sem switching manual.
Se você usa uma única ferramenta com uma única assinatura, isso adiciona complexidade sem muito benefício.
O projeto é MIT e está em desenvolvimento ativo.