NOX9GO expone un único endpoint compatible con OpenAI y Anthropic para que tus herramientas de código puedan usar múltiples proveedores de IA, cuotas, claves y modelos sin cambiar de configuración.
Incluye compresión de contexto, failover automático, panel embebido, seguimiento de cuotas y uso (no en todos los proveedores), y soporte para texto, imágenes, voz, embeddings y búsqueda web.
Empezar · Arquitectura · Proveedores · Funciones · CLI · Preguntas
NOX9GO es un fork de 9Router, reescrito en Go como binario autónomo.
Mantiene compatibilidad con el formato de API y la base de datos SQLite del proyecto original, pero elimina la dependencia de Node.js en ejecución y añade un panel Svelte 5 embebido, observabilidad ampliada, más estrategias de enrutado y empaquetado multiplataforma.
Repositorio público. Las releases se publican como tags en GitHub.
- Go 1.27
- Bun 1.4.x (se pin a 1.4.4 en
web/bun.lock; otro major rechaza el lockfile y lo reescribe), solo para compilar el dashboard - Un puerto libre, por defecto
20130 - GNU Make 3.82 o superior (
makeleeVERSIONcon$(file <VERSION), que en versiones anteriores se expande vacío)
git clone https://github.com/Pacoaldev/Nox9Go.git
cd Nox9Go
make web-build
make build
./nox9go startAbre el panel:
http://localhost:20130
La contraseña inicial se genera aleatoriamente en el primer arranque (24 caracteres) y se imprime una sola vez en la salida del gateway. El primer login con ella obliga a cambiarla (403 mustChangePassword). Si no la ves, busca en el log del gateway o configúrala tú con INITIAL_PASSWORD:
INITIAL_PASSWORD=mipassword
Configura tu CLI o IDE para usar el endpoint local:
Base URL: http://localhost:20130/v1
API Key: La que generes en Dashboard → API Keys
Ejemplo para Claude Code:
export ANTHROPIC_BASE_URL="http://localhost:20130"
export ANTHROPIC_API_KEY="<tu-api-key>"Ejemplo para Cursor:
Override OpenAI Base URL: http://localhost:20130/v1
OpenAI API Key: <tu-api-key>
NOX9GO actúa como una capa intermedia entre tus herramientas de desarrollo y los proveedores de IA.
┌────────────────────────────┐
│ Claude Code · Codex │
│ Cursor · Cline · OpenCode │
└─────────────┬──────────────┘
│
▼
┌──────────────────────────────────────────┐
│ NOX9GO │
│ │
│ • Endpoint unificado │
│ • Traducción de formatos │
│ • Compresión RTK │
│ • Enrutado por combos │
│ • Control de cuotas y failover │
│ • Panel y métricas embebidos │
└─────────────┬────────────────────────────┘
│
▼
┌──────────────────────────────────────────┐
│ Proveedores de IA │
│ Suscripciones · APIs · modelos gratis │
└──────────────────────────────────────────┘
En lugar de apuntar cada herramienta a un proveedor distinto, todas apuntan a NOX9GO. El gateway decide a qué modelo o proveedor enviar cada petición según disponibilidad, cuota, coste y estrategia configurada.
| Función | Descripción |
|---|---|
| RTK | Comprime salidas de herramientas como git diff, grep, ls o tree antes de enviarlas al modelo. Activado por defecto. |
| Headroom | Detiene la generación cuando la respuesta supera el umbral de tokens configurado. |
| Caveman | Reduce la verbosidad de las respuestas conservando el contenido técnico. |
| Ponytail | Favorece código mínimo, directo y orientado a YAGNI. |
| ADHD | Prioriza respuestas orientadas a la siguiente acción. |
| Injection guard | Detecta intentos de prompt injection en la salida de herramientas. Activado por defecto. |
RTK está pensado para reducir el consumo de tokens en contextos con mucha salida de terminal, sin romper la petición si un filtro falla.
Los combos agrupan varios modelos o proveedores bajo un mismo nombre.
| Estrategia | Comportamiento |
|---|---|
fallback |
Prueba los modelos en orden hasta que uno responde |
round-robin |
Reparte las peticiones entre los modelos del combo |
capacity |
Elige la entrada con más capacidad disponible |
fusion |
Combina respuestas de varias entradas |
La rotación de cuentas del mismo proveedor es independiente de la estrategia del combo y acepta none, round-robin, random y sticky (esta última mantiene temporalmente a un cliente en la misma cuenta). También puedes asociar pools de proxy a una conexión concreta o a varias a la vez.
- Registro en vivo por SSE con filtros por nivel y búsqueda.
- Inspector de peticiones y respuestas.
- Métricas de tokens, coste estimado, caché y compresión.
- Análisis por modelo, proveedor y periodo personalizado.
- Detección de peticiones bloqueadas o lentas.
El mismo gateway puede enrutar:
- Generación de imágenes
- Vídeo
- Texto a voz
- Voz a texto
- Embeddings
- Búsqueda web
- Lectura de páginas
Galería con las principales vistas del panel y la CLI (11 capturas)
1 · Endpoint & API Key![]() |
2 · Proveedores (1/2)![]() |
3 · Proveedores (2/2)![]() |
4 · Combos![]() |
5 · Uso (1/2)![]() |
6 · Uso (2/2)![]() |
| 7 · Seguimiento de cuotas |
8 · Ahorro de tokens![]() |
9 · CLI & IDE![]() |
10 · Combo Flow![]() |
11 · Ajustes![]() |
|
NOX9GO incluye un catálogo de 178 proveedores registrados —9 de ellos ocultos en los selectores pero totalmente enrutables— y permite añadir endpoints compatibles con OpenAI o Anthropic desde el panel. "Registrado" significa que el proveedor está en el catálogo con su endpoint, su método de autenticación y sus modelos; no que cada integración esté verificada contra el servicio en cada release. Los catálogos de modelos cambian más rápido de lo que se puede revisar, así que un proveedor puede dejar de responder aunque siga listado.
Algunos de estos servicios exigen credenciales de cliente OAuth propias: si es el caso, el panel lo indica al conectar la cuenta y .env.example muestra las variables que acepta.
| Prefijo | Proveedor |
|---|---|
cc |
Claude Code |
cx |
OpenAI Codex |
gh |
GitHub Copilot |
cu |
Cursor IDE |
ag |
Antigravity |
cl |
Cline |
xai |
xAI / Grok |
kimi |
Kimi |
windsurf |
Windsurf |
trae |
Trae |
| Prefijo | Proveedor | Nota |
|---|---|---|
oc |
OpenCode Free | Sin autenticación |
kr |
Kiro AI | Cuota gratuita mensual limitada; el importe exacto lo fija el proveedor |
gc |
Gemini CLI | Nivel gratuito mediante OAuth |
mmf |
MiMo Code Free | Pool gratuito de código |
devin-cli |
Devin CLI | Permite usar parte de una suscripción existente |
Entre otros: OpenAI, Anthropic, DeepSeek, Groq, Mistral, Together AI, Fireworks, Cerebras, OpenRouter, Azure OpenAI, AWS Bedrock, Vertex AI, Ollama local, Ollama Cloud, ComfyUI, SD Web UI y proveedores de búsqueda como Brave, Tavily, Exa, Serper o Firecrawl.
Los identificadores de modelo usan el formato:
<prefijo>/<modelo>
Por ejemplo:
kr/claude-sonnet-4.5
oc/gpt-5
glm/glm-4.6
| Comando | Descripción |
|---|---|
nox9go |
Con una terminal abre el selector de interfaz; sin terminal arranca el gateway en primer plano |
nox9go start |
Arranca en segundo plano |
nox9go stop |
Detiene el proceso en segundo plano |
nox9go restart |
Reinicia el gateway |
nox9go status |
Muestra estado, PID, panel y logs |
nox9go status --json |
Devuelve el estado en JSON para scripts |
nox9go logs -n 100 |
Muestra las últimas 100 líneas de log |
nox9go version |
Muestra versión, sistema y arquitectura |
nox9go update |
Comprueba e instala actualizaciones del gateway |
nox9go service install |
Registra el arranque automático |
nox9go service uninstall |
Elimina el arranque automático |
nox9go service start / stop / restart |
Arranca, detiene o reinicia el servicio registrado |
nox9go service status |
Consulta el servicio registrado |
nox9go mitm enable / disable / status |
Activa, desactiva o consulta el proxy MITM (redirección DNS y TLS en :443) |
Los modos de ahorro de contexto y las actualizaciones automáticas son flags globales, no subcomandos. Van antes del subcomando (nox9go --caveman start) y cada uno tiene su variable de entorno equivalente:
| Flag | Efecto |
|---|---|
--rtk / --rtk=false |
Activa o desactiva RTK (activo por defecto) |
--caveman |
Activa el estilo Caveman |
--ponytail |
Activa el estilo Ponytail |
--adhd |
Activa el estilo ADHD |
--auto-update |
Permite actualizaciones automáticas |
--no-injection-guard |
Desactiva la protección contra prompt injection |
--background, -d |
Equivale a nox9go start |
nox9go service install
nox9go service start
nox9go service statusEl comando detecta el mecanismo nativo disponible:
- systemd
- launchd
- OpenRC
- runit
- cron
- Tarea programada de Windows
La configuración en ejecución se realiza mediante variables de entorno.
| Variable | Valor por defecto | Descripción |
|---|---|---|
PORT |
20130 |
Puerto HTTP del gateway |
HOST |
Localhost | Interfaz de escucha |
DATA_DIR |
%APPDATA%\nox9go (Windows) / ~/.nox9go (resto) |
Directorio de datos |
DB_PATH |
DATA_DIR/db/data.sqlite |
Ruta de la base SQLite |
RTK_ENABLED |
true |
Activa o desactiva RTK |
CAVEMAN_ENABLED |
false |
Activa el estilo Caveman |
PONYTAIL_ENABLED |
false |
Activa el estilo Ponytail |
ADHD_ENABLED |
false |
Activa el estilo ADHD |
INJECTION_GUARD_DISABLED |
false |
Desactiva la protección contra prompt injection |
AUTO_UPDATE |
false |
Permite actualizaciones automáticas |
INITIAL_PASSWORD |
aleatoria en primer arranque | Contraseña del panel; si se genera, se imprime una vez y obliga a cambiarla |
JWT_SECRET |
aleatoria y persistida en el data dir | Secreto de firma de la sesiones del panel; úsalo para fijar tu propio valor |
MINIMAX_CODE_SIGN_SECRET |
valor embebido | Opcional. Secreto de firma de la API de cuenta de MiniMax Code; el valor por defecto es el que publica el cliente oficial. Configúralo solo si MiniMax lo rota |
ALLOW_INSECURE_TLS |
false |
Escape hatch intencional: omite la verificación TLS (no usar en producción) |
ANTIGRAVITY_OAUTH_CLIENT_SECRET |
requerido | Secreto OAuth de Antigravity; los IDs vienen con defaults públicos, los secretos no |
GEMINI_CLI_OAUTH_CLIENT_SECRET |
requerido | Secreto OAuth de Gemini CLI |
XAI_OAUTH_CLIENT_SECRET |
requerido | Secreto OAuth de xAI / Grok |
CODEX_OAUTH_CLIENT_SECRET |
requerido | Secreto OAuth de OpenAI Codex |
GITHUB_OAUTH_CLIENT_SECRET |
requerido | Secreto OAuth de GitHub Copilot |
IFLOW_OAUTH_CLIENT_SECRET |
requerido | Secreto OAuth de iFlow |
KIMI_CODING_OAUTH_CLIENT_SECRET |
requerido | Secreto OAuth de Kimi |
QWEN_OAUTH_CLIENT_SECRET |
requerido | Secreto OAuth de Qwen |
QODER_OAUTH_CLIENT_SECRET |
requerido | Secreto OAuth de Qoder |
NOX9GO usa el mismo esquema SQLite que 9Router, así que puede trabajar directamente sobre el directorio de datos de una instalación existente.
Cuando no defines DATA_DIR, la detección es automática y sigue este orden:
DATA_DIRdel entornoDATA_DIRdel archivo.env(el del directorio actual o el que está junto al binario)%APPDATA%\nox9goen Windows (~/.nox9goen el resto), si ya contiene una base%APPDATA%\9routeren Windows (~/.9routeren el resto), si ya contiene una base%APPDATA%\nox9go/~/.nox9goen caso contrario
Dentro del directorio elegido, el archivo se resuelve en este orden: db/data.sqlite, data.sqlite, nox9go.db, 9router.db. El nombre que verás en una instalación de 9Router es db/data.sqlite.
Para forzar una ruta concreta:
export DATA_DIR="/ruta/compartida/con/9router"
./nox9go startAl compartir DATA_DIR ambos proyectos leen y escriben lo mismo:
- Proveedores
- Conexiones
- API keys
- Combos
- Historial de uso
No requiere importación, pero comparten esquema y no hay migración: antes de apuntar aquí una instalación existente, haz una copia de la base de datos y de la configuración. Ambas versiones deben usar un esquema compatible — un 9Router más reciente puede haber añadido columnas que esta versión no conoce, y al revés. Si el esquema no coincide, restaura la copia.
Puedes generar binarios estáticos para varias plataformas:
make crossObjetivos disponibles:
| Sistema | Arquitectura |
|---|---|
| Linux | amd64 |
| Linux | arm64 |
| macOS | amd64 |
| macOS | arm64 |
| Windows | amd64 |
La compilación usa CGO_ENABLED=0, por lo que el resultado es un binario autónomo sin dependencias externas.
El proyecto publica dos binarios con funciones distintas:
| Binario | Qué hace | Dónde |
|---|---|---|
nox9go |
El gateway: el servidor compatible con OpenAI y Anthropic, la CLI y el panel embebido. Es el que se ejecuta en todas las plataformas. | Linux, macOS, Windows |
nox9go-tray |
Un icono en la bandeja del sistema de Windows que arranca y para el gateway, y abre el panel. No sirve peticiones por sí mismo: habla con nox9go. |
Solo Windows |
make build produce el primero y make tray el segundo. En Windows puedes usar scripts/start-nox9go.ps1 para arrancar gateway y bandeja juntos y abrir el panel; en Linux y macOS no hay bandeja y el gateway se gestiona con nox9go start / status / stop o con nox9go service install.
- Túneles: expone el gateway temporalmente mediante Cloudflare quick tunnel o Tailscale. Se gestiona desde el panel (
GET /api/tunnel/status,POST /api/tunnel/enable,POST /api/tunnel/disable, másGET /api/tunnel/tailscale-checkyPOST /api/tunnel/tailscale-enable/tailscale-disable) y guarda el estado en el directorio de datos; no tiene comando de CLI propio. - CliToolsView / adaptador Pi: conecta herramientas de línea de comandos al mismo catálogo de proveedores, cuentas y combos del panel.
No. Es software que ejecutas en tu propia máquina. Los posibles costes dependen exclusivamente de los proveedores que configures.
No. El panel calcula un coste estimado equivalente al uso de APIs de pago. Sirve para comparar ahorro, no para facturar.
RTK comprime la salida de herramientas antes de enviarla al modelo. Si el filtro falla o el resultado sería mayor que el original, se conserva el texto sin modificar.
Sí. Puedes configurar proveedores gratuitos como OpenCode Free, Kiro AI o Gemini CLI y crear un combo con failover entre ellos.
No. Node.js y Bun solo son necesarios para compilar el dashboard desde el código fuente. El binario final es autónomo.
NOX9GO habla con cada proveedor por su API oficial siempre que exista una. Pero algunos de los proveedores que ofrece funcionan de otra forma, y conviene saberlo antes de conectarlos y no descubrirlo después:
- Reutiliza sesiones de navegador. Para los proveedores que no tienen API pública (por ejemplo
perplexity-web,deepseek-web,gemini-web,chatgpt-web,grok-web,muse-webyuc-web), el gateway puede leer la cookie de sesión de Chrome o Firefox en tu equipo para enviar las peticiones como lo haría el navegador. Eso significa que el proceso puede leer y descifrar el almacén de cookies de tu perfil. - Imita al cliente oficial. En varios de estos casos el gateway se presenta ante el servicio con la identidad y la huella de red del cliente o CLI oficial (cabeceras de versión, huella TLS, marcas específicas de cada servicio). Es intencionado: es lo que hace que el servicio acepte la petición.
- Esto puede incumplir los términos del servicio. Muchos proveedores prohíben expresamente el acceso automatizado fuera de su API, o hacerlo con un cliente que no es el suyo. Usado contra un servicio de pago sin autorización, puede además contravenir normas sobre acceso no autorizado en tu jurisdicción.
Por eso:
- Úsalo con tu propia cuenta, en un equipo del que eres responsable.
- No lo uses para revender acceso, para compartir una cuenta de suscripción con terceros ni para eludir un límite de plan.
- Los proveedores con API oficial no tienen ninguna de estas características y son la opción recomendada para cualquier uso que no sea personal.
- Esta sección no es una autorización ni un consejo legal: cada usuario decide qué conecta y asume las consecuencias, como se detalla en el aviso legal de abajo.
NOX9GO es un proyecto de software experimental desarrollado para fines de investigación, interoperabilidad técnica y uso personal privado.
- El software se proporciona "tal cual" (as-is), bajo licencia MIT, sin garantías explícitas ni implícitas de disponibilidad, rendimiento o idoneidad para un fin específico.
- Cada usuario u operador es el único responsable de asegurar que el uso del software cumpla con los Términos y Condiciones de Servicio (ToS), políticas de uso aceptable y límites contractuales de las APIs y proveedores de terceros con los que decida conectarse.
- Los desarrolladores y colaboradores de NOX9GO no asumen ninguna responsabilidad por el mal uso, suspensión de cuentas, cargos de facturación o cualquier otra consecuencia derivada del uso de servicios de terceros a través de este gateway.
- Proyecto original: 9Router
- Autor del fork: Pacoaldev
- Panel local: http://localhost:20130
NOX9GO · Un gateway, muchas rutas, menos interrupciones.









