9router: Enruta Claude Code, Codex y Cursor a más de 40 proveedores de IA gratuitos

Si usás más de una herramienta de IA para codear, ya conocés la fricción: cada una necesita su propio endpoint, su propia API key, su propia configuración de modelo. Después te quedás sin quota en medio de un refactor y tenés que cambiar todo a mano. 9router resuelve eso.

decolua/9router es un router local que intercepta requests de tus herramientas de coding con IA — Claude Code, Codex, Cursor, Cline, Copilot, OpenCode, OpenClaw — y los reenvía a través de un único endpoint compatible con OpenAI en http://localhost:20128/v1. Configurás los proveedores y la lógica de fallback una sola vez. Cada herramienta habla con la misma dirección local.

Qué Problema Resuelve

Sin una capa de routing, los setups multi-tool son un desastre por diseño. Terminás con:

  • Modelo de suscripción en Claude Code
  • Endpoint OpenAI custom en Cursor o Codex
  • Otra API key distinta en Cline o RooCode
  • Proveedores gratuitos dispersos en configs separadas sin ningún plan de fallback

9router centraliza todo eso en un único gateway local. Configurás la herramienta una vez, y el routing, la selección de modelo y el fallback ocurren en la capa del proxy — invisible para la herramienta.

RTK Token Compression

Una de las features más interesantes de 9router es RTK Token Saver, que comprime el output de herramientas antes de que llegue al modelo. Comandos como git diff, grep, ls, tree y dumps de logs son los mayores consumidores de tokens en una sesión de coding. Según el proyecto, RTK puede reducir los tokens de entrada entre un 20% y 40% en muchos requests.

Caveat importante: La compresión actúa sobre patrones en el output de las herramientas, no sobre contenido semántico. Para logs críticos, lecturas completas de archivos, o cualquier cosa donde importa la fidelidad total del output, probalo antes de depender de esto en producción. La calidad de las respuestas puede variar.

Fallback Automático

9router te permite apilar proveedores en orden de prioridad:

  1. Modelo de suscripción (ej. cc/claude-opus-4-7)
  2. API económica (ej. glm/glm-5.1)
  3. Tier gratuito (ej. kr/claude-sonnet-4-5)

Cuando el primer tier llega a un rate limit o se queda sin quota, el router cae al siguiente. Sin switching manual, sin sesiones interrumpidas.

Importante: Fallback implica modelos diferentes. Claude Opus y un tier gratuito de GLM no son equivalentes. Para trabajo donde la consistencia importa — refactors grandes, migraciones, diseño de protocolos — quedáte con un modelo fijo y cambiá manualmente cuando sea necesario. El fallback automático es más útil para trabajo exploratorio o de menor criticidad.

Proveedores Gratuitos: Leé la Letra Chica

El README destaca Kiro, OpenCode Free y Google Vertex como opciones actualmente gratuitas. Pero los tiers gratuitos cambian. Antes de enrutar cargas de trabajo reales a través de cualquier proveedor gratuito, verificá:

  • ¿La quota gratuita sigue vigente?
  • ¿Tiene restricciones regionales? (Relevante para devs de LatAm — Vertex y otros tienen limitaciones geográficas)
  • ¿Permite acceso automatizado/programático, o está pensado para uso directo solamente?
  • ¿El volumen alto puede generar baneos de cuenta?

9router maneja el routing. No te protege de violaciones de políticas upstream.

Rotación Multi-Cuenta y Logging de Requests

Además del fallback, 9router soporta rotación de claves multi-cuenta — útil si manejás varias cuentas de API para mantenerte por debajo de los rate limits por cuenta. Todos los requests se registran en el dashboard local en http://localhost:20128/dashboard, donde podés ver qué proveedor manejó cada request, el uso de tokens y los errores.

La actualización del 10 de mayo incluyó un adapter bun:sqlite e importación masiva de API keys, lo que hace que administrar grandes conjuntos de credenciales sea bastante menos tedioso.

Instalación Rápida

npm install -g 9router
9router

Requiere Node.js >=18.0.0. Después configurá tu herramienta para que apunte a http://localhost:20128/v1 con la API key que genera el dashboard.

Para Codex CLI:

export OPENAI_BASE_URL="http://localhost:20128"
export OPENAI_API_KEY="tu-9router-api-key"
codex "tu prompt"

Para deployment en VPS o LAN, los valores por defecto no son seguros. Tenés que configurar JWT_SECRET, INITIAL_PASSWORD, API_KEY_SECRET y poner autenticación delante del dashboard antes de exponerlo fuera de localhost. No te saltees esto.

El Proyecto Complementario: OmniRoute

Vale la pena conocer también diegosouzapw/OmniRoute: cubre 160+ proveedores y combina RTK con una técnica de compresión adicional llamada Caveman para llegar a ~95% de compresión de contexto. Es una filosofía diferente — OmniRoute sacrifica algo de predictibilidad en el output a cambio de máxima amplitud de proveedores. Vale evaluar si los 40+ proveedores de 9router no alcanzan para tu setup.

Para Quién Es

9router es una buena opción si ya usás múltiples herramientas de coding con IA, manejás varias cuentas de proveedores, o quemás quotas pagas más rápido de lo que quisieras. El valor se multiplica cuando tenés Claude Code para razonamiento complejo, una API más económica para código repetitivo, y un tier gratuito para consultas rápidas — todo enrutando por el mismo endpoint local sin switching manual.

Si usás una sola herramienta con una sola suscripción, esto agrega complejidad sin mucho beneficio.

El proyecto es MIT y está en desarrollo activo.