ypollak2/llm-router
pip install llm-routing # PyPI name is llm-routing; the CLI command is llm-routerPor qué la gente instala esto
Las herramientas de codificación con IA envían demasiados prompts a modelos premium por defecto.
Eso significa que:
Desperdicias tokens de pago en preguntas simples
Agotas la cuota de Claude, Gemini u OpenAI más rápido de lo necesario
Te quedas bloqueado cuando un proveedor está limitado por tasa o fuera de servicio
llm-router se sitúa entre tu herramienta de codificación y tus proveedores de modelos. Clasifica cada prompt, prueba primero el modelo capaz más barato y recurre automáticamente a la alternativa cuando es necesario.
Mantienes el mismo flujo de trabajo. El router cambia la elección del modelo por debajo.
Related MCP server: MCP AI Router
Puesto #8 en RouterArena
llm-router fue evaluado de forma independiente y obtuvo el puesto #8 en RouterArena — una clasificación comunitaria que evalúa los routers de modelos según la precisión del enrutamiento, la latencia, la eficiencia de costes y la fiabilidad del fallback.
Inicio rápido
1. Instalación
pip install llm-routing
llm-router installNombre del paquete:
llm-routingen PyPI. Comando CLI:llm-router.
2. Añadir proveedores (opcional)
export OPENAI_API_KEY="sk-..." # GPT-4o, o3
export GEMINI_API_KEY="AIza..." # Gemini Flash/Pro (free tier available)
export OLLAMA_BASE_URL="http://localhost:11434" # Local models (free)
export OPENROUTER_API_KEY="sk-or-v1-…" # 343 OpenRouter models (qwen, deepseek, grok, …)Funciona con cero claves de API en las suscripciones de Claude Code Pro/Max: el enrutamiento usa herramientas MCP que solo llaman a modelos externos cuando es beneficioso. Añade OPENROUTER_API_KEY para desbloquear el grupo de modelos de pesos abiertos que hace el trabajo pesado, utilizado por la política cost_aggressive.
3. Verificación
llm-router health # Check provider connectivitySi ya usas Claude Code, Codex o Gemini CLI, mantén tu flujo de trabajo actual y deja que llm-router elija los modelos por debajo.
Ejemplo de enrutamiento
Prompt | Enrutado a |
"¿Qué significa este error de Python?" | Ollama / Gemini Flash / Codex |
"Refactoriza este endpoint" | GPT-4o / Gemini Pro |
"Diseña una estrategia de trazado distribuido" | o3 / Claude Opus |
La cadena exacta depende de tus proveedores configurados, tu perfil de presupuesto y tu política de enrutamiento.
Funciona con
Herramienta | Modo | Ahorro (en este host) |
Claude Code | Enrutamiento automático completo mediante hooks | 60–80% |
Codex CLI | Enrutamiento automático completo mediante hooks | 60–80% |
Gemini CLI | Enrutamiento automático completo mediante hooks | 50–70% |
VS Code / Cursor | Herramientas MCP manuales | 30–50% |
Cualquier cliente MCP | Herramientas MCP manuales | Varía |
Enrutamiento automático completo significa que los hooks interceptan los prompts y los enrutan automáticamente sin ningún cambio en el flujo de trabajo.
Herramientas MCP manuales significa que el enrutamiento está disponible bajo demanda a través de herramientas como
llm_query.
llm-router install # Claude Code (default)
llm-router install --host codex # Codex CLI
llm-router install --host gemini-cli # Gemini CLI
llm-router install --host vscode # VS Code
llm-router install --host cursor # CursorConsulta guide/HOST_SUPPORT_MATRIX.md para obtener todos los detalles de cada host.
Protege tu cuota de 5 horas de Claude Code
enforce: smart + mode: zero_claude hace que los prompts se completen externamente o se detengan
antes de que se ejecute el Claude nativo; consulta
guide/GETTING_STARTED.md.
Cómo funciona
User prompt
│
▼
┌──────────────────────┐
│ Complexity Classifier │ ← Heuristic (free, instant) or Ollama/Flash ($0.0001)
└──────────┬───────────┘
│
▼
┌──────────────────────┐
│ Free-First Router │ ← Tries cheapest model first, walks up the chain
│ │
│ Ollama (free) │
│ → Codex (prepaid) │
│ → Gemini Flash │
│ → GPT-4o / Claude │
└──────────┬───────────┘
│
▼
┌──────────────────────┐
│ Guards (parallel) │ ← Circuit breaker, budget pressure, quality check
└──────────┬───────────┘
│
▼
Response + cost logged to local SQLiteLa clasificación es gratuita para muchas tareas (las heurísticas de regex detectan ~70%) o casi gratuita para prompts ambiguos cuando se usa Ollama local o Gemini Flash.
Características
Más allá de «enviar prompts baratos a modelos baratos»:
Los secretos nunca salen de tu máquina. Un prompt que contenga una clave de API, un token o una clave privada se enruta únicamente a modelos locales —modo fail-closed—, por lo que no puede llegar a un proveedor externo.
Enrutamiento de suscripción invertido por coste. Lo gratuito/local primero para prompts simples y moderados, tu único asiento de pago primero para los complejos, y el asiento pasa a segundo plano cuando su cuota está al límite. Actívalo con
LLM_ROUTER_SUBSCRIPTION_PROVIDER.Reintento automático con interruptores de circuito (circuit breakers). Un proveedor que falla o aplica límites de tasa se omite, no se insiste hasta el agotamiento.
Puedes ver cómo funciona. Una línea de estado, el título de la terminal y una notificación del sistema muestran el último modelo enrutado, el ahorro y el estado de salud — para hosts sin barra de estado nativa.
Resumen al final de la sesión. Ahorro frente a la línea base, combinación de niveles, coste por proveedor, latencia p50/p95/p99 y rutas más usadas.
También contenido multimedia y pipelines.
llm_image/llm_video/llm_audio, yllm_orchestratepara investigaciones de varios pasos.
CLI
llm-router install # wire up your host (Claude Code by default)
llm-router health # provider connectivity
llm-router status # savings + quota at a glance
llm-router doctor # diagnose a broken setupReferencia completa de comandos: guide/GETTING_STARTED.md
Proveedores
Más de 20 proveedores, gratis primero. Ollama (local, gratuito) lidera la cadena; OpenRouter (343 modelos tras una sola clave) es el mayor desbloqueo individual; Gemini y Groq tienen niveles gratuitos utilizables. Anthropic funciona mediante tu suscripción existente de Claude — no se necesita clave de API.
Cada proveedor, sus modelos, su nivel de coste y su variable de entorno: guide/PROVIDERS.md
Políticas de enrutamiento
Una política determina con qué decisión el router desvía el tráfico de tu modelo premium: desde conservative (10–15% de ahorro), pasando por balanced (la predeterminada, 35–45%), hasta cost_aggressive (70–85%, requiere OPENROUTER_API_KEY).
llm-router policy set cost_aggressiveLas seis políticas, sus umbrales y el esquema YAML: guide/POLICIES.md
Herramientas MCP
60 herramientas repartidas entre enrutamiento, análisis, código, contenido multimedia, presupuesto y diagnósticos: expuestas a cualquier host MCP. La superficie consolidated predeterminada muestra 11 herramientas de entrada; configura LLM_ROUTER_SLIM=full para tener las 60.
Cada herramienta con su firma: guide/TOOLS.md
Ahorro: cómo funciona
El ahorro se calcula comparando el gasto real con una línea base de enrutar cada tarea a Claude Sonnet/Opus.
Metodología:
Cada tarea enrutada registra: modelo utilizado, tokens consumidos, coste estimado
Se calcula un coste de referencia como si los mismos tokens los procesara el modelo más caro de la cadena
Ahorro =
(baseline - actual) / baseline
Supuestos y limitaciones:
La línea base asume que habrías usado Opus/Sonnet para todo (peor caso)
Los cálculos de tokens usan la aproximación
len(text) / 4, no recuentos exactos del tokenizadorLos datos de coste provienen de las tablas de precios de LiteLLM (pueden ir por detrás de los cambios de precios de los proveedores)
El ahorro varía significativamente según la carga de trabajo: las sesiones con mucho código enrutan más hacia modelos baratos
El propio router añade una pequeña sobrecarga (la clasificación cuesta ~$0.0001 por tarea ambigua)
Rango observado: 35–80% de ahorro según la política y la combinación de tareas. La cifra «87%» en algunos documentos representa un pico de un solo usuario durante un periodo de desarrollo concreto, no un resultado garantizado.
Confianza, privacidad y diseño local-first
llm-router se ejecuta íntegramente en tu máquina. No hay ningún proxy alojado, ni telemetría, ni se requiere cuenta.
Qué | Dónde | Detalles |
Tus prompts | Se envían a los proveedores configurados | Exactamente igual que usar esos proveedores directamente |
Claves de API |
| Archivos locales, nunca se transmiten |
Registros de uso |
| SQLite sin cifrar (permisos del sistema de archivos) |
Caché de clasificación |
| En memoria, se limpia al reiniciar el proceso |
Scripts de hook |
| Scripts de shell locales, inspeccionables |
Lo que hacemos:
Limpiamos las claves de API de los registros estructurados
Detectamos deadlocks de hooks antes de instalarlos
Guardamos todos los datos localmente en
~/.llm-router/Respetamos los límites de peticiones y los términos de servicio de los proveedores
Lo que debes saber:
Los prompts se envían al proveedor que seleccione el router — revisa la política de privacidad de tu proveedor
Los registros de uso (SQLite) no están cifrados en reposo — usa cifrado de disco completo si es necesario
El router no puede evitar jailbreaks del modelo ni la inyección de prompts a nivel del proveedor
Consulta SECURITY.md para la política de divulgación responsable.
Configuración
Todo se define mediante variables de entorno — no se requiere ningún archivo de configuración para empezar:
export OPENROUTER_API_KEY="sk-or-v1-..." # biggest single unlock
export OLLAMA_BASE_URL="http://localhost:11434" # local, free
export LLM_ROUTER_POLICY="cost_aggressive" # routing policy
export LLM_ROUTER_ENFORCE="smart" # off | advise | smart | hardReferencia completa, esquema de archivo de configuración y anulaciones por host: guide/GETTING_STARTED.md
Documentación
Índice completo: guide/README.md
Documento | Propósito |
La vía más rápida hacia un enrutamiento funcional | |
Guía completa de configuración | |
Comparativa de funciones por host | |
Configuración de proveedores y recomendaciones de modelos | |
Esquema de | |
Las 60 herramientas MCP con ejemplos | |
Diseño interno y estructura de módulos | |
Problemas comunes y correcciones | |
Suite de aislamiento para verificar la salud del enrutamiento | |
Tabla de coste/latencia/calidad de modelos, regenerada por CI | |
Notas de versión (archive) |
Empresas
llm-router está creado para desarrolladores individuales y equipos pequeños: ahorro de costes local, cero
sobrecarga operativa, nada alojado. Si necesitas aplicación de políticas en todo el equipo, exportación de auditoría,
SSO o presupuestos por organización, para eso está Chuzom.
Contribuciones
Las contribuciones son bienvenidas. Consulta CONTRIBUTING.md para ver las directrices completas.
git clone https://github.com/ypollak2/llm-router.git
cd llm-router
uv sync --extra dev
uv run pytest tests/ -q # Run tests (1900+)
uv run ruff check src/ tests/ # Lint-|-----------|
| llm-routing | Paquete de PyPI actual (pip install llm-routing) |
| llm-router | Comando CLI y nombre del repositorio de GitHub |
| claude-code-llm-router | Paquete antiguo obsoleto (redirige a llm-routing) |
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseCqualityFmaintenanceAn AI router that connects applications to multiple LLM providers (OpenAI, Anthropic, Google, DeepSeek, Ollama, etc.) with smart model orchestration capabilities, enabling dynamic switching between models for different reasoning tasks.32537MIT
- -licenseNot gradedqualityNot gradedmaintenanceIntelligent routing service that selects optimal AI models based on capability requirements and normalizes input/output formats across multiple providers like OpenAI, Anthropic, Google, and others.
- FlicenseNot gradedqualityDmaintenanceAutomatically routes queries to the most suitable AI model based on task type, cost constraints, and performance needs, supporting multiple providers and customizable priorities.
- AlicenseBqualityDmaintenanceRoute prompts intelligently across Claude, Gemini, and GPT-4o, automatically picking the best model for every task while minimizing token cost.57MIT
Related MCP Connectors
Enterprise AI Control Plane: governance, guardrails, spend tracking, compliance & smart routing.
Image, video, audio, face-swap, talking avatars and chat across 300+ AI models, one balance.
Run 100+ AI models — image, video, audio, 3D — through one API with pay-per-use billing.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ypollak2/llm-router'
If you have feedback or need assistance with the MCP directory API, please join our Discord server