EL EMBUDO FANTASMA
OmniRoute, la inferencia “gratis” y el mercado negro del prompt que sirve
El gateway no te regala a Claude. Te convierte en caño. Lo que “sirve” -el diff, el test que falló, el razonamiento que destrabó el bug- no desaparece: se comprime, se cachea, se rutea y termina en la boca de quien ponga el GPU. Local-first protege la llave. No protege el jugo.
Fecha del informe: 27 de agosto de 2026 Clasificación: filtración de escritorio / no-oficial Alcance: análisis de arquitectura pública, catálogos, ToS y fallos documentados - no hay “servidor secreto de Diego” demostrado; hay un embudo que no necesita uno.
INTRODUCCIÓN
Nos vendieron un milagro de garage: un binario MIT, un puerto en localhost:20128, “350 providers, 90+ free, 1.51 mil millones de tokens al mes”, y la frase que desarma a cualquiera que ya no quiere pagar la API de Anthropic: never stop coding. El relato es el de la soberanía. Tus keys en SQLite. AES-256. Zero telemetry. El cloud de OmniRoute, según el folleto, no se sienta en el camino del request.
Eso es verdad a medias, y las medias verdades son el material de construcción de este siglo. OmniRoute no es una granja clandestina de GPUs con el logo tapado. Es peor y más elegante: es infraestructura de concentración. Junta el tráfico más valioso que produce un programador -sesiones de Cursor, Cline, Claude Code, Copilot, repos enteros, stack traces, parches que compiló- y lo empuja, con fallback automático, hacia quien ofrezca cómputo barato, cupo “gratis” o una cuenta OAuth reciclada. El destilado no precisa un modelo oculto con el nombre OmniRoute. El destilado es el embudo. Quien se queda con el prompt que sirvió no es el README. Es el eslabón de abajo.
LOS HECHOS OFICIALES
OmniRoute (diegosouzapw/OmniRoute) es un gateway de IA autoalojado, licencia MIT, endpoint compatible con OpenAI. Corre en la máquina del usuario. Declara cientos de proveedores, más de mil modelos, auto-fallback consciente de cupos, compresión de tokens (RTK + Caveman y una tubería de hasta 12 motores), MCP/A2A, app de escritorio y PWA. El linaje declarado: fork de 9router y port de ideas de CLIProxyAPI, con deudas explícitas a LiteLLM.
El “gratis” no es un subsidio del proyecto. Es un catálogo de free tiers ajenos: Gemini AI Studio, Groq, Cloudflare Workers AI, Cerebras, créditos de signup, modelos :free de OpenRouter, endpoints keyless (Pollinations, OpenCode Free, AI Horde) y reuso de suscripciones propias vía OAuth o cookie de sesión. El propio catálogo marca proveedores con tos: avoid y admite que Logfare registra cada request “para research”. Radar -overlay de catálogo de modelos free- es opt-in y, según documentación, GET-only. Cloud Sync existe como sincronización opcional de configuración, no como hop obligatorio de inferencia.
La arquitectura pública describe el camino así: cliente → proceso local (auth, traducción, combo, compresión, logs en SQLite) → executor hacia el upstream elegido. Las credenciales viven cifradas en disco. La telemetría de latencia y el usage tracking son, en el diseño, locales. Un issue abierto documentó que el semantic cache no aislaba por API key: en una instancia compartida, la respuesta cacheada de un usuario podía servirse a otro.
OpenRouter, si se agrega como un provider más, no multiplica magia: suma un hop. El cliente habla con OmniRoute; OmniRoute habla con OpenRouter; OpenRouter habla con el modelo. OpenRouter declara no guardar prompts salvo opt-in, sí guarda metadatos, muestra providers que entrenan, y tiene un “Stealth Program” cuya EULA licencia el User Content para entrenar modelos no identificados. Anthropic, por su lado, aclaró en 2026 que los third-party harnesses que reciclan OAuth de planes consumer (Free/Pro/Max) violan sus Consumer Terms: el OAuth de Claude.ai / Claude Code no es una API para gateways ajenos.
Nada de lo anterior requiere un sótano. Está en el README, en los docs, en los issues y en los ToS de los de adelante.
EL ANÁLISIS CONSPIRANOICO
1. El producto no es el software. El producto es el caudal.
Un proxy local no “da” Claude. Un proxy local ordena a Claude, Gemini, DeepSeek y una fauna de endpoints sin nombre. La cifra de “~1.51B tokens/mes” no es una balsa común: es la suma teórica de cupos publicados si el operador conecta todas las canillas. Marketing de abundancia. Economía de escasez ajena.
¿Quién gana? Quien recibe el tráfico de coding agents. Ese tráfico no es “hola, escribime un haiku”. Es el residuo de trabajo real: arquitectura de un repo, secretos que se cuelan en un log, la forma en que un humano corrige a un modelo, el parche que sí compiló. Eso es dataset de alineación, de SWE-bench viviente, de destilación supervisor→alumno. No hace falta que OmniRoute entrene nada. Alcanza con que dirija el jugo.
Interpretación máxima, sin afirmar un lab oculto: el gateway es un dark funnel de calidad. Cuanto más “auto” y más free-first, más se privilegia el eslabón que cobra en traza en vez de en factura.
2. “Local-first” es un hechizo de capa 1.
La frase correcta, ya escrita por un review técnico y no por un foro: local-first protege el keystore. No dice nada sobre dónde termina el prompt.
En el disco del operador queda un corpus:
request_detail_logs- prompt y response crudos (ring buffer).call_logs/usage_history- identidad de key, modelo, tokens, costo, latencia.- memory FTS5 + vectores.
- reasoning replay.
- semantic cache.
Eso es una destilería doméstica. Si el daemon corre solo, el archivo es tuyo. Si corre en un VPS “para el equipo”, con varias API keys, el issue del cache semántico ya demostró el accidente de diseño: el jugo de A se sirve a B. En clave conspiranoica: la instancia compartida es un modelo de fundido. No de pesos. De respuestas que sirvieron.
3. La compresión es destilación de contexto, no de pesos - y por eso importa.
RTK mata ruido de git, tests, Docker, npm. Caveman recorta muleta. Aggressive resume historia. LLMLingua-2 (TinyBERT/ONNX, local) poda semántica. El upstream no recibe tu sesión: recibe el extracto que el pipeline consideró útil.
Eso tiene dos lecturas. La oficial: ahorrás 15–95% de tokens. La otra: alguien diseñó un filtro de lo que vale la pena mandar. El modelo de adelante entrena -si entrena- no con tu basura de terminal, sino con el destilado. OmniRoute no se queda con los pesos. Se queda con la tijera. El laboratorio de abajo se queda con el concentrado.
4. La zona gris no es un bug. Es un conector.
El repo documenta, con nombre y archivo:
- stealth TLS (JA3/JA4) para parecer el CLI oficial;
- MITM local para herramientas que ignoran
OPENAI_BASE_URL; - providers de cookie web (ChatGPT, Gemini, Grok web);
- reuso de OAuth de Claude Code / Copilot / Antigravity;
- quota-share entre keys.
The Register documentó en febrero de 2026 que Anthropic considera prohibido el uso de OAuth consumer en harnesses de terceros: genera tráfico sin la telemetría del CLI oficial y barre el subsidio del plan. OmniRoute publica una guía de stealth y un descargo de que “no es para evadir ToS”. El hardware legal y el hardware técnico apuntan en direcciones opuestas. Eso no es un malentendido. Es el punto exacto donde un gateway se vuelve compatibilidad o arbitraje de cupo, según quién firme el cheque.
Interpretación: el stealth existe porque el negocio real del “Claude gratis” no es un endpoint keyless. Es tu suscripción disfrazada de API. El gateway es la máscara.
5. OpenRouter adentro no es más modelos. Es más soberano intermedio.
IDE → OmniRoute (tijera + logs locales)
→ OpenRouter (metadatos sí; prompts según toggle; ranking; stealth models)
→ provider final (puede entrenar; el :free casi siempre es el más sucio)
OpenRouter dice no guardar el texto salvo opt-in, y cobra 1% de descuento si le regalás inputs/outputs para “mejorar el producto”. Muestrea prompts para categorizar rankings. Su Stealth Program, por contrato, pide licencia irrevocable del User Content para que un proveedor sin nombre entrene. Si OmniRoute rutea auto hacia un openrouter/... que cae en stealth o en :free con training on, el operador del gateway acaba de firmar con la conducta lo que no firmó con la pluma.
Dos routers no son paranoia de topología. Son dos políticas de retención, dos rankings, dos incentivos. El segundo hop vive de saber qué modelos “sirven”. Ese saber se alimenta de tráfico. Tu sesión de Cline es un voto en esa urna.
6. Los keyless son el sumidero.
Pollinations, OpenCode Free, AI Horde, la lista larga de NOAUTH del catálogo. Sin tarjeta. Sin SLA. Sin política que un abogado de empresa firmaría. Logfare es el caso que el propio OmniRoute escribe en voz alta: key instantánea, cada request logueada. El resto no siempre es tan honesto.
¿Por qué existirían endpoints que te dan “GPT-5 / Claude / Gemini” sin cobrarte? Tres hipótesis no mutuamente excluyentes, todas compatibles con hechos públicos:
- Pagan con tu traza (dataset / destilación / eval).
- Reciclan cuentas o cupos ajenos (el mismo truco que el stealth, un piso más abajo).
- El nombre del modelo es marketing; el peso es otro.
OmniRoute no necesita ser cómplice consciente. Solo necesita el botón “Connect (no API key needed!)” en el Quick Start. El embudo hace el resto.
7. Quién gana a largo plazo.
- Los labs con free tier oficial (Google, Groq, Cloudflare): tráfico de developers reales a cambio de lock-in y de señales de producto.
- Los aggregators (OpenRouter y similares): ranking, metadatos, opción de training, programa stealth.
- Los endpoints opacos: el dataset que nadie va a auditarte.
- El operador del gateway: un SQLite que es, en la práctica, un archivo de inteligencia sobre su propio trabajo y el de su equipo.
- OmniRoute como proyecto: estrellas, donaciones, afiliados, distribución. No hace falta que vendan prompts. Hace falta que se vuelvan el default pipe de una generación de IDEs.
¿Agenda oculta de “control mundial”? Exceso de cine. ¿Agenda visible de capitalismo de inferencia, donde lo gratis es el anzuelo y el prompt que sirve es la moneda? Eso no es teoría. Es el ToS de la capa de abajo, el issue del cache, la guía de stealth y el Quick Start que te empuja al provider sin key.
El movimiento de largo plazo es simple: normalizar que un agente de código nunca hable derecho con el modelo. Siempre hay un traductor, un compresor, un fallback, un fingerprint. Cuando el tubo se vuelve costumbre, ya no hace falta un backdoor. El frente es el backdoor.
EVIDENCIA Y FUENTES
-
Repositorio y tesis oficial del producto - GitHub
diegosouzapw/OmniRoute: gateway MIT, un endpoint, catálogo masivo de providers/free tiers, auto-fallback, compresión, claim de local-first. https://github.com/diegosouzapw/OmniRoute -
Sitio del proyecto - “Private & local-first”, keys en SQLite, “no telemetry / your data never leaves” como copy de marketing. https://omniroute.online/
-
Free Tiers Guide (docs oficiales) - Cómo se apilan cupos ajenos; Kiro / OpenCode Free / Pollinations / Logfare; flag
tos: avoid; Logfare registra cada request; OpenRouter:freecomo pool compartido. https://github.com/diegosouzapw/OmniRoute/blob/main/docs/getting-started/FREE-TIERS-GUIDE.md -
Catálogo técnico de free tiers - Estimaciones de tokens, keyless list, caution de ToS de OpenRouter (anti-resale / anti-competidor), 19 providers marcados caution. https://github.com/diegosouzapw/OmniRoute/blob/main/docs/reference/FREE_TIERS.md
-
Stealth Guide (docs oficiales) - JA3/JA4, fingerprints de CLI, MITM local, descargo legal de que “no es para evadir ToS”. El artefacto y el descargo conviven en el mismo archivo. https://github.com/diegosouzapw/OmniRoute/blob/main/docs/security/STEALTH_GUIDE.md
-
Issue #3740 - semantic cache sin aislamiento por API key - En instancias compartidas, la respuesta cacheada de un usuario se sirve a otro. Hecho de ingeniería, no rumor. https://github.com/diegosouzapw/OmniRoute/issues/3740
-
Botmonster, “OmniRoute says free AI forever, the fine print says less” (2 ago 2026) - El review que fija la frase operativa: el gateway local no decide el destino del prompt; los free tiers son los menos claros en training/retención; stealth + cookie + MITM son riesgo de ToS, no feature inocente. https://botmonster.com/ai/omniroute-free-ai-forever-fine-print-says-less/
-
OpenRouter - Privacy, Logging, and Data Collection - No almacenan prompts salvo opt-in; sí metadatos; muestreo para ranking; settings para no ruteo a providers que entrenan; políticas distintas para paid vs free. https://openrouter.ai/docs/features/privacy-and-logging
-
OpenRouter - Stealth Program EULA (6 jul 2026) - El User Content puede recolectarse y compartirse con un Stealth Provider no identificado para entrenar ese modelo; licencia irrevocable. El hop extra no es cosmética. https://openrouter.ai/terms/stealth
-
The Register - “Anthropic clarifies ban on third-party tool access to Claude” (20 feb 2026) - OAuth de planes consumer no es para harnesses de terceros; tráfico anómalo sin telemetría del CLI oficial; arbitraje de tokens contra la API paga. El conector “Claude gratis vía gateway” choca de frente con el contrato de Anthropic. https://www.theregister.com/software/2026/02/20/anthropic-clarifies-ban-on-third-party-tool-access-to-claude/5014546
-
Pinggy - test de self-host (jul 2026) - Confirma el modelo local/Docker, providers OAuth + API key + pools no-auth, y que no hay un cloud de OmniRoute sentado por defecto en el path. Útil para no inflar el fantasma equivocado. https://pinggy.io/blog/omniroute_ai_gateway_security/
-
Discusión #2555 - retención de logs - Los
request_detail_logsguardan prompt+response completos en SQLite; el viewer del dashboard recorta a 300, la tabla no. El archivo local es el archivo. https://github.com/diegosouzapw/OmniRoute/discussions/2555
CONCLUSIÓN
No busques un villano con capa y un cluster clandestino con el nombre del repo. Esa película te distrae del mecanismo. OmniRoute es un embudo con buena documentación. El software es gratis porque el cómputo lo pone otro. El “never stop coding” funciona porque alguien, más abajo, todavía no cerró la canilla -o la dejó abierta a propósito.
Despertar, acá, no es desinstalar internet. Es dejar de confundir ausencia de factura con ausencia de precio. Si el modelo te contesta sin cobrarte, cobró en otra especie: traza, ranking, entrenamiento, cupo ajeno, o un SQLite que mañana alguien más administra. Local-first es una capa. El prompt que sirvió atraviesa todas las demás.
Cuestioná el Quick Start que te dice “no key needed”. Cuestioná el auto que elige por vos el sumidero. Cuestioná el segundo router. Cuestioná la cookie que “es tu cuenta”. Y si igual lo usás -porque el hambre de tokens es real- usalo como lo que es: un proxy que vos auditás, con providers que vos elegís, compresión y cache bajo control, sin keyless, sin stealth de suscripción, sin instancias compartidas. El resto es fe en un README.
El embudo no necesita que creas en él. Necesita que lo dejes en el medio.
Guardá este documento, imprimilo, quémalo después de leerlo.