El problema que resolvemos
Imagina que estás preparando una entrega con un asistente de código. El proveedor responde «límite alcanzado». Tienes otra cuenta o una API disponible, pero toca cambiar la configuración, averiguar qué modelo puedes usar y comprobar que la herramienta sigue funcionando.
El objetivo de esta guía: que tu herramienta pida siempre work-backup. OmniRoute intentará tu modelo principal y, ante un fallo que permita reintentar, podrá usar el de reserva. Cambiarás el orden en un panel, sin reconfigurar cada aplicación.
OmniRoute es un programa de código abierto que ejecutas en tu ordenador o servidor. Recibe las peticiones de herramientas compatibles, elige una conexión y adapta los formatos admitidos. La IA sigue ejecutándose en el proveedor que has elegido, salvo que conectes un modelo local.
| Cuando te ocurre esto… | OmniRoute puede ayudarte así |
|---|---|
| Tu proveedor devuelve un 429 o deja de responder. | Un combo agrupa modelos de reserva y decide el orden de los intentos. |
| Usas varias herramientas y cambias claves o modelos en todas. | Un endpoint y un alias estable centralizan esa configuración. |
| Tienes varias conexiones autorizadas y no sabes cuál está al límite. | Gestiona cuentas, prioridades y periodos de espera; muestra cuotas cuando el proveedor las facilita. |
| Usas un modelo caro incluso para tareas sencillas. | Puedes separar un combo económico de otro para tareas exigentes, o explorar selección por coste o latencia. |
| No sabes qué modelo respondió ni dónde se fue el consumo. | Los registros y estadísticas permiten revisar proveedor, errores, uso y costes estimados. |
| Ya tienes un modelo local y también usas servicios en la nube. | Puedes reunirlos mediante conexiones compatibles, manteniendo claras sus capacidades y el destino de los datos. |
Capacidades documentadas: Combos y selección de modelos ↗ · Uso, cuotas y costes ↗.
TE COMPENSA SI…
Tienes más de una alternativa.
Quieres controlar qué cuenta o modelo usa tu herramienta y disponer de un respaldo preparado.
PUEDES AHORRARTE ESTE PASO SI…
Tu conexión actual te basta.
Si solo usas el chat web o una herramienta que ya resuelve tu cambio de proveedor, otro servicio añade mantenimiento.
Cuotas y cambio de modelo
Sí: pasar a otro modelo cuando se agota una cuota es uno de sus usos principales. La condición es tener otra conexión válida, con capacidad disponible y configurada para recibir esa petición.
Un fallback es un segundo intento con una alternativa. En un combo de prioridad, OmniRoute prueba el primer candidato elegible; si recibe un error recuperable, como un 429, puede avanzar al siguiente. También puede evitar temporalmente una conexión que sabe que está limitada.
| «Me he quedado sin tokens» puede significar… | Qué cambia con un respaldo |
|---|---|
Límite temporal de peticiones o tokens: un 429. | Otra conexión con cuota independiente puede atender la petición mientras esperas al reinicio. |
| Cuota de la suscripción o saldo de una API agotados. | Necesitas acceso disponible en otra conexión. El router no repone saldo ni amplía el plan. |
| La conversación ya no cabe en la ventana de contexto. | Cambiar de modelo no basta si el siguiente tampoco admite ese tamaño. Reduce el contexto o elige un modelo adecuado. |
| La respuesta llegó a su máximo de longitud. | Es un límite de generación. Revisa el máximo de salida o continúa la tarea; no es necesariamente un fallo que active fallback. |
No todas las claves tienen cuotas separadas: dos claves del mismo proyecto pueden compartir límite. Y un fallo de Internet afectará a todos tus proveedores remotos. Elige un respaldo que reduzca el problema que realmente tienes.
La petición puede tardar más y el modelo de reserva puede responder de otra manera o costar más. Debe admitir el contexto, las herramientas y los formatos que utiliza tu aplicación. No des por hecho que puede retomar una respuesta ya empezada a mitad de una frase.
El router reenvía lo que la herramienta incluye en la petición; no importa por arte de magia tu historial del chat web de ChatGPT o Claude. Al configurar una reserva, también eliges otro posible destinatario de tus mensajes.
OmniRoute u OpenRouter
Los nombres se parecen, pero son proyectos diferentes. Ambos pueden darte una entrada común a varios modelos. OpenRouter también tiene fallback, tanto entre proveedores de un modelo como entre modelos configurados.
| Decisión | OmniRoute | OpenRouter |
|---|---|---|
| Dónde funciona | Lo ejecutas y mantienes tú, en local o en tu servidor. | Servicio alojado al que llamas por API. |
| Cómo obtienes acceso | Conectas tus proveedores: claves, conectores compatibles y servicios locales. | Accedes a su catálogo con créditos o con claves propias en las rutas BYOK admitidas. |
| Plan de reserva | Configuras combos y políticas sobre tus conexiones. | Configuras preferencias de proveedor y una lista de modelos de fallback. |
| Cuándo encaja | Quieres reunir conexiones propias y controlar el enrutamiento. | Quieres una API alojada y un catálogo común sin mantener este gateway. |
También puedes conectar OpenRouter como proveedor de OmniRoute. Tiene sentido si lo quieres como una de varias alternativas; si cubre por sí solo tu necesidad, quizá no necesites ambos. Esta es una elección de arquitectura, no una competición por tener más funciones.
OpenRouter: fallback entre modelos ↗ · Selección de proveedores ↗ · Claves propias (BYOK) ↗.
¿Sirven mis suscripciones?
OmniRoute incluye conectores para algunas suscripciones. Eso no hace que cualquier plan funcione en cualquier aplicación. Hay que distinguir el conector técnico, el acceso de tu cuenta y los usos que permite el proveedor.
ChatGPT: acceso mediante el conector Codex
OmniRoute ofrece OpenAI Codex con inicio de sesión OAuth. OpenAI documenta el acceso a Codex con ChatGPT y, por separado, el acceso con clave API. El conector de OmniRoute depende de esa integración: requiere que tu cuenta tenga acceso y cuota, y su compatibilidad puede cambiar. No equivale a convertir todos los modelos o funciones del chat web en una API.
Si usas OpenAI → API Key, el consumo se factura en OpenAI Platform; no utiliza los créditos incluidos de tu plan ChatGPT. Autenticación oficial de Codex ↗.
Claude: conector técnico y uso permitido son cosas distintas
OmniRoute también incluye un conector OAuth de Claude Code. Anthropic reserva las credenciales de suscripción para el uso ordinario de sus aplicaciones y no permite que terceros enruten solicitudes con planes Free, Pro o Max en nombre de sus usuarios. Para integrar Claude en una aplicación, esta guía utiliza Anthropic → API Key, con facturación propia.
Usar tu suscripción en Claude Code sin modificar es un caso distinto de convertirla en el backend de un chatbot para visitantes. Revisa las condiciones para tu caso; no copies cookies ni tokens del navegador. Autenticación y credenciales de Anthropic ↗.
Dos conexiones que puedas utilizar legítimamente y que respondan. La ruta más directa para combinar GPT y Claude es una clave API de cada proveedor. También puedes usar una conexión Codex disponible y un respaldo independiente, o un modelo local ya preparado. OmniRoute no incluye esos accesos ni paga su consumo.
Instalar y abrir
Instala Node.js 24 LTS ↗ si aún no lo tienes. Abre Terminal en macOS/Linux o PowerShell en Windows y comprueba que estos comandos muestran una versión:
node --version
npm --versionUsamos OmniRoute 3.8.50 para que los pasos tengan una versión concreta. El paquete admite Node 22.22.2 o posterior de la rama 22, y las ramas 24 a 26; Node 24 LTS es una opción sencilla. Requisitos del paquete ↗.
macOS o Linux
export OMNIROUTE_SERVER_HOST=127.0.0.1
npx omniroute@3.8.50 --no-open --no-trayWindows: comando para PowerShell
$env:OMNIROUTE_SERVER_HOST="127.0.0.1"
npx omniroute@3.8.50 --no-open --no-traySi npm pregunta si puede instalar el paquete, responde y. La primera descarga puede tardar varios minutos. Espera al mensaje OmniRoute is running! y abre http://localhost:20128.
La variable de la primera línea limita el acceso a tu ordenador. --no-open deja que abras tú el navegador y --no-tray mantiene el proceso en esta terminal. Para este tutorial, deja desactivados los túneles y el acceso remoto.
En una instalación nueva de esta versión, la contraseña inicial del paquete es CHANGEME. Entra y cámbiala por una propia en Settings → Security antes de conectar una cuenta. Si ya habías configurado OmniRoute, utiliza tu contraseña existente.
Referencia: instalación oficial de OmniRoute ↗.
Conectar dos alternativas
Abre Providers en el panel. Vamos a preparar un principal y una reserva; no basta con guardar una sola conexión. Para la ruta GPT + Claude:
- GPT: crea una clave en OpenAI Platform ↗ y comprueba que tu proyecto tiene acceso y facturación. En OmniRoute, abre OpenAI → Add Connection, añade la clave y guarda.
- Claude: crea una clave en Claude Console ↗. En OmniRoute, abre Anthropic → Add Connection, añade la clave y guarda.
- Pon nombres reconocibles a las conexiones. En cada ficha, copia el ID completo de un modelo que puedas usar, incluido el prefijo que muestra OmniRoute.
- Revisa el precio y los límites de ambos en sus consolas. El modelo de reserva también puede generar consumo.
Si ya tienes acceso a Codex mediante ChatGPT
Puedes sustituir la primera conexión por Providers → OpenAI Codex → Add Connection → OAuth. Completa el inicio de sesión en la página de OpenAI y sigue el retorno que indique el diálogo. Usa únicamente los modelos que admita esa conexión. Antes, lee las diferencias de la sección sobre suscripciones.
Para un modelo local, añade su conexión compatible y comprueba la URL desde la máquina que ejecuta OmniRoute. Un modelo local puede evitar depender de una cuota remota, pero necesita estar encendido y tener capacidad suficiente para tu tarea.
Probar cada modelo
Abre Playground y selecciona el ID concreto de tu modelo principal. Envía una tarea pequeña y útil:
Redacta un correo de tres frases para avisar a un cliente de que su entrega se retrasa un día.Repite la prueba seleccionando el modelo de reserva. Ambos deben responder por separado antes de combinarlos. Una tarjeta guardada o un modelo en el catálogo no demuestran que tengas permiso o saldo para usarlo.
En Request Logs, comprueba proveedor, modelo y resultado de cada petición. Si lo vas a usar con un agente de código, después prueba también una tarea pequeña con herramientas: responder texto es solo la primera comprobación.
Crear el plan B
Un combo es un nombre que representa una lista de alternativas y una regla para elegirlas. Crearemos work-backup; tu aplicación enviará ese nombre en lugar del ID de un modelo.
- Abre Combos → Create Combo.
- En Basics, escribe
work-backupcomo nombre y pulsa Next. - En Steps, elige proveedor, modelo y cuenta del principal, y pulsa Add step. Repite con la reserva. Deja el principal en primer lugar.
- En Strategy, elige Priority (
priority). Esta política respeta tu orden de preferencia entre los candidatos disponibles. Mantén el resto de opciones en sus valores iniciales para esta prueba. - En Review, comprueba los dos pasos y guarda el combo.
Ejemplo de orden: un GPT al que tienes acceso → un Claude que ya has probado. Si prefieres Claude como principal, invierte el orden. Las alternativas deben ser compatibles con tu herramienta.
Tu herramienta debe pedir work-backup, exactamente como lo has guardado. Si sigue pidiendo el ID de GPT o Claude, no está usando este combo. auto crea una selección automática distinta; no es un alias de tu plan de reserva.
Otras posibilidades, cuando ya funcione este recorrido
Selección automática: auto, auto/cheap y auto/fast utilizan distintos criterios sobre los candidatos disponibles. Revisa qué conexiones entran y sus precios antes de usarlos.
Distribuir peticiones: otras estrategias reparten la carga en lugar de esperar a que falle el principal. Sirven para un problema distinto; repartir no aumenta una cuota compartida.
Reducir contexto repetido: la caché y la compresión pueden reducir trabajo o texto enviado en casos adecuados. Mide el resultado: comprimir puede eliminar detalles y no garantiza un ahorro fijo.
Automatizar: hay interfaces CLI, API y MCP para gestionar el gateway. Para este primer recorrido basta el panel; una lista larga de integraciones no sustituye a probar tu caso.
Usarlo desde tu herramienta
Crea una clave en API Keys de OmniRoute para tu herramienta. Es la clave de acceso al gateway, distinta de las claves de los proveedores que guardaste en Providers.
| Campo de una app OpenAI-compatible | Valor |
|---|---|
| Base URL | http://localhost:20128/v1 |
| API Key | La clave creada en OmniRoute |
| Model | work-backup |
Para comprobarlo sin configurar un editor, abre otra terminal y ejecuta esta petición. Sustituye el marcador de la clave; mantén abierta la terminal del servidor.
curl http://localhost:20128/v1/chat/completions \
-H "Authorization: Bearer TU_CLAVE_DE_OMNIROUTE" \
-H "Content-Type: application/json" \
-d '{"model":"work-backup","messages":[{"role":"user","content":"Explica qué es una API en dos frases."}],"stream":false}'Windows: la misma prueba en PowerShell
$headers = @{ Authorization = "Bearer TU_CLAVE_DE_OMNIROUTE" }
$body = @{
model = "work-backup"
messages = @(@{ role = "user"; content = "Explain an API in two sentences." })
stream = $false
} | ConvertTo-Json -Depth 5
Invoke-RestMethod -Uri "http://localhost:20128/v1/chat/completions" -Method Post -Headers $headers -ContentType "application/json" -Body $bodyUna respuesta correcta incluye el texto en choices[0].message.content. Mira los registros para identificar el modelo que la atendió; no hace falta que el contenido sea idéntico en cada intento.
Después configura esos mismos tres campos en tu herramienta compatible. No son ajustes del chat web de ChatGPT o Claude. localhost sirve cuando la herramienta y OmniRoute corren en la misma máquina; dentro de Docker apunta al propio contenedor.
¿Y Claude Code o Codex CLI?
OmniRoute ofrece lanzadores para ambos. Pero la compatibilidad del cliente manda: Anthropic no da soporte a Claude Code con modelos ajenos a Claude a través de gateways. Para Claude Code prepara un combo solo con destinos Claude compatibles; su base URL nativa es http://localhost:20128, sin /v1.
Para Codex CLI comprueba que el proveedor admite el protocolo y las herramientas que necesita el cliente. No deduzcas que cualquier combinación funciona solo porque ha respondido a una pregunta de texto. Lanzadores y configuración ↗ · Gateways de Claude Code ↗.
Comprobar y resolver fallos
Comprueba lo que importa antes de depender de ello
- El principal y la reserva responden por separado.
- La petición usa
work-backupy los registros muestran el destino esperado. - La reserva admite el contexto y las herramientas que necesita tu aplicación.
- Conoces el coste y la cuota de las alternativas que has autorizado.
Ensayo sin agotar tu cuota: crea un segundo combo, backup-check, con los mismos pasos. Quita el principal solo de esa copia y repite la petición cambiando el campo model a backup-check. Comprueba que responde la reserva. Esto valida la ruta de respaldo; no simula por sí solo un error 429. Conserva work-backup con sus dos pasos.
Con OmniRoute 3.8.50 y dos servicios HTTP locales controlados, el principal devolvió 429. El mismo combo llamó después a la reserva y entregó su respuesta con 200. El contenido era una respuesta de prueba: valida el mecanismo de fallback, no el acceso a una cuenta ChatGPT o Claude.
Solicitud: model = skoa-fallback-lab, strategy = priority
1. primary → HTTP 429
2. backup → HTTP 200
Cliente → HTTP 200, contenido: BACKUP_OKSi algo falla
El principal falla y no cambia de modelo
Comprueba que envías el nombre del combo, su estrategia y el orden de sus pasos. Prueba la reserva sola y revisa los registros: puede carecer de saldo, estar en espera o no aceptar esa petición. No todos los errores se resuelven con otro intento.
También falla la reserva
Revisa si las conexiones comparten cuota, si ha caído tu conexión a Internet o si la petición excede el contexto de ambos modelos. OmniRoute no puede responder si ninguna alternativa válida está disponible.
Recibo 401 o 403
Distingue la clave de OmniRoute de la clave del proveedor. Si el rechazo aparece antes de llegar al proveedor, revisa la primera; si viene de él, revisa su conexión, permisos y acceso al modelo.
No abre el panel o falla el inicio de sesión
Comprueba Node y que el servidor sigue encendido. Si 20128 está ocupado, añade --port 20130 al arranque y actualiza las URLs. Para Codex OAuth, haz el login desde el ordenador de OmniRoute y evita que otro login ocupe el retorno local en el puerto 1455.
Para detenerlo, pulsa Ctrl+C. Repite el comando de arranque para volver a usarlo; la configuración persiste. Mientras OmniRoute esté apagado, las herramientas que apuntan a él no tendrán ese gateway disponible.
Guía rápida y fuentes
De «límite alcanzado» a un respaldo preparado.
Comandos, conexiones, combo de prioridad y comprobaciones en una guía breve.
Descargar guía rápida ↓Markdown · sin cuentas ni secretos · OmniRoute 3.8.50Qué hemos comprobado
Arranque del paquete npm 3.8.50 en macOS con Node 22.22.3, panel local, creación de un combo y cambio real entre dos servicios simulados ante un 429. No se han conectado cuentas ChatGPT/Claude ni consumido sus APIs de pago durante esta revisión. Debes validar tus conexiones y tu cliente con sus modelos reales.
Revisado el 21 de septiembre de 2026. Las ilustraciones son diagramas explicativos. Los modelos, cuotas y conectores pueden cambiar.
Para seguir aprendiendo
- OmniRoute · GitHub ↗
- OmniRoute · Combos ↗
- OmniRoute · Usage & quotas ↗
- OpenAI · Codex authentication ↗
- Anthropic · Authentication & credentials ↗
- OpenRouter · Model fallbacks ↗
Como referencia de aprendizaje práctico desde cero: midudev · Curso de OpenCode ↗. Trata sobre OpenCode, no es la fuente técnica de este tutorial de OmniRoute.
¿Quieres conectar un chatbot a tus datos? Continúa con Pi y Docker →