# CLI Tools — OmniRoute (Ελληνικά) 🌐 **Languages:** 🇺🇸 [English](../../../../reference/CLI-TOOLS.md) · 🇪🇹 [am](../../../am/docs/reference/CLI-TOOLS.md) · 🇸🇦 [ar](../../../ar/docs/reference/CLI-TOOLS.md) · 🇦🇿 [az](../../../az/docs/reference/CLI-TOOLS.md) · 🇧🇬 [bg](../../../bg/docs/reference/CLI-TOOLS.md) · 🇧🇩 [bn](../../../bn/docs/reference/CLI-TOOLS.md) · 🇧🇦 [bs](../../../bs/docs/reference/CLI-TOOLS.md) · 🇨🇿 [cs](../../../cs/docs/reference/CLI-TOOLS.md) · 🇩🇰 [da](../../../da/docs/reference/CLI-TOOLS.md) · 🇩🇪 [de](../../../de/docs/reference/CLI-TOOLS.md) · 🇪🇸 [es](../../../es/docs/reference/CLI-TOOLS.md) · 🇪🇪 [et](../../../et/docs/reference/CLI-TOOLS.md) · 🇮🇷 [fa](../../../fa/docs/reference/CLI-TOOLS.md) · 🇫🇮 [fi](../../../fi/docs/reference/CLI-TOOLS.md) · 🇫🇷 [fr](../../../fr/docs/reference/CLI-TOOLS.md) · 🇮🇪 [ga](../../../ga/docs/reference/CLI-TOOLS.md) · 🇮🇳 [gu](../../../gu/docs/reference/CLI-TOOLS.md) · 🇳🇬 [ha](../../../ha/docs/reference/CLI-TOOLS.md) · 🇮🇱 [he](../../../he/docs/reference/CLI-TOOLS.md) · 🇮🇳 [hi](../../../hi/docs/reference/CLI-TOOLS.md) · 🇭🇷 [hr](../../../hr/docs/reference/CLI-TOOLS.md) · 🇭🇺 [hu](../../../hu/docs/reference/CLI-TOOLS.md) · 🇦🇲 [hy](../../../hy/docs/reference/CLI-TOOLS.md) · 🇮🇩 [id](../../../id/docs/reference/CLI-TOOLS.md) · 🇳🇬 [ig](../../../ig/docs/reference/CLI-TOOLS.md) · 🇮🇹 [it](../../../it/docs/reference/CLI-TOOLS.md) · 🇯🇵 [ja](../../../ja/docs/reference/CLI-TOOLS.md) · 🇬🇪 [ka](../../../ka/docs/reference/CLI-TOOLS.md) · 🇰🇭 [km](../../../km/docs/reference/CLI-TOOLS.md) · 🇮🇳 [kn](../../../kn/docs/reference/CLI-TOOLS.md) · 🇰🇷 [ko](../../../ko/docs/reference/CLI-TOOLS.md) · 🇱🇹 [lt](../../../lt/docs/reference/CLI-TOOLS.md) · 🇱🇻 [lv](../../../lv/docs/reference/CLI-TOOLS.md) · 🇮🇳 [ml](../../../ml/docs/reference/CLI-TOOLS.md) · 🇮🇳 [mr](../../../mr/docs/reference/CLI-TOOLS.md) · 🇲🇾 [ms](../../../ms/docs/reference/CLI-TOOLS.md) · 🇲🇹 [mt](../../../mt/docs/reference/CLI-TOOLS.md) · 🇲🇲 [my](../../../my/docs/reference/CLI-TOOLS.md) · 🇳🇵 [ne](../../../ne/docs/reference/CLI-TOOLS.md) · 🇳🇱 [nl](../../../nl/docs/reference/CLI-TOOLS.md) · 🇳🇴 [no](../../../no/docs/reference/CLI-TOOLS.md) · 🇮🇳 [or](../../../or/docs/reference/CLI-TOOLS.md) · 🇮🇳 [pa](../../../pa/docs/reference/CLI-TOOLS.md) · 🇵🇭 [phi](../../../phi/docs/reference/CLI-TOOLS.md) · 🇵🇱 [pl](../../../pl/docs/reference/CLI-TOOLS.md) · 🇵🇹 [pt](../../../pt/docs/reference/CLI-TOOLS.md) · 🇧🇷 [pt-BR](../../../pt-BR/docs/reference/CLI-TOOLS.md) · 🇷🇴 [ro](../../../ro/docs/reference/CLI-TOOLS.md) · 🇷🇺 [ru](../../../ru/docs/reference/CLI-TOOLS.md) · 🇱🇰 [si](../../../si/docs/reference/CLI-TOOLS.md) · 🇸🇰 [sk](../../../sk/docs/reference/CLI-TOOLS.md) · 🇸🇮 [sl](../../../sl/docs/reference/CLI-TOOLS.md) · 🇷🇸 [sr](../../../sr/docs/reference/CLI-TOOLS.md) · 🇸🇪 [sv](../../../sv/docs/reference/CLI-TOOLS.md) · 🇰🇪 [sw](../../../sw/docs/reference/CLI-TOOLS.md) · 🇮🇳 [ta](../../../ta/docs/reference/CLI-TOOLS.md) · 🇮🇳 [te](../../../te/docs/reference/CLI-TOOLS.md) · 🇹🇭 [th](../../../th/docs/reference/CLI-TOOLS.md) · 🇹🇷 [tr](../../../tr/docs/reference/CLI-TOOLS.md) · 🇺🇦 [uk-UA](../../../uk-UA/docs/reference/CLI-TOOLS.md) · 🇵🇰 [ur](../../../ur/docs/reference/CLI-TOOLS.md) · 🇺🇿 [uz](../../../uz/docs/reference/CLI-TOOLS.md) · 🇻🇳 [vi](../../../vi/docs/reference/CLI-TOOLS.md) · 🇳🇬 [yo](../../../yo/docs/reference/CLI-TOOLS.md) · 🇨🇳 [zh-CN](../../../zh-CN/docs/reference/CLI-TOOLS.md) · 🇹🇼 [zh-TW](../../../zh-TW/docs/reference/CLI-TOOLS.md) --- Τελευταία ενημέρωση: 2026-08-23 Το OmniRoute ενσωματώνεται με τρεις κατηγορίες εργαλείων CLI, κατανεμημένες σε τρεις αποκλειστικές σελίδες του πίνακα ελέγχου: | Σελίδα | Διαδρομή | Έννοια | Πλήθος | | -------------- | ----------------------- | -------------------------------------------------------------------------------------------- | --------------- | | **CLI Code's** | `/dashboard/cli-code` | Εργαλεία προγραμματισμού που κατευθύνετε στο OmniRoute (Πελάτης → CLI → OmniRoute → Πάροχος) | 26 | | **CLI Agents** | `/dashboard/cli-agents` | Αυτόνομοι πράκτορες που κατευθύνετε στο OmniRoute (ίδια ροή, ευρύτερο πεδίο) | 10 | | **ACP Agents** | `/dashboard/acp-agents` | CLI που εκκινεί το OmniRoute ως backend μέσω stdio/ACP (αντίστροφη ροή) | δείτε το μητρώο | Οι παλαιότερες διαδρομές ανακατευθύνουν μέσω 308: `/dashboard/cli-tools` → `/dashboard/cli-code`, `/dashboard/agents` → `/dashboard/acp-agents`. --- ## Πώς Λειτουργεί ``` CLI Code's / CLI Agents (ροή κατανάλωσης): Claude / Codex / OpenCode / Cline / KiloCode / Continue / Hermes Agent / Goose / ... │ ▼ (όλα κατευθύνονται στο OmniRoute) http://YOUR_SERVER:20128/v1 │ ▼ (το OmniRoute δρομολογεί στον κατάλληλο provider) Anthropic / OpenAI / Gemini / DeepSeek / Groq / Mistral / ... ACP Agents (αντίστροφη ροή εκκίνησης): Αίτημα client → OmniRoute → εκκινεί CLI μέσω stdio/ACP → απόκριση ``` **Πλεονεκτήματα:** - Ένα API key για τη διαχείριση όλων των εργαλείων - Παρακολούθηση κόστους για όλα τα CLIs στο dashboard - Εναλλαγή μοντέλου χωρίς επαναδιαμόρφωση κάθε εργαλείου - Λειτουργεί τοπικά και σε απομακρυσμένους διακομιστές (VPS, Docker, Akamai, Cloudflare Tunnel) --- ## Αυτόματη διαμόρφωση με `setup-*` Δεν χρειάζεται να γράφετε τη διαμόρφωση κάθε εργαλείου χειροκίνητα. Το OmniRoute παρέχει μια εντολή `setup-*` ανά υποστηριζόμενο CLI που διαβάζει τον **ζωντανό** κατάλογο μοντέλων από ένα τρέχον OmniRoute (τοπικό ή απομακρυσμένο) και γράφει τη δική του διαμόρφωση του εργαλείου στον υπολογιστή σας: ```bash 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 ``` Κάθε εντολή δέχεται `--remote --api-key ` (διαμόρφωση ενός τοπικού εργαλείου έναντι ενός απομακρυσμένου OmniRoute), `--dry-run` (προεπισκόπηση χωρίς εγγραφή) και `--port`. Εργαλεία χωρίς αυτόματη ανακάλυψη μοντέλων (Cline, Kilo, Roo, Goose, Aider, Qwen, 5dive) δέχονται `--model ` (και `--yes` για μη διαδραστικές εκτελέσεις). Το `setup-5dive` είναι η μοναδική συνταγή που δεν γράφει κάτω από το `$HOME`: διαμορφώνει έναν στόλο πρακτόρων 5dive γράφοντας ένα προφίλ ελέγχου ταυτότητας που ανήκει στον root στον κεντρικό υπολογιστή του στόλου, οπότε επανεκτελείται μέσω `sudo` και δεν έχει δική του απομακρυσμένη λειτουργία. Για να εκκινήσετε ένα CLI με το σωστό περιβάλλον ενσωματωμένο και χωρίς καμία διαμόρφωση γραμμένη, χρησιμοποιήστε τον γενικό εκκινητή `omniroute run ` (claude, codex, aider, goose, opencode, qwen, gemini — οι στόχοι και τα ψευδώνυμα προέρχονται από το `bin/cli/cli-manifest.mjs`); οι παλαιότεροι εκκινητές ανά εργαλείο `omniroute launch` (Claude Code) και `omniroute launch-codex` (Codex) παραμένουν διαθέσιμοι. Το Gemini CLI είναι μόνο για εκκίνηση: είναι ένας στόχος `omniroute run` αλλά δεν έχει συνταγή `setup-*`/`configure`. > **Πλήρης αναφορά:** ο κύριος πίνακας — τι γράφει κάθε εντολή, κάθε σημαία, > τοπικό έναντι απομακρυσμένου, και ποια εργαλεία θέλουν ένα επίθημα `/v1` — βρίσκεται στο > **[CLI Integrations](../guides/CLI-INTEGRATIONS.md)**. ### Εκτέλεση αυτών μέσα σε ένα κοντέινερ Μια εντολή `setup-*` που εκτελείται μέσα στο κοντέινερ του OmniRoute γράφει στον δικό του οικιακό κατάλογο του κοντέινερ, τον οποίο κανένα CLI του κεντρικού υπολογιστή δεν διαβάζει και ο οποίος εξαφανίζεται με το κοντέινερ. Το OmniRoute το ανιχνεύει αυτό και τερματίζει με κωδικό `2` με οδηγίες αντί να γράψει. Δύο υποστηριζόμενοι τρόποι προώθησης — εγκαταστήστε το CLI στον κεντρικό υπολογιστή και `omniroute connect` στο κοντέινερ, ή συνδέστε τους καταλόγους διαμόρφωσης και ορίστε το `CLI_CONFIG_HOME` (το προφίλ `host` του compose). Κάθε εντολή `setup-*`, καθώς και `omniroute configure` και `omniroute config set`, δέχεται `--allow-container-write` όταν η διαμόρφωση των δικών του CLIs του κοντέινερ είναι αυτό που πραγματικά εννοούσατε· το `OMNIROUTE_ALLOW_CONTAINER_CONFIG_WRITE=true` κάνει το ίδιο για τον διακομιστή. Δείτε [Docker Guide → Configuring host CLI tools](../guides/DOCKER_GUIDE.md#configuring-host-cli-tools-when-omniroute-runs-in-docker). Το **apply endpoint** του πίνακα ελέγχου (`POST /api/cli-tools/apply`) επιβάλλει την ίδια προστασία: σε ένα κοντέινερ, μια εγγραφή του οποίου ο στόχος δεν είναι συνδεδεμένος από τον κεντρικό υπολογιστή απαντά **`422`** με `containerEphemeralTarget: true`, το ασφαλές κείμενο σφάλματος και — για τα εργαλεία με συνταγή κεντρικού υπολογιστή (claude, codex, opencode, cline, kilo, continue) — μια `hostSetupCommand` (π.χ. `omniroute setup-opencode`) για εκτέλεση στον κεντρικό υπολογιστή αντ' αυτού· τίποτα δεν γράφεται. Το `dryRun: true` συνεχίζει να λειτουργεί σε λειτουργία κοντέινερ και επιστρέφει μια επεξεργασμένη προεπισκόπηση + διαδρομή στόχου χωρίς να αγγίξει τον δίσκο. Το περιεχόμενο προεπισκόπησης δεν είναι μια διαμόρφωση που φέρει διαπιστευτήρια για αντιγραφή ή εισαγωγή. Εφαρμόστε με το αρχικό εργαλείο/βασική διεύθυνση URL/κλειδί API/εισόδους μοντέλου στον κεντρικό υπολογιστή, ή χρησιμοποιήστε την υποδεικνυόμενη εντολή ρύθμισης από την πλευρά του κεντρικού υπολογιστή. Δείτε [CLI configuration security](../security/CLI-CONFIGURATION.md) για την κεφαλίδα προεπισκόπησης και το συμβόλαιο αιτήματος. Αυτή η συμπεριφορά είναι σκόπιμη και προστατεύεται από παλινδρόμηση από το `tests/unit/api/cli-tools/apply-container-guard.test.ts` — ποτέ μην "διορθώσετε" ένα 422 αφαιρώντας την προστασία. --- ## Πηγή Αλήθειας Ο ενοποιημένος κατάλογος βρίσκεται στο `src/shared/constants/cliTools.ts` ως `CLI_TOOLS: Record`. Κάθε εγγραφή έχει τα παρακάτω πεδία (ορισμένα στο `src/shared/schemas/cliCatalog.ts`): | Πεδίο | Τύπος | Περιγραφή | | ----------------------------------------------- | ------------------------------------------------------------ | ----------------------------------------------------------------- | | `category` | `"code" \| "agent"` | Σε ποια σελίδα εμφανίζεται το εργαλείο | | `vendor` | `string` | Προέλευση εργαλείου ("Anthropic", "OSS (P. Gauthier)") | | `acpSpawnable` | `boolean` | Μπορεί επίσης να χρησιμοποιηθεί ως ACP Agent (εμφανίζεται badge) | | `baseUrlSupport` | `"full" \| "partial" \| "none"` | Επίπεδο υποστήριξης προσαρμοσμένου endpoint. `"none"` = ουρά MITM | | `configType` | `"env" \| "custom" \| "guide" \| "custom-builder" \| "mitm"` | Μηχανισμός διαμόρφωσης | | `id`, `name`, `color`, `description`, `docsUrl` | standard | Βασικά πεδία εμφάνισης | Εγγραφές με `baseUrlSupport: "none"` **δεν εμφανίζονται** στις σελίδες του dashboard — καταχωρούνται στην ουρά MITM για το plan 11 (βλ. `_tasks/features-v3.8.6/refactorpages/_orchestration/_plan11-mitm-backlog.md`). ### Επίπεδα δυνατοτήτων (καταλογογραφημένο × ανιχνεύσιμο × ρυθμιζόμενο × εκτελέσιμο) Δεν είναι κάθε καταλογογραφημένο εργαλείο ανιχνεύσιμο, ρυθμιζόμενο ή εκτελέσιμο. Κάθε επίπεδο έχει μία δηλώνουσα πηγή, και ένα drift test τα διατηρεί ευθυγραμμισμένα: | Επίπεδο | Σημασία | Δηλώνεται στο | | --------------------- | --------------------------------------------------------------------------- | ----------------------------------------------------------------- | | **Καταλογογραφημένο** | Εμφανίζεται στον κατάλογο του dashboard (όνομα, vendor, docs, τύπος config) | `src/shared/constants/cliTools.ts` (`CLI_TOOLS`) | | **Ανιχνεύσιμο** | Ανίχνευση binary/config, health checks, config paths | `src/shared/services/cliRuntime.ts` (`CLI_TOOLS` runtime catalog) | | **Ρυθμιζόμενο** | Υποστηρίζεται από το `omniroute configure ` (υπάρχει setup recipe) | `bin/cli/cli-manifest.mjs` (`configure: true`) | | **Εκτελέσιμο** | Υποστηρίζεται από το `omniroute run ` (ορισμένη έγχυση env/args) | `bin/cli/cli-manifest.mjs` (`run: true`) | Το `bin/cli/cli-manifest.mjs` είναι το κανονικό εκτελέσιμο manifest για τις επιφάνειες εντολών CLI: `run`, `configure` και οι γεννήτριες shell-completion αντλούν τις λίστες στόχων τους, την επίλυση alias (για παράδειγμα `kilocode`/`kilo-code`/`kilo_cli` → `kilo`) και τη σύνδεση flag `--model` από αυτό. Η φρουρά drift `tests/unit/cli/cli-manifest-drift.test.ts` βεβαιώνει ότι το manifest, ο runtime κατάλογος, ο κατάλογος UI και κάθε επιφάνεια καταναλωτή παραμένουν συγχρονισμένα — ένας στόχος που προστίθεται σε μία επιφάνεια χωρίς τις υπόλοιπες αποτυγχάνει στη σουίτα αντί να ξεφύγει σιωπηλά. --- ## 1. Κατάλογος Κώδικα CLI (26 εργαλεία) Όλα τα εργαλεία που εμφανίζονται στο `/dashboard/cli-code`. Όσα έχουν `baseUrlSupport: none` συνδέονται μέσω MITM ή χειροκίνητου οδηγού αντί για προσαρμοσμένη βασική διεύθυνση URL: | id | name | vendor | baseUrlSupport | configType | acpSpawnable | | :----------- | :---------------------- | :--------------------- | :------------- | :------------- | :----------- | | claude | Claude Code | Anthropic | full | env | true | | codex | OpenAI Codex CLI | OpenAI | full | custom | true | | zcode | ZCode (GLM Coding Plan) | Z.ai | none | custom | false | | cline | Cline | OSS (πρώην Claude Dev) | full | custom | true | | kilo | Kilo Code | Kilo-Org | full | custom | false | | roo | Roo Code | Roo (OSS) | full | guide | false | | continue | Continue | continue.dev | full | guide | false | | aider | Aider | OSS (Π. Γκοτιέ) | full | guide | true | | forge | ForgeCode | Antinomy HQ | full | custom | true | | jcode | jcode | 1jehuang (OSS) | full | custom | false | | deepseek-tui | DeepSeek TUI | Hunter Bown (OSS) | full | custom | false | | codewhale | CodeWhale | Hmbown (OSS) | full | custom | false | | opencode | OpenCode | Anomaly (πρώην SST) | full | guide | true | | droid | Factory Droid | Factory AI | partial | guide | false | | copilot | GitHub Copilot CLI | GitHub/MS | full | custom | false | | cursor-cli | Cursor CLI | Anysphere | partial | guide | true | | smelt | Smelt | leonardcser (OSS) | full | custom | false | | pi | Pi (pi-coding-agent) | M. Zechner (OSS) | full | custom | false | | grok-build | Grok Build | xAI | full | custom | false | | crush | Crush | OSS (Charm) | full | custom | false | | qwen | Qwen Code | Alibaba | full | guide | true | | cursor | Cursor | Anysphere | none | guide | false | | antigravity | Antigravity | Google | none | mitm | false | | hermes | Hermes | Nous Research | none | guide | false | | kiro | Kiro AI | Amazon | none | mitm | false | | custom | Custom CLI | — | full | custom-builder | false | Εργαλεία με `baseUrlSupport: "partial"` εμφανίζουν ένα σήμα "⚠ Μερική Βασική Διεύθυνση URL" στην κάρτα του πίνακα ελέγχου. --- ## 2. Κατάλογος Πρακτόρων CLI (10 εργαλεία) Αυτόνομοι πράκτορες που εμφανίζονται στο `/dashboard/cli-agents`: | id | όνομα | προμηθευτής | baseUrlSupport | acpSpawnable | | ------------ | ---------------- | ------------------------ | -------------- | ------------ | | hermes-agent | Πράκτορας Hermes | Nous Research | full | false | | openclaw | OpenClaw | OSS (P. Steinberger) | full | true | | goose | Goose | Block / Linux Foundation | full | true | | interpreter | Open Interpreter | OSS | full | true | | warp | Warp AI | Warp Inc. | partial | true | | agent-deck | Agent Deck | asheshgoplani (OSS) | full | false | | omp | Oh My Pi | OSS | full | true | | letta | Letta CLI | Letta | full | false | | prime-agent | Prime Agent | Prime Intellect (OSS) | full | false | | 5dive | 5dive | OSS (5dive-ai) | full | false | --- ## 3. ACP Agents (/dashboard/acp-agents) Αυτή η σελίδα (μετονομάστηκε από `/dashboard/agents`) εμφανίζει CLIs που το OmniRoute μπορεί να **εκκινήσει** ως μηχανές εκτέλεσης backend μέσω πρωτοκόλλου stdio/ACP. Ο κατάλογος διατηρείται ξεχωριστά στο `src/lib/acp/registry.ts` και **δεν** είναι ίδιος με το `CLI_TOOLS`. --- ## 4. Εκκρεμότητες MITM (δεν εμφανίζονται στο dashboard) Τα παρακάτω CLIs δεν υποστηρίζουν εγγενώς προσαρμοσμένη base URL και **δεν περιλαμβάνονται** στις σελίδες CLI Code ή CLI Agents. Αποτελούν υποψήφια για υποκλοπή MITM στο πλάνο 11: | CLI | Αιτία | | ------------------- | ---------------------------------------------------------------------- | | windsurf | Το BYOK περιορίζεται σε επιλεγμένα μοντέλα Claude + εταιρικό URL/token | | amp | Κλειστό οικοσύστημα (Sourcegraph) | | amazon-q / kiro-cli | AWS SSO auth, χωρίς προσαρμοσμένο URL | | cowork | Anthropic Desktop, χωρίς ρυθμιζόμενο endpoint | Δείτε το `_tasks/features-v3.8.6/refactorpages/_orchestration/_plan11-mitm-backlog.md` για την πλήρη διασταυρούμενη αναφορά. --- ## 5. API Μαζικής Ανίχνευσης Όλη η ανίχνευση εργαλείων συγκεντρώνεται μέσω ενός μοναδικού endpoint: **`GET /api/cli-tools/all-statuses`** - Έλεγχος ταυτότητας: `requireCliToolsAuth(request)` (ίδιος με τις υπόλοιπες διαδρομές `/api/cli-tools/`) - Επιστρέφει: `Record` (τύπος: `src/shared/types/cliBatchStatus.ts`) - Στρατηγική: `Promise.all` σε όλα τα εργαλεία, χρονικό όριο 5 δευτερολέπτων ανά εργαλείο - Cache: εντός μνήμης LRU με ευρετήριο βάσει `mtime` του αρχείου ρυθμίσεων. Ακυρώνεται όταν αλλάζει το mtime. Επαναφέρεται κατά την επανεκκίνηση του server. Μορφή απόκρισης ανά εργαλείο: ```ts 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; // εξυγιανσμένο, χωρίς stack traces } ``` --- ## 6. Χειριστές Ρυθμίσεων για Νέα Εργαλεία Τα νέα εργαλεία με `configType: "custom"` διαθέτουν αποκλειστικά routes API ρυθμίσεων: | Route | Εργαλείο | | ------------------------------------------- | ---------------------------------------------------------------- | | `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` | Pi coding agent | | `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` + dedicated `.env` key) | Όλα τα routes χρησιμοποιούν `sanitizeErrorMessage()` για αποκρίσεις σφάλματος (Κανόνας #12). --- ## 7. Αρχιτεκτονική Σελίδων Dashboard ### CLI Code (`/dashboard/cli-code`) - `src/app/(dashboard)/dashboard/cli-code/page.tsx` — server component - `src/app/(dashboard)/dashboard/cli-code/CliCodePageClient.tsx` — client grid - `src/app/(dashboard)/dashboard/cli-code/[id]/page.tsx` — σελίδα λεπτομερειών εργαλείου - `src/app/(dashboard)/dashboard/cli-code/components/` — 12 εξειδικευμένες κάρτες εργαλείων + `ToolDetailClient.tsx` ### CLI Agents (`/dashboard/cli-agents`) - `src/app/(dashboard)/dashboard/cli-agents/page.tsx` — server component - `src/app/(dashboard)/dashboard/cli-agents/CliAgentsPageClient.tsx` — client grid - `src/app/(dashboard)/dashboard/cli-agents/[id]/page.tsx` — επαναχρησιμοποιεί το `ToolDetailClient` ### ACP Agents (`/dashboard/acp-agents`) - `src/app/(dashboard)/dashboard/acp-agents/page.tsx` — server component (μετακινήθηκε από `agents/`) ### Κοινά Στοιχεία UI (`src/shared/components/cli/`) | Αρχείο | Σκοπός | | ----------------------- | ----------------------------------------------------------- | | `CliToolCard.tsx` | Έξυπνη κάρτα κατάστασης (ανίχνευση + διαμόρφωση + endpoint) | | `CliConceptCard.tsx` | Κάρτα επεξήγησης έννοιας ανά σελίδα | | `CliComparisonCard.tsx` | Σύγκριση τριών στηλών μεταξύ τύπων CLI | | `BaseUrlSelect.tsx` | Αναπτυσσόμενο endpoint (Τοπικό/Cloud/Προσαρμοσμένο) | | `ApiKeySelect.tsx` | Επιλογέας κλειδιού API | | `ManualConfigModal.tsx` | Modal με αντιγράψιμο απόσπασμα διαμόρφωσης | ### Κοινό Hook (`src/shared/hooks/cli/`) | Αρχείο | Σκοπός | | ------------------------- | --------------------------------------------------------------------------------------- | | `useToolBatchStatuses.ts` | Ανακτά το `/api/cli-tools/all-statuses`, διαχειρίζεται την κατάσταση φόρτωσης/ανανέωσης | --- ## 8. i18n Νέα namespaces που προστέθηκαν στο plan 14 F9: | Namespace | Σκοπός | | ----------- | ------------------------------------------------------------------------------------------------- | | `cliCommon` | Κοινές συμβολοσειρές (ετικέτες καρτών, κείμενα εννοιών/συγκρίσεων, ετικέτες σελίδας λεπτομερειών) | | `cliCode` | Συμβολοσειρές σελίδας CLI Code | | `cliAgents` | Συμβολοσειρές σελίδας CLI Agents | | `acpAgents` | Συμβολοσειρές σελίδας ACP Agents | Παρέχονται πλήρεις μεταφράσεις PT-BR και EN. 39 άλλες τοπικές ρυθμίσεις επιστρέφουν αυτόματα στα EN μέσω συγχώνευσης σε επίπεδο namespace στο `src/i18n/request.ts`. --- ## 9. Γρήγορη Εκκίνηση ### Βήμα 1 — Απόκτηση Κλειδιού API OmniRoute 1. Ανοίξτε το `/dashboard/api-manager` → **Δημιουργία Κλειδιού API** 2. Δώστε του ένα όνομα (π.χ. `cli-tools`) και επιλέξτε όλα τα δικαιώματα 3. Αντιγράψτε το κλειδί — θα το χρειαστείτε για κάθε CLI παρακάτω > Το κλειδί σας μοιάζει με: `sk-xxxxxxxxxxxxxxxx-xxxxxxxxx` --- ### Βήμα 2 — Εγκατάσταση Εργαλείων CLI Όλα τα εργαλεία βασισμένα σε npm απαιτούν Node.js 22.22.2+ ή 24.x: ```bash # 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 (εκκινείται μέσω `omniroute run gemini` → /v1beta επιφάνεια) npm install -g @google/gemini-cli # Aider pip install aider-chat # Smelt cargo install smelt # Βασισμένο σε Rust # Pi coding agent # δείτε https://github.com/zechnerj/pi-coding-agent για εγκατάσταση # jcode # δείτε https://github.com/1jehuang/jcode για εγκατάσταση ``` --- ### Βήμα 3 — Διαμόρφωση μέσω Dashboard 1. Μεταβείτε στο `http://localhost:20128/dashboard/cli-code` 2. Βρείτε το εργαλείο σας στο πλέγμα 3. Κάντε κλικ στην κάρτα για να ανοίξετε τη σελίδα λεπτομερειών του εργαλείου 4. Επιλέξτε το κλειδί API και τη βασική URL σας 5. Κάντε κλικ στο **Apply Config** ή αντιγράψτε το τμήμα χειροκίνητης διαμόρφωσης --- ### Βήμα 4 — Ορισμός Καθολικών Μεταβλητών Περιβάλλοντος ```bash # Καθολικό Τερματικό Σημείο 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 διαβάζει το GOOGLE_GEMINI_BASE_URL στη ΡΙΖΑ (το SDK του προσαρτά /v1beta/... μόνο του) export GOOGLE_GEMINI_BASE_URL="http://localhost:20128" export GEMINI_API_KEY="sk-your-omniroute-key" ``` > Για **απομακρυσμένο διακομιστή** αντικαταστήστε το `localhost:20128` με την IP ή τον τομέα του διακομιστή, > π.χ. `http://:20128`. --- ### Βήμα 4 — Διαμόρφωση Κάθε Εργαλείου #### Claude Code ```bash # Δημιουργία ~/.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 ``` Χρησιμοποιήστε την ενοποιημένη ρίζα πύλης Anthropic για το Claude Code. Μην προσαρτήσετε `/v1` εδώ. **Δοκιμή:** `claude "say hello"` --- #### OpenAI Codex Το σύγχρονο Codex (v0.137+) διαβάζει μόνο το `~/.codex/config.toml` — το παλιό `config.yaml` ανήκει στο παλαιό npm CLI και αγνοείται σιωπηλά. Το κλειδί API παραμένει στη μεταβλητή περιβάλλοντος `OMNIROUTE_API_KEY` (`env_key`), ποτέ μέσα στο αρχείο: ```bash 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" ``` Πλήρης αναφορά (προφίλ, `wire_api`, παράθυρα περιβάλλοντος): [CODEX-CLI-CONFIGURATION.md](../guides/CODEX-CLI-CONFIGURATION.md). **Δοκιμή:** `codex "what is 2+2?"` --- #### OpenCode ```bash 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 ``` **Δοκιμή:** `opencode` > Χρησιμοποιήστε `opencode run "your prompt" --model omniroute/claude-sonnet-4-5-thinking --variant high` > για αποστολή παραλλαγών thinking. --- #### Cline (CLI ή VS Code) **Λειτουργία CLI:** ```bash mkdir -p ~/.cline/data && cat > ~/.cline/data/globalState.json << EOF { "apiProvider": "openai", "openAiBaseUrl": "http://localhost:20128/v1", "openAiApiKey": "sk-your-omniroute-key" } EOF ``` **Λειτουργία VS Code:** Ρυθμίσεις επέκτασης Cline → Πάροχος API: `OpenAI Compatible` → Βασική URL: `http://localhost:20128/v1` Ή χρησιμοποιήστε το dashboard OmniRoute → **CLI Tools → Cline → Apply Config**. --- #### KiloCode (CLI ή VS Code) **Λειτουργία CLI:** ```bash kilocode --api-base http://localhost:20128/v1 --api-key sk-your-omniroute-key ``` **Ρυθμίσεις VS Code:** ```json { "kilo-code.openAiBaseUrl": "http://localhost:20128/v1", "kilo-code.apiKey": "sk-your-omniroute-key" } ``` Ή χρησιμοποιήστε το dashboard OmniRoute → **CLI Tools → KiloCode → Apply Config**. --- #### Continue (Επέκταση VS Code) Επεξεργαστείτε το `~/.continue/config.yaml`: ```yaml models: - name: OmniRoute provider: openai model: auto apiBase: http://localhost:20128/v1 apiKey: sk-your-omniroute-key default: true ``` Επανεκκινήστε το VS Code μετά την επεξεργασία. --- #### VS Code Insiders (`chatLanguageModels.json`) Χρησιμοποιήστε αυτό όταν το VS Code Insiders είναι διαμορφωμένο για μοντέλα προσαρμοσμένου τερματικού σημείου και θέλετε το OmniRoute να λειτουργεί χωρίς προσαρμοσμένο πεδίο κεφαλίδας. **Προτεινόμενη τοποθεσία:** - Linux: `~/.config/Code - Insiders/User/chatLanguageModels.json` - Windows: `%APPDATA%/Code - Insiders/User/chatLanguageModels.json` **Παράδειγμα με χρήση του διακριτικού ψευδωνύμου OmniRoute:** ```json [ { "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" } } ] ``` **Σημειώσεις:** - Αντικαταστήστε το `sk-your-omniroute-key` με ένα κλειδί API που δημιουργήθηκε στο OmniRoute. - Το πεδίο `url` πρέπει να δείχνει στο `/api/v1/vscode/{token}/chat/completions`. - Το πεδίο `modelsUrl` πρέπει να δείχνει στο `/api/v1/vscode/{token}/models`. - Προτιμήστε την κανονική ροή `/v1` + κεφαλίδα Bearer όταν ο client υποστηρίζει προσαρμοσμένες κεφαλίδες. - Τα διακριτικά ενσωματωμένα σε URL αποτελούν εναλλακτική συμβατότητας και ενδέχεται να εμφανιστούν σε αρχεία καταγραφής επεξεργαστή ή ιστορικό διακομιστή μεσολάβησης. --- #### Kiro CLI (Amazon) ```bash # Σύνδεση στον λογαριασμό σας AWS/Kiro: kiro-cli login # Το CLI χρησιμοποιεί τη δική του αυθεντικοποίηση — το OmniRoute δεν απαιτείται ως backend για το ίδιο το Kiro CLI. # Χρησιμοποιήστε το kiro-cli παράλληλα με το OmniRoute για άλλα εργαλεία. kiro-cli status ``` Για την επιτραπέζια εφαρμογή **Kiro IDE**, χρησιμοποιήστε το τερματικό σημείο MITM που εκθέτει το OmniRoute στο `/dashboard/cli-tools → Kiro`. --- ## 10. Εσωτερικό CLI του OmniRoute Το εκτελέσιμο αρχείο `omniroute` παρέχει εντολές για τον κύκλο ζωής του διακομιστή, την αρχική ρύθμιση, τα διαγνωστικά και τη διαχείριση παρόχων. Σημείο εισόδου: `bin/omniroute.mjs`. ```bash omniroute # Εκκίνηση διακομιστή (προεπιλεγμένη θύρα 20128) omniroute setup # Διαδραστικός οδηγός αρχικής ρύθμισης omniroute doctor # Έλεγχος ρυθμίσεων, βάσης δεδομένων, θυρών και περιβάλλοντος εκτέλεσης omniroute providers list # Διαμορφωμένες συνδέσεις παρόχων omniroute providers test-all # Δοκιμή κάθε ενεργής σύνδεσης omniroute reset-password # Επαναφορά του κωδικού πρόσβασης διαχειριστή omniroute logs # Συνεχής ροή αρχείων καταγραφής αιτημάτων omniroute health # Αναλυτική κατάσταση εύρυθμης λειτουργίας (breakers, cache, μνήμη) omniroute --version # Εμφάνιση έκδοσης omniroute --help # Εμφάνιση όλων των εντολών ``` ### Αρχική ρύθμιση και αρχικοποίηση ```bash omniroute setup # Διαδραστικός οδηγός αρχικής ρύθμισης omniroute setup --non-interactive # Λειτουργία CI/αυτοματισμού (διαβάζει μεταβλητές περιβάλλοντος + flags) omniroute setup --password '' # Άμεσος ορισμός κωδικού πρόσβασης διαχειριστή omniroute setup --add-provider \ --provider openai \ --api-key '' \ --test-provider # Προσθήκη και δοκιμή παρόχου σε ένα βήμα ``` Αναγνωρισμένες μεταβλητές περιβάλλοντος για μη διαδραστική αρχική ρύθμιση: | Μεταβλητή | Σκοπός | | ------------------- | ---------------------------------------------------------------------------------------- | | `OMNIROUTE_API_KEY` | Κλειδί API παρόχου (συνδέεται με το `--api-key` μέσω της μεθόδου `.env()` του Commander) | | `DATA_DIR` | Παράκαμψη του καταλόγου δεδομένων του OmniRoute | Όλες οι άλλες μη διαδραστικές είσοδοι μεταβιβάζονται ως flags και όχι ως μεταβλητές περιβάλλοντος: `--password`, `--provider`, `--provider-name`, `--provider-base-url`, `--default-model` (δείτε τις επιλογές του `omniroute setup` παραπάνω). ### Διαγνωστικά ```bash omniroute doctor # Έλεγχος ρυθμίσεων, βάσης δεδομένων, θυρών, περιβάλλοντος εκτέλεσης, μνήμης και διαθεσιμότητας omniroute doctor --json # JSON αναγνώσιμο από μηχανή omniroute doctor --no-liveness # Παράλειψη του ελέγχου εύρυθμης λειτουργίας μέσω HTTP omniroute doctor --host 0.0.0.0 # Παράκαμψη του host ελέγχου διαθεσιμότητας omniroute doctor --liveness-url # Παράκαμψη με πλήρες URL του endpoint εύρυθμης λειτουργίας ``` Το doctor εκτελεί τους εξής ελέγχους: `Config`, `Database`, `Storage/encryption`, `Port availability`, `Node runtime`, `Native binary` (better-sqlite3), `Memory` και `Server liveness`. Τερματίζεται με μη μηδενικό κωδικό εξόδου εάν οποιοσδήποτε έλεγχος έχει τιμή `fail`. ### Διαχείριση παρόχων ```bash omniroute providers available # Κατάλογος παρόχων του OmniRoute omniroute providers available --search openai # Φιλτράρισμα καταλόγου κατά id/όνομα/ψευδώνυμο/κατηγορία omniroute providers available --category api-key # Φιλτράρισμα κατά κατηγορία (api-key, oauth, free, ...) omniroute providers available --json # JSON αναγνώσιμο από μηχανή omniroute providers list # Διαμορφωμένες συνδέσεις παρόχων omniroute providers list --json omniroute providers test # Δοκιμή μίας διαμορφωμένης σύνδεσης omniroute providers test-all # Δοκιμή κάθε ενεργής σύνδεσης omniroute providers validate # Δομική επικύρωση μόνο τοπικά omniroute providers add --credential-env PROVIDER_KEY omniroute providers import ./providers.json --dry-run --json omniroute providers auth # Υπάρχουσα ροή OAuth omniroute providers edit --default-model omniroute providers remove --yes ``` Οι εντολές `providers add/import/auth/edit/remove` χρησιμοποιούν κατά προτεραιότητα το API και επομένως λειτουργούν με βάση το ενεργό τοπικό ή απομακρυσμένο context. Για την εισαγωγή διαπιστευτηρίων πρέπει να χρησιμοποιούνται τα `--credential-stdin` ή `--credential-env`· το `--dry-run --json` αναφέρει μόνο την παρουσία/μορφή με απόκρυψη ευαίσθητων δεδομένων. Το `providers available` διαβάζει τον κατάλογο του OmniRoute· τα `providers list/test/test-all/validate` διατηρούν την τοπική συμπεριφορά SQLite και δεν απαιτούν την εκτέλεση του διακομιστή. ### Ανάκτηση και επαναφορά ```bash omniroute reset-password # Επαναφορά του κωδικού πρόσβασης διαχειριστή (επίσης: omniroute-reset-password) omniroute reset-encrypted-columns # Εμφάνιση προειδοποίησης + dry-run για επαναφορά κρυπτογραφημένων διαπιστευτηρίων omniroute reset-encrypted-columns --force # Πραγματικός μηδενισμός των κρυπτογραφημένων διαπιστευτηρίων στο SQLite ``` ### Εξαγωγή διαπιστευτηρίων (⚠ χειριστείτε με προσοχή) ```bash omniroute auth export # Εμφάνιση προειδοποίησης + αίτημα επιβεβαίωσης — χωρίς πρόσβαση στη βάση δεδομένων omniroute auth export --force # Εξαγωγή των ΑΠΟΚΡΥΠΤΟΓΡΑΦΗΜΕΝΩΝ διαπιστευτηρίων ΟΛΩΝ των συνδέσεων στο stdout ως JSON omniroute auth export --force --id # Εξαγωγή μόνο της σύνδεσης που αντιστοιχεί omniroute auth export --force --format env # Παραγωγή γραμμών OMNIROUTE__= omniroute auth export --force --out creds.json # Εγγραφή σε αρχείο (δημιουργείται με δικαιώματα 0600) ``` Το `auth export` εκτελείται **μόνο τοπικά** (άμεση ανάγνωση SQLite, χωρίς διαδρομή HTTP) και σκοπίμως εμφανίζει/εγγράφει τιμές `apiKey`/`accessToken`/`refreshToken`/`idToken` σε **απλό κείμενο** — αυτό αποτελεί λειτουργία και όχι σφάλμα. Χωρίς το `--force`, δεν διαβάζεται τίποτα από τη βάση δεδομένων και δεν αποκρυπτογραφείται τίποτα. Ένα banner προειδοποίησης εμφανίζεται πάντοτε στο stderr πριν από την έξοδο οποιουδήποτε απλού κειμένου. Απαιτεί να έχει οριστεί το `STORAGE_ENCRYPTION_KEY`. Ένα πεδίο που αποτυγχάνει να αποκρυπτογραφηθεί (παρωχημένο κλειδί, κατεστραμμένο κρυπτοκείμενο) αναφέρεται ως `DecryptFailed: true`, αντί να διακόπτεται ολόκληρη η εξαγωγή ή να αποκαλύπτεται το υποκείμενο σφάλμα. ### Άλλες υποεντολές Αυτές προϋποθέτουν ότι εκτελείται ένας διακομιστής OmniRoute, εκτός εάν αναφέρεται διαφορετικά: ```bash omniroute status # Αναλυτική κατάσταση χρόνου εκτέλεσης omniroute logs # Ροή καταγραφών αιτημάτων (--json, --search, --follow) omniroute config list # Εμφάνιση διαμορφωμένων εργαλείων CLI omniroute provider list # Παράθεση διαθέσιμων παρόχων (ψευδώνυμο του providers list) omniroute provider add # Καταχώριση του OmniRoute ως παρόχου σε ένα εργαλείο omniroute keys add | list | remove # Διαχείριση κλειδιών API omniroute models [provider] # Παράθεση μοντέλων (--json, --search) omniroute combo list | switch | create | delete omniroute backup # Στιγμιότυπο διαμόρφωσης + βάσης δεδομένων omniroute restore # Επαναφορά από προηγούμενο στιγμιότυπο omniroute health # Αναλυτική κατάσταση εύρυθμης λειτουργίας (διακόπτες, κρυφή μνήμη, μνήμη) omniroute quota # Χρήση ορίου παρόχου omniroute cache # Κατάσταση κρυφής μνήμης omniroute cache clear # Εκκαθάριση σημασιολογικής κρυφής μνήμης + κρυφής μνήμης υπογραφών omniroute mcp status | restart # Κατάσταση / επανεκκίνηση διακομιστή MCP omniroute a2a status | card # Κατάσταση διακομιστή A2A / κάρτα πράκτορα omniroute tunnel list | create | stop # Διαχείριση σηράγγων (cloudflare/tailscale/ngrok) omniroute env show | get | set # Προβολή / ορισμός μεταβλητών περιβάλλοντος (προσωρινά) omniroute test # Γρήγορος έλεγχος συνδεσιμότητας παρόχου omniroute update # Έλεγχος για ενημερώσεις omniroute completion # Δημιουργία συμπλήρωσης κελύφους ``` ### Συνήθεις σημαίες | Σημαία | Περιγραφή | | ------------------- | ------------------------------------------------------------------------------ | | `--no-open` | Να μην ανοίγει αυτόματα το πρόγραμμα περιήγησης κατά την εκκίνηση | | `--port ` | Παράκαμψη της θύρας API (προεπιλογή 20128) | | `--mcp` | Εκτέλεση ως διακομιστής MCP μέσω stdio (για IDE) | | `--non-interactive` | Λειτουργία CI (χωρίς προτροπές· ανάγνωση από μεταβλητές περιβάλλοντος/σημαίες) | | `--json` | Έξοδος JSON αναγνώσιμη από μηχανή (doctor, providers κ.λπ.) | | `--help`, `-h` | Εμφάνιση βοήθειας για τη συγκεκριμένη εντολή | | `--version`, `-v` | Εκτύπωση της εγκατεστημένης έκδοσης | --- ## Διαθέσιμα Endpoints API | Endpoint | Περιγραφή | Χρήση για | | -------------------------- | ----------------------------------- | -------------------------------- | | `/v1/chat/completions` | Τυπική συνομιλία (όλοι οι πάροχοι) | Όλα τα σύγχρονα εργαλεία | | `/v1/responses` | Responses API (μορφή OpenAI) | Codex, agentic workflows | | `/v1/completions` | Παλαιού τύπου ολοκληρώσεις κειμένου | Παλαιότερα εργαλεία με `prompt:` | | `/v1/embeddings` | Ενσωματώσεις κειμένου | RAG, αναζήτηση | | `/v1/images/generations` | Δημιουργία εικόνας | GPT-Image, Flux, κ.λπ. | | `/v1/audio/speech` | Κείμενο σε ομιλία | ElevenLabs, OpenAI TTS | | `/v1/audio/transcriptions` | Ομιλία σε κείμενο | Deepgram, AssemblyAI | Έτοιμα παραδείγματα για επικόλληση με tokenized URL OmniRoute: ```txt Token example: sk-a3ab3c080beaee3a-69f4a4-070d71af Standard OpenAI base: http://localhost:20128/v1 VS Code models: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/models VS Code chat: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/chat/completions VS Code responses: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/responses Ollama tags: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/api/tags Ollama chat: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/api/chat ``` --- ## Αντιμετώπιση προβλημάτων | Σφάλμα | Αιτία | Επίλυση | | ---------------------------------------------------------- | ------------------------------------------- | ---------------------------------------------------------- | | `Connection refused` | Το OmniRoute δεν εκτελείται | `omniroute serve` | | `401 Unauthorized` | Λανθασμένο κλειδί API | Ελέγξτε στο `/dashboard/api-manager` | | `No combo configured` | Δεν υπάρχει ενεργός συνδυασμός δρομολόγησης | Ρυθμίστε στο `/dashboard/combos` | | Το CLI εμφανίζει "not installed" | Το εκτελέσιμο δεν βρίσκεται στο PATH | Ελέγξτε με `which ` | | Το Dashboard εμφανίζει "not detected" μετά την εγκατάσταση | Η κρυφή μνήμη είναι παλιά | Κάντε κλικ στο "⟳ Refresh detection" στο dashboard | | Παλιός σύνδεσμος `/dashboard/cli-tools` | Σελιδοδείκτης προ v3.8.6 | Ανακατευθύνεται αυτόματα στο `/dashboard/cli-code` (308) | | Παλιός σύνδεσμος `/dashboard/agents` | Σελιδοδείκτης προ v3.8.6 | Ανακατευθύνεται αυτόματα στο `/dashboard/acp-agents` (308) |