CLI Tools — OmniRoute (Español)
Cómo Funciona
Sección titulada «Cómo Funciona»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 → respuestaBeneficios:
- 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)
Configuración automática con setup-*
Sección titulada «Configuración automática con setup-*»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:
omniroute setup-codex omniroute setup-claude omniroute setup-opencodeomniroute setup-cline omniroute setup-kilo omniroute setup-continueomniroute setup-cursor omniroute setup-roo omniroute setup-crushomniroute setup-goose omniroute setup-qwen omniroute setup-aideromniroute setup-5diveCada 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.
Ejecución de estos dentro de un contenedor
Sección titulada «Ejecución de estos dentro de un contenedor»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.
Fuente de Verdad
Sección titulada «Fuente de Verdad»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 <cli> (existe receta de configuración) |
bin/cli/cli-manifest.mjs (configure: true) |
| Lanzable | Soportado por omniroute run <target> (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 | 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 |
3. Agentes ACP (/dashboard/acp-agents)
Sección titulada «3. Agentes ACP (/dashboard/acp-agents)»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.
5. API de Detección por Lotes
Sección titulada «5. API de Detección por Lotes»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.allsobre 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).
7. Arquitectura de Páginas del Dashboard
Sección titulada «7. Arquitectura de Páginas del Dashboard»Código CLI (/dashboard/cli-code)
Sección titulada «Código CLI (/dashboard/cli-code)»src/app/(dashboard)/dashboard/cli-code/page.tsx— componente del servidorsrc/app/(dashboard)/dashboard/cli-code/CliCodePageClient.tsx— cuadrícula del clientesrc/app/(dashboard)/dashboard/cli-code/[id]/page.tsx— página de detalles de la herramientasrc/app/(dashboard)/dashboard/cli-code/components/— 12 tarjetas de herramientas especializadas +ToolDetailClient.tsx
Agentes CLI (/dashboard/cli-agents)
Sección titulada «Agentes CLI (/dashboard/cli-agents)»src/app/(dashboard)/dashboard/cli-agents/page.tsx— componente del servidorsrc/app/(dashboard)/dashboard/cli-agents/CliAgentsPageClient.tsx— cuadrícula del clientesrc/app/(dashboard)/dashboard/cli-agents/[id]/page.tsx— reutilizaToolDetailClient
Agentes ACP (/dashboard/acp-agents)
Sección titulada «Agentes ACP (/dashboard/acp-agents)»src/app/(dashboard)/dashboard/acp-agents/page.tsx— componente del servidor (movido deagents/)
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 |
Hook Compartido (src/shared/hooks/cli/)
Sección titulada «Hook Compartido (src/shared/hooks/cli/)»| Archivo | Propósito |
|---|---|
useToolBatchStatuses.ts |
Obtiene /api/cli-tools/all-statuses, gestiona el estado de carga/actualización |
8. i18n
Sección titulada «8. i18n»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.
9. Inicio Rápido
Sección titulada «9. Inicio Rápido»Paso 1 — Obtén una clave de API de OmniRoute
Sección titulada «Paso 1 — Obtén una clave de API de OmniRoute»- Abre
/dashboard/api-manager→ Crear clave de API - Dale un nombre (por ejemplo,
cli-tools) y selecciona todos los permisos - Copia la clave — la necesitarás para cada CLI a continuación
Tu clave se ve así:
sk-xxxxxxxxxxxxxxxx-xxxxxxxxx
Paso 2 — Instala las herramientas CLI
Sección titulada «Paso 2 — Instala las herramientas CLI»Todas las herramientas basadas en npm requieren Node.js 22.22.2+ o 24.x:
# Claude Code (Anthropic)npm install -g @anthropic-ai/claude-code
# OpenAI Codexnpm install -g @openai/codex
# OpenCodenpm install -g opencode-ai
# Clinenpm install -g cline
# KiloCodenpm install -g kilocode
# Qwen Codenpm 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
# Aiderpip install aider-chat
# Smeltcargo 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ónPaso 3 — Configura a través del Dashboard
Sección titulada «Paso 3 — Configura a través del Dashboard»- Ve a
http://localhost:20128/dashboard/cli-code - Encuentra tu herramienta en la cuadrícula
- Haz clic en la tarjeta para abrir la página de detalles de la herramienta
- Selecciona tu clave de API y URL base
- 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»# Punto de acceso universal de OmniRouteexport 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:20128con la IP o dominio del servidor, por ejemplo,http://<tu-ip-del-servidor>:20128.
Paso 4 — Configura Cada Herramienta
Sección titulada «Paso 4 — Configura Cada Herramienta»Claude Code
Sección titulada «Claude Code»# 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" }}EOFUsa la raíz de la puerta de enlace unificada de Anthropic para Claude Code. No agregues /v1 aquí.
Prueba: claude "say hello"
OpenAI Codex
Sección titulada «OpenAI Codex»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:
mkdir -p ~/.codex && cat > ~/.codex/config.toml << EOFmodel_provider = "omniroute"
[model_providers.omniroute]name = "OmniRoute"base_url = "http://localhost:20128/v1"env_key = "OMNIROUTE_API_KEY"requires_openai_auth = falseEOFexport 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?"
OpenCode
Sección titulada «OpenCode»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" } } } }}EOFPrueba: opencode
Usa
opencode run "tu prompt" --model omniroute/claude-sonnet-4-5-thinking --variant highpara enviar variantes de pensamiento.
Cline (CLI o VS Code)
Sección titulada «Cline (CLI o VS Code)»Modo CLI:
mkdir -p ~/.cline/data && cat > ~/.cline/data/globalState.json << EOF{ "apiProvider": "openai", "openAiBaseUrl": "http://localhost:20128/v1", "openAiApiKey": "sk-your-omniroute-key"}EOFModo 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.
KiloCode (CLI o VS Code)
Sección titulada «KiloCode (CLI o VS Code)»Modo CLI:
kilocode --api-base http://localhost:20128/v1 --api-key sk-your-omniroute-keyConfiguraciones 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.
Continue (Extensión de VS Code)
Sección titulada «Continue (Extensión de VS Code)»Edita ~/.continue/config.yaml:
models: - name: OmniRoute provider: openai model: auto apiBase: http://localhost:20128/v1 apiKey: sk-your-omniroute-key default: trueReinicia VS Code después de editar.
VS Code Insiders (chatLanguageModels.json)
Sección titulada «VS Code Insiders (chatLanguageModels.json)»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-keycon una clave de API creada en OmniRoute. - El campo
urldebe apuntar a/api/v1/vscode/{token}/chat/completions. - El campo
modelsUrldebe 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.
Kiro CLI (Amazon)
Sección titulada «Kiro CLI (Amazon)»# 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 statusPara la aplicación de escritorio Kiro IDE, usa el punto final MITM expuesto por OmniRoute
bajo /dashboard/cli-tools → Kiro.
10. CLI interna de OmniRoute
Sección titulada «10. CLI interna de OmniRoute»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.
omniroute # Iniciar el servidor (puerto predeterminado 20128)omniroute setup # Asistente de configuración interactivoomniroute doctor # Comprobar la configuración, la base de datos, los puertos y el entorno de ejecuciónomniroute providers list # Conexiones de proveedores configuradasomniroute providers test-all # Probar todas las conexiones activasomniroute reset-password # Restablecer la contraseña de administradoromniroute logs # Transmitir los registros de solicitudesomniroute health # Estado detallado (disyuntores, caché, memoria)omniroute --version # Mostrar la versiónomniroute --help # Mostrar todos los comandosConfiguración e inicialización
Sección titulada «Configuración e inicialización»omniroute setup # Asistente de configuración interactivoomniroute setup --non-interactive # Modo de CI/automatización (lee variables de entorno y opciones)omniroute setup --password '<value>' # Establecer directamente la contraseña de administradoromniroute setup --add-provider \ --provider openai \ --api-key '<value>' \ --test-provider # Añadir y probar un proveedor en una sola operaciónVariables 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).
Diagnóstico
Sección titulada «Diagnóstico»omniroute doctor # Comprobar la configuración, la base de datos, los puertos, el entorno de ejecución, la memoria y la actividadomniroute doctor --json # JSON legible por máquinasomniroute doctor --no-liveness # Omitir la comprobación de estado HTTPomniroute doctor --host 0.0.0.0 # Sobrescribir el host de la comprobación de actividadomniroute doctor --liveness-url <url> # Sobrescribir la URL completa del endpoint de estadoEl 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.
Gestión de proveedores
Sección titulada «Gestión de proveedores»omniroute providers available # Catálogo de proveedores de OmniRouteomniroute providers available --search openai # Filtrar el catálogo por id/nombre/alias/categoríaomniroute 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 configuradasomniroute providers list --json
omniroute providers test <id|name> # Probar una conexión configuradaomniroute providers test-all # Probar todas las conexiones activasomniroute providers validate # Validación estructural exclusivamente localomniroute providers add <provider> --credential-env PROVIDER_KEYomniroute providers import ./providers.json --dry-run --jsonomniroute providers auth <provider> # Flujo de OAuth existenteomniroute providers edit <id|name> --default-model <model>omniroute providers remove <id|name> --yesproviders 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.
Recuperación y restablecimiento
Sección titulada «Recuperación y restablecimiento»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 cifradasomniroute reset-encrypted-columns --force # Establecer realmente como nulas las credenciales cifradas en SQLiteExportación de credenciales (⚠ manipúlelas con cuidado)
Sección titulada «Exportación de credenciales (⚠ manipúlelas con cuidado)»omniroute auth export # Mostrar una advertencia y solicitar confirmación, sin acceder a la base de datosomniroute auth export --force # Exportar las credenciales DESCIFRADAS de TODAS las conexiones a stdout como JSONomniroute auth export --force --id <id> # Exportar solo la conexión coincidenteomniroute auth export --force --format env # Emitir líneas OMNIROUTE_<PROVIDER>_<FIELD>=<value>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
<field>DecryptFailed: true en lugar de cancelar toda la exportación o exponer el error subyacente.
Otros subcomandos
Sección titulada «Otros subcomandos»Estos presuponen que hay un servidor OmniRoute en ejecución, salvo que se indique lo contrario:
omniroute status # Estado completo en tiempo de ejecuciónomniroute 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 herramientaomniroute keys add | list | remove # Gestionar claves de APIomniroute 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 datosomniroute restore # Restaurar desde una instantánea anterior
omniroute health # Estado detallado (disyuntores, caché, memoria)omniroute quota # Uso de la cuota de los proveedoresomniroute 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 MCPomniroute 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 <k> | set <k> <v> # Consultar / establecer variables de entorno (temporalmente)
omniroute test # Prueba rápida de conectividad de los proveedoresomniroute update # Buscar actualizacionesomniroute completion # Generar el autocompletado del shellOpciones comunes
Sección titulada «Opciones comunes»| Opción | Descripción |
|---|---|
--no-open |
No abrir automáticamente el navegador al iniciar |
--port <n> |
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 |
Puntos finales de API disponibles
Sección titulada «Puntos finales de API disponibles»| 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/v1Modelos de VS Code: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/modelsChat de VS Code: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/chat/completionsRespuestas de VS Code: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/responsesEtiquetas de Ollama: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/api/tagsChat de Ollama: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/api/chatSolución de problemas
Sección titulada «Solución de problemas»| 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 <command> |
| 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) |
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.

- 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.