Ir al contenido
OmniRoute source

CLI Tools — OmniRoute (Español)

Código CLI / Agentes CLI (flujo de consumo):
Claude / Codex / OpenCode / Cline / KiloCode / Continue / Hermes Agent / Goose / ...
│
▼ (todos apuntan a OmniRoute)
http://YOUR_SERVER:20128/v1
│
▼ (OmniRoute enruta al proveedor correcto)
Anthropic / OpenAI / Gemini / DeepSeek / Groq / Mistral / ...
Agentes ACP (flujo de generación inverso):
Solicitud del cliente → OmniRoute → genera CLI a través de stdio/ACP → respuesta

Beneficios:

  • Una clave API para gestionar todas las herramientas
  • Seguimiento de costos a través de todas las CLIs en el panel
  • Cambio de modelo sin reconfigurar cada herramienta
  • Funciona localmente y en servidores remotos (VPS, Docker, Akamai, Cloudflare Tunnel)

No es necesario escribir la configuración de cada herramienta a mano. OmniRoute incluye un comando setup-* por cada CLI compatible que lee el catálogo de modelos en vivo de un OmniRoute en ejecución (local o remoto) y escribe la configuración propia de la herramienta en su máquina:

Ventana de terminal
omniroute setup-codex omniroute setup-claude omniroute setup-opencode
omniroute setup-cline omniroute setup-kilo omniroute setup-continue
omniroute setup-cursor omniroute setup-roo omniroute setup-crush
omniroute setup-goose omniroute setup-qwen omniroute setup-aider
omniroute setup-5dive

Cada uno acepta --remote <url> --api-key <key> (configura una herramienta local contra un OmniRoute remoto), --dry-run (previsualiza sin escribir) y --port. Las herramientas sin autodetección de modelos (Cline, Kilo, Roo, Goose, Aider, Qwen, 5dive) toman --model <id> (y --yes para ejecuciones no interactivas). setup-5dive es la única receta que no escribe en $HOME: configura una flota de agentes 5dive escribiendo un perfil de autenticación propiedad del root en el host de la flota, por lo que se re-ejecuta a través de sudo y no tiene modo remoto propio. Para iniciar una CLI con el entorno correcto inyectado y sin ninguna configuración escrita, use el lanzador genérico omniroute run <target> (claude, codex, aider, goose, opencode, qwen, gemini — los objetivos y alias provienen de bin/cli/cli-manifest.mjs); los lanzadores heredados por herramienta omniroute launch (Claude Code) y omniroute launch-codex (Codex) siguen estando disponibles. Gemini CLI es solo de lanzamiento: es un objetivo de omniroute run pero no tiene una receta setup-*/configure.

Referencia completa: la tabla maestra — lo que escribe cada comando, cada bandera, local vs remoto, y qué herramientas quieren un sufijo /v1 — se encuentra en Integraciones CLI.

Un comando setup-* ejecutado dentro del contenedor OmniRoute escribe en el propio home del contenedor, que ninguna CLI del host lee y que desaparece con el contenedor. OmniRoute detecta esto y sale con 2 con instrucciones en lugar de escribir. Dos formas compatibles de proceder: instalar la CLI en el host y omniroute connect al contenedor, o montar los directorios de configuración y establecer CLI_CONFIG_HOME (el perfil host de compose). Cada comando setup-*, además de omniroute configure y omniroute config set, acepta --allow-container-write cuando configurar las propias CLI del contenedor es lo que realmente se pretendía; OMNIROUTE_ALLOW_CONTAINER_CONFIG_WRITE=true hace lo mismo para el servidor. Consulte Guía de Docker → Configuración de herramientas CLI del host.

El punto final de aplicación del panel de control (POST /api/cli-tools/apply) aplica la misma protección: en un contenedor, una escritura cuyo objetivo no está montado desde el host responde 422 con containerEphemeralTarget: true, el texto de error seguro y — para las herramientas con una receta de host (claude, codex, opencode, cline, kilo, continue) — un hostSetupCommand (por ejemplo, omniroute setup-opencode) para ejecutar en el host en su lugar; no se escribe nada. dryRun: true sigue funcionando en modo contenedor y devuelve una vista previa redactada + ruta de destino sin tocar el disco. El contenido de la vista previa no es una configuración que contenga credenciales para copiar o importar. Aplique con la herramienta original/URL base/clave API/entradas de modelo en el host, o use el comando de configuración del lado del host indicado. Consulte seguridad de la configuración de CLI para el encabezado de vista previa y el contrato de solicitud. Este comportamiento es intencional y está protegido contra regresiones por tests/unit/api/cli-tools/apply-container-guard.test.ts — nunca “arregle” un 422 eliminando la protección.


El catálogo unificado se encuentra en src/shared/constants/cliTools.ts como CLI_TOOLS: Record<string, CliCatalogEntry>.

Cada entrada tiene estos campos (definidos en src/shared/schemas/cliCatalog.ts):

Campo Tipo Descripción
category "code" | "agent" En qué página aparece la herramienta
vendor string Origen de la herramienta (“Anthropic”, “OSS (P. Gauthier)”)
acpSpawnable boolean También utilizable como un Agente ACP (insignia mostrada)
baseUrlSupport "full" | "partial" | "none" Nivel de soporte de endpoint personalizado. "none" = backlog MITM
configType "env" | "custom" | "guide" | "custom-builder" | "mitm" Mecanismo de configuración
id, name, color, description, docsUrl estándar Campos de visualización principales

Las entradas con baseUrlSupport: "none" no se muestran en las páginas del panel — están registradas en el backlog MITM para el plan 11 (ver _tasks/features-v3.8.6/refactorpages/_orchestration/_plan11-mitm-backlog.md).

Niveles de capacidad (catalogado × detectable × configurable × lanzable)

Sección titulada «Niveles de capacidad (catalogado × detectable × configurable × lanzable)»

No todas las herramientas catalogadas son detectables, configurables o lanzables. Cada nivel tiene una fuente declarativa, y una prueba de deriva las mantiene alineadas:

Nivel Significado Declarado en
Catalogado Aparece en el catálogo del panel (nombre, proveedor, docs, tipo de configuración) src/shared/constants/cliTools.ts (CLI_TOOLS)
Detectable Detección de binarios/configuración, comprobaciones de salud, rutas de configuración src/shared/services/cliRuntime.ts (CLI_TOOLS catálogo en tiempo de ejecución)
Configurable Soportado por omniroute configure &lt;cli&gt; (existe receta de configuración) bin/cli/cli-manifest.mjs (configure: true)
Lanzable Soportado por omniroute run &lt;target&gt; (inyección de env/args definida) bin/cli/cli-manifest.mjs (run: true)

bin/cli/cli-manifest.mjs es el manifiesto ejecutable canónico para los comandos de CLI: run, configure y los generadores de autocompletado de shell derivan sus listas de objetivos, resolución de alias (por ejemplo kilocode/kilo-code/kilo_cli → kilo) y cableado de la bandera --model de él. El guardia de deriva tests/unit/cli/cli-manifest-drift.test.ts afirma que el manifiesto, el catálogo en tiempo de ejecución, el catálogo de UI y cada superficie consumidora se mantengan sincronizados — un objetivo agregado a una superficie sin los otros falla la suite en lugar de derivar silenciosamente.

1. Catálogo de Código CLI (26 herramientas)

Sección titulada «1. Catálogo de Código CLI (26 herramientas)»

Todas las herramientas que aparecen en /dashboard/cli-code. Aquellas con baseUrlSupport: none están conectadas a través de MITM o una guía manual en lugar de una URL base personalizada:

id nombre proveedor soporteBaseUrl tipoConfiguración acpSpawnable
claude Claude Code Anthropic completo env true
codex OpenAI Codex CLI OpenAI completo personalizado true
zcode ZCode (Plan de Codificación GLM) Z.ai ninguno personalizado false
cline Cline OSS (ex-Claude Dev) completo personalizado true
kilo Kilo Code Kilo-Org completo personalizado false
roo Roo Code Roo (OSS) completo guía false
continue Continue continue.dev completo guía false
aider Aider OSS (P. Gauthier) completo guía true
forge ForgeCode Antinomy HQ completo personalizado true
jcode jcode 1jehuang (OSS) completo personalizado false
deepseek-tui DeepSeek TUI Hunter Bown (OSS) completo personalizado false
codewhale CodeWhale Hmbown (OSS) completo personalizado false
opencode OpenCode Anomaly (ex-SST) completo guía true
droid Factory Droid Factory AI parcial guía false
copilot GitHub Copilot CLI GitHub/MS completo personalizado false
cursor-cli Cursor CLI Anysphere parcial guía true
smelt Smelt leonardcser (OSS) completo personalizado false
pi Pi (agente de codificación pi) M. Zechner (OSS) completo personalizado false
grok-build Grok Build xAI completo personalizado false
crush Crush OSS (Charm) completo personalizado false
qwen Qwen Code Alibaba completo guía true
cursor Cursor Anysphere ninguno guía false
antigravity Antigravity Google ninguno mitm false
hermes Hermes Nous Research ninguno guía false
kiro Kiro AI Amazon ninguno mitm false
custom CLI Personalizado — completo constructor-personalizado false

Las herramientas con baseUrlSupport: "parcial" muestran una insignia “⚠ Base URL parcial” en la tarjeta del panel.

2. Catálogo de Agentes CLI (8 herramientas)

Sección titulada «2. Catálogo de Agentes CLI (8 herramientas)»

Agentes autónomos que aparecen en /dashboard/cli-agents:

id nombre proveedor soporteBaseUrl acpSpawnable
hermes-agent Agente Hermes Nous Research completo falso
openclaw OpenClaw OSS (P. Steinberger) completo verdadero
goose Goose Block / Linux Foundation completo verdadero
interpreter Open Interpreter OSS completo verdadero
warp Warp AI Warp Inc. parcial verdadero
agent-deck Agent Deck asheshgoplani (OSS) completo falso
omp Oh My Pi OSS completo verdadero
letta Letta CLI Letta completo falso

Esta página (renombrada de /dashboard/agents) muestra CLIs que OmniRoute puede generar como motores de ejecución backend a través del protocolo stdio/ACP. El catálogo se mantiene por separado en src/lib/acp/registry.ts y no es el mismo que CLI_TOOLS.


4. Pendiente de MITM (no mostrado en el dashboard)

Sección titulada «4. Pendiente de MITM (no mostrado en el dashboard)»

Los siguientes CLIs no soportan URL base personalizadas de forma nativa y no están listados en las páginas de Código CLI o Agentes CLI. Son candidatos para la interceptación MITM en el plan 11:

CLI Razón
windsurf BYOK limitado a seleccionar modelos de Claude + URL/token corporativo
amp Ecosistema cerrado (Sourcegraph)
amazon-q / kiro-cli Autenticación AWS SSO, sin URL personalizada
cowork Anthropic Desktop, sin punto final configurable

Consulta _tasks/features-v3.8.6/refactorpages/_orchestration/_plan11-mitm-backlog.md para la referencia cruzada completa.


Toda la detección de herramientas se agrega a través de un único punto final:

GET /api/cli-tools/all-statuses

  • Autenticación: requireCliToolsAuth(request) (igual que otras rutas de /api/cli-tools/)
  • Retorna: Record<toolId, ToolBatchStatus> (tipo: src/shared/types/cliBatchStatus.ts)
  • Estrategia: Promise.all sobre todas las herramientas, tiempo de espera de 5s por herramienta
  • Caché: en memoria LRU indexada por el archivo de configuración mtime. Caché invalidada cuando cambia el mtime. Reiniciada al reiniciar el servidor.

Forma de respuesta por herramienta:

interface ToolBatchStatus {
detection: {
installed: boolean;
runnable: boolean;
version?: string;
command?: string;
commandPath?: string;
reason?: string;
};
config: {
status: "configured" | "not_configured" | "not_installed" | "unknown" | "other";
endpoint?: string | null;
lastConfiguredAt?: string | null;
};
error?: string; // sanitizado, sin trazas de pila
}

6. Controladores de Configuración para Nuevas Herramientas

Sección titulada «6. Controladores de Configuración para Nuevas Herramientas»

Las nuevas herramientas con configType: "custom" tienen rutas API de configuración dedicadas:

Ruta Herramienta
POST /api/cli-tools/forge-settings ForgeCode (.forge.toml)
POST /api/cli-tools/jcode-settings jcode (–base-url flag)
POST /api/cli-tools/deepseek-tui-settings DeepSeek TUI (OPENAI_BASE_URL, legado)
POST /api/cli-tools/codewhale-settings CodeWhale (OPENAI_BASE_URL, sincronización primaria + legado ~/.deepseek)
POST /api/cli-tools/smelt-settings Smelt
POST /api/cli-tools/pi-settings Agente de codificación Pi
POST /api/cli-tools/grok-build-settings Grok Build (~/.grok/config.toml, [model.omniroute])
POST /api/cli-tools/qwen-settings Qwen Code (~/.qwen/settings.json + clave dedicada .env)

Todas las rutas utilizan sanitizeErrorMessage() para respuestas de error (Regla Dura #12).


  • src/app/(dashboard)/dashboard/cli-code/page.tsx — componente del servidor
  • src/app/(dashboard)/dashboard/cli-code/CliCodePageClient.tsx — cuadrícula del cliente
  • src/app/(dashboard)/dashboard/cli-code/[id]/page.tsx — página de detalles de la herramienta
  • src/app/(dashboard)/dashboard/cli-code/components/ — 12 tarjetas de herramientas especializadas + ToolDetailClient.tsx
  • src/app/(dashboard)/dashboard/cli-agents/page.tsx — componente del servidor
  • src/app/(dashboard)/dashboard/cli-agents/CliAgentsPageClient.tsx — cuadrícula del cliente
  • src/app/(dashboard)/dashboard/cli-agents/[id]/page.tsx — reutiliza ToolDetailClient
  • src/app/(dashboard)/dashboard/acp-agents/page.tsx — componente del servidor (movido de agents/)

Componentes de UI Compartidos (src/shared/components/cli/)

Sección titulada «Componentes de UI Compartidos (src/shared/components/cli/)»
Archivo Propósito
CliToolCard.tsx Tarjeta de estado inteligente (detección + configuración + punto final)
CliConceptCard.tsx Tarjeta de explicación de concepto por página
CliComparisonCard.tsx Comparación en tres columnas entre tipos de CLI
BaseUrlSelect.tsx Desplegable de punto final (Local/Nube/Personalizado)
ApiKeySelect.tsx Selector de clave API
ManualConfigModal.tsx Modal de fragmento de configuración copiable
Archivo Propósito
useToolBatchStatuses.ts Obtiene /api/cli-tools/all-statuses, gestiona el estado de carga/actualización

Nuevos espacios de nombres añadidos en el plan 14 F9:

Namespace Propósito
cliCommon Cadenas compartidas (etiquetas de tarjetas, textos de concepto/comparación, etiquetas de página de detalles)
cliCode Cadenas de la página del código CLI
cliAgents Cadenas de la página de agentes CLI
acpAgents Cadenas de la página de agentes ACP

Se proporcionan traducciones completas en PT-BR y EN. 39 otros locales recurren automáticamente a EN a través de la fusión a nivel de espacio de nombres en src/i18n/request.ts.


Paso 1 — Obtén una clave de API de OmniRoute

Sección titulada «Paso 1 — Obtén una clave de API de OmniRoute»
  1. Abre /dashboard/api-manager → Crear clave de API
  2. Dale un nombre (por ejemplo, cli-tools) y selecciona todos los permisos
  3. Copia la clave — la necesitarás para cada CLI a continuación

Tu clave se ve así: sk-xxxxxxxxxxxxxxxx-xxxxxxxxx


Todas las herramientas basadas en npm requieren Node.js 22.22.2+ o 24.x:

Ventana de terminal
# Claude Code (Anthropic)
npm install -g @anthropic-ai/claude-code
# OpenAI Codex
npm install -g @openai/codex
# OpenCode
npm install -g opencode-ai
# Cline
npm install -g cline
# KiloCode
npm install -g kilocode
# Qwen Code
npm install -g @qwen-code/qwen-code
# Google Gemini CLI (lanzable a través de `omniroute run gemini` → /v1beta surface)
npm install -g @google/gemini-cli
# Aider
pip install aider-chat
# Smelt
cargo install smelt # Basado en Rust
# Agente de codificación Pi
# ver https://github.com/zechnerj/pi-coding-agent para la instalación
# jcode
# ver https://github.com/1jehuang/jcode para la instalación

Paso 3 — Configura a través del Dashboard

Sección titulada «Paso 3 — Configura a través del Dashboard»
  1. Ve a http://localhost:20128/dashboard/cli-code
  2. Encuentra tu herramienta en la cuadrícula
  3. Haz clic en la tarjeta para abrir la página de detalles de la herramienta
  4. Selecciona tu clave de API y URL base
  5. Haz clic en Aplicar Configuración o copia el fragmento de configuración manual

Paso 4 — Establecer Variables de Entorno Globales

Sección titulada «Paso 4 — Establecer Variables de Entorno Globales»
Ventana de terminal
# Punto de acceso universal de OmniRoute
export OPENAI_BASE_URL="http://localhost:20128/v1"
export OPENAI_API_KEY="sk-your-omniroute-key"
export ANTHROPIC_BASE_URL="http://localhost:20128"
export ANTHROPIC_AUTH_TOKEN="sk-your-omniroute-key"
# Gemini CLI lee GOOGLE_GEMINI_BASE_URL en la RAÍZ (su SDK agrega /v1beta/... por sí mismo)
export GOOGLE_GEMINI_BASE_URL="http://localhost:20128"
export GEMINI_API_KEY="sk-your-omniroute-key"

Para un servidor remoto, reemplaza localhost:20128 con la IP o dominio del servidor, por ejemplo, http://&lt;tu-ip-del-servidor&gt;:20128.


Ventana de terminal
# Crea ~/.claude/settings.json:
mkdir -p ~/.claude && cat > ~/.claude/settings.json << EOF
{
"env": {
"ANTHROPIC_BASE_URL": "http://localhost:20128",
"ANTHROPIC_AUTH_TOKEN": "sk-your-omniroute-key"
}
}
EOF

Usa la raíz de la puerta de enlace unificada de Anthropic para Claude Code. No agregues /v1 aquí.

Prueba: claude "say hello"


El Codex moderno (v0.137+) lee ~/.codex/config.toml solamente — el antiguo config.yaml pertenece al CLI npm legado y se ignora silenciosamente. La clave de API se mantiene en la variable de entorno OMNIROUTE_API_KEY (env_key), nunca dentro del archivo:

Ventana de terminal
mkdir -p ~/.codex && cat > ~/.codex/config.toml << EOF
model_provider = "omniroute"
[model_providers.omniroute]
name = "OmniRoute"
base_url = "http://localhost:20128/v1"
env_key = "OMNIROUTE_API_KEY"
requires_openai_auth = false
EOF
export OMNIROUTE_API_KEY="sk-your-omniroute-key"

Referencia completa (perfiles, wire_api, ventanas de contexto): CODEX-CLI-CONFIGURATION.md.

Prueba: codex "what is 2+2?"


Ventana de terminal
mkdir -p ~/.config/opencode && cat > ~/.config/opencode/opencode.json << EOF
{
"\$schema": "https://opencode.ai/config.json",
"provider": {
"omniroute": {
"npm": "@ai-sdk/openai-compatible",
"name": "OmniRoute",
"options": {
"baseURL": "http://localhost:20128/v1",
"apiKey": "sk-your-omniroute-key"
},
"models": {
"claude-sonnet-4-5": { "name": "claude-sonnet-4-5" },
"claude-sonnet-4-5-thinking": { "name": "claude-sonnet-4-5-thinking" },
"gemini-3-flash": { "name": "gemini-3-flash" }
}
}
}
}
EOF

Prueba: opencode

Usa opencode run "tu prompt" --model omniroute/claude-sonnet-4-5-thinking --variant high para enviar variantes de pensamiento.


Modo CLI:

Ventana de terminal
mkdir -p ~/.cline/data && cat > ~/.cline/data/globalState.json << EOF
{
"apiProvider": "openai",
"openAiBaseUrl": "http://localhost:20128/v1",
"openAiApiKey": "sk-your-omniroute-key"
}
EOF

Modo VS Code: Configuraciones de la extensión Cline → Proveedor de API: OpenAI Compatible → URL base: http://localhost:20128/v1

O usa el dashboard de OmniRoute → CLI Tools → Cline → Aplicar Configuración.


Modo CLI:

Ventana de terminal
kilocode --api-base http://localhost:20128/v1 --api-key sk-your-omniroute-key

Configuraciones de VS Code:

{
"kilo-code.openAiBaseUrl": "http://localhost:20128/v1",
"kilo-code.apiKey": "sk-your-omniroute-key"
}

O usa el dashboard de OmniRoute → CLI Tools → KiloCode → Aplicar Configuración.


Edita ~/.continue/config.yaml:

models:
- name: OmniRoute
provider: openai
model: auto
apiBase: http://localhost:20128/v1
apiKey: sk-your-omniroute-key
default: true

Reinicia VS Code después de editar.


Usa esto cuando VS Code Insiders esté configurado para modelos de punto final personalizados y quieras que OmniRoute funcione sin un campo de encabezado personalizado.

Ubicación recomendada:

  • Linux: ~/.config/Code - Insiders/User/chatLanguageModels.json
  • Windows: %APPDATA%/Code - Insiders/User/chatLanguageModels.json

Ejemplo usando el alias tokenizado de OmniRoute:

[
{
"vendor": "customendpoint",
"id": "auto",
"name": "OmniRoute Auto",
"family": "gpt-4",
"version": "1.0.0",
"url": "http://localhost:20128/api/v1/vscode/sk-your-omniroute-key/chat/completions",
"modelsUrl": "http://localhost:20128/api/v1/vscode/sk-your-omniroute-key/models",
"requestFormat": "openai-chat-completions",
"contextWindow": 256000,
"maxOutputTokens": 32768,
"auth": {
"type": "none"
}
}
]

Notas:

  • Reemplaza sk-your-omniroute-key con una clave de API creada en OmniRoute.
  • El campo url debe apuntar a /api/v1/vscode/{token}/chat/completions.
  • El campo modelsUrl debe apuntar a /api/v1/vscode/{token}/models.
  • Prefiere el flujo normal /v1 + encabezado Bearer cuando el cliente soporte encabezados personalizados.
  • Los tokens incrustados en la URL son una solución de compatibilidad y pueden aparecer en los registros del editor o en el historial del proxy.

Ventana de terminal
# Inicia sesión en tu cuenta de AWS/Kiro:
kiro-cli login
# El CLI utiliza su propia autenticación — OmniRoute no es necesario como backend para Kiro CLI en sí.
# Usa kiro-cli junto con OmniRoute para otras herramientas.
kiro-cli status

Para la aplicación de escritorio Kiro IDE, usa el punto final MITM expuesto por OmniRoute bajo /dashboard/cli-tools → Kiro.


El binario omniroute proporciona comandos para el ciclo de vida del servidor, la configuración, el diagnóstico y la gestión de proveedores. Punto de entrada: bin/omniroute.mjs.

Ventana de terminal
omniroute # Iniciar el servidor (puerto predeterminado 20128)
omniroute setup # Asistente de configuración interactivo
omniroute doctor # Comprobar la configuración, la base de datos, los puertos y el entorno de ejecución
omniroute providers list # Conexiones de proveedores configuradas
omniroute providers test-all # Probar todas las conexiones activas
omniroute reset-password # Restablecer la contraseña de administrador
omniroute logs # Transmitir los registros de solicitudes
omniroute health # Estado detallado (disyuntores, caché, memoria)
omniroute --version # Mostrar la versión
omniroute --help # Mostrar todos los comandos
Ventana de terminal
omniroute setup # Asistente de configuración interactivo
omniroute setup --non-interactive # Modo de CI/automatización (lee variables de entorno y opciones)
omniroute setup --password '&lt;value&gt;' # Establecer directamente la contraseña de administrador
omniroute setup --add-provider \
--provider openai \
--api-key '&lt;value&gt;' \
--test-provider # Añadir y probar un proveedor en una sola operación

Variables de entorno reconocidas para la configuración no interactiva:

Variable Propósito
OMNIROUTE_API_KEY Clave de API del proveedor (vinculada a --api-key mediante .env() de Commander)
DATA_DIR Sobrescribir el directorio de datos de OmniRoute

Todas las demás entradas no interactivas se pasan como opciones, no como variables de entorno: --password, --provider, --provider-name, --provider-base-url, --default-model (consulte las opciones de omniroute setup anteriores).

Ventana de terminal
omniroute doctor # Comprobar la configuración, la base de datos, los puertos, el entorno de ejecución, la memoria y la actividad
omniroute doctor --json # JSON legible por máquinas
omniroute doctor --no-liveness # Omitir la comprobación de estado HTTP
omniroute doctor --host 0.0.0.0 # Sobrescribir el host de la comprobación de actividad
omniroute doctor --liveness-url &lt;url&gt; # Sobrescribir la URL completa del endpoint de estado

El diagnóstico ejecuta estas comprobaciones: Config, Database, Storage/encryption, Port availability, Node runtime, Native binary (better-sqlite3), Memory y Server liveness. Finaliza con un código distinto de cero si alguna comprobación devuelve fail.

Ventana de terminal
omniroute providers available # Catálogo de proveedores de OmniRoute
omniroute providers available --search openai # Filtrar el catálogo por id/nombre/alias/categoría
omniroute providers available --category api-key # Filtrar por categoría (api-key, oauth, free, ...)
omniroute providers available --json # JSON legible por máquinas
omniroute providers list # Conexiones de proveedores configuradas
omniroute providers list --json
omniroute providers test <id|name> # Probar una conexión configurada
omniroute providers test-all # Probar todas las conexiones activas
omniroute providers validate # Validación estructural exclusivamente local
omniroute providers add &lt;provider&gt; --credential-env PROVIDER_KEY
omniroute providers import ./providers.json --dry-run --json
omniroute providers auth &lt;provider&gt; # Flujo de OAuth existente
omniroute providers edit <id|name> --default-model &lt;model&gt;
omniroute providers remove <id|name> --yes

providers add/import/auth/edit/remove priorizan la API y, por tanto, funcionan con el contexto local o remoto activo. Para introducir credenciales se debe utilizar --credential-stdin o --credential-env; --dry-run --json solo informa de la presencia/estructura con los datos sensibles ocultos. providers available lee el catálogo de OmniRoute; providers list/test/test-all/validate mantienen su comportamiento local con SQLite y no requieren que el servidor esté en ejecución.

Ventana de terminal
omniroute reset-password # Restablecer la contraseña de administrador (también: omniroute-reset-password)
omniroute reset-encrypted-columns # Mostrar una advertencia y una ejecución de prueba para restablecer credenciales cifradas
omniroute reset-encrypted-columns --force # Establecer realmente como nulas las credenciales cifradas en SQLite

Exportación de credenciales (⚠ manipúlelas con cuidado)

Sección titulada «Exportación de credenciales (⚠ manipúlelas con cuidado)»
Ventana de terminal
omniroute auth export # Mostrar una advertencia y solicitar confirmación, sin acceder a la base de datos
omniroute auth export --force # Exportar las credenciales DESCIFRADAS de TODAS las conexiones a stdout como JSON
omniroute auth export --force --id &lt;id&gt; # Exportar solo la conexión coincidente
omniroute auth export --force --format env # Emitir líneas OMNIROUTE_<PROVIDER>_<FIELD>=&lt;value&gt;
omniroute auth export --force --out creds.json # Escribir en un archivo (creado con permisos 0600)

auth export es exclusivamente local (lectura directa de SQLite, sin ruta HTTP) e imprime/escribe intencionadamente los valores de apiKey/accessToken/refreshToken/idToken en texto sin formato; esa es la funcionalidad, no un error. Sin --force, no se lee nada de la base de datos ni se descifra ningún dato. Siempre se muestra en stderr un aviso antes de emitir cualquier texto sin formato. Requiere que STORAGE_ENCRYPTION_KEY esté definida. Si un campo no se puede descifrar (clave obsoleta o texto cifrado dañado), se informa mediante &lt;field&gt;DecryptFailed: true en lugar de cancelar toda la exportación o exponer el error subyacente.

Estos presuponen que hay un servidor OmniRoute en ejecución, salvo que se indique lo contrario:

Ventana de terminal
omniroute status # Estado completo en tiempo de ejecución
omniroute logs # Transmitir registros de solicitudes (--json, --search, --follow)
omniroute config list # Mostrar las herramientas de CLI configuradas
omniroute provider list # Listar los proveedores disponibles (alias de providers list)
omniroute provider add # Registrar OmniRoute como proveedor en una herramienta
omniroute keys add | list | remove # Gestionar claves de API
omniroute models [provider] # Listar modelos (--json, --search)
omniroute combo list | switch | create | delete
omniroute backup # Crear una instantánea de la configuración y la base de datos
omniroute restore # Restaurar desde una instantánea anterior
omniroute health # Estado detallado (disyuntores, caché, memoria)
omniroute quota # Uso de la cuota de los proveedores
omniroute cache # Estado de la caché
omniroute cache clear # Borrar las cachés semántica y de firmas
omniroute mcp status | restart # Estado / reinicio del servidor MCP
omniroute a2a status | card # Estado del servidor A2A / tarjeta del agente
omniroute tunnel list | create | stop # Gestionar túneles (cloudflare/tailscale/ngrok)
omniroute env show | get &lt;k&gt; | set &lt;k&gt; &lt;v&gt; # Consultar / establecer variables de entorno (temporalmente)
omniroute test # Prueba rápida de conectividad de los proveedores
omniroute update # Buscar actualizaciones
omniroute completion # Generar el autocompletado del shell
Opción Descripción
--no-open No abrir automáticamente el navegador al iniciar
--port &lt;n&gt; Sobrescribir el puerto de la API (predeterminado: 20128)
--mcp Ejecutar como servidor MCP mediante stdio (para IDEs)
--non-interactive Modo CI (sin preguntas; lee valores del entorno o de las opciones)
--json Salida JSON legible por máquina (doctor, providers, etc.)
--help, -h Mostrar la ayuda específica del comando
--version, -v Mostrar la versión instalada

Endpoint Descripción Uso para
/v1/chat/completions Chat estándar (todos los proveedores) Todas las herramientas modernas
/v1/responses API de respuestas (formato OpenAI) Codex, flujos de trabajo agenticos
/v1/completions Completaciones de texto heredadas Herramientas más antiguas que usan prompt:
/v1/embeddings Embeddings de texto RAG, búsqueda
/v1/images/generations Generación de imágenes GPT-Image, Flux, etc.
/v1/audio/speech Texto a voz ElevenLabs, OpenAI TTS
/v1/audio/transcriptions Voz a texto Deepgram, AssemblyAI

Ejemplos listos para pegar con una URL de OmniRoute tokenizada:

Ejemplo de token: sk-a3ab3c080beaee3a-69f4a4-070d71af
Base estándar de OpenAI: http://localhost:20128/v1
Modelos de VS Code: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/models
Chat de VS Code: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/chat/completions
Respuestas de VS Code: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/responses
Etiquetas de Ollama: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/api/tags
Chat de Ollama: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/api/chat

Error Causa Solución
Connection refused OmniRoute no está en ejecución omniroute serve
401 Unauthorized Clave API incorrecta Verificar en /dashboard/api-manager
No combo configured Sin combo de enrutamiento activo Configurar en /dashboard/combos
CLI muestra “not installed” Binario no en PATH Verificar which &lt;command&gt;
El panel muestra “not detected” después de la instalación Caché obsoleta Hacer clic en “⟳ Refresh detection” en el panel
Enlace antiguo /dashboard/cli-tools Marcador anterior a v3.8.6 Redirigido automáticamente a /dashboard/cli-code (308)
Enlace antiguo /dashboard/agents Marcador anterior a v3.8.6 Redirigido automáticamente a /dashboard/acp-agents (308)

Código fuente de OmniRoute (a58000c7685f)

HagiCode

HagiCode es un espacio de trabajo de programación con agentes, flujos estructurados, ejecución multiagente y vistas de Hero Dungeon.

Convierte ideas en software útil con un flujo de trabajo con agentes más inteligente, rápido y ameno.

Interfaz principal de HagiCode con tema claro
  • SmartLos flujos estructurados convierten la intención en un itinerario ejecutable desde la idea hasta la entrega.
  • EfficientLos flujos multiagente permiten avanzar en paralelo con la investigación, implementación y revisión.
  • FunHero Dungeon hace que las largas sesiones de programación sean visuales y colaborativas.
Visitar HagiCode