🚀 OmniRoute — The Free AI Gateway (Español)
🌐 Languages: 🇺🇸 English · 🇪🇸 es · 🇫🇷 fr · 🇩🇪 de · 🇮🇹 it · 🇷🇺 ru · 🇨🇳 zh-CN · 🇯🇵 ja · 🇰🇷 ko · 🇸🇦 ar · 🇮🇳 hi · 🇮🇳 in · 🇹🇭 th · 🇻🇳 vi · 🇮🇩 id · 🇲🇾 ms · 🇳🇱 nl · 🇵🇱 pl · 🇸🇪 sv · 🇳🇴 no · 🇩🇰 da · 🇫🇮 fi · 🇵🇹 pt · 🇷🇴 ro · 🇭🇺 hu · 🇧🇬 bg · 🇸🇰 sk · 🇺🇦 uk-UA · 🇮🇱 he · 🇵🇭 phi · 🇧🇷 pt-BR · 🇨🇿 cs · 🇹🇷 tr
Never stop coding. Smart routing to FREE & low-cost AI models with automatic fallback.
Su proxy API universal: un punto final, más de 60 proveedores, cero tiempo de inactividad. Ahora conServidor MCP (25 herramientas),Protocolo A2A,Sistemas de memoria/habilidadesyAplicación de escritorio Electron.
Finalización de chat • Incrustaciones • Generación de imágenes • Vídeo • Música • Audio • Reclasificación •Búsqueda web• Servidor MCP • Protocolo A2A • 100% TypeScript---
🌐 Sitio web • [🚀 Inicio rápido](#-inicio rápido) • 💡 Funciones • 📖 Documentos • 💰 Precios • 💬 WhatsApp
🌐Disponible en:🇺🇸 Inglés | 🇧🇷 Português (Brasil) | 🇪🇸 English | 🇫🇷 Francés | 🇮🇹 Italiano | 🇷🇺 Русский | 🇨🇳 中文 (简体) | 🇩🇪 Deutsch | 🇮🇳 हिन्दी | 🇹🇭 ไทย | 🇺🇦 Українська | 🇸🇦 العربية | 🇯🇵 日本語 | 🇻🇳 Tiếng Việt | 🇧🇬 Български | 🇩🇰 Dansk | 🇫🇮 Suomi | 🇮🇱 עברית | 🇭🇺 Magiar | 🇮🇩 Bahasa Indonesia | 🇰🇷 한국어 | 🇲🇾 Bahasa Melayu | 🇳🇱 Países Bajos | 🇳🇴 Norsk | 🇵🇹 Português (Portugal) | 🇷🇴 Română | 🇵🇱 Polski | 🇸🇰 Esloveno | 🇸🇪 Svenska | 🇵🇭 Filipino | 🇨🇿 Čeština---
🖼️ Main Dashboard
📸 Dashboard Preview
| Página | Captura de pantalla | |
|---|---|---|
| Proveedores | ![]() |
|
| Combinaciones | ![]() |
|
| Análisis | ![]() |
|
| Salud | ![]() |
|
| Traductor | ![]() |
|
| Configuración | ![]() |
|
| Herramientas CLI | ![]() |
|
| Registros de uso | ![]() |
|
| Puntos finales | ![]() |
🤖 Free AI Provider for your favorite coding agents
Conecte cualquier herramienta IDE o CLI con tecnología de IA a través de OmniRoute: puerta de enlace API gratuita para codificación ilimitada.
OpenClaw
⭐205K
Nanobot
⭐ 20,9K
PicoGarra
⭐ 14,6K
Garra Cero
⭐ 9,9K
Garra de Hierro
⭐ 2,1K
Código abierto
⭐ 106K
CLI del Códice
⭐ 60,8K
Código Claude
⭐ 67,3K
CLI de Géminis
⭐ 94,7K
Código Kilo
⭐ 15,5K
📡 Todos los agentes se conectan a través de http://localhost:20128/v1 o http://cloud.omniroute.online/v1: una configuración, modelos y cuotas ilimitados---
🤔 Why OmniRoute?
Deja de gastar dinero y alcanzar límites:
La cuota de suscripción vence cada mes sin usarse
Los límites de velocidad le impiden codificar a mitad de camino
API costosas ($20-50/mes por proveedor)
Cambio manual entre proveedores
OmniRoute resuelve esto:
- ✅Maximizar suscripciones- Realice un seguimiento de la cuota, use cada bit antes de restablecer
- ✅Retroceso automático- Suscripción → Clave API → Barato → Gratis, sin tiempo de inactividad
- ✅Multicuenta- Round-robin entre cuentas por proveedor
- ✅Universal- Funciona con Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw y cualquier herramienta CLI---
📧 Support
💬¡Únase a nuestra comunidad!Grupo de WhatsApp: obtenga ayuda, comparta consejos y manténgase actualizado.
-Sitio web: omniroute.online -GitHub: github.com/diegosouzapw/OmniRoute -Problemas: github.com/diegosouzapw/OmniRoute/issues -WhatsApp: Grupo comunitario -Contribuyendo: consulte CONTRIBUTING.md, abra un PR o elija un "buen primer número". -Proyecto original: 9router de decolua### 🐛 Reporting a Bug?
Al abrir un problema, ejecute el comando system-info y adjunte el archivo generado:```bash npm run system-info
Esto genera un `system-info.txt` con su versión de Node.js, versión de OmniRoute, detalles del sistema operativo, herramientas CLI instaladas (qoder, gemini, claude, codex, antigravity, droid, etc.), estado de Docker/PM2 y paquetes del sistema: todo lo que necesitamos para reproducir su problema rápidamente. Adjunte el archivo directamente a su problema de GitHub.---
## 🔄 How It Works
┌─────────────┐ │ Your CLI │ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) │ Tool │ └──────┬──────┘ │ http://localhost:20128/v1 ↓ ┌─────────────────────────────────────────┐ │ OmniRoute (Smart Router) │ │ • Format translation (OpenAI ↔ Claude) │ │ • Quota tracking + Embeddings + Images │ │ • Auto token refresh │ └──────┬──────────────────────────────────┘ │ ├─→ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI │ ↓ quota exhausted ├─→ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. │ ↓ budget limit ├─→ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) │ ↓ budget limit └─→ [Tier 4: FREE] Qoder, Qwen, Kiro (unlimited)
Result: Never stop coding, minimal cost
---
## 🎯 What OmniRoute Solves — 30 Real Pain Points & Use Cases
>**Todos los desarrolladores que utilizan herramientas de IA se enfrentan a estos problemas a diario.**OmniRoute se creó para resolverlos todos: desde sobrecostos hasta bloqueos regionales, desde flujos rotos de OAuth hasta operaciones de protocolo y observabilidad empresarial.
<detalles>
<summary><b>💸 1. "Pago una suscripción costosa pero aún así me interrumpen los límites"</b></summary>
Los desarrolladores pagan entre 20 y 200 dólares al mes por Claude Pro, Codex Pro o GitHub Copilot. Incluso pagando, la cuota tiene un límite: 5 horas de uso, límites semanales o límites de tarifa por minuto. A mitad de la sesión de codificación, el proveedor deja de responder y el desarrollador pierde flujo y productividad.
**Cómo lo resuelve OmniRoute:**
-**Reserva inteligente de 4 niveles**: si se agota la cuota de suscripción, se redirige automáticamente a la clave API → Barato → Gratis sin intervención manual
-**Seguimiento de límites del proveedor**: las instantáneas de cuota almacenadas en caché se actualizan según una programación del lado del servidor (predeterminado `PROVIDER_LIMITS_SYNC_INTERVAL_MINUTES=70`) con actualización manual disponible en la interfaz de usuario
-**Soporte multicuenta**: varias cuentas por proveedor con rotación automática: cuando una se agota, cambia a la siguiente
-**Combinaciones personalizadas**: cadenas de respaldo personalizables con 9 estrategias de equilibrio (prioridad, ponderada, llenado primero, round-robin, P2C, aleatoria, menos utilizada, de costo optimizado, estrictamente aleatoria)
-**Cuotas comerciales de Codex**: monitoreo de cuotas del espacio de trabajo empresarial/de equipo directamente en el panel</details>
<detalles>
<summary><b>🔌 2. "Necesito usar varios proveedores pero cada uno tiene una API diferente"</b></summary>
OpenAI usa un formato, Claude (Anthropic) usa otro, Gemini otro más. Si un desarrollador quiere probar modelos de diferentes proveedores o recurrir a ellos, debe reconfigurar los SDK, cambiar los puntos finales y lidiar con formatos incompatibles. Los proveedores personalizados (FriendLI, NIM) tienen puntos finales de modelo no estándar.
**Cómo lo resuelve OmniRoute:**
-**Punto final unificado**: un único `http://localhost:20128/v1` sirve como proxy para los más de 60 proveedores
-**Traducción de formato**: automática y transparente: OpenAI ↔ Claude ↔ Gemini ↔ API de respuestas
-**Desinfección de respuesta**: elimina los campos no estándar (`x_groq`, `usage_breakdown`, `service_tier`) que interrumpen OpenAI SDK v1.83+
-**Normalización de roles**: convierte `desarrollador` → `sistema` para proveedores que no son OpenAI; `sistema` → `usuario` para GLM/ERNIE
-**Think Tag Extraction**: extrae bloques `<think>` de modelos como DeepSeek R1 en `reasoning_content` estandarizado.
-**Salida estructurada para Gemini**— conversión automática `json_schema` → `responseMimeType`/`responseSchema`
-**`stream` por defecto es `false`**: se alinea con las especificaciones de OpenAI, evitando SSE inesperado en los SDK de Python/Rust/Go</details>
<detalles>
<summary><b>🌐 3. "Mi proveedor de IA bloquea mi región/país"</b></summary>
Proveedores como OpenAI/Codex bloquean el acceso desde ciertas regiones geográficas. Los usuarios reciben errores como `unsupported_country_region_territory` durante las conexiones OAuth y API. Esto resulta especialmente frustrante para los desarrolladores de los países en desarrollo.
**Cómo lo resuelve OmniRoute:**
-**Configuración de proxy de 3 niveles**: Proxy configurable en 3 niveles: global (todo el tráfico), por proveedor (un solo proveedor) y por conexión/clave.
-**Insignias de proxy codificadas por colores**— Indicadores visuales: 🟢 proxy global, 🟡 proxy de proveedor, 🔵 proxy de conexión, que siempre muestra la IP
-**Intercambio de tokens de OAuth a través de proxy**: el flujo de OAuth también pasa a través del proxy, lo que resuelve `unsupported_country_region_territory`
-**Pruebas de conexión a través de proxy**: las pruebas de conexión utilizan el proxy configurado (no más derivación directa)
-**Soporte SOCKS5**: soporte completo de proxy SOCKS5 para enrutamiento saliente
-**Suplantación de huellas dactilares TLS**: huella digital TLS similar a la de un navegador a través de `wreq-js` para evitar la detección de bots
-**🔏 Coincidencia de huellas dactilares CLI**: reordena los encabezados y los campos del cuerpo para que coincidan con las firmas binarias CLI nativas, lo que reduce drásticamente el riesgo de marcación de cuentas. La IP del proxy se conserva: obtienes enmascaramiento de IP oculto**y**simultáneamente</details>
<detalles>
<summary><b>🆓 4. "Quiero usar IA para codificar pero no tengo dinero"</b></summary>
No todo el mundo puede pagar entre 20 y 200 dólares al mes por suscripciones a IA. Los estudiantes, desarrolladores de países emergentes, aficionados y autónomos necesitan acceso a modelos de calidad sin coste alguno.
**Cómo lo resuelve OmniRoute:**
-**Proveedores de nivel gratuito integrados**: soporte nativo para proveedores 100 % gratuitos: Qoder (5 modelos ilimitados a través de OAuth: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2), Qwen (4 modelos ilimitados: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model), Kiro (Claude + AWS Builder ID gratis), Gemini CLI (180.000 tokens/mes gratis)
-**Ollama Cloud**: modelos de Ollama alojados en la nube en `api.ollama.com` con nivel gratuito de "Uso ligero"; use el prefijo `ollamacloud/<model>`
-**Combos solo gratuitos**— Cadena `gc/gemini-3-flash → if/kimi-k2-thinking → qw/qwen3-coder-plus` = $0/mes sin tiempo de inactividad
-**Acceso gratuito a NVIDIA NIM**: desarrollo de ~40 RPM, acceso gratuito para siempre a más de 70 modelos en build.nvidia.com (transición de créditos a límites de velocidad pura)
-**Estrategia de optimización de costos**: estrategia de enrutamiento que elige automáticamente el proveedor más barato disponible</details>
<detalles>
<summary><b>🔒 5. "Necesito proteger mi puerta de enlace de IA del acceso no autorizado"</b></summary>
Al exponer una puerta de enlace de IA a la red (LAN, VPS, Docker), cualquiera con la dirección puede consumir los tokens/cuota del desarrollador. Sin protección, las API son vulnerables al mal uso, la inyección rápida y el abuso.
**Cómo lo resuelve OmniRoute:**
-**Administración de claves API**: generación, rotación y alcance por proveedor con una página dedicada `/dashboard/api-manager`
-**Permisos a nivel de modelo**: restrinja las claves API a modelos específicos (`openai/*`, patrones comodín), con la opción Permitir todo/Restringir
-**API Endpoint Protection**: requiere una clave para `/v1/models` y bloquea proveedores específicos del listado
-**Auth Guard + Protección CSRF**: todas las rutas del panel protegidas con middleware `withAuth` + tokens CSRF
-**Limitador de velocidad**: limitación de velocidad por IP con ventanas configurables
-**Filtrado de IP**: lista permitida/lista bloqueada para control de acceso
-**Prompt injection guard**: desinfección contra patrones de avisos maliciosos
-**Cifrado AES-256-GCM**: credenciales cifradas en reposo</details>
<detalles>
<summary><b>🛑 6. "Mi proveedor dejó de funcionar y perdí mi flujo de codificación"</b></summary>
Los proveedores de IA pueden volverse inestables, devolver errores 5xx o alcanzar límites de velocidad temporales. Si un desarrollador depende de un solo proveedor, se le interrumpe. Sin disyuntores, los reintentos repetidos pueden bloquear la aplicación.
**Cómo lo resuelve OmniRoute:**
-**Disyuntor por modelo**: apertura/cierre automático con umbrales configurables y enfriamiento (cerrado/abierto/medio abierto), con alcance por modelo para evitar bloqueos en cascada
-**Retroceso exponencial**: retrasos progresivos en los reintentos
-**Anti-Thundering Herd**— Mutex + protección de semáforo contra tormentas de reintentos simultáneos
-**Cadenas alternativas combinadas**: si el proveedor principal falla, automáticamente pasa por la cadena sin intervención.
-**Disyuntor combinado**: desactiva automáticamente los proveedores defectuosos dentro de una cadena combinada
-**Panel de estado**: monitoreo del tiempo de actividad, estados de disyuntores, bloqueos, estadísticas de caché, latencia p50/p95/p99</details>
<detalles>
<summary><b>🔧 7. "Configurar cada herramienta de IA es tedioso y repetitivo"</b></summary>
Los desarrolladores utilizan Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Cada herramienta necesita una configuración diferente (punto final API, clave, modelo). Reconfigurar al cambiar de proveedor o modelo es una pérdida de tiempo.
**Cómo lo resuelve OmniRoute:**
-**Panel de herramientas CLI**: página dedicada con configuración con un solo clic para Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline
-**Generador de configuración de GitHub Copilot**: genera `chatLanguageModels.json` para código VS con selección masiva de modelos
-**Asistente de incorporación**: configuración guiada de 4 pasos para usuarios nuevos
-**Un punto final, todos los modelos**: configure `http://localhost:20128/v1` una vez, acceda a más de 60 proveedores</details>
<detalles>
<summary><b>🔑 8. "Administrar tokens OAuth de múltiples proveedores es un infierno"</b></summary>
Claude Code, Codex, Gemini CLI, Copilot: todos usan OAuth 2.0 con tokens que caducan. Los desarrolladores necesitan volver a autenticarse constantemente, lidiar con "falta client_secret", "redirect_uri_mismatch" y fallas en servidores remotos. OAuth en LAN/VPS es particularmente problemático.
**Cómo lo resuelve OmniRoute:**
-**Actualización automática de tokens**: los tokens de OAuth se actualizan en segundo plano antes de que caduquen
-**OAuth 2.0 (PKCE) integrado**: flujo automático para Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, Qoder
-**OAuth multicuenta**: varias cuentas por proveedor mediante extracción de token JWT/ID
-**OAuth LAN/Remote Fix**— Detección de IP privada para `redirect_uri` + modo URL manual para servidores remotos
-**OAuth detrás de Nginx**: utiliza `window.location.origin` para compatibilidad con proxy inverso
-**Guía remota de OAuth**: guía paso a paso para las credenciales de Google Cloud en VPS/Docker</details>
<detalles>
<summary><b>📊 9. "No sé cuánto estoy gastando ni dónde"</b></summary>
Los desarrolladores utilizan múltiples proveedores pagos pero no tienen una visión unificada del gasto. Cada proveedor tiene su propio panel de facturación, pero no hay una vista consolidada. Los costos inesperados pueden acumularse.
**Cómo lo resuelve OmniRoute:**
-**Panel de análisis de costos**: seguimiento de costos por token y gestión de presupuesto por proveedor
-**Límites de presupuesto por nivel**: límite de gasto por nivel que activa el respaldo automático
-**Configuración de precios por modelo**: precios configurables por modelo
-**Estadísticas de uso por clave API**: recuento de solicitudes y marca de tiempo utilizada por última vez por clave
-**Panel de análisis**: tarjetas de estadísticas, tabla de uso de modelos, tabla de proveedores con tasas de éxito y latencia.</details>
<detalles>
<summary><b>🐛 10. "No puedo diagnosticar errores ni problemas en las llamadas de IA"</b></summary>
Cuando falla una llamada, el desarrollador no sabe si se trata de un límite de velocidad, un token caducado, un formato incorrecto o un error del proveedor. Registros fragmentados en diferentes terminales. Sin observabilidad, la depuración es de prueba y error.
**Cómo lo resuelve OmniRoute:**
-**Panel de registros unificados**: 4 pestañas: registros de solicitudes, registros de proxy, registros de auditoría y consola
-**Visor de registros de consola**: visor estilo terminal en tiempo real con niveles codificados por colores, desplazamiento automático, búsqueda y filtro
-**Registros de proxy SQLite**: registros persistentes que sobreviven a los reinicios del servidor
-**Translator Playground**: 4 modos de depuración: Playground (traducción de formato), Chat Tester (ida y vuelta), Test Bench (por lotes), Live Monitor (en tiempo real)
-**Solicitud de telemetría**: latencia p50/p95/p99 + seguimiento de X-Request-Id
-**Registro basado en archivos con rotación**: los registros de aplicaciones rotan por tamaño, días de retención y recuento de archivos; Los artefactos del registro de llamadas rotan según los días de retención y el recuento de archivos.
-**Informe de información del sistema**: `npm run system-info` genera `system-info.txt` con su entorno completo (versión de nodo, versión de OmniRoute, sistema operativo, herramientas CLI, estado de Docker/PM2). Adjúntelo cuando informe problemas para una clasificación instantánea.</details>
<detalles>
<summary><b>🏗️ 11. "Implementar y mantener la puerta de enlace es complejo"</b></summary>
Instalar, configurar y mantener un proxy de IA en diferentes entornos (local, VPS, Docker, nube) requiere mucha mano de obra. Problemas como rutas codificadas, "EACCES" en directorios, conflictos de puertos y compilaciones multiplataforma añaden fricción.
**Cómo lo resuelve OmniRoute:**
-**npm global install**— `npm install -g omniroute && omniroute` — hecho
-**Docker multiplataforma**: AMD64 + ARM64 nativo (Apple Silicon, AWS Graviton, Raspberry Pi)
-**Docker Compose Profiles**— `base` (sin herramientas CLI) y `cli` (con Claude Code, Codex, OpenClaw)
-**Aplicación de escritorio Electron**: aplicación nativa para Windows/macOS/Linux con bandeja del sistema, inicio automático y modo sin conexión
-**Modo de puerto dividido**: API y panel en puertos separados para escenarios avanzados (proxy inverso, redes de contenedores)
-**Cloud Sync**: sincronización de configuración entre dispositivos a través de Cloudflare Workers
-**Copias de seguridad de base de datos**: copia de seguridad, restauración, exportación e importación automáticas de todas las configuraciones, con `DISABLE_SQLITE_AUTO_BACKUP` para copias de seguridad administradas externamente</details>
<detalles>
<summary><b>🌍 12. "La interfaz es solo en inglés y mi equipo no habla inglés"</b></summary>
Los equipos en países que no hablan inglés, especialmente en América Latina, Asia y Europa, tienen dificultades con las interfaces solo en inglés. Las barreras del idioma reducen la adopción y aumentan los errores de configuración.
**Cómo lo resuelve OmniRoute:**
-**Panel i18n — 30 idiomas**— Las más de 500 teclas traducidas, incluidas árabe, búlgaro, danés, alemán, español, finlandés, francés, hebreo, hindi, húngaro, indonesio, italiano, japonés, coreano, malayo, holandés, noruego, polaco, portugués (PT/BR), rumano, ruso, eslovaco, sueco, tailandés, ucraniano, vietnamita, chino, filipino, inglés.
-**Soporte RTL**: soporte de derecha a izquierda para árabe y hebreo
-**README multilingüe**: 30 traducciones de documentación completa
-**Selector de idioma**: ícono de globo en el encabezado para cambiar en tiempo real</details>
<detalles>
<summary><b>🔄 13. "Necesito más que chat: necesito incrustaciones, imágenes y audio"</b></summary>
La IA no es solo completar un chat. Los desarrolladores necesitan generar imágenes, transcribir audio, crear incrustaciones para RAG, reclasificar documentos y moderar contenido. Cada API tiene un punto final y un formato diferentes.
**Cómo lo resuelve OmniRoute:**
-**Incrustaciones**— `/v1/embeddings` con 6 proveedores y más de 9 modelos
-**Generación de imágenes**— `/v1/images/generaciones` con 10 proveedores y más de 20 modelos (OpenAI, xAI, Together, Fireworks, Nebius, Hyperbolic, NanoBanana, Antigravity, SD WebUI, ComfyUI)
-**Texto a vídeo**— `/v1/videos/generaciones` — ComfyUI (AnimateDiff, SVD) y SD WebUI
-**Texto a música**— `/v1/music/generaciones` — ComfyUI (Audio estable abierto, MusicGen)
-**Transcripción de audio**— `/v1/audio/transcriptions` — Whisper + Nvidia NIM, HuggingFace, Qwen3
-**Text-to-Speech**— `/v1/audio/speech` — ElevenLabs, Nvidia NIM, HuggingFace, Coqui, Tortoise, Qwen3,**Inworld**,**Cartesia**,**PlayHT**, + proveedores existentes
-**Moderaciones**— `/v1/moderaciones` — Comprobaciones de seguridad del contenido
-**Reclasificación**— `/v1/rerank` — Reclasificación de relevancia del documento
-**API de respuestas**: compatibilidad total con `/v1/responses` para Codex</details>
<detalles>
<summary><b>🧪 14. "No tengo forma de probar y comparar la calidad entre modelos"</b></summary>
Los desarrolladores quieren saber qué modelo es mejor para su caso de uso (código, traducción, razonamiento), pero comparar manualmente es lento. No existen herramientas de evaluación integradas.
**Cómo lo resuelve OmniRoute:**
-**Evaluaciones LLM**: pruebas de conjunto dorado con 10 casos precargados que cubren saludos, matemáticas, geografía, generación de código, cumplimiento de JSON, traducción, rebajas y rechazo de seguridad.
-**4 estrategias de coincidencia**: `exact`, `contains`, `regex`, `custom` (función JS)
-**Translator Playground Test Bench**: pruebas por lotes con múltiples entradas y resultados esperados, comparación entre proveedores
-**Chat Tester**: recorrido completo de ida y vuelta con representación de respuesta visual
-**Live Monitor**: flujo en tiempo real de todas las solicitudes que fluyen a través del proxy</details>
<detalles>
<summary><b>📈 15. "Necesito escalar sin perder rendimiento"</b></summary>
A medida que crece el volumen de solicitudes, sin almacenar en caché las mismas preguntas generan costos duplicados. Sin idempotencia, las solicitudes duplicadas desperdician el procesamiento. Se deben respetar los límites de tarifas por proveedor.
**Cómo lo resuelve OmniRoute:**
-**Caché semántica**: la caché de dos niveles (firma + semántica) reduce el costo y la latencia
-**Solicitud de idempotencia**: ventana de deduplicación de 5 segundos para solicitudes idénticas
-**Detección de límite de velocidad**: RPM por proveedor, intervalo mínimo y seguimiento simultáneo máximo
-**Límites de velocidad editables**: valores predeterminados configurables en Configuración → Resiliencia con persistencia
-**Caché de validación de clave API**: caché de 3 niveles para rendimiento de producción
-**Panel de estado con telemetría**: latencia p50/p95/p99, estadísticas de caché, tiempo de actividad</details>
<detalles>
<summary><b>🤖 16. "Quiero controlar el comportamiento del modelo globalmente"</b></summary>
Desarrolladores que quieran todas las respuestas en un idioma específico, con un tono específico o quieran limitar los tokens de razonamiento. Configurar esto en cada herramienta/solicitud no es práctico.
**Cómo lo resuelve OmniRoute:**
-**Inyección de aviso del sistema**: aviso global aplicado a todas las solicitudes
-**Thinking Budget Validation**: control de asignación de tokens de razonamiento por solicitud (transferencia, automática, personalizada, adaptativa)
-**9 estrategias de enrutamiento**: estrategias globales que determinan cómo se distribuyen las solicitudes
-**Enrutador comodín**: los patrones `proveedor/*` se enrutan dinámicamente a cualquier proveedor
-**Activar/desactivar combinación de alternar**: alterna combinaciones directamente desde el panel
-**Alternar proveedor**: activa/desactiva todas las conexiones de un proveedor con un solo clic
-**Proveedores bloqueados**: excluye proveedores específicos de la lista `/v1/models`</details>
<detalles>
<summary><b>🧰 17. "Necesito herramientas MCP como capacidades de producto de primera clase"</b></summary>
Muchas puertas de enlace de IA exponen MCP solo como un detalle de implementación oculto. Los equipos necesitan una capa operativa visible y manejable.
**Cómo lo resuelve OmniRoute:**
- MCP aparece en la pestaña de navegación del panel y protocolo de punto final
- Página de gestión de MCP dedicada con procesos, herramientas, alcances y auditoría
- Inicio rápido integrado para `omniroute --mcp` e incorporación de clientes</details>
<detalles>
<summary><b>🧠 18. "Necesito orquestación A2A con rutas de tareas de sincronización y transmisión"</b></summary>
Los flujos de trabajo de los agentes necesitan respuestas directas y una ejecución continua y continua con control del ciclo de vida.
**Cómo lo resuelve OmniRoute:**
- Punto final A2A JSON-RPC (`POST /a2a`) con `mensaje/envío` y `mensaje/transmisión`
- Transmisión SSE con propagación del estado terminal
- API de ciclo de vida de tareas para `tareas/obtener` y `tareas/cancelar`</details>
<detalles>
<summary><b>🛰️ 19. "Necesito un estado real del proceso MCP, no un estado adivinado"</b></summary>
Los equipos operativos necesitan saber si MCP está realmente activo, no solo si se puede acceder a una API.
**Cómo lo resuelve OmniRoute:**
- Archivo de latidos en tiempo de ejecución con PID, marcas de tiempo, transporte, recuento de herramientas y modo de alcance
- API de estado de MCP que combina latidos + actividad reciente
- Tarjetas de estado de la interfaz de usuario para el proceso/tiempo de actividad/actualización de latidos</details>
<detalles>
<summary><b>📋 20. "Necesito ejecución de herramienta MCP auditable"</b></summary>
Cuando las herramientas modifican la configuración o desencadenan acciones de operaciones, los equipos necesitan trazabilidad forense.
**Cómo lo resuelve OmniRoute:**
- Registro de auditoría respaldado por SQLite para llamadas a herramientas MCP
- Filtros por herramienta, éxito/fracaso, clave API y paginación
- Tabla de auditoría del panel + puntos finales de estadísticas para automatización</details>
<detalles>
<summary><b>🔐 21. "Necesito permisos MCP con alcance por integración"</b></summary>
Los diferentes clientes deberían tener acceso con privilegios mínimos a las categorías de herramientas.
**Cómo lo resuelve OmniRoute:**
- 10 alcances MCP granulares para acceso controlado a herramientas
- Aplicación del alcance y visibilidad en la interfaz de usuario de gestión de MCP
- Postura predeterminada segura para herramientas operativas</details>
<detalles>
<summary><b>⚙️ 22. "Necesito controles operativos sin redistribuir"</b></summary>
Los equipos necesitan cambios rápidos en el tiempo de ejecución durante incidentes o eventos de costos.
**Cómo lo resuelve OmniRoute:**
- Cambie la activación combinada directamente desde el panel de MCP
- Aplicar perfiles de resiliencia de paquetes de políticas predefinidos
- Restablecer el estado del disyuntor desde el mismo panel de operaciones.</details>
<detalles>
<summary><b>🔄 23. "Necesito visibilidad y cancelación del ciclo de vida de la tarea A2A en vivo"</b></summary>
Sin visibilidad del ciclo de vida, los incidentes de tareas se vuelven difíciles de clasificar.
**Cómo lo resuelve OmniRoute:**
- Listado de tareas/filtrado por estado/habilidad con paginación
- Profundización en metadatos, eventos y artefactos de tareas
- Punto final de cancelación de tarea y acción de UI con confirmación</details>
<detalles>
<summary><b>🌊 24. "Necesito métricas de transmisión activas para la carga A2A"</b></summary>
Los flujos de trabajo de streaming requieren información operativa sobre la simultaneidad y las conexiones en vivo.
**Cómo lo resuelve OmniRoute:**
- Contadores de flujo activos integrados en el estado A2A
- Marca de tiempo de la última tarea y recuentos por estado
- Tarjetas de tablero A2A para monitoreo de operaciones en tiempo real</details>
<detalles>
<summary><b>🪪 25. "Necesito un descubrimiento de agentes estándar para los clientes"</b></summary>
Los clientes y orquestadores externos necesitan metadatos legibles por máquina para la incorporación.
**Cómo lo resuelve OmniRoute:**
- Tarjeta de agente expuesta en `/.well-known/agent.json`
- Capacidades y habilidades mostradas en la interfaz de usuario de gestión.
- La API de estado A2A incluye metadatos de descubrimiento para la automatización</details>
<detalles>
<summary><b>🧭 26. "Necesito capacidad de descubrimiento del protocolo en la UX del producto"</b></summary>
Si los usuarios no pueden descubrir las superficies de protocolo, la calidad de la adopción y el soporte disminuye.
**Cómo lo resuelve OmniRoute:**
- Página consolidada de**Puntos finales**con pestañas para Proxy, MCP, A2A y API Endpoints
- El estado del servicio en línea alterna (en línea/fuera de línea) para MCP y A2A
- Enlaces desde la descripción general a pestañas de administración dedicadas</details>
<detalles>
<summary><b>🧪 27. "Necesito validación de protocolo de un extremo a otro con clientes reales"</b></summary>
Las pruebas simuladas no son suficientes para validar la compatibilidad del protocolo antes del lanzamiento.
**Cómo lo resuelve OmniRoute:**
- Suite E2E que inicia la aplicación y utiliza transporte de cliente MCP SDK real
- Pruebas de cliente A2A para descubrimiento, envío, transmisión, obtención y cancelación de flujos
- Verificar las afirmaciones con las API de auditoría MCP y tareas A2A.</details>
<detalles>
<summary><b>📡 28. "Necesito observabilidad unificada en todas las interfaces"</b></summary>
Dividir la observabilidad por protocolo crea puntos ciegos y MTTR más largos.
**Cómo lo resuelve OmniRoute:**
- Paneles/registros/análisis unificados en un solo producto
- Salud + auditoría + solicitud de telemetría en capas OpenAI, MCP y A2A
- API operativas para estado y automatización.</details>
<detalles>
<summary><b>💼 29. "Necesito un tiempo de ejecución para proxy + herramientas + orquestación de agentes"</b></summary>
La ejecución de muchos servicios separados aumenta los costos operativos y los modos de falla.
**Cómo lo resuelve OmniRoute:**
- Proxy compatible con OpenAI, servidor MCP y servidor A2A en una sola pila
- Autenticación compartida, resiliencia, almacenamiento de datos y observabilidad.
- Modelo de política consistente en todas las superficies de interacción.</details>
<detalles>
<summary><b>🚀 30. "Necesito enviar flujos de trabajo agentes sin expansión de códigos adhesivos"</b></summary>
Los equipos pierden velocidad al unir múltiples scripts y servicios ad hoc.
**Cómo lo resuelve OmniRoute:**
- Estrategia de endpoint unificada para clientes y agentes
- UI de gestión de protocolos integradas y rutas de validación de humo
- Fundamentos listos para producción (seguridad, registro, resiliencia, respaldo)</details>
### Example Playbooks (Integrated Use Cases)
**Libro de estrategias A: maximizar la suscripción paga + copia de seguridad económica**```txt
Combo: "maximize-claude"
1. cc/claude-opus-4-6
2. glm/glm-4.7
3. if/kimi-k2-thinking
Monthly cost: $20 + small backup spend
Outcome: higher quality, near-zero interruption
Libro de estrategias B: pila de codificación de costo cero```txt Combo: "free-forever"
- gc/gemini-3-flash
- if/kimi-k2-thinking
- qw/qwen3-coder-plus
Monthly cost: $0 Outcome: stable free coding workflow
**Libro de estrategias C: cadena alternativa siempre disponible las 24 horas del día, los 7 días de la semana**```txt
Combo: "always-on"
1. cc/claude-opus-4-6
2. cx/gpt-5.2-codex
3. glm/glm-4.7
4. minimax/MiniMax-M2.1
5. if/kimi-k2-thinking
Outcome: deep fallback depth for deadline-critical workloads
Libro de jugadas D: Operaciones del agente con MCP + A2A```txt
- Start MCP transport (
omniroute --mcp) for tool-driven operations - Run A2A tasks via
message/sendandmessage/stream - Observe via /dashboard/endpoint (MCP and A2A tabs)
- Toggle services via inline status controls
---
## 🆓 Start Free — Zero Configuration Cost
> Configure la codificación AI en minutos a**$0/mes**. Conecte estas cuentas gratuitas y utilice el combo**Free Stack**integrado.
| Paso | Acción | Proveedores desbloqueados |
| ---- | -------------------------------------------------- | ------------------------------------------------------------------ |
| 1 | Conectar**Kiro**(ID de AWS Builder OAuth) | Claude Sonnet 4.5, Haiku 4.5 —**ilimitado**|
| 2 | Conectar**Qoder**(Google OAuth) | kimi-k2-thinking, qwen3-coder-plus, deepseek-r1... —**ilimitado**|
| 3 | Conectar**Qwen**(Código de dispositivo) | qwen3-coder-plus, qwen3-coder-flash... —**ilimitado**|
| 4 | Conectar**Gemini CLI**(Google OAuth) | gemini-3-flash, gemini-2.5-pro —**180K/mes gratis**|
| 5 | `/dashboard/combos` →**Plantilla de pila gratuita ($0)**| Round-robin todos los proveedores gratuitos automáticamente |
**Apunte cualquier IDE/CLI a:**`http://localhost:20128/v1` · Clave API: `any-string` · Listo.
>**Cobertura adicional opcional (también gratuita):**Clave API Groq (30 RPM gratis), NVIDIA NIM (40 RPM gratis, más de 70 modelos), Cerebras (1 millón de tok/día), clave API LongCat (¡50 millones de tokens/día!), Cloudflare Workers AI (10 000 neuronas/día, más de 50 modelos).## Inicio Rápido
### 1) Install and run
```bash
npm install -g omniroute
omniroute
**usuarios de pnpm:**Ejecute
pnpm aprobar-builds -gdespués de la instalación para habilitar los scripts de compilación nativos requeridos porbetter-sqlite3y@swc/core:pnpm instalar -g omniruta pnpm aprobar-builds -g # Seleccionar todos los paquetes → aprobar omniruta
El panel se abre en http://localhost:20128 y la URL base de API es http://localhost:20128/v1.
| Comando | Descripción |
|---|---|
omniruta |
Iniciar servidor (PORT=20128, API y panel en el mismo puerto) |
omniruta --puerto 3000 |
Establezca el puerto canónico/API en 3000 |
omniruta --mcp |
Inicie el servidor MCP (transporte stdio) |
omniroute --no-abierto |
No abrir automáticamente el navegador |
omniroute --ayuda |
Mostrar ayuda |
Modo de puerto dividido opcional:```bash PORT=20128 DASHBOARD_PORT=20129 omniroute
API: http://localhost:20128/v1
Dashboard: http://localhost:20129
### Long-Running Streaming Timeouts
Para la mayoría de las implementaciones, solo necesita:
| Variables | Predeterminado | Propósito |
| ------------------------ | ----------------------- | --------------------------------------------------------------------------------------------------------------------- |
| `REQUEST_TIMEOUT_MS` | `600000` | Línea de base compartida para recuperación ascendente, tiempos de espera de Undici ocultos, solicitudes de huellas digitales TLS y tiempos de espera de proxy/solicitud de puente API |
| `STREAM_IDLE_TIMEOUT_MS` | hereda `REQUEST_TIMEOUT_MS` | Brecha máxima entre fragmentos de transmisión antes de que OmniRoute cancele la transmisión SSE |
Se conserva la compatibilidad con versiones anteriores: `FETCH_TIMEOUT_MS`, `API_BRIDGE_PROXY_TIMEOUT_MS` y otras variables de tiempo de espera por capa aún funcionan y anulan la línea base compartida.
Las anulaciones avanzadas están disponibles si necesita un control más preciso:| Variables | Predeterminado | Propósito |
| ---------------------------------------- | ------------------------------------------ | -------------------------------------------------------------- |
| `FETCH_TIMEOUT_MS` | hereda `REQUEST_TIMEOUT_MS` | Tiempo de espera total de solicitudes ascendentes utilizado por la señal de aborto de recuperación principal |
| `FETCH_HEADERS_TIMEOUT_MS` | hereda `FETCH_TIMEOUT_MS` | Límite de tiempo de Undici para recibir encabezados de respuesta ascendentes |
| `FETCH_BODY_TIMEOUT_MS` | hereda `FETCH_TIMEOUT_MS` | Límite de tiempo undici entre fragmentos de cuerpo ascendentes (`0` lo desactiva) |
| `FETCH_CONNECT_TIMEOUT_MS` | `30000` | Tiempo de espera de conexión TCP de Undici |
| `FETCH_KEEPALIVE_TIMEOUT_MS` | `4000` | Undici tiempo de espera del socket de mantenimiento activo inactivo |
| `TLS_CLIENT_TIMEOUT_MS` | hereda `FETCH_TIMEOUT_MS` | Tiempo de espera para solicitudes de huellas digitales TLS realizadas a través de `wreq-js` |
| `API_BRIDGE_PROXY_TIMEOUT_MS` | hereda `REQUEST_TIMEOUT_MS` o `30000` | Tiempo de espera para el reenvío de proxy `/v1` desde el puerto API al puerto del panel |
| `API_BRIDGE_SERVER_REQUEST_TIMEOUT_MS` | `max(API_BRIDGE_PROXY_TIMEOUT_MS, 300000)` | Tiempo de espera de solicitud entrante en el servidor puente API |
| `API_BRIDGE_SERVER_HEADERS_TIMEOUT_MS` | `60000` | Tiempo de espera del encabezado entrante en el servidor puente API |
| `API_BRIDGE_SERVER_KEEPALIVE_TIMEOUT_MS` | `5000` | Tiempo de espera de mantenimiento de actividad en el servidor puente API |
| `API_BRIDGE_SERVER_SOCKET_TIMEOUT_MS` | `0` | Tiempo de espera de inactividad del socket en el servidor puente API (`0` lo deshabilita) |
Si ejecuta OmniRoute detrás de Nginx, Caddy, Cloudflare u otro proxy inverso, asegúrese de que el proxy
Los tiempos de espera también son mayores que los tiempos de espera de transmisión/recuperación de OmniRoute.### 2) Connect providers and create your API key
1. Abra Panel → `Proveedores` y conecte al menos un proveedor (clave OAuth o API).
2. Abra Panel → `Endpoints` y cree una clave API.
3. (Opcional) Abra el Panel → `Combos` y configure su cadena alternativa.### 3) Point your coding tool to OmniRoute
```txt
Base URL: http://localhost:20128/v1
API Key: [copy from Endpoint page]
Model: if/kimi-k2-thinking (or any provider/model prefix)
Funciona con Claude Code, Codex CLI, Gemini CLI, Cursor, Cline, OpenClaw, OpenCode y SDK compatibles con OpenAI.### 4) Enable and validate protocols (v2.0)
MCP (para operaciones basadas en herramientas):```bash omniroute --mcp
Luego conecte su cliente MCP a través de `stdio` y pruebe herramientas como:
-`omniroute_get_health`
-`omniroute_list_combos`
**A2A (para flujos de trabajo de agente a agente):**```bash
curl http://localhost:20128/.well-known/agent.json
curl -X POST http://localhost:20128/a2a \
-H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","id":"quickstart","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Give me a short quota summary."}]}}'
5) Validate everything end-to-end (recommended)
npm run test:protocols:e2e
Esta suite valida flujos de clientes MCP y A2A reales frente a una aplicación en ejecución.### Alternative: run from source
cp .env.example .env
npm install
PORT=20128 DASHBOARD_PORT=20129 NEXT_PUBLIC_BASE_URL=http://localhost:20129 npm run dev
Para los usuarios de Void Linux, pueden crear un paquete nativo usando xbps-src. Guarde este bloque como srcpkgs/omniroute/template:```bash
Template file for 'omniroute'
pkgname=omniroute version=3.4.1 revision=1 hostmakedepends="nodejs python3 make" depends="openssl" short_desc="Universal AI gateway with smart routing for multiple LLM providers" maintainer="zenobit zenobit@disroot.org" license="MIT" homepage="https://github.com/diegosouzapw/OmniRoute" distfiles="https://github.com/diegosouzapw/OmniRoute/archive/refs/tags/v${version}.tar.gz" checksum=009400afee90a9f32599d8fe734145cfd84098140b7287990183dde45ae2245b system_accounts="_omniroute" omniroute_homedir="/var/lib/omniroute" export NODE_ENV=production export npm_config_engine_strict=false export npm_config_loglevel=error export npm_config_fund=false export npm_config_audit=false
do_build() { # Determine target CPU arch for node-gyp local _gyp_arch case "$XBPS_TARGET_MACHINE" in aarch64*) _gyp_arch=arm64 ;; armv7*|armv6*) _gyp_arch=arm ;; i686*) _gyp_arch=ia32 ;; *) _gyp_arch=x64 ;; esac
# 1) Install all deps – skip scripts (no network in do_build, native modules
# compiled separately below; better-sqlite3 is serverExternalPackage so
# Next.js does not execute it during next build)
NODE_ENV=development npm ci --ignore-scripts
# 2) Build the Next.js standalone bundle
npm run build
# 3) Copy static assets into standalone
cp -r .next/static .next/standalone/.next/static
[ -d public ] && cp -r public .next/standalone/public || true
# 4) Compile better-sqlite3 native binding for the target architecture.
# Use node-gyp directly so CC/CXX from xbps-src cross-toolchain are used
# without npm altering them.
local _node_gyp=/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js
(cd node_modules/better-sqlite3 && node "$_node_gyp" rebuild --arch="$_gyp_arch")
# 5) Place the compiled binding into the standalone bundle
local _bs3_release=.next/standalone/node_modules/better-sqlite3/build/Release
mkdir -p "$_bs3_release"
cp node_modules/better-sqlite3/build/Release/better_sqlite3.node "$_bs3_release/"
# 6) Remove arch-specific sharp bundles – upstream sets images.unoptimized=true
# so sharp is not used at runtime; x64 .so files would break aarch64 strip
rm -rf .next/standalone/node_modules/@img
# 7) Copy pino runtime deps omitted by Next.js static analysis:
# pino-abstract-transport – required by pino's worker thread
# split2 – dep of pino-abstract-transport
# process-warning – dep of pino itself
for _mod in pino-abstract-transport split2 process-warning; do
cp -r "node_modules/$_mod" .next/standalone/node_modules/
done
}
do_check() { npm run test:unit }
do_install() { vmkdir usr/lib/omniroute/.next
vcopy .next/standalone/. usr/lib/omniroute/.next/standalone
# Prevent removal of empty Next.js app router dirs by the post-install hook
for _d in \
.next/standalone/.next/server/app/dashboard \
.next/standalone/.next/server/app/dashboard/settings \
.next/standalone/.next/server/app/dashboard/providers; do
touch "${DESTDIR}/usr/lib/omniroute/${_d}/.keep"
done
cat > "${WRKDIR}/omniroute" <<'EOF'
#!/bin/sh export PORT="${PORT:-20128}" export DATA_DIR="${DATA_DIR:-${XDG_DATA_HOME:-${HOME}/.local/share}/omniroute}" export LOG_TO_FILE="${LOG_TO_FILE:-false}" mkdir -p "${DATA_DIR}" exec node /usr/lib/omniroute/.next/standalone/server.js "$@" EOF vbin "${WRKDIR}/omniroute" }
post_install() { vlicense LICENSE }
</details>
---
## 🐳 Docker
OmniRoute está disponible como imagen pública de Docker en [Docker Hub](https://hub.docker.com/r/diegosouzapw/omniroute).
**Ejecución rápida:**```bash
docker run -d \
--name omniroute \
--restart unless-stopped \
--stop-timeout 40 \
-p 20128:20128 \
-v omniroute-data:/app/data \
diegosouzapw/omniroute:latest
Con archivo de entorno:```bash
Copy and edit .env first
cp .env.example .env
docker run -d
--name omniroute
--restart unless-stopped
--stop-timeout 40
--env-file .env
-p 20128:20128
-v omniroute-data:/app/data
diegosouzapw/omniroute:latest
**Usando Docker Compose:**```bash
# Base profile (no CLI tools)
docker compose --profile base up -d
# CLI profile (Claude Code, Codex, OpenClaw built-in)
docker compose --profile cli up -d
El soporte del panel para implementaciones de Docker ahora incluye unCloudflare Quick Tunnelcon un solo clic en "Panel → Endpoints". La primera habilitación descarga cloudflared solo cuando es necesario, inicia un túnel temporal hacia su punto final /v1 actual y muestra la URL https://*.trycloudflare.com/v1 generada directamente debajo de su URL pública normal.
Notas:
- Las URL de Quick Tunnel son temporales y cambian después de cada reinicio.
- Los túneles rápidos no se restauran automáticamente después de reiniciar OmniRoute o un contenedor. Vuelva a habilitarlos desde el panel cuando sea necesario.
- La instalación administrada actualmente es compatible con Linux, macOS y Windows en
x64/arm64. - Los túneles rápidos administrados utilizan de forma predeterminada el transporte HTTP/2 para evitar ruidosas advertencias de búfer QUIC UDP en entornos de contenedores restringidos. Configure
CLOUDFLARED_PROTOCOL=quicoautosi desea un transporte diferente. - Las imágenes de Docker agrupan las raíces de CA del sistema y las pasan a "cloudflared" administrado, lo que evita fallas de confianza de TLS cuando el túnel se inicia dentro del contenedor.
- SQLite se ejecuta en modo WAL. Se debe permitir que
docker stopfinalice para que OmniRoute pueda verificar los últimos cambios enstorage.sqlite. - Los archivos Compose incluidos ya establecen un período de gracia de parada de 40 segundos. Si ejecuta la imagen directamente, mantenga
--stop-timeout 40(o similar) para que las paradas manuales no interrumpan la limpieza del apagado. - Configure
CLOUDFLARED_BIN=/absolute/path/to/cloudflaredsi desea que OmniRoute use un binario existente en lugar de descargar uno.
Usando Docker Compose con Caddy (HTTPS Auto-TLS):
OmniRoute se puede exponer de forma segura mediante el aprovisionamiento SSL automático de Caddy. Asegúrese de que el registro DNS A de su dominio apunte a la IP de su servidor.```yaml services: omniroute: image: diegosouzapw/omniroute:latest container_name: omniroute restart: unless-stopped volumes: - omniroute-data:/app/data environment: - PORT=20128 - NEXT_PUBLIC_BASE_URL=https://your-domain.com
caddy: image: caddy:latest container_name: caddy restart: unless-stopped ports: - "80:80" - "443:443" command: caddy reverse-proxy --from https://your-domain.com --to http://omniroute:20128
volumes: omniroute-data:
| Imagen | Etiqueta | Tamaño | Descripción |
| ------------------------ | -------- | ------ | --------------------- |
| `diegosouzapw/omniroute` | `último` | ~250MB | Última versión estable |
| `diegosouzapw/omniroute` | `1.0.3` | ~250MB | Versión actual |---
## 🖥️ Desktop App — Offline & Always-On
> 🆕**¡NUEVO!**OmniRoute ahora está disponible como**aplicación de escritorio nativa**para Windows, macOS y Linux.
Ejecute OmniRoute como una aplicación de escritorio independiente: no se requiere terminal, navegador ni Internet para los modelos locales. La aplicación basada en Electron incluye:
- 🖥️**Ventana nativa**: ventana de aplicación dedicada con integración de la bandeja del sistema
- 🔄**Inicio automático**: inicie OmniRoute al iniciar sesión en el sistema
- 🔔**Notificaciones nativas**: reciba alertas sobre el agotamiento de la cuota o problemas con el proveedor
- ⚡**Instalación con un clic**: NSIS (Windows), DMG (macOS), AppImage (Linux)
- 🌐**Modo sin conexión**: funciona completamente sin conexión con el servidor incluido### Inicio Rápido
```bash
# Development mode
npm run electron:dev
# Build for your platform
npm run electron:build # Current platform
npm run electron:build:win # Windows (.exe)
npm run electron:build:mac # macOS (.dmg) — x64 & arm64
npm run electron:build:linux # Linux (.AppImage)
System Tray
Cuando está minimizado, OmniRoute reside en la bandeja del sistema con acciones rápidas:
- Abrir panel
- Cambiar puerto del servidor
- Salir de la aplicación
📖 Documentación completa: electron/README.md---
💰 Pricing at a Glance
| Nivel | Proveedor | Costo | Restablecer cuota | Mejor para | |
|---|---|---|---|---|---|
| 💳 SUSCRIPCIÓN | Código Claude (Pro) | $20/mes | 5h + semanales | Ya suscrito | |
| Códice (Plus/Pro) | $20-200/mes | 5h + semanales | Usuarios de OpenAI | ||
| Géminis CLI | GRATIS | 180K/mes + 1K/día | ¡Todos! | ||
| Copiloto de GitHub | $10-19/mes | Mensual | Usuarios de GitHub | ||
| 🔑 CLAVE API | NIM de NVIDIA | GRATIS(desarrollador para siempre) | ~40 RPM | Más de 70 modelos abiertos | |
| Cerebras | GRATIS(1 millón de tok/día) | 60.000 TPM / 30 RPM | El más rápido del mundo | ||
| Groq | GRATIS(30 RPM) | 14,4K RPD | Llama/Gemma ultrarrápida | ||
| DeepSeek V3.2 | $0,27/$1,10 por 1 millón | Ninguno | Mejor razonamiento precio/calidad | ||
| xAI Grok-4 Rápido | $0,20/$0,50 por 1M🆕 | Ninguno | Llamada de herramienta + más rápida, ultrabaja | ||
| xAI Grok-4 (estándar) | $0,20/$1,50 por 1 millón 🆕 | Ninguno | Insignia de razonamiento de xAI | ||
| Mistral | Prueba gratuita + pago | Tarifa limitada | IA europea | ||
| Enrutador abierto | Pago por uso | Ninguno | Más de 100 modelos agregados. | ||
| 💰 BARATO | GLM-5 (vía Z.AI) 🆕 | 0,5 dólares/1 millón | Todos los días a las 10 a. m. | Salida de 128K, el buque insignia más nuevo | |
| GLM-4.7 | 0,6 dólares/1 millón | Todos los días a las 10 a. m. | Respaldo presupuestario | ||
| MiniMax M2.5 🆕 | 0,3 $/1 millón de entrada | 5 horas rodantes | Razonamiento + tareas agentes | ||
| MiniMax M2.1 | 0,2 dólares/1 millón | 5 horas rodantes | Opción más barata | ||
| Kimi K2.5 (API Moonshot) 🆕 | Pago por uso | Ninguno | Acceso directo a la API Moonshot | ||
| Kimi K2 | $9/mes fijo | 10 millones de tokens/mes | Costo predecible | ||
| 🆓 GRATIS | Qoder | $0 | Ilimitado | 5 modelos ilimitados | |
| Qwen | $0 | Ilimitado | 4 modelos ilimitados | ||
| kiro | $0 | Ilimitado | Claude Sonnet/Haiku (constructor de AWS) | ||
| LongCat Flash Lite 🆕 | $0(50 millones de tok/día 🔥) | 1 RPS | La cuota gratuita más grande del mundo | ||
| Polinizaciones AI 🆕 | $0(no se necesita clave) | 1 solicitud/15 s | GPT-5, Claude, DeepSeek, Llama 4 | ||
| IA de los trabajadores de Cloudflare 🆕 | $0(10K Neuronas/día) | ~150 resp/día | Más de 50 modelos, ventaja global | ||
| Escala de IA 🆕 | $0(1 millón de tokens en total) | Tarifa limitada | UE/RGPD, Qwen3 235B, Llama 70B | > 🆕**Nuevos modelos agregados (marzo de 2026):**Familia Grok-4 Fast a $0,20/$0,50/M (comparado a 1143 ms: 30 % más rápido que Gemini 2.5 Flash), GLM-5 a través de Z.AI con salida de 128 K, razonamiento MiniMax M2.5, precios actualizados de DeepSeek V3.2, Kimi K2.5 a través de API directa Moonshot. |
💡 Pila combinada de $0: la configuración gratuita completa:```
🆓 Ultimate Free Stack 2026 — 11 Providers, $0 Forever
Kiro (kr/) → Claude Sonnet/Haiku UNLIMITED Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 UNLIMITED LongCat Lite (lc/) → LongCat-Flash-Lite — 50M tokens/day 🔥 Pollinations (pol/) → GPT-5, Claude, DeepSeek, Llama 4 — no key needed Qwen (qw/) → qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next UNLIMITED Gemini (gemini/) → Gemini 2.5 Flash — 1,500 req/day free API key Cloudflare AI (cf/) → Llama 70B, Gemma 3, Mistral — 10K Neurons/day Scaleway (scw/) → Qwen3 235B, Llama 70B — 1M free tokens (EU) Groq (groq/) → Llama/Gemma ultra-fast — 14.4K req/day NVIDIA NIM (nvidia/) → 70+ open models — 40 RPM forever Cerebras (cerebras/) → Llama/Qwen world-fastest — 1M tok/day
**Costo cero. Nunca deja de codificar.**Configure esto como un combo OmniRoute y todos los respaldos se realizarán automáticamente, sin cambios manuales.---
---
## 🆓 Free Models — What You Actually Get
> Todos los modelos a continuación son**100% gratuitos y no se requiere tarjeta de crédito**. OmniRoute realiza rutas automáticas entre ellos cuando se agota una cuota; combínelos todos para obtener una combinación irrompible de $0.### 🔵 CLAUDE MODELS (via Kiro — AWS Builder ID)
| Modelo | Prefijo | Límite | Límite de tarifa |
| ------------------- | ------ | ------------- | --------------------- |
| `claude-soneto-4.5` | `kr/` |**Ilimitado**| No se ha informado de un límite diario |
| `claude-haiku-4.5` | `kr/` |**Ilimitado**| No se ha informado de un límite diario |
| `claude-opus-4.6` | `kr/` |**Ilimitado**| Última obra a través de Kiro |### 🟢 QODER MODELS (Free PAT via qodercli)
| Modelo | Prefijo | Límite | Límite de tarifa |
| ------------------ | ------ | ------------- | --------------- |
| `kimi-k2-pensamiento` | `si/` |**Ilimitado**| No hay límite reportado |
| `qwen3-codificador-plus` | `si/` |**Ilimitado**| No hay límite reportado |
| `deepseek-r1` | `si/` |**Ilimitado**| No hay límite reportado |
| `minimax-m2.1` | `si/` |**Ilimitado**| No hay límite reportado |
| `kimi-k2` | `si/` |**Ilimitado**| No hay límite reportado |
> Método de conexión recomendado:**Token de acceso personal + `qodercli`**. El navegador OAuth es
> experimental y deshabilitado de forma predeterminada a menos que las variables de entorno `QODER_OAUTH_*` estén configuradas.### 🟡 QWEN MODELS (Device Code Auth)
| Modelo | Prefijo | Límite | Límite de tarifa |
| ------------------- | ------ | ------------- | ------------------- |
| `qwen3-codificador-plus` | `qw/` |**Ilimitado**| No hay límite reportado |
| `qwen3-codificador-flash` | `qw/` |**Ilimitado**| No hay límite reportado |
| `qwen3-codificador-siguiente` | `qw/` |**Ilimitado**| No hay límite reportado |
| `modelo-visión` | `qw/` |**Ilimitado**| Multimodal (imágenes) |### 🟣 GEMINI CLI (Google OAuth)
| Modelo | Prefijo | Límite | Límite de tarifa |
| ------------------------ | ------ | --------------------------- | ------------- |
| `gemini-3-flash-preview` | `gc/` |**180.000 tok/mes**+ 1.000/día | Reinicio mensual |
| `géminis-2.5-pro` | `gc/` | 180K/mes (piscina compartida) | Alta calidad |### ⚫ NVIDIA NIM (Free API Key — build.nvidia.com)
| Nivel | Límite diario | Límite de tarifa | Notas |
| ---------- | ------------ | ----------- | ------------------------------------------------------ |
| Gratis (desarrollador) | Sin límite de fichas |**~40 RPM**| Más de 70 modelos; transición a límites de tasa pura a mediados de 2025 |
Modelos gratuitos populares: `moonshotai/kimi-k2.5` (Kimi K2.5), `z-ai/glm4.7` (GLM 4.7), `deepseek-ai/deepseek-v3.2` (DeepSeek V3.2), `nvidia/llama-3.3-70b-instruct`, `deepseek/deepseek-r1`### ⚪ CEREBRAS (Free API Key — inference.cerebras.ai)
| Nivel | Límite diario | Límite de tarifa | Notas |
| ---- | ----------------- | ---------------- | ------------------------------------- |
| Gratis |**1 millón de tokens/día**| 60.000 TPM / 30 RPM | La inferencia LLM más rápida del mundo; se reinicia diariamente |
Disponible gratis: `llama-3.3-70b`, `llama-3.1-8b`, `deepseek-r1-distill-llama-70b`### 🔴 GROQ (Free API Key — console.groq.com)
| Nivel | Límite diario | Límite de tarifa | Notas |
| ---- | ------------- | ---------------- | ----------------------------------------- |
| Gratis |**14,4K RPD**| 30 RPM por modelo | Sin tarjeta de crédito; 429 en límite, sin cargo |
Disponible gratis: `llama-3.3-70b-versatile`, `gemma2-9b-it`, `mixtral-8x7b`, `whisper-large-v3`### 🔴 LONGCAT AI (Free API Key — longcat.chat) 🆕
| Modelo | Prefijo | Cuota Diaria Gratuita | Notas |
| ----------------------- | ------ | ----------------- | ----------------------- |
| `LongCat-Flash-Lite` | `lc/` |**50 millones de tokens**💥 | La cuota gratuita más grande de la historia |
| `LongCat-Flash-Chat` | `lc/` | Fichas de 500.000 | Chat multiturno |
| `LongCat-Flash-Pensamiento` | `lc/` | Fichas de 500.000 | Razonamiento / CoT |
| `LongCat-Flash-Thinking-2601` | `lc/` | Fichas de 500.000 | Versión de enero de 2026 |
| `LongCat-Flash-Omni-2603` | `lc/` | Fichas de 500.000 | Multimodal |
> 100% gratis mientras estés en la versión beta pública. Regístrese en [longcat.chat](https://longcat.chat) con correo electrónico o teléfono. Se reinicia diariamente a las 00:00 UTC.### 🟢 POLLINATIONS AI (No API Key Required) 🆕
| Modelo | Prefijo | Límite de tarifa | Proveedor detrás |
| ---------- | ------ | ---------- | ------------------ |
| `openai` | `pol/` | 1 solicitud/15 s | GPT-5 |
| `claude` | `pol/` | 1 solicitud/15 s | Claude antrópico |
| `géminis` | `pol/` | 1 solicitud/15 s | Google Géminis |
| `búsqueda profunda` | `pol/` | 1 solicitud/15 s | Búsqueda profunda V3 |
| `llama` | `pol/` | 1 solicitud/15 s | Meta Llama 4 Explorador |
| `mistral` | `pol/` | 1 solicitud/15 s | Mistral IA |
> ✨**Cero fricción:**Sin registro, sin clave API. Agregue el proveedor de polinizaciones con un campo clave vacío y funcionará de inmediato.### 🟠 CLOUDFLARE WORKERS AI (Free API Key — cloudflare.com) 🆕
| Nivel | Neuronas Diarias | Uso equivalente | Notas |
| ---- | ------------- | --------------------------------------- | ----------------------- |
| Gratis |**10.000**| ~150 LLM resp / audio 500s / 15K incrustaciones | Ventaja global, más de 50 modelos |
Modelos gratuitos populares: `@cf/meta/llama-3.3-70b-instruct`, `@cf/google/gemma-3-12b-it`, `@cf/openai/whisper-large-v3-turbo` (¡audio gratis!), `@cf/qwen/qwen2.5-coder-15b-instruct`
> Requiere token API + ID de cuenta de [dash.cloudflare.com](https://dash.cloudflare.com). Almacene la identificación de la cuenta en la configuración del proveedor.### 🟣 SCALEWAY AI (1M Free Tokens — scaleway.com) 🆕
| Nivel | Cuota Gratuita | Ubicación | Notas |
| ---- | ------------- | ------------ | ----------------------------------- |
| Gratis |**1 millón de tokens**| 🇫🇷 París, UE | No se necesita tarjeta de crédito dentro de los límites |
Disponible gratis: `qwen3-235b-a22b-instruct-2507` (Qwen3 235B!), `llama-3.1-70b-instruct`, `mistral-small-3.2-24b-instruct-2506`, `deepseek-v3-0324`
> Cumple con la UE/GDPR. Obtenga la clave API en [console.scaleway.com](https://console.scaleway.com).
>**💡 El paquete gratuito definitivo (11 proveedores, $0 para siempre):**
>
> ```
> Kiro (kr/) → Claude Soneto/Haiku ILIMITADO
> Qoder (if/) → kimi-k2-thinking, qwen3-coder-plus, deepseek-r1 ILIMITADO
> LongCat Lite (lc/) → LongCat-Flash-Lite — 50 millones de tokens/día 🔥
> Polinizaciones (pol/) → GPT-5, Claude, DeepSeek, Llama 4: no se necesita clave
> Qwen (qw/) → modelos de codificador qwen3 ILIMITADOS
> Gemini (gemini/) → Gemini 2.5 Flash: 1.500 solicitudes/día gratis
> Cloudflare AI (cf/) → Más de 50 modelos: 10.000 neuronas/día
> Scaleway (scw/) → Qwen3 235B, Llama 70B — 1 millón de tokens gratis (UE)
> Groq (groq/) → Llama/Gemma — 14,4K solicitudes/día ultrarrápidas
> NVIDIA NIM (nvidia/) → Más de 70 modelos abiertos: 40 RPM para siempre
> Cerebras (cerebras/) → Llama/Qwen más rápido del mundo: 1 millón de tok/día
> ```## 🎙️ Free Transcription Combo
> Transcribe cualquier audio/video por**$0**: Deepgram ofrece $200 gratis, un respaldo de $50 para AssemblyAI y Groq Whisper como respaldo de emergencia ilimitado.
| Proveedor | Créditos gratis | Mejor modelo | Límite de tarifa |
| ----------------- | ---------------------- | -------------------------------------------- | ---------------------------- |
| 🟢**Deepgrama**|**$200 gratis**(registro) | `nova-3`: máxima precisión, más de 30 idiomas | Sin límite de RPM en créditos gratis |
| 🔵**AsambleaAI**|**$50 gratis**(registro) | `universal-3-pro` — capítulos, sentimiento, PII | Sin límite de RPM en créditos gratis |
| 🔴**Groq**|**Gratis para siempre**| `whisper-large-v3` — OpenAI Whisper | 30 RPM (velocidad limitada) |
**Combo sugerido en `/dashboard/combos`:**```
Name: free-transcription
Strategy: Priority
Nodes:
[1] deepgram/nova-3 → uses $200 free first
[2] assemblyai/universal-3-pro → fallback when Deepgram credits run out
[3] groq/whisper-large-v3 → free forever, emergency fallback
Luego, en /dashboard/media → pestañaTranscripción: cargue cualquier archivo de audio o video → seleccione su punto final combinado → obtenga la transcripción en formatos compatibles.## 💡 Key Features
OmniRoute v2.0 está diseñado como una plataforma operativa, no solo como un proxy de retransmisión.### 🆕 New — ClawRouter-Inspired Improvements (Mar 2026)
| Característica | Qué hace | |
|---|---|---|
| ⚡Familia rápida Grok-4 | Modelos xAI a $0,20/$0,50/M: comparado con 1143 ms (30% más rápido que Gemini 2.5 Flash) | |
| 🧠GLM-5 vía Z.AI | Contexto de salida de 128.000 dólares, 0,5 dólares/1 millón: el buque insignia más nuevo de la familia GLM | |
| 🔮MiniMax M2.5 | Razonamiento + tareas de agente a 0,30 USD/1 millón: mejora significativa desde M2.1 | |
| 🎯marcador de llamadas de herramientas por modelo | toolCalling: verdadero/falso por modelo en el registro: AutoCombo omite los modelos que no son compatibles con herramientas |
|
| 🌍Detección de intención multilingüe | Palabras clave PT/ZH/ES/AR en la puntuación AutoCombo: mejor selección de modelos para contenido que no está en inglés | |
| 📊Retrocesos impulsados por los índices de referencia | Latencia p95 real de solicitudes en vivo alimenta puntuación combinada: AutoCombo aprende de datos reales | |
| 🔁Solicitar deduplicación | Ventana de deduplicación basada en hash de contenido: segura para múltiples agentes, evita cargos duplicados | |
| 🔌Estrategia de enrutador conectable | Interfaz extensible RouterStrategy: agregue lógica de enrutamiento personalizada como complementos |
### 🚀 Previous v2.0.9+ — Playground, CLI Fingerprints & ACP |
| Característica | Qué hace | |
|---|---|---|
| 🎮Patio de juegos modelo | Página de panel para probar cualquier modelo directamente: selectores de proveedor/modelo/punto final, editor Monaco, transmisión, cancelación, sincronización | |
| 🔏Coincidencia de huellas dactilares CLI | Orden de encabezado/cuerpo por proveedor para que coincida con las firmas CLI nativas: alterne por proveedor en Configuración > Seguridad.Se conserva la IP de tu proxy | |
| 🤝Soporte ACP (Protocolo cliente-agente) | Descubrimiento de agentes CLI (Codex, Claude, Goose, Gemini CLI, OpenClaw y 9 más), generador de procesos, punto final /api/acp/agents |
|
| 🤖Panel de agentes de ACP | Página Depurar › Agentes: cuadrícula de 14 agentes con estado de instalación, versión y formulario de agente personalizado para cualquier herramienta CLI. Los usuarios deOpenCodeobtienen un botón "Descargar opencode.json" que genera automáticamente una configuración lista para usar con todos los modelos disponibles. | |
🔧Enrutamiento del modelo personalizado apiFormat |
Los modelos personalizados con apiFormat: "responses" ahora se enrutan correctamente al traductor de la API de Respuestas |
|
| 🏢Aislamiento del espacio de trabajo del Codex | Múltiples espacios de trabajo de Codex por correo electrónico: OAuth separa correctamente las conexiones por ID del espacio de trabajo | |
| 🔄Actualización automática electrónica | La aplicación de escritorio busca actualizaciones + instalación automática al reiniciar | ### 🤖 Agent & Protocol Operations (v2.0) |
| Característica | Qué hace | |
|---|---|---|
| 🔧Servidor MCP (25 herramientas) | Herramientas IDE/agente a través de 3 transportes: stdio, SSE (/api/mcp/sse), Streamable HTTP (/api/mcp/stream). 18 núcleos + 3 memorias + 4 herramientas de habilidades |
|
| 🤝Servidor A2A (JSON-RPC + SSE) | Ejecución de tareas de agente a agente con flujos de sincronización y streaming | |
| 🧭Página de puntos finales consolidados | Página de administración con pestañas con pestañas Endpoint Proxy, MCP, A2A y API Endpoints | |
| 🎚️Activación/desactivación de servicio | Interruptores ON/OFF para MCP y A2A con persistencia de configuración (predeterminado: OFF) | |
| 🛰️Latido del tiempo de ejecución de MCP | Estado real del proceso (pid, tiempo de actividad, antigüedad del latido, transporte, modo de alcance) | |
| 📋Pista de auditoría de MCP | Registros de auditoría filtrables con éxito/fracaso y atribución de claves | |
| 🔐Cumplimiento del alcance del MCP | 10 permisos de alcance granular para acceso controlado a herramientas | |
| 📡Gestión del ciclo de vida de tareas A2A | Enumerar/filtrar tareas, inspeccionar eventos/artefactos, cancelar tareas en ejecución | |
| 📋Descubrimiento de tarjeta de agente | /.well-known/agent.json para el descubrimiento automático de clientes |
|
| 🧪Arnés de prueba del protocolo E2E | El cliente real MCP SDK + A2A fluye en test:protocols:e2e |
|
| ⚙️Controles operativos | Cambie el combo, aplique perfiles de resiliencia, reinicie los disyuntores desde una superficie de control | ### 🧠 Routing & Intelligence |
| Característica | Qué hace | |
|---|---|---|
| 🎯Retroceso inteligente de 4 niveles | Ruta automática: Suscripción → Clave API → Barato → Gratis | |
| 📊Seguimiento de cuotas en tiempo real | Recuento de tokens en vivo + reinicio de cuenta regresiva por proveedor | |
| 🔄Traducción de formato | OpenAI ↔ Claude ↔ Gemini ↔ Respuestas con conversiones seguras para esquemas | |
| 👥Soporte multicuenta | Múltiples cuentas por proveedor con selección inteligente | |
| 🔄Actualización automática de tokens | Los tokens de OAuth se actualizan automáticamente con un reintento | |
| 🎨Combinaciones personalizadas | 9 estrategias de equilibrio + control de la cadena alternativa | |
| 🌐Enrutador comodín | proveedor/* enrutamiento dinámico |
|
| 🧠Pensando en los controles presupuestarios | Límites de razonamiento de transferencia, automático, personalizado y adaptativo | |
| 🔀Alias de modelo | Seguridad de migración y alias de modelo integrado y personalizado | |
| ⚡Degradación del fondo | Dirija tareas en segundo plano de baja prioridad a modelos más baratos | |
| 🧪Enrutamiento inteligente basado en tareas | Modelo de selección automática por tipo de contenido (codificación/visión/análisis/resumen) | |
| 🔄Flujos de trabajo del agente A2A | Orquestador FSM determinista para ejecuciones de agentes de varios pasos con estado | |
| 🔀Enrutamiento adaptativo | Anulación de estrategia dinámica basada en el volumen de tokens y la complejidad del aviso | |
| 🎲Diversidad de proveedores | Puntuación de entropía de Shannon que equilibra la distribución del tráfico de combo automático | |
| 💬Inyección de indicación del sistema | Controles de comportamiento global aplicados consistentemente | |
| 📄Compatibilidad API de respuestas | Soporte completo /v1/responses para Codex y flujos de trabajo agentes avanzados |
### 🎵 Multi-Modal APIs |
| Característica | Qué hace | |
|---|---|---|
| 🖼️Generación de imágenes | /v1/images/generaciones con backends locales y en la nube |
|
| 📐Incrustaciones | /v1/embeddings para búsqueda y canales RAG |
|
| 🎤Transcripción de audio | /v1/audio/transcriptions — 7 proveedores (Deepgram Nova 3, AssemblyAI, Groq Whisper, HuggingFace, ElevenLabs, OpenAI, Azure), detección automática de idioma, compatibilidad con MP4/MP3/WAV |
|
| 🔊Texto a voz | /v1/audio/speech — 10 proveedores (ElevenLabs, OpenAI, Deepgram, Cartesia, PlayHT, HuggingFace, Nvidia NIM, Inworld, Coqui, Tortoise) con mensajes de error correctos |
|
| 🎬Generación de vídeo | /v1/videos/generaciones (flujos de trabajo ComfyUI + SD WebUI) |
|
| 🎵Generación Musical | /v1/music/generaciones (flujos de trabajo de ComfyUI) |
|
| 🛡️Moderaciones | /v1/moderaciones controles de seguridad |
|
| 🔀Reclasificación | /v1/rerank para puntuación de relevancia |
|
| 🔍Búsqueda web🆕 | /v1/search — 5 proveedores (Serper, Brave, Perplexity, Exa, Tavily), más de 6500 gratis/mes, conmutación por error automática, caché |
### 🛡️ Resilience, Security & Governance |
| Característica | Qué hace | |
|---|---|---|
| 🔌Disyuntores | Viaje/recuperación por modelo con controles de umbral | |
| 🎯Modelos compatibles con endpoints | Los modelos personalizados declaran puntos finales compatibles + formato API | |
| 🛡️Rebaño Anti-Truenos | Mutex + protecciones de semáforo en eventos de reintento/tasa | |
| 🧠Caché semántico + firma | Reducción de costos/latencia con dos capas de caché | |
| ⚡Solicitar Idempotencia | Ventana de protección duplicada | |
| 🔒Suplantación de huellas dactilares TLS | Huella digital TLS similar a la de un navegador:reduce la detección de bots y el marcado de cuentas | |
| 🔏Coincidencia de huellas dactilares CLI | Coincide con las firmas de solicitudes CLI nativas:reduce el riesgo de prohibición y al mismo tiempo preserva la IP del proxy | |
| 🌐Filtrado de IP | Control de lista blanca/lista negra para implementaciones expuestas | |
| 📊Límites de tarifas editables | Límites globales/a nivel de proveedor configurables con persistencia | |
| 📉Degradación elegante | Respaldos de capacidad multicapa que protegen las operaciones centrales de la puerta de enlace | |
| 📜Pista de auditoría de configuración | Seguimiento de cambios basado en diferencias que evita la deriva operativa con reversiones simples | |
| ⏳Sincronización de salud del proveedor | Monitoreo proactivo de vencimiento de tokens que activa alertas antes de fallas de autorización | |
| 🚪Desactivación automática de cuentas prohibidas | Disyuntor operativo que sella automáticamente cuentas simbólicas bloqueadas permanentemente | |
| 🔑Administración de claves API + Alcance | Emisión/rotación de claves segura y controles de modelo/proveedor | |
| 👁️Revelación de clave API con alcance🆕 | Recuperación voluntaria de claves API a través de ALLOW_API_KEY_REVEAL |
|
🛡️Protegido /modelos |
Puerta de autenticación opcional y ocultación de proveedores para el catálogo de modelos | ### 📊 Observability & Analytics |
| Característica | Qué hace | |
|---|---|---|
| 📝Solicitud + Registro de proxy | Solicitud/respuesta completa y registro de proxy | |
| 📉Registros detallados transmitidos🆕 | Reconstruye secuencias de carga útil SSE limpiamente en la interfaz de usuario | |
| 📋Panel de registros unificado | Vistas de solicitud, proxy, auditoría y consola en una sola página | |
| 🔍Solicitar telemetría | Latencia p50/p95/p99 y seguimiento de solicitudes | |
| 🏥Panel de salud | Tiempo de actividad, estados de los interruptores, bloqueos, estadísticas de caché | |
| 💰Seguimiento de costos | Controles de presupuesto y visibilidad de precios por modelo | |
| 📈Visualizaciones analíticas | Información sobre el uso de modelos/proveedores y vistas de tendencias | |
| 🧪Marco de evaluación | Prueba de set dorado con estrategias de partido configurables | |
| 📡Diagnóstico en vivo🆕 | Omisión de caché semántica para pruebas combinadas en vivo precisas | ### ☁️ Deployment & Platform |
| Característica | Qué hace | |
|---|---|---|
| 🌐Implementar en cualquier lugar | Localhost, VPS, Docker, entornos Cloud | |
| 🚇Túnel Cloudflare🆕 | Integración de Quick Tunnel con un clic desde el panel | |
| 🔑Filtrado de modelo de clave API | Respuesta nativa /v1/models filtrada mediante roles de contexto de portador asignados | |
| ⚡Omisión de caché inteligente | Heurísticas TTL configurables y controles de recuperación forzada | |
| 🔄Copia de seguridad/Restaurar | Flujos de exportación/importación y recuperación ante desastres | |
| 🧙Asistente de incorporación | Configuración guiada de primera ejecución | |
| 🔧Panel de herramientas CLI | Configuración con un clic para herramientas de codificación populares | |
| 🎮Patio de juegos modelo | Pruebe cualquier proveedor/modelo/punto final desde el panel | |
| 🔏Alternar huella digital CLI | Coincidencia de huellas dactilares por proveedor en Configuración > Seguridad | |
| 🌐i18n (30 idiomas) | Panel completo + compatibilidad con idiomas de documentos con cobertura RTL | |
| 🧹Borrar todos los modelos | Borrado de la lista de modelos con un solo clic en los detalles del proveedor | |
| 👁️Controles de la barra lateral🆕 | Ocultar componentes e integraciones desde Configuración de apariencia | |
| 📋Plantillas de problemas | Plantillas de GitHub estandarizadas para errores y funciones | |
| 📂Directorio de datos personalizado | Anulación de DATA_DIR para la ubicación de almacenamiento |
### Feature Deep Dive |
Smart fallback with practical cost control
Combo: "my-coding-stack"
1. cc/claude-opus-4-6
2. nvidia/llama-3.3-70b
3. glm/glm-4.7
4. if/kimi-k2-thinking
Cuando falla la cuota, la tasa o el estado, OmniRoute pasa automáticamente al siguiente candidato sin necesidad de cambiar manualmente.#### Protocol management that is visible and operable
- MCP + A2A se pueden descubrir en la interfaz de usuario y en los documentos (no están ocultos)
- Las API de estado del protocolo exponen datos operativos en vivo (
/api/mcp/*,/api/a2a/*) - Los paneles incluyen acciones para las operaciones del día 2 (cambio de combo, reinicio de interruptores, cancelación de tareas)#### Translator + validation workflow
El área de Traductor incluye:
-Parque infantil: solicitar comprobaciones de transformación -Chat Tester: solicitud/respuesta completa de ida y vuelta -Banco de pruebas: varios casos en una ejecución -Live Monitor: vista del tráfico en tiempo real
Además de validación de protocolo con clientes reales a través de npm run test:protocols:e2e.
📖MCP Server README— Referencia de herramientas, configuraciones IDE y ejemplos de clientes
📖README del servidor A2A— Habilidades, métodos JSON-RPC, transmisión y ciclo de vida de las tareas## 🧪 Evaluations (Evals)
OmniRoute incluye un marco de evaluación integrado para probar la calidad de la respuesta de LLM frente a un conjunto de referencia. Acceda a él a través deAnálisis → Evaluacionesen el panel.### Built-in Golden Set
El "OmniRoute Golden Set" precargado contiene casos de prueba para:
- Saludos, matemáticas, geografía, generación de código.
- Cumplimiento del formato JSON, traducción, generación de rebajas.
- Rechazo de seguridad (contenido nocivo), conteo, lógica booleana### Evaluation Strategies
| Estrategia | Descripción | Ejemplo | |
|---|---|---|---|
exacto |
La salida debe coincidir exactamente | "4" |
|
contiene |
La salida debe contener una subcadena (no distingue entre mayúsculas y minúsculas) | "París" |
|
expresión regular |
La salida debe coincidir con el patrón de expresiones regulares | "1.*2.*3" |
|
personalizado |
La función JS personalizada devuelve verdadero/falso | (salida) => salida.longitud > 10 |
--- |
📖 Setup Guide
Protocol Setup (MCP + A2A)
Inicie el transporte MCP en modo stdio:```bash omniroute --mcp
Flujo de validación recomendado:
1. Conecte su cliente MCP a través de stdio.
2. Ejecute `omniroute_get_health`.
3. Ejecute `omniroute_list_combos`.
4. Abra `/dashboard/mcp` para confirmar el latido, la actividad y la auditoría.
API útiles para la automatización:
- `OBTENER /api/mcp/status`
- `OBTENER /api/mcp/tools`
- `OBTENER /api/mcp/auditoría`
- `OBTENER /api/mcp/audit/stats`</details>
<detalles>
<summary><b>🤝 Configuración de A2A (Agent2Agent)</b></summary>
Descubra el agente:```bash
curl http://localhost:20128/.well-known/agent.json
Enviar una tarea:```bash
curl -X POST http://localhost:20128/a2a
-H 'content-type: application/json'
-d '{"jsonrpc":"2.0","id":"setup-a2a","method":"message/send","params":{"skill":"quota-management","messages":[{"role":"user","content":"Summarize quota status."}]}}'
Gestionar el ciclo de vida:
- `OBTENER /api/a2a/status`
- `OBTENER /api/a2a/tareas`
- `OBTENER /api/a2a/tasks/:id`
- `POST /api/a2a/tasks/:id/cancelar`
Interfaz de usuario operativa:
- `/dashboard/a2a` para observabilidad de tarea/estado/corriente y acciones de humo</details>
<detalles>
<summary><b>🧪 Validación de protocolo de un extremo a otro</b></summary>
Validar ambos protocolos con clientes reales:```bash
npm run test:protocols:e2e
Esto verifica:
- Conexión/lista/llamada del cliente MCP SDK
- Descubrimiento A2A/enviar/transmitir/obtener/cancelar
- Verificación cruzada de datos en auditoría MCP y API de administración de tareas A2A
Dashboard → Providers → Connect Claude Code
→ OAuth login → Auto token refresh
→ 5-hour + weekly quota tracking
Models:
cc/claude-opus-4-6
cc/claude-sonnet-4-5-20250929
cc/claude-haiku-4-5-20251001
**Consejo profesional:**Utilice Opus para tareas complejas y Sonnet para mayor velocidad. ¡OmniRoute realiza un seguimiento de la cuota por modelo!### OpenAI Codex (Plus/Pro)
Dashboard → Providers → Connect Codex
→ OAuth login (port 1455)
→ 5-hour + weekly reset
Models:
cx/gpt-5.2-codex
cx/gpt-5.1-codex-max
Codex Account Limit Management (5h + Weekly)
Cada cuenta de Codex ahora tiene políticas para alternar en Panel -> Proveedores:
5h(ON/OFF): aplica la política de umbral de ventana de 5 horas.Semanal(ON/OFF): aplica la política de umbral de ventana semanal.- Comportamiento de umbral: cuando una ventana habilitada alcanza >=90% de uso, esa cuenta se omite.
- Comportamiento de rotación: OmniRoute dirige automáticamente a la siguiente cuenta elegible del Codex.
- Comportamiento de reinicio: cuando pasa el tiempo
resetAtdel proveedor, la cuenta vuelve a ser elegible automáticamente.
Escenarios:
5h ON+Weekly ON: la cuenta se omite cuando cualquiera de las ventanas alcanza el umbral.5h OFF+Weekly ON: solo el uso semanal puede bloquear la cuenta.5h ON+Weekly OFF: solo el uso de 5 horas puede bloquear la cuenta.resetAtpasó: la cuenta vuelve a ingresar a la rotación automáticamente (no se puede volver a habilitar manualmente).### Gemini CLI (FREE 180K/month!)
Dashboard → Providers → Connect Gemini CLI
→ Google OAuth
→ 180K completions/month + 1K/day
Models:
gc/gemini-3-flash-preview
gc/gemini-2.5-pro
Mejor valor:¡Enorme nivel gratuito! Utilice esto antes de los niveles pagos.### GitHub Copilot
Dashboard → Providers → Connect GitHub
→ OAuth via GitHub
→ Monthly reset (1st of month)
Models:
gh/gpt-5
gh/claude-4.5-sonnet
gh/gemini-3.1-pro-preview
- Regístrate: build.nvidia.com
- Obtenga una clave API gratuita (1000 créditos de inferencia incluidos)
- Panel de control → Agregar proveedor → NVIDIA NIM:
- Clave API:
nvapi-tu-clave
- Clave API:
Modelos:nvidia/llama-3.3-70b-instruct, nvidia/mistral-7b-instruct y más de 50
**Consejo profesional:**API compatible con OpenAI: ¡funciona perfectamente con la traducción de formatos de OmniRoute!### DeepSeek
- Regístrate: platform.deepseek.com
- Obtenga la clave API
- Panel de control → Agregar proveedor → DeepSeek
Modelos:deepseek/deepseek-chat, deepseek/deepseek-coder### Groq (Free Tier Available!)
- Regístrese: console.groq.com
- Obtenga la clave API (nivel gratuito incluido)
- Panel de control → Agregar proveedor → Groq
Modelos:groq/llama-3.3-70b, groq/mixtral-8x7b
**Consejo profesional:**Inferencia ultrarrápida: ¡lo mejor para codificación en tiempo real!### OpenRouter (100+ Models)
- Regístrate: openrouter.ai
- Obtenga la clave API
- Panel de control → Agregar proveedor → OpenRouter
**Modelos:**Acceda a más de 100 modelos de los principales proveedores a través de una única clave API.
Comportamiento del panel:Los modelos OpenRouter se administran desdeModelos disponibles. La adición manual, la importación y la sincronización automática actualizan la misma lista.
- Regístrate: Zhipu AI
- Obtenga la clave API del plan de codificación
- Panel de control → Agregar clave API:
- Proveedor:
glm - Clave API:
tu-clave
- Proveedor:
Uso:glm/glm-4.7
Consejo profesional:¡El plan de codificación ofrece una cuota triple a un costo de 1/7! Reiniciar diariamente a las 10:00 a.m.### MiniMax M2.1 (5h reset, $0.20/1M)
- Regístrate: MiniMax
- Obtenga la clave API
- Panel de control → Agregar clave API
Uso:minimax/MiniMax-M2.1
Consejo profesional:¡La opción más barata para contexto largo (1 millón de tokens)!### Kimi K2 ($9/month flat)
- Suscríbete: Moonshot AI
- Obtenga la clave API
- Panel de control → Agregar clave API
Uso:kimi/kimi-latest
Consejo profesional:¡Fijo $9/mes por 10 millones de tokens = $0,90/1 millón de costo efectivo!
Dashboard → Connect Qoder
→ Qoder OAuth login
→ Unlimited usage
Models:
if/kimi-k2-thinking
if/qwen3-coder-plus
if/glm-4.7
if/minimax-m2
if/deepseek-r1
Qwen (4 FREE models via Device Code)
Dashboard → Connect Qwen
→ Device code authorization
→ Unlimited usage
Models:
qw/qwen3-coder-plus
qw/qwen3-coder-flash
Kiro (Claude FREE)
Dashboard → Connect Kiro
→ AWS Builder ID or Google/GitHub
→ Unlimited usage
Models:
kr/claude-sonnet-4.5
kr/claude-haiku-4.5
Dashboard → Combos → Create New
Name: premium-coding
Models:
1. cc/claude-opus-4-6 (Subscription primary)
2. glm/glm-4.7 (Cheap backup, $0.6/1M)
3. minimax/MiniMax-M2.1 (Cheapest fallback, $0.20/1M)
Use in CLI: premium-coding
Example 2: Free-Only (Zero Cost)
Name: free-combo
Models:
1. gc/gemini-3-flash-preview (180K free/month)
2. if/kimi-k2-thinking (unlimited)
3. qw/qwen3-coder-plus (unlimited)
Cost: $0 forever!
Settings → Models → Advanced:
OpenAI API Base URL: http://localhost:20128/v1
OpenAI API Key: [from OmniRoute dashboard]
Model: cc/claude-opus-4-6
Claude Code
Utilice la páginaHerramientas CLIen el panel para realizar la configuración con un solo clic o edite ~/.claude/settings.json manualmente.### Codex CLI
export OPENAI_BASE_URL="http://localhost:20128"
export OPENAI_API_KEY="your-omniroute-api-key"
codex "your prompt"
OpenClaw
Opción 1: Panel de control (recomendado):``` Dashboard → CLI Tools → OpenClaw → Select Model → Apply
**Opción 2 — Manual:**Editar `~/.openclaw/openclaw.json`:```json
{
"models": {
"providers": {
"omniroute": {
"baseUrl": "http://127.0.0.1:20128/v1",
"apiKey": "sk_omniroute",
"api": "openai-completions"
}
}
}
}
**Nota:**OpenClaw solo funciona con OmniRoute local. Utilice
127.0.0.1en lugar delocalhostpara evitar problemas de resolución de IPv6.### Cline / Continue / RooCode
Settings → API Configuration:
Provider: OpenAI Compatible
Base URL: http://localhost:20128/v1
API Key: [from OmniRoute dashboard]
Model: if/kimi-k2-thinking
OpenCode
**Paso 1:**Agregue OmniRoute como proveedor personalizado:```bash opencode /connect
Select "Other" → Enter ID: "omniroute" → Enter your OmniRoute API key
**Paso 2:**Crea/edita `opencode.json` en la raíz de tu proyecto:```json
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"omniroute": {
"npm": "@ai-sdk/openai-compatible",
"name": "OmniRoute",
"options": {
"baseURL": "http://localhost:20128/v1"
},
"models": {
"cc/claude-sonnet-4-20250514": { "name": "Claude Sonnet 4" },
"gg/gemini-2.5-pro": { "name": "Gemini 2.5 Pro" },
"if/kimi-k2-thinking": { "name": "Kimi K2 (Free)" }
}
}
}
}
**Paso 3:**Selecciona el modelo en OpenCode:```bash /models
Select any OmniRoute model from the list
>**Consejo:**Agregue cualquier modelo disponible en su terminal `/v1/models` de OmniRoute a la sección `modelos`. Utilice el formato `proveedor/modelo-id` desde su panel de OmniRoute.</details>
---
## Solución de Problemas
<detalles>
<summary><b>Haga clic para expandir la guía de solución de problemas</b></summary>
**"El modelo de idioma no proporcionó mensajes"**
- Cuota de proveedor agotada → Verifique el rastreador de cuotas del panel
- Solución: utilice el combo alternativo o cambie a un nivel más económico
**Limitación de tasa**
- Cuota de suscripción agotada → Alternativa a GLM/MiniMax
- Agregar combo: `cc/claude-opus-4-6 → glm/glm-4.7 → if/kimi-k2-thinking`
**El token de OAuth expiró**
- Actualizado automáticamente por OmniRoute
- Si los problemas persisten: Panel → Proveedor → Volver a conectar
**Altos costos**
- Verifique las estadísticas de uso en Panel → Costos
- Cambiar el modelo principal a GLM/MiniMax
- Utilice el nivel gratuito (Gemini CLI, Qoder) para tareas no críticas
**Los puertos del panel/API están incorrectos**
- `PORT` es el puerto base canónico (y el puerto API por defecto)
- `API_PORT` anula sólo el detector de API compatible con OpenAI
- `DASHBOARD_PORT` anula solo el panel de control/escucha Next.js
- Configure `NEXT_PUBLIC_BASE_URL` en su panel/URL pública (para devoluciones de llamada de OAuth)
**Errores de sincronización en la nube**
- Verifique que `BASE_URL` apunte a su instancia en ejecución
- Verifique que `CLOUD_URL` apunte al punto final de nube esperado
- Mantenga los valores `NEXT_PUBLIC_*` alineados con los valores del lado del servidor
**El primer inicio de sesión no funciona**
- Marque `INITIAL_PASSWORD` en `.env`
- Si no está configurada, la contraseña alternativa es `123456`
**No hay registros de solicitudes**
- Los artefactos de solicitud se escriben en `DATA_DIR/call_logs/` como un archivo JSON por solicitud
- Habilite la captura de canalización desde Panel → Registros → Solicitar registros si necesita cargas útiles detalladas por etapa
- Configure `APP_LOG_TO_FILE=true` si también desea que la consola de la aplicación registre `logs/application/app.log`
- Ajuste `APP_LOG_MAX_FILE_SIZE`, `APP_LOG_RETENTION_DAYS`, `APP_LOG_MAX_FILES` y `CALL_LOG_MAX_ENTRIES` según sea necesario
**La prueba de conexión muestra "No válido" para proveedores compatibles con OpenAI**
- Muchos proveedores no exponen un punto final `/models`
- OmniRoute v1.0.6+ incluye validación alternativa mediante la finalización del chat
- Asegúrese de que la URL base incluya el sufijo `/v1`### 🔐 OAuth on a Remote Server
<a name="oauth-en-un-servidor-remoto"></a>
<a name="oauth-em-servidor-remoto"></a>
>**⚠️ Importante para los usuarios que ejecutan OmniRoute en un VPS, Docker o cualquier servidor remoto**#### Why does Antigravity / Gemini CLI OAuth fail on remote servers?
Los proveedores**Antigravity**y**Gemini CLI**utilizan**Google OAuth 2.0**. Google requiere que `redirect_uri` en el flujo de OAuth coincida exactamente con uno de los URI registrados previamente en Google Cloud Console de la aplicación.
Las credenciales de OAuth incluidas en OmniRoute están registradas**solo para `localhost`**. Cuando accede a OmniRoute en un servidor remoto (por ejemplo, `https://omniroute.myserver.com`), Google rechaza la autenticación con:```
Error 400: redirect_uri_mismatch
Solution: Configure your own OAuth credentials
Debes crear unID de cliente de OAuth 2.0en Google Cloud Console con el URI de tu servidor.#### Step-by-step
1. Abra la consola de Google Cloud
Vaya a: https://console.cloud.google.com/apis/credentials
2. Cree un nuevo ID de cliente OAuth 2.0
- Haga clic en**"+ Crear credenciales"→"ID de cliente OAuth"**
- Tipo de aplicación:"Aplicación web"
- Nombre: lo que quieras (por ejemplo,
OmniRoute Remote)
3. Agregar URI de redireccionamiento autorizado
En el campo**"URI de redireccionamiento autorizado"**, agregue:``` https://your-server.com/callback
> Reemplace `your-server.com` con el dominio o IP de su servidor (incluya el puerto si es necesario, por ejemplo, `http://45.33.32.156:20128/callback`).
**4. Guarde y copie las credenciales**
Después de la creación, Google mostrará el**ID de cliente**y el**Secreto de cliente**.
**5. Establecer variables de entorno**
En su `.env` (o variables de entorno de Docker):```bash
# For Antigravity:
ANTIGRAVITY_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com
ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-your-secret
# For Gemini CLI:
GEMINI_OAUTH_CLIENT_ID=your-client-id.apps.googleusercontent.com
GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret
GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-your-secret
6. Reiniciar OmniRoute```bash
npm:
npm run dev
Docker:
docker restart omniroute
**7. Intente conectarse nuevamente**
Panel → Proveedores → Antigravity (o Gemini CLI) → OAuth
Google ahora redirigirá correctamente a `https://your-server.com/callback`.---
#### Temporary workaround (without custom credentials)
Si no desea configurar sus propias credenciales en este momento, aún puede usar el**flujo de URL manual**:
1. OmniRoute abre la URL de autorización de Google.
2. Después de autorizar, Google intenta redirigir a `localhost` (que falla en el servidor remoto)
3.**Copia la URL completa**de la barra de direcciones de tu navegador (incluso si la página no se carga)
4. Pegue esa URL en el campo que se muestra en el modo de conexión de OmniRoute.
5. Haga clic en**"Conectar"**
> Esto funciona porque el código de autorización en la URL es válido independientemente de si se cargó la página de redireccionamiento.---
<detalles>
<summary><b>🇧🇷 Versión en portugués</b></summary>#### Por que o OAuth do Antigravity / Gemini CLI falha em servidores remotos?
Los proveedores**Antigravity**y**Gemini CLI**usan**Google OAuth 2.0**para autenticar. O Google exige que un `redirect_uri` usado sin flujo OAuth seja**exatamente**uma das URI pre-cadastradas en Google Cloud Console de la aplicación.
Como credenciales OAuth embutidas no OmniRoute están catastradas**apenas para `localhost`**. Cuando accede a OmniRoute en un servidor remoto (por ejemplo: `https://omniroute.meuservidor.com`), o Google envía una autenticación con:```
Error 400: redirect_uri_mismatch
Solução: Configure suas próprias credenciais OAuth
Debe crear unID de cliente OAuth 2.0en Google Cloud Console con un URI en su servidor.#### Passo a passo
1. Acceso a Google Cloud Console
Abra: https://console.cloud.google.com/apis/credentials
2. Llame a un nuevo ID de cliente OAuth 2.0
- Haga clic en**"+ Crear credenciales"→"ID de cliente OAuth"**
- Tipo de aplicación:"Aplicación web"
- Nombre: escolha qualquer nome (por ejemplo:
OmniRoute Remote)
3. Agregar como URI de redireccionamiento autorizado
No hay campo**"URI de redireccionamiento autorizado"**, además:``` https://seu-servidor.com/callback
> Sustituye `seu-servidor.com` por el dominio o IP de tu servidor (incluye una porta si es necesaria, por ejemplo: `http://45.33.32.156:20128/callback`).
**4. Salve y copie como credencial**
Después de abrir, Google mostrará**ID de cliente**y**Secreto de cliente**.
**5. Configurar como variáveis de ambiente**
No seu `.env` (o las variaciones de ambiente de Docker):```bash
# Para Antigravity:
ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com
ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret
# Para Gemini CLI:
GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com
GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret
GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret
6. Reiniciar OmniRoute```bash
Se usando npm:
npm run dev
Se usando Docker:
docker restart omniroute
**7. Tente conectar novamente**
Panel → Proveedores → Antigravity (o Gemini CLI) → OAuth
Agora o Google redirigirá correctamente para `https://seu-servidor.com/callback` y autenticação funcionará.---
#### Workaround temporário (sem configurar credenciais próprias)
Si no quieres crear credenciales propias ahora, aún puedes usar el flujo**manual de URL**:
1. El OmniRoute abrirá una URL de autorización de Google
2. Después de autorizar, Google intentará redirigir a `localhost` (que no tiene servidor remoto)
3.**Copia una URL completa**de la barra de envío de tu navegador (también que a página no carregue)
4. Cole esa URL en el campo que aparece en el modo de conexión de OmniRoute
5. Haz clic en**"Conectar"**
> Esta solución funciona porque el código de autorización de la URL es válido independiente de la redirección ter cargada o no.</details>
---
</details>
## 🛠️ Tech Stack
<detalles>
<summary><b>Haga clic para ampliar los detalles de la pila tecnológica</b></summary>
-**Tiempo de ejecución**: Node.js 18–22 LTS (⚠️ Node.js 24+**no es compatible**; los archivos binarios nativos `better-sqlite3` son incompatibles)
-**Idioma**: TypeScript 5.9 —**100% TypeScript**en `src/` y `open-sse/` (cero `any` en los módulos principales desde v2.0)
-**Marco**: Next.js 16 + React 19 + Tailwind CSS 4
-**Base de datos**: LowDB (JSON) + SQLite (estado de dominio + registros de proxy + auditoría de MCP + decisiones de enrutamiento)
-**Esquemas**: Zod (validación de E/S de herramienta MCP, contratos API)
-**Protocolos**: MCP (stdio/HTTP) + A2A v0.3 (JSON-RPC 2.0 + SSE)
-**Transmisión**: Eventos enviados por el servidor (SSE)
-**Auth**: OAuth 2.0 (PKCE) + JWT + Claves API + Autorización con alcance MCP
-**Pruebas**: Ejecutor de pruebas de Node.js + Vitest (más de 900 pruebas que incluyen unidad, integración, E2E)
-**CI/CD**: Acciones de GitHub (publicación automática de npm + Docker Hub en el lanzamiento)
-**Sitio web**: [omniroute.online](https://omniroute.online)
-**Paquete**: [npmjs.com/package/omniroute](https://www.npmjs.com/package/omniroute)
-**Docker**: [hub.docker.com/r/diegosouzapw/omniroute](https://hub.docker.com/r/diegosouzapw/omniroute)
-**Resiliencia**: disyuntor, retroceso exponencial, rebaño anti-truenos, suplantación de TLS, autocuración combinada automática</details>
---
## Documentación
| Documento | Descripción |
| ---------------------------------------------- | --------------------------------------------------- |
| [Guía del usuario](docs/USER_GUIDE.md) | Proveedores, combos, integración CLI, implementación |
| [Referencia de API](docs/API_REFERENCE.md) | Todos los puntos finales con ejemplos |
| [Servidor MCP](open-sse/mcp-server/README.md) | 16 herramientas MCP, configuraciones IDE, clientes Python/TS/Go |
| [Servidor A2A](src/lib/a2a/README.md) | Protocolo JSON-RPC 2.0, habilidades, streaming, gestión de tareas |
| [Motor de combinación automática](docs/auto-combo.md) | Puntuación de 6 factores, paquetes de modos, autocuración |
| [Solución de problemas](docs/TROUBLESHOOTING.md) | Problemas comunes y soluciones |
| [Arquitectura](docs/ARCHITECTURE.md) | Arquitectura del sistema e partes internas |
| [Contribuyendo](CONTRIBUYENDO.md) | Configuración y pautas de desarrollo |
| [Especificación de OpenAPI](docs/openapi.yaml) | Especificación OpenAPI 3.0 |
| [Política de seguridad](SECURITY.md) | Informes de vulnerabilidad y prácticas de seguridad |
| [Implementación de VM](docs/VM_DEPLOYMENT_GUIDE.md) | Guía completa: configuración de VM + nginx + Cloudflare |
| [Galería de funciones](docs/FEATURES.md) | Recorrido visual por el panel con capturas de pantalla |
| [Lista de verificación de lanzamiento](docs/RELEASE_CHECKLIST.md) | Pasos de validación previa al lanzamiento |---
## 🗺️ Roadmap
OmniRoute tiene**más de 210 funciones planificadas**en múltiples fases de desarrollo. Estas son las áreas clave:
| Categoría | Funciones planificadas | Aspectos destacados |
| ----------------------- | ---------------- | -------------------------------------------------------------------------------------- |
| 🧠**Enrutamiento e inteligencia**| 25+ | Enrutamiento de latencia más baja, enrutamiento basado en etiquetas, verificación previa de cuotas, selección de cuentas P2C |
| 🔒**Seguridad y cumplimiento**| 20+ | Refuerzo SSRF, encubrimiento de credenciales, límite de velocidad por punto final, alcance de claves de administración |
| 📊**Observabilidad**| 15+ | Integración de OpenTelemetry, monitoreo de cuotas en tiempo real, seguimiento de costos por modelo |
| 🔄**Integraciones de proveedores**| 20+ | Registro de modelo dinámico, tiempos de reutilización de proveedores, Codex multicuenta, análisis de cuotas de Copilot |
| ⚡**Rendimiento**| 15+ | Capa de caché dual, caché de avisos, caché de respuestas, transmisión keepalive, API por lotes |
| 🌐**Ecosistema**| 10+ | API WebSocket, recarga en caliente de configuración, almacén de configuración distribuido, modo comercial |### 🔜 Coming Soon
- 🔗**Integración OpenCode**: soporte de proveedor nativo para el IDE de codificación OpenCode AI
- 🔗**Integración TRAE**: soporte total para el marco de desarrollo de IA de TRAE
- 📦**API por lotes**: procesamiento por lotes asíncrono para solicitudes masivas
- 🎯**Enrutamiento basado en etiquetas**: enruta solicitudes basadas en etiquetas y metadatos personalizados
- 💰**Estrategia de menor costo**: seleccione automáticamente el proveedor más barato disponible
> 📝 Especificaciones completas de funciones disponibles en [`docs/new-features/`](docs/new-features/) (217 especificaciones detalladas)---
## 👥 Contributors
[](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)
### How to Contribute
1. Bifurcar el repositorio
2. Crea tu rama de funciones (`git checkout -b feature/amazing-feature`)
3. Confirme sus cambios (`git commit -m 'Agregar característica sorprendente'`)
4. Empuje a la rama (`git push origin feature/amazing-feature`)
5. Abra una solicitud de extracción
Consulte [CONTRIBUTING.md](CONTRIBUTING.md) para obtener pautas detalladas.### Releasing a New Version
```bash
# Create a release — npm publish happens automatically
gh release create v2.0.0 --title "v2.0.0" --generate-notes
📊 Star History
Stargazers over time
🙏 Acknowledgments
Un agradecimiento especial a**9routerdedecolua**, el proyecto original que inspiró esta bifurcación. OmniRoute se basa en esa increíble base con funciones adicionales, API multimodales y una reescritura completa de TypeScript.
Un agradecimiento especial a**CLIProxyAPI**: la implementación original de Go que inspiró este puerto de JavaScript.---
Licencia
Licencia MIT: consulte LICENCIA para obtener más detalles.---









