The translated CLI docs predated the relay-like CLI work: every locale still shipped the legacy Codex `config.yaml` quickstart (dropped from the English source when the generator moved to TOML), none mentioned the `omniroute run` launcher or the Gemini target, and CLI-INTEGRATIONS.md existed only in Polish. Regenerated through the project pipeline (npm run i18n:run) for the two guides the CLI effort changed: - docs/i18n/*/docs/reference/CLI-TOOLS.md — 42 locales updated; the obsolete YAML quickstart is gone from all of them (the remaining config.yaml mentions mirror the English legacy note and Continue's own config) - docs/i18n/*/docs/guides/CLI-INTEGRATIONS.md — 42 locales, 41 of them new files ENVIRONMENT.md is deliberately not included: at ~26 chunks per locale it exceeds the pipeline's 60s per-chunk timeout and fails after retries. It needs a raised OMNIROUTE_TRANSLATION_TIMEOUT_MS, which is a separate maintenance run. Verified: check:docs-all exits 0, doc-links reports no broken internal links, and spot-checks confirm technical identifiers, front-matter and language bars survive translation intact.
42 KiB
CLI-TOOLS (Italiano)
🌐 Languages: 🇺🇸 English · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇪🇸 es · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇳 gu · 🇮🇱 he · 🇮🇳 hi · 🇭🇺 hu · 🇮🇩 id · 🇮🇩 in · 🇯🇵 ja · 🇰🇷 ko · 🇮🇳 mr · 🇲🇾 ms · 🇳🇱 nl · 🇳🇴 no · 🇵🇭 phi · 🇵🇱 pl · 🇵🇹 pt · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇸🇰 sk · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇻🇳 vi · 🇨🇳 zh-CN · 🇹🇼 zh-TW
title: "Strumenti CLI — OmniRoute" version: 3.8.50 lastUpdated: 2026-08-18
Strumenti CLI — OmniRoute
Ultimo aggiornamento: 2026-08-18
OmniRoute si integra con tre categorie di strumenti CLI distribuiti su tre pagine di dashboard dedicate:
| Pagina | Percorso | Concetto | Conteggio |
|---|---|---|---|
| CLI Code's | /dashboard/cli-code |
Strumenti di codifica che punti a OmniRoute (Client → CLI → OmniRoute → Provider) | 26 |
| CLI Agents | /dashboard/cli-agents |
Agenti autonomi che punti a OmniRoute (stesso flusso, ambito più ampio) | 8 |
| ACP Agents | /dashboard/acp-agents |
CLI che OmniRoute genera come backend tramite stdio/ACP (flusso inverso) | vedi registro |
I percorsi legacy reindirizzano tramite 308: /dashboard/cli-tools → /dashboard/cli-code, /dashboard/agents → /dashboard/acp-agents.
Come Funziona
CLI Code's / CLI Agents (flusso di consumo):
Claude / Codex / OpenCode / Cline / KiloCode / Continue / Hermes Agent / Goose / ...
│
▼ (tutti puntano a OmniRoute)
http://YOUR_SERVER:20128/v1
│
▼ (OmniRoute instrada al provider giusto)
Anthropic / OpenAI / Gemini / DeepSeek / Groq / Mistral / ...
ACP Agents (flusso di generazione inverso):
Richiesta del client → OmniRoute → genera CLI tramite stdio/ACP → risposta
Vantaggi:
- Una chiave API per gestire tutti gli strumenti
- Monitoraggio dei costi su tutte le CLI nella dashboard
- Cambio di modello senza riconfigurare ogni strumento
- Funziona localmente e su server remoti (VPS, Docker, Akamai, Cloudflare Tunnel)
Configurazione automatica con setup-*
Non è necessario scrivere a mano la configurazione di ogni strumento. OmniRoute fornisce un comando setup-*
per ogni CLI supportata che legge il catalogo di modelli live da un OmniRoute in esecuzione
(locale o remoto) e scrive la configurazione dello strumento sulla tua macchina:
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
Ognuno accetta --remote <url> --api-key <key> (configura uno strumento locale contro un
OmniRoute remoto), --dry-run (anteprima senza scrivere), e --port. Gli strumenti
senza auto-scoperta del modello (Cline, Kilo, Roo, Goose, Aider, Qwen) richiedono
--model <id> (e --yes per esecuzioni non interattive). Per avviare una CLI con
l'ambiente corretto iniettato e senza alcuna configurazione scritta, utilizza il generico
lanciatore omniroute run <target> (claude, codex, aider, goose, opencode, qwen,
gemini — i target e gli alias provengono da bin/cli/cli-manifest.mjs); i lanciatori
legacy per ogni strumento omniroute launch (Claude Code) e omniroute launch-codex
(Codex) rimangono disponibili. La CLI di Gemini è solo per il lancio: è un target di
omniroute run ma non ha ricetta setup-*/configure.
Riferimento completo: la tabella principale — cosa scrive ogni comando, ogni flag, locale vs remoto, e quali strumenti richiedono un suffisso
/v1— si trova in Integrazioni CLI.
Esecuzione di questi all'interno di un contenitore
Un comando setup-* eseguito all'interno del contenitore OmniRoute scrive nella
home del contenitore stesso, che nessuna CLI host legge e che scompare con il
contenitore. OmniRoute rileva ciò e termina con 2 fornendo istruzioni piuttosto che
scrivere. Due modi supportati per procedere: installare la CLI sull'host e
omniroute connect al contenitore, oppure montare in binding le directory di configurazione e impostare
CLI_CONFIG_HOME (il profilo host di compose). Ogni comando setup-*, più
omniroute configure e omniroute config set, accetta
--allow-container-write quando configurare le CLI del contenitore è ciò che intendevi;
OMNIROUTE_ALLOW_CONTAINER_CONFIG_WRITE=true fa lo stesso per il server. Vedi
Guida Docker → Configurazione degli strumenti CLI host.
L'endpoint di applicazione della dashboard (POST /api/cli-tools/apply) applica la
stessa protezione: in un contenitore, una scrittura il cui target non è montato in binding dall'
host risponde 422 con containerEphemeralTarget: true, il testo di errore sicuro e — per gli strumenti con una ricetta host (claude, codex, opencode, cline,
kilo, continue) — un hostSetupCommand (ad esempio omniroute setup-opencode) da eseguire
sull'host invece; nulla viene scritto. dryRun: true continua a funzionare in modalità contenitore
e restituisce il contenuto generato + il percorso target senza toccare il disco, quindi
puoi visualizzare dalla dashboard e applicare sull'host. Questo comportamento è
intenzionale e protetto da regressione da
tests/unit/api/cli-tools/apply-container-guard.test.ts — non "correggere" mai un 422
rimuovendo la protezione.
Fonte di Verità
Il catalogo unificato si trova in src/shared/constants/cliTools.ts come CLI_TOOLS: Record<string, CliCatalogEntry>.
Ogni voce ha questi campi (definiti in src/shared/schemas/cliCatalog.ts):
| Campo | Tipo | Descrizione |
|---|---|---|
category |
"code" | "agent" |
In quale pagina appare lo strumento |
vendor |
string |
Origine dello strumento ("Anthropic", "OSS (P. Gauthier)") |
acpSpawnable |
boolean |
Utilizzabile anche come ACP Agent (badge mostrato) |
baseUrlSupport |
"full" | "partial" | "none" |
Livello di supporto per endpoint personalizzati. "none" = backlog MITM |
configType |
"env" | "custom" | "guide" | "custom-builder" | "mitm" |
Meccanismo di configurazione |
id, name, color, description, docsUrl |
standard | Campi di visualizzazione principali |
Le voci con baseUrlSupport: "none" non vengono mostrate nelle pagine del dashboard — sono registrate nel backlog MITM per il piano 11 (vedi _tasks/features-v3.8.6/refactorpages/_orchestration/_plan11-mitm-backlog.md).
Livelli di capacità (catalogati × rilevabili × configurabili × avviabili)
Non tutti gli strumenti catalogati sono rilevabili, configurabili o avviabili. Ogni livello ha una fonte dichiarativa, e un test di drift li mantiene allineati:
| Livello | Significato | Dichiarato in |
|---|---|---|
| Catalogato | Appare nel catalogo del dashboard (nome, fornitore, documentazione, tipo di configurazione) | src/shared/constants/cliTools.ts (CLI_TOOLS) |
| Rilevabile | Rilevamento binario/configurazione, controlli di salute, percorsi di configurazione | src/shared/services/cliRuntime.ts (CLI_TOOLS runtime catalog) |
| Configurabile | Supportato da omniroute configure <cli> (esiste una ricetta di configurazione) |
bin/cli/cli-manifest.mjs (configure: true) |
| Avviabile | Supportato da omniroute run <target> (iniezione di env/args definita) |
bin/cli/cli-manifest.mjs (run: true) |
bin/cli/cli-manifest.mjs è il manifesto eseguibile canonico per i comandi CLI
superfici: run, configure e i generatori di completamento della shell derivano tutti le loro
liste di destinazione, risoluzione degli alias (ad esempio kilocode/kilo-code/kilo_cli → kilo)
e wiring del flag --model da esso. Il guardiano del drift
tests/unit/cli/cli-manifest-drift.test.ts afferma che il manifesto, il catalogo runtime,
il catalogo UI e ogni superficie consumatrice rimangano sincronizzati — una destinazione aggiunta
a una superficie senza le altre fa fallire il suite invece di driftare silenziosamente.
1. Catalogo del Codice CLI (26 strumenti)
Tutti gli strumenti che appaiono in /dashboard/cli-code. Quelli con baseUrlSupport: none sono collegati tramite MITM o una guida manuale invece di un URL di base personalizzato:
| id | nome | fornitore | supportoBaseUrl | tipoConfig | acpSpawnable |
|---|---|---|---|---|---|
| claude | Claude Code | Anthropic | completo | env | true |
| codex | OpenAI Codex CLI | OpenAI | completo | custom | true |
| zcode | ZCode (Piano di Codifica GLM) | Z.ai | nessuno | custom | false |
| cline | Cline | OSS (ex-Claude Dev) | completo | custom | true |
| kilo | Kilo Code | Kilo-Org | completo | custom | false |
| roo | Roo Code | Roo (OSS) | completo | guida | false |
| continue | Continue | continue.dev | completo | guida | false |
| aider | Aider | OSS (P. Gauthier) | completo | guida | true |
| forge | ForgeCode | Antinomy HQ | completo | custom | true |
| jcode | jcode | 1jehuang (OSS) | completo | custom | false |
| deepseek-tui | DeepSeek TUI | Hunter Bown (OSS) | completo | custom | false |
| codewhale | CodeWhale | Hmbown (OSS) | completo | custom | false |
| opencode | OpenCode | Anomaly (ex-SST) | completo | guida | true |
| droid | Factory Droid | Factory AI | parziale | guida | false |
| copilot | GitHub Copilot CLI | GitHub/MS | completo | custom | false |
| cursor-cli | Cursor CLI | Anysphere | parziale | guida | true |
| smelt | Smelt | leonardcser (OSS) | completo | custom | false |
| pi | Pi (pi-coding-agent) | M. Zechner (OSS) | completo | custom | false |
| grok-build | Grok Build | xAI | completo | custom | false |
| crush | Crush | OSS (Charm) | completo | custom | false |
| qwen | Qwen Code | Alibaba | completo | guida | true |
| cursor | Cursor | Anysphere | nessuno | guida | false |
| antigravity | Antigravity | nessuno | mitm | false | |
| hermes | Hermes | Nous Research | nessuno | guida | false |
| kiro | Kiro AI | Amazon | nessuno | mitm | false |
| custom | Custom CLI | — | completo | custom-builder | false |
Gli strumenti con baseUrlSupport: "parziale" mostrano un badge "⚠ Base URL parziale" nella scheda del dashboard.
2. Catalogo degli Agenti CLI (8 strumenti)
Agenti autonomi che appaiono in /dashboard/cli-agents:
| id | nome | fornitore | supportoBaseUrl | acpSpawnable |
|---|---|---|---|---|
| hermes-agent | Hermes Agent | Nous Research | completo | false |
| openclaw | OpenClaw | OSS (P. Steinberger) | completo | true |
| goose | Goose | Block / Linux Foundation | completo | true |
| interpreter | Open Interpreter | OSS | completo | true |
| warp | Warp AI | Warp Inc. | parziale | true |
| agent-deck | Agent Deck | asheshgoplani (OSS) | completo | false |
| omp | Oh My Pi | OSS | completo | true |
| letta | Letta CLI | Letta | completo | false |
3. Agenti ACP (/dashboard/acp-agents)
Questa pagina (rinominata da /dashboard/agents) mostra le CLI che OmniRoute può generare come motori di esecuzione backend tramite il protocollo stdio/ACP. Il catalogo è mantenuto separatamente in src/lib/acp/registry.ts e non è lo stesso di CLI_TOOLS.
4. Backlog MITM (non mostrato nel dashboard)
Le seguenti CLI non supportano nativamente URL base personalizzati e non sono elencate nelle pagine di CLI Code o CLI Agents. Sono candidati per l'intercettazione MITM nel piano 11:
| CLI | Motivo |
|---|---|
| windsurf | BYOK limitato a selezionati modelli Claude + URL/token aziendale |
| amp | Ecosistema chiuso (Sourcegraph) |
| amazon-q / kiro-cli | Autenticazione AWS SSO, nessun URL personalizzato |
| cowork | Anthropic Desktop, nessun endpoint configurabile |
Vedi _tasks/features-v3.8.6/refactorpages/_orchestration/_plan11-mitm-backlog.md per il riferimento incrociato completo.
5. API di Rilevamento Batch
Tutti i rilevamenti degli strumenti sono aggregati tramite un singolo endpoint:
GET /api/cli-tools/all-statuses
- Auth:
requireCliToolsAuth(request)(stesso delle altre rotte/api/cli-tools/) - Restituisce:
Record<toolId, ToolBatchStatus>(tipo:src/shared/types/cliBatchStatus.ts) - Strategia:
Promise.allsu tutti gli strumenti, timeout di 5s per strumento - Cache: in memoria LRU indicizzata dal file di configurazione
mtime. Cache invalidata quando mtime cambia. Ripristinata al riavvio del server.
Forma della risposta per strumento:
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; // sanitizzato, nessun trace dello stack
}
6. Gestori delle Impostazioni per Nuovi Strumenti
I nuovi strumenti con configType: "custom" hanno percorsi API di impostazioni dedicati:
| Percorso | Strumento |
|---|---|
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, legacy) |
POST /api/cli-tools/codewhale-settings |
CodeWhale (OPENAI_BASE_URL, primary + legacy ~/.deepseek sync) |
POST /api/cli-tools/smelt-settings |
Smelt |
POST /api/cli-tools/pi-settings |
Agente di codifica 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 + chiave .env dedicata) |
Tutti i percorsi utilizzano sanitizeErrorMessage() per le risposte di errore (Regola Ferrea #12).
7. Architettura delle Pagine del Dashboard
Codice CLI (/dashboard/cli-code)
src/app/(dashboard)/dashboard/cli-code/page.tsx— componente serversrc/app/(dashboard)/dashboard/cli-code/CliCodePageClient.tsx— griglia clientsrc/app/(dashboard)/dashboard/cli-code/[id]/page.tsx— pagina di dettaglio dello strumentosrc/app/(dashboard)/dashboard/cli-code/components/— 12 schede di strumenti specializzati +ToolDetailClient.tsx
Agenti CLI (/dashboard/cli-agents)
src/app/(dashboard)/dashboard/cli-agents/page.tsx— componente serversrc/app/(dashboard)/dashboard/cli-agents/CliAgentsPageClient.tsx— griglia clientsrc/app/(dashboard)/dashboard/cli-agents/[id]/page.tsx— riutilizzaToolDetailClient
Agenti ACP (/dashboard/acp-agents)
src/app/(dashboard)/dashboard/acp-agents/page.tsx— componente server (spostato daagents/)
Componenti UI Condivisi (src/shared/components/cli/)
| File | Scopo |
|---|---|
CliToolCard.tsx |
Scheda di stato intelligente (rilevamento + configurazione + endpoint) |
CliConceptCard.tsx |
Scheda di spiegazione del concetto per pagina |
CliComparisonCard.tsx |
Confronto a tre colonne tra tipi di CLI |
BaseUrlSelect.tsx |
Menu a discesa per endpoint (Locale/Cloud/Personalizzato) |
ApiKeySelect.tsx |
Selettore della chiave API |
ManualConfigModal.tsx |
Modale per frammento di configurazione copiabile |
Hook Condiviso (src/shared/hooks/cli/)
| File | Scopo |
|---|---|
useToolBatchStatuses.ts |
Recupera /api/cli-tools/all-statuses, gestisce lo stato di caricamento/aggiornamento |
8. i18n
Nuovi spazi dei nomi aggiunti nel piano 14 F9:
| Namespace | Scopo |
|---|---|
cliCommon |
Stringhe condivise (etichette delle schede, testi di concetto/comparazione, etichette delle pagine di dettaglio) |
cliCode |
Stringhe della pagina del codice CLI |
cliAgents |
Stringhe della pagina degli agenti CLI |
acpAgents |
Stringhe della pagina degli agenti ACP |
Traduzioni complete in PT-BR e EN sono fornite. 39 altre lingue ricadono automaticamente su EN tramite la fusione a livello di spazio dei nomi in src/i18n/request.ts.
9. Guida Rapida
Passo 1 — Ottieni una Chiave API OmniRoute
- Apri
/dashboard/api-manager→ Crea Chiave API - Dagli un nome (es.
cli-tools) e seleziona tutte le autorizzazioni - Copia la chiave — ne avrai bisogno per ogni CLI qui sotto
La tua chiave appare così:
sk-xxxxxxxxxxxxxxxx-xxxxxxxxx
Passo 2 — Installa gli Strumenti CLI
Tutti gli strumenti basati su npm richiedono Node.js 22.22.2+ o 24.x:
# 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 (lanciabile tramite `omniroute run gemini` → /v1beta surface)
npm install -g @google/gemini-cli
# Aider
pip install aider-chat
# Smelt
cargo install smelt # Basato su Rust
# Pi coding agent
# vedere https://github.com/zechnerj/pi-coding-agent per l'installazione
# jcode
# vedere https://github.com/1jehuang/jcode per l'installazione
Passo 3 — Configura tramite Dashboard
- Vai a
http://localhost:20128/dashboard/cli-code - Trova il tuo strumento nella griglia
- Clicca sulla scheda per aprire la pagina di dettaglio dello strumento
- Seleziona la tua chiave API e l'URL di base
- Clicca su Applica Config o copia il frammento di configurazione manuale
Passo 4 — Imposta Variabili Ambientali Globali
# OmniRoute Universal Endpoint
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 legge GOOGLE_GEMINI_BASE_URL alla RADICE (il suo SDK aggiunge /v1beta/... da solo)
export GOOGLE_GEMINI_BASE_URL="http://localhost:20128"
export GEMINI_API_KEY="sk-your-omniroute-key"
Per un server remoto sostituisci
localhost:20128con l'IP o il dominio del server, es.http://<your-server-ip>:20128.
Passo 4 — Configura Ogni Strumento
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"
}
}
EOF
Usa la radice del gateway unificato di Anthropic per Claude Code. Non aggiungere /v1 qui.
Test: claude "say hello"
OpenAI Codex
Il Codex moderno (v0.137+) legge solo ~/.codex/config.toml — il vecchio
config.yaml appartiene al CLI npm legacy ed è silenziosamente ignorato. La chiave API
rimane nella variabile ambientale OMNIROUTE_API_KEY (env_key), mai
all'interno del file:
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"
Riferimento completo (profili, wire_api, finestre di contesto): CODEX-CLI-CONFIGURATION.md.
Test: codex "what is 2+2?"
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" }
}
}
}
}
EOF
Test: opencode
Usa
opencode run "your prompt" --model omniroute/claude-sonnet-4-5-thinking --variant highper inviare varianti di pensiero.
Cline (CLI o VS Code)
Modalità CLI:
mkdir -p ~/.cline/data && cat > ~/.cline/data/globalState.json << EOF
{
"apiProvider": "openai",
"openAiBaseUrl": "http://localhost:20128/v1",
"openAiApiKey": "sk-your-omniroute-key"
}
EOF
Modalità VS Code:
Impostazioni dell'estensione Cline → Fornitore API: OpenAI Compatible → URL di base: http://localhost:20128/v1
Oppure usa il dashboard di OmniRoute → CLI Tools → Cline → Applica Config.
KiloCode (CLI o VS Code)
Modalità CLI:
kilocode --api-base http://localhost:20128/v1 --api-key sk-your-omniroute-key
Impostazioni VS Code:
{
"kilo-code.openAiBaseUrl": "http://localhost:20128/v1",
"kilo-code.apiKey": "sk-your-omniroute-key"
}
Oppure usa il dashboard di OmniRoute → CLI Tools → KiloCode → Applica Config.
Continue (Estensione VS Code)
Modifica ~/.continue/config.yaml:
models:
- name: OmniRoute
provider: openai
model: auto
apiBase: http://localhost:20128/v1
apiKey: sk-your-omniroute-key
default: true
Riavvia VS Code dopo la modifica.
VS Code Insiders (chatLanguageModels.json)
Usa questo quando VS Code Insiders è configurato per modelli di endpoint personalizzati e desideri che OmniRoute funzioni senza un campo di intestazione personalizzato.
Posizione consigliata:
- Linux:
~/.config/Code - Insiders/User/chatLanguageModels.json - Windows:
%APPDATA%/Code - Insiders/User/chatLanguageModels.json
Esempio usando l'alias tokenizzato di 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"
}
}
]
Note:
- Sostituisci
sk-your-omniroute-keycon una chiave API creata in OmniRoute. - Il campo
urldovrebbe puntare a/api/v1/vscode/{token}/chat/completions. - Il campo
modelsUrldovrebbe puntare a/api/v1/vscode/{token}/models. - Preferisci il normale flusso
/v1+ intestazione Bearer quando il client supporta intestazioni personalizzate. - I token incorporati nell'URL sono un fallback di compatibilità e possono apparire nei log dell'editor o nella cronologia del proxy.
Kiro CLI (Amazon)
# Accedi al tuo account AWS/Kiro:
kiro-cli login
# Il CLI utilizza la propria autenticazione — OmniRoute non è necessario come backend per il Kiro CLI stesso.
# Usa kiro-cli insieme a OmniRoute per altri strumenti.
kiro-cli status
Per l'app desktop Kiro IDE, usa l'endpoint MITM esposto da OmniRoute
sotto /dashboard/cli-tools → Kiro.
10. OmniRoute CLI Interno
Il binario omniroute fornisce comandi per il ciclo di vita del server, configurazione, diagnostica e gestione dei provider. Punto di ingresso: bin/omniroute.mjs.
omniroute # Avvia il server (porta predefinita 20128)
omniroute setup # Procedura guidata di configurazione interattiva
omniroute doctor # Controlla configurazione, DB, porte, runtime
omniroute providers list # Connessioni ai provider configurati
omniroute providers test-all # Testa ogni connessione attiva
omniroute reset-password # Reimposta la password dell'amministratore
omniroute logs # Flusso dei log delle richieste
omniroute health # Salute dettagliata (interruttori, cache, memoria)
omniroute --version # Stampa la versione
omniroute --help # Mostra tutti i comandi
Configurazione e Inizializzazione
omniroute setup # Procedura guidata di configurazione interattiva
omniroute setup --non-interactive # Modalità CI/automazione (legge variabili d'ambiente + flag)
omniroute setup --password '<value>' # Imposta direttamente la password dell'amministratore
omniroute setup --add-provider \
--provider openai \
--api-key '<value>' \
--test-provider # Aggiungi e testa un provider in un colpo solo
Variabili d'ambiente riconosciute per la configurazione non interattiva:
| Var | Scopo |
|---|---|
OMNIROUTE_API_KEY |
Chiave API del provider (collegata a --api-key tramite Commander .env()) |
DATA_DIR |
Sovrascrivi la directory dei dati di OmniRoute |
Tutti gli altri input non interattivi sono passati come flag, non come variabili d'ambiente:
--password, --provider, --provider-name, --provider-base-url, --default-model
(vedi le opzioni omniroute setup sopra).
Diagnostica
omniroute doctor # Controlla configurazione, DB, porte, runtime, memoria, liveness
omniroute doctor --json # JSON leggibile dalla macchina
omniroute doctor --no-liveness # Salta il probe di salute HTTP
omniroute doctor --host 0.0.0.0 # Sovrascrivi l'host di liveness
omniroute doctor --liveness-url <url> # Sovrascrivi l'URL dell'endpoint di salute completo
Il doctor esegue questi controlli: Configurazione, Database, Storage/crittografia,
Disponibilità della porta, Runtime del nodo, Binario nativo (better-sqlite3),
Memoria, e Liveness del server. Esce con un codice non zero se uno dei controlli fallisce.
Gestione dei Provider
omniroute providers available # Catalogo dei provider di OmniRoute
omniroute providers available --search openai # Filtra il catalogo per id/nome/alias/categoria
omniroute providers available --category api-key # Filtra per categoria (api-key, oauth, free, ...)
omniroute providers available --json # JSON leggibile dalla macchina
omniroute providers list # Connessioni ai provider configurati
omniroute providers list --json
omniroute providers test <id|name> # Testa una connessione configurata
omniroute providers test-all # Testa ogni connessione attiva
omniroute providers validate # Validazione strutturale solo locale
omniroute providers add <provider> --credential-env PROVIDER_KEY
omniroute providers import ./providers.json --dry-run --json
omniroute providers auth <provider> # Flusso OAuth esistente
omniroute providers edit <id|name> --default-model <model>
omniroute providers remove <id|name> --yes
providers add/import/auth/edit/remove sono API-first e quindi funzionano contro
il contesto locale o remoto attivo. L'input delle credenziali dovrebbe utilizzare
--credential-stdin o --credential-env; --dry-run --json riporta solo
la presenza/forma redatta. providers available legge il catalogo di OmniRoute;
providers list/test/test-all/validate mantengono il loro comportamento locale SQLite e
non richiedono che il server sia in esecuzione.
Recupero e Ripristino
omniroute reset-password # Reimposta la password dell'amministratore (anche: omniroute-reset-password)
omniroute reset-encrypted-columns # Mostra avviso + dry-run per il ripristino delle credenziali crittografate
omniroute reset-encrypted-columns --force # Annulla effettivamente le credenziali crittografate in SQLite
Esportazione delle Credenziali (⚠ maneggiare con cura)
omniroute auth export # Mostra avviso + gate di conferma — nessun accesso al DB
omniroute auth export --force # Esporta TUTTE le credenziali DECRITTOGRAFATE delle connessioni su stdout come JSON
omniroute auth export --force --id <id> # Esporta solo la connessione corrispondente
omniroute auth export --force --format env # Emmette righe OMNIROUTE_<PROVIDER>_<FIELD>=<value>
omniroute auth export --force --out creds.json # Scrive in un file (creato con permessi 0600)
auth export è solo locale (lettura diretta di SQLite, nessun percorso HTTP) e stampa/scrive
in chiaro i valori apiKey/accessToken/refreshToken/idToken — questa è la funzionalità, non un
bug. Niente viene letto dal database e niente viene decrittografato, senza --force. Un banner di avviso su stderr
viene sempre stampato prima che venga emesso qualsiasi testo in chiaro. Richiede che STORAGE_ENCRYPTION_KEY sia
impostato. Un campo che non riesce a decrittografare (chiave obsoleta, ciphertext corrotto) viene riportato come
<field>DecryptFailed: true invece di interrompere l'intera esportazione o di rivelare l'errore sottostante.
Altri sottocomandi
Questi presuppongono un server OmniRoute in esecuzione, a meno che non sia indicato diversamente:
omniroute status # Stato completo del runtime
omniroute logs # Flusso dei log delle richieste (--json, --search, --follow)
omniroute config show # Mostra la configurazione attuale
omniroute provider list # Elenca i provider disponibili (alias di providers list)
omniroute provider add # Registra OmniRoute come provider su uno strumento
omniroute keys add | list | remove # Gestisci le chiavi API
omniroute models [provider] # Elenca i modelli (--json, --search)
omniroute combo list | switch | create | delete
omniroute backup # Snapshot della configurazione + DB
omniroute restore # Ripristina da uno snapshot precedente
omniroute health # Salute dettagliata (interruttori, cache, memoria)
omniroute quota # Utilizzo del quota del provider
omniroute cache # Stato della cache
omniroute cache clear # Pulisci le cache semantiche + di firma
omniroute mcp status | restart # Stato del server MCP / riavvio
omniroute a2a status | card # Stato del server A2A / scheda agente
omniroute tunnel list | create | stop # Gestisci i tunnel (cloudflare/tailscale/ngrok)
omniroute env show | get <k> | set <k> <v> # Ispeziona / imposta variabili d'ambiente (temporanee)
omniroute test # Test di connettività del provider
omniroute update # Controlla gli aggiornamenti
omniroute completion # Genera completamento della shell
Flag comuni
| Flag | Descrizione |
|---|---|
--no-open |
Non aprire automaticamente il browser all'avvio |
--port <n> |
Sovrascrivi la porta API (predefinita 20128) |
--mcp |
Esegui come server MCP su stdio (per IDE) |
--non-interactive |
Modalità CI (nessun prompt; legge da env/flags) |
--json |
Output JSON leggibile dalla macchina (doctor, providers, ecc.) |
--help, -h |
Mostra aiuto specifico per il comando |
--version, -v |
Stampa la versione installata |
Endpoint API Disponibili
| Endpoint | Descrizione | Utilizzo per |
|---|---|---|
/v1/chat/completions |
Chat standard (tutti i provider) | Tutti gli strumenti moderni |
/v1/responses |
API delle risposte (formato OpenAI) | Codex, flussi agentici |
/v1/completions |
Completamenti di testo legacy | Strumenti più vecchi che usano prompt: |
/v1/embeddings |
Embedding di testo | RAG, ricerca |
/v1/images/generations |
Generazione di immagini | GPT-Image, Flux, ecc. |
/v1/audio/speech |
Da testo a voce | ElevenLabs, OpenAI TTS |
/v1/audio/transcriptions |
Da voce a testo | Deepgram, AssemblyAI |
Esempi pronti per essere incollati con un URL OmniRoute tokenizzato:
Esempio di token: sk-a3ab3c080beaee3a-69f4a4-070d71af
Base standard OpenAI: http://localhost:20128/v1
Modelli VS Code: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/models
Chat VS Code: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/chat/completions
Risposte VS Code: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/responses
Tag Ollama: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/api/tags
Chat Ollama: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/api/chat
Risoluzione dei Problemi
| Errore | Causa | Soluzione |
|---|---|---|
Connection refused |
OmniRoute non in esecuzione | omniroute serve |
401 Unauthorized |
Chiave API errata | Controlla in /dashboard/api-manager |
No combo configured |
Nessun combo di routing attivo | Configura in /dashboard/combos |
| CLI mostra "not installed" | Binario non nel PATH | Controlla which <command> |
| Il dashboard mostra "not detected" dopo l'installazione | Cache obsoleta | Clicca "⟳ Aggiorna rilevamento" nel dashboard |
Link vecchio /dashboard/cli-tools |
Segnalibro pre-v3.8.6 | Reindirizzato automaticamente a /dashboard/cli-code (308) |
Link vecchio /dashboard/agents |
Segnalibro pre-v3.8.6 | Reindirizzato automaticamente a /dashboard/acp-agents (308) |