tinyrouter
TinyRouter es un gateway auto-hospedado para LLMs compatible con OpenAI, sin base de datos ni dashboard. Ofrece fallback determinista entre proveedores (OpenAI, Anthropic, Gemini, locales) mediante configuración YAML simple y código auditable en TypeScript/Bun.
Ficha actualizada 27 sept 2026, 18:11 · upstream 27 sept 2026, 17:40 · release v0.7.0
Qué es tinyrouter
Descripción editorial construida a partir del repositorio, su documentación y sus señales de mantenimiento.
TinyRouter actúa como una puerta de entrada ligera para APIs de modelos de lenguaje, diseñada para ser transparente y auditables. Exponiendo un único endpoint compatible con OpenAI, permite gestionar claves de proveedores externos (OpenAI, Anthropic, Gemini) y modelos locales en un solo proceso ejecutado con Bun o compilado nativamente. Su arquitectura elimina la necesidad de bases de datos, paneles de administración o infraestructura compleja, priorizando la simplicidad operativa y la comprensión total del flujo de datos.
El sistema implementa una lógica de fallback determinista que reenvía solicitudes a proveedores alternativos solo antes de iniciar el streaming de respuestas, evitando cambios dinámicos durante la generación. Incluye métricas Prometheus integradas para monitorización sin dependencias externas y emite logs estructurados sin exponer prompts ni completaciones. La configuración se define en un archivo YAML estático, resolviendo alias amigables a destinos específicos de proveedor/modelo con prioridad ordenada.
A diferencia de soluciones más complejas como LiteLLM o Portkey, TinyRouter omite deliberadamente capas de producto como guardrails semánticos, caché persistente, gestión de presupuestos o límites de tasa avanzados. Está pensado para escenarios donde la transparencia del código y la ausencia de "caja negra" son prioritarias sobre la funcionalidad extensiva. Es ideal para despliegues minimalistas que requieren control total sobre el enrutamiento sin operar un plano de control externo.
- Auditoría de seguridad al mantener las claves API en un gateway de código abierto legible y pequeño (~2200 líneas).
- Implementación de fallback automático entre modelos locales y proveedores cloud cuando los locales fallan o están sobrecargados.
- Unificación de endpoints para clientes externos (Open WebUI, LibreChat) que requieren una URL base compatible con OpenAI sin cambios de código.
- Monitorización básica de salud y token counts mediante métricas Prometheus integradas en el proceso.
- Gestión de modelos locales con priorización definida en YAML antes de escalar a proveedores pagados.
- Código auditable y pequeño (~2200 líneas de TypeScript + 800 tests), sin dependencias ocultas ni "magia".
- Fallback determinista que solo ocurre antes del inicio del streaming, garantizando consistencia en la respuesta.
- Sin base de datos ni infraestructura externa; corre con Bun o como binario standalone compilado.
- Métricas Prometheus y logs estructurados integrados sin configuración adicional.
- Configuración declarativa en YAML simple para definir rutas y prioridades de proveedores.
- No soporta la API Responses, embeddings, generación de imágenes/audio ni persistencia de uso.
- Sin caché semántico, gestión de presupuestos, límites de tasa o administración multiusuario.
- Requiere configuración manual de claves API en variables de entorno o archivo .env.
- La interfaz de estado es un archivo HTML estático que no ofrece control administrativo real.
- No incluye Docker Compose por defecto (solo imagen Docker y binarios).
Perfil de infraestructura
Estimación inicial derivada del repositorio y de los servicios detectados.
Despliegue detectado
Qué señales reales de instalación hemos encontrado.
Utiliza la imagen Docker ghcr.io/honzabit/tinyrouter:latest o descarga el binario standalone para Linux/macOS. Verifica integridad con SHA256SUMS. En contenedores, evita hardcodear 127.0.0.1 en la configuración; usa TINYROUTER_HOST=0.0.0.0. Usa variables de entorno .env para claves API. En macOS, extrae el archivo con tar para evitar banderas de cuarentena que marcan el ejecutable como dañado.
Stack y dependencias
Componentes inferidos a partir de manifests, configuración y documentación.
Puede sustituir a
Relaciones detectadas por el análisis del repositorio y su categoría.
Experiencia real de la comunidad
Ayuda a contrastar la estimación automática con instalaciones reales.
Todavía no hay datos comunitarios para este proyecto.