1,104 mirrors rewritten over five passes of run-translation on the 22-source core set: the 14 sources edited since their translation, the 322 mirrors that were still English copies, and the frontmatter the old extractor leaked into the newer locales' bodies. The pipeline now caches per-`## `-section hashes and retranslates only changed sections, never reuses a section that is still English, rebuilds English-copy / leaked mirrors even when the source is unchanged, merges the state on save (parallel runs), and the drift gate (scoped to the core set) is blocking. Final audit: 0 stale, 0 English copies, 0 leaked frontmatter across 1,430 core mirrors. ⚠️ base-red inherited: #12732
50 KiB
CLI Tools — OmniRoute (አማርኛ)
🌐 Languages: 🇺🇸 English · 🇸🇦 ar · 🇦🇿 az · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇬🇷 el · 🇪🇸 es · 🇪🇪 et · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇪 ga · 🇮🇳 gu · 🇳🇬 ha · 🇮🇱 he · 🇮🇳 hi · 🇭🇷 hr · 🇭🇺 hu · 🇦🇲 hy · 🇮🇩 id · 🇳🇬 ig · 🇮🇹 it · 🇯🇵 ja · 🇬🇪 ka · 🇰🇭 km · 🇮🇳 kn · 🇰🇷 ko · 🇱🇹 lt · 🇱🇻 lv · 🇮🇳 ml · 🇮🇳 mr · 🇲🇾 ms · 🇲🇹 mt · 🇲🇲 my · 🇳🇵 ne · 🇳🇱 nl · 🇳🇴 no · 🇮🇳 or · 🇮🇳 pa · 🇵🇭 phi · 🇵🇱 pl · 🇵🇹 pt · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇱🇰 si · 🇸🇰 sk · 🇸🇮 sl · 🇷🇸 sr · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇺🇿 uz · 🇻🇳 vi · 🇳🇬 yo · 🇨🇳 zh-CN · 🇹🇼 zh-TW
የመጨረሻ ዝማኔ፦ 2026-08-23
OmniRoute በሦስት የተለዩ የዳሽቦርድ ገጾች ላይ ከተከፋፈሉ ሦስት የCLI መሣሪያዎች ምድቦች ጋር ይዋሃዳል፦
| ገጽ | መስመር | ጽንሰ-ሐሳብ | ብዛት |
|---|---|---|---|
| CLI ኮዶች | /dashboard/cli-code |
ወደ OmniRoute የሚያመለክቷቸው የኮድ መጻፊያ መሣሪያዎች (ደንበኛ → CLI → OmniRoute → አቅራቢ) | 26 |
| CLI ወኪሎች | /dashboard/cli-agents |
ወደ OmniRoute የሚያመለክቷቸው ራስ-ገዝ ወኪሎች (ተመሳሳይ ፍሰት፣ ሰፋ ያለ ወሰን) | 10 |
| ACP ወኪሎች | /dashboard/acp-agents |
OmniRoute በstdio/ACP በኩል እንደ backend የሚያስነሳቸው CLIዎች (ተቃራኒ ፍሰት) | registryን ይመልከቱ |
የቆዩ መስመሮች በ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 ወደ ትክክለኛው አቅራቢ ይመራል)
Anthropic / OpenAI / Gemini / DeepSeek / Groq / Mistral / ...
ACP Agents (የተቃራኒ ማስጀመሪያ ፍሰት):
የደንበኛ ጥያቄ → OmniRoute → CLIን በstdio/ACP በኩል ያስጀምራል → ምላሽ
ጥቅሞች፦
- ሁሉንም መሣሪያዎች ለማስተዳደር አንድ API ቁልፍ
- በዳሽቦርዱ ውስጥ የሁሉንም CLIዎች ወጪ መከታተል
- እያንዳንዱን መሣሪያ እንደገና ሳያዋቅሩ ሞዴል መቀየር
- በአካባቢያዊ እና በርቀት አገልጋዮች (VPS፣ Docker፣ Akamai፣ Cloudflare Tunnel) ላይ ይሠራል
በsetup-* በራስ-ሰር ማዋቀር
የእያንዳንዱን መሣሪያ ውቅር በእጅ መጻፍ አያስፈልግዎትም። OmniRoute እየሠራ
ካለ OmniRoute (አካባቢያዊ ወይም የርቀት) ቀጥታ የሞዴል ካታሎግን የሚያነብና
የመሣሪያውን የራሱን ውቅር በማሽንዎ ላይ የሚጽፍ ለእያንዳንዱ የሚደገፍ CLI የsetup-*
ትዕዛዝ ይዞ ይመጣል፦
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 <url> --api-key <key> (አካባቢያዊ መሣሪያን ከርቀት
OmniRoute ጋር ማዋቀር)፣ --dry-run (ሳይጻፍ ቅድመ-ዕይታ) እና --portን ይቀበላል። ራስ-ሰር
የሞዴል ማግኘት የሌላቸው መሣሪያዎች (Cline፣ Kilo፣ Roo፣ Goose፣ Aider፣ Qwen፣ 5dive)
--model <id>ን (እንዲሁም መስተጋብር ለሌላቸው አሂዶች --yesን) ይቀበላሉ። setup-5dive
በ$HOME ሥር የማይጽፍ ብቸኛው አሠራር ነው፦ በመንጋው አስተናጋጅ ላይ
በroot ባለቤትነት የተያዘ የማረጋገጫ መገለጫ በመጻፍ የ5dive ወኪል መንጋን
ያዋቅራል፤ ስለዚህ በsudo በኩል ራሱን እንደገና ያስኬዳል እና የራሱ የርቀት
ሁነታ የለውም። ትክክለኛው env ተካቶ ምንም ውቅር ሳይጻፍ CLIን ለማስጀመር፣ አጠቃላዩን
omniroute run <target> ማስጀመሪያ ይጠቀሙ (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 ውህደቶች ውስጥ ይገኛል።
እነዚህን በኮንቴይነር ውስጥ ማስኬድ
በOmniRoute ኮንቴይነር ውስጥ የተፈጸመ የsetup-* ትዕዛዝ ወደ
ኮንቴይነሩ የራሱ home ይጽፋል፤ ምንም የአስተናጋጅ CLI ይህን አያነበውም፣ እንዲሁም ከ
ኮንቴይነሩ ጋር ይጠፋል። OmniRoute ይህን ፈልጎ ያውቅና ከመጻፍ ይልቅ
ከመመሪያዎች ጋር በ2 ይወጣል። ሁለት የሚደገፉ የቀጣይ እርምጃ መንገዶች አሉ — CLIን በአስተናጋጁ ላይ ጭነው
omniroute connectን ወደ ኮንቴይነሩ መጠቀም፣ ወይም የውቅር ማውጫዎቹን bind-mount አድርጎ
CLI_CONFIG_HOMEን ማዘጋጀት (የcompose host መገለጫ)። እያንዳንዱ የsetup-* ትዕዛዝ፣ ከ
omniroute configure እና omniroute config set ጋር፣ በእርግጥ ያሰቡት
የኮንቴይነሩን የራሱን CLIዎች ማዋቀር ከሆነ --allow-container-writeን ይቀበላል፤
OMNIROUTE_ALLOW_CONTAINER_CONFIG_WRITE=true ለአገልጋዩ ተመሳሳይ ነገር ያደርጋል።
የDocker መመሪያ → የአስተናጋጅ CLI መሣሪያዎችን ማዋቀርን ይመልከቱ።
የዳሽቦርዱ የተግባራዊነት መጨረሻ ነጥብ (POST /api/cli-tools/apply) ተመሳሳዩን
ጥበቃ ያስገድዳል፦ በኮንቴይነር ውስጥ፣ ዒላማው ከአስተናጋጁ bind-mount ያልተደረገ
የመጻፍ ሙከራ **422**ን ከcontainerEphemeralTarget: true፣ ከአስተማማኙ የስህተት
ጽሑፍ እና — የአስተናጋጅ አሠራር ላላቸው መሣሪያዎች (claude፣ codex፣ opencode፣ cline፣
kilo፣ continue) — በአስተናጋጁ ላይ የሚኬድ hostSetupCommand (ለምሳሌ omniroute setup-opencode)
ጋር ይመልሳል፤ ምንም ነገር አይጻፍም። dryRun: true በኮንቴይነር
ሁነታ ውስጥ መሥራቱን ይቀጥላል፣ እና ዲስኩን ሳይነካ የተፈጠረውን ይዘት + የዒላማ ዱካ ይመልሳል፤ በዚህም
ከዳሽቦርዱ ቅድመ-ዕይታ ማድረግና በአስተናጋጁ ላይ ተግባራዊ ማድረግ ይችላሉ። ይህ ባህሪ
ሆን ተብሎ የተደረገ ሲሆን ተመልሶ እንዳይበላሽ በ
tests/unit/api/cli-tools/apply-container-guard.test.ts ይጠበቃል — ጥበቃውን
በማስወገድ የ422 ስህተትን ፈጽሞ "አያስተካክሉ"።
ዋና የእውነት ምንጭ
የተዋሃደው ካታሎግ በsrc/shared/constants/cliTools.ts ውስጥ እንደ CLI_TOOLS: Record<string, CliCatalogEntry> ይገኛል።
እያንዳንዱ ግቤት እነዚህ መስኮች አሉት (በsrc/shared/schemas/cliCatalog.ts ውስጥ የተገለጹ)፦
| መስክ | ዓይነት | መግለጫ |
|---|---|---|
category |
"code" | "agent" |
መሣሪያው በየትኛው ገጽ ላይ እንደሚታይ |
vendor |
string |
የመሣሪያው ምንጭ ("Anthropic", "OSS (P. Gauthier)") |
acpSpawnable |
boolean |
እንደ ACP Agentም መጠቀም ይቻላል (ባጅ ይታያል) |
baseUrlSupport |
"full" | "partial" | "none" |
የብጁ መዳረሻ ድጋፍ ደረጃ። "none" = የMITM የኋላ መዝገብ |
configType |
"env" | "custom" | "guide" | "custom-builder" | "mitm" |
የውቅረት ዘዴ |
id, name, color, description, docsUrl |
መደበኛ | ዋና የማሳያ መስኮች |
baseUrlSupport: "none" ያላቸው ግቤቶች በዳሽቦርድ ገጾች ላይ አይታዩም — ለዕቅድ 11 በMITM የኋላ መዝገብ ውስጥ ተመዝግበዋል (_tasks/features-v3.8.6/refactorpages/_orchestration/_plan11-mitm-backlog.mdን ይመልከቱ)።
የችሎታ ደረጃዎች (ካታሎግ የተደረገ × ሊገኝ የሚችል × ሊዋቀር የሚችል × ሊጀመር የሚችል)
ካታሎግ የተደረገ መሣሪያ ሁሉ ሊገኝ፣ ሊዋቀር ወይም ሊጀመር የሚችል አይደለም። እያንዳንዱ ደረጃ አንድ የሚያውጅ ምንጭ አለው፣ እና የልዩነት ሙከራ ተመሳስለው እንዲቆዩ ያደርጋል፦
| ደረጃ | ትርጉም | የሚገለጽበት |
|---|---|---|
| ካታሎግ የተደረገ | በዳሽቦርድ ካታሎግ ውስጥ ይታያል (ስም፣ አቅራቢ፣ ሰነዶች፣ የውቅረት ዓይነት) | src/shared/constants/cliTools.ts (CLI_TOOLS) |
| ሊገኝ የሚችል | የባይነሪ/ውቅረት ማግኘት፣ የጤና ፍተሻዎች፣ የውቅረት ዱካዎች | src/shared/services/cliRuntime.ts (CLI_TOOLS የአሂድ ጊዜ ካታሎግ) |
| ሊዋቀር የሚችል | በomniroute configure <cli> የተደገፈ (የማዋቀሪያ አሰራር አለ) |
bin/cli/cli-manifest.mjs (configure: true) |
| ሊጀመር የሚችል | በomniroute run <target> የተደገፈ (የenv/args ማስገባት ተገልጿል) |
bin/cli/cli-manifest.mjs (run: true) |
bin/cli/cli-manifest.mjs ለCLI ትዕዛዝ በይነገጾች መደበኛው ተፈጻሚ ማኒፌስት ነው፦
run፣ configure እና የshell-completion አመንጪዎች ሁሉ የዒላማ ዝርዝሮቻቸውን፣
የቅጽል ስም ማስተካከያቸውን (ለምሳሌ kilocode/kilo-code/kilo_cli → kilo)
እና የ--model አማራጭ ግንኙነትን ከእሱ ያገኛሉ። የልዩነት መከላከያው
tests/unit/cli/cli-manifest-drift.test.ts ማኒፌስቱ፣ የአሂድ ጊዜ
ካታሎጉ፣ የUI ካታሎጉ እና እያንዳንዱ የተጠቃሚ በይነገጽ ተመሳስለው መቆየታቸውን ያረጋግጣል — ሌሎቹ ሳይዘመኑ
ወደ አንድ በይነገጽ የታከለ ዒላማ በዝምታ ልዩነት እንዲፈጥር ከመፍቀድ ይልቅ የሙከራ ስብስቡን ያሳንፋል።
1. የCLI Code ካታሎግ (26 መሣሪያዎች)
በ/dashboard/cli-code ውስጥ የሚታዩ ሁሉም መሣሪያዎች። baseUrlSupport: none ያላቸው መሣሪያዎች ብጁ base URL ከመጠቀም ይልቅ በMITM ወይም በእጅ መመሪያ በኩል ይገናኛሉ፦
| id | ስም | አቅራቢ | 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 (ex-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 (P. Gauthier) | 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 (ex-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 | 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" ያላቸው መሣሪያዎች በዳሽቦርድ ካርዱ ላይ "⚠ ከፊል Base URL" የሚል ባጅ ያሳያሉ።
2. የCLI ወኪሎች ካታሎግ (10 መሣሪያዎች)
በ/dashboard/cli-agents ውስጥ የሚታዩ ራስ-ገዝ ወኪሎች፦
| id | name | vendor | baseUrlSupport | acpSpawnable |
|---|---|---|---|---|
| hermes-agent | Hermes Agent | 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 ወኪሎች (/dashboard/acp-agents)
ይህ ገጽ (ከ/dashboard/agents የተሰየመው እንደገና) OmniRoute በstdio/ACP ፕሮቶኮል በኩል እንደ የጀርባ ክፍል ማስፈጸሚያ ሞተሮች ማስጀመር የሚችላቸውን CLIዎች ያሳያል። ካታሎጉ በsrc/lib/acp/registry.ts ውስጥ በተናጠል የሚተዳደር ሲሆን ከCLI_TOOLS ጋር ተመሳሳይ አይደለም።
4. የMITM ቀሪ ሥራዎች (በዳሽቦርዱ ውስጥ አይታዩም)
የሚከተሉት CLIዎች ብጁ base URLን በተፈጥሯዊ ሁኔታ አይደግፉም፣ እንዲሁም በCLI Code ወይም CLI Agents ገጾች ውስጥ አልተዘረዘሩም። በዕቅድ 11 ውስጥ ለMITM ጣልቃ ገብነት እጩዎች ናቸው፦
| CLI | ምክንያት |
|---|---|
| windsurf | BYOK በተመረጡ የClaude ሞዴሎች + የድርጅት URL/token ብቻ የተገደበ ነው |
| amp | ዝግ ሥነ-ምህዳር (Sourcegraph) |
| amazon-q / kiro-cli | AWS SSO ማረጋገጫ፣ ብጁ 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<toolId, ToolBatchStatus>(ዓይነት፦src/shared/types/cliBatchStatus.ts) - ስልት፦ በሁሉም መሣሪያዎች ላይ
Promise.all፣ ለእያንዳንዱ መሣሪያ 5s የጊዜ ገደብ - መሸጎጫ፦ በውቅር ፋይሉ
mtimeየሚመዘገብ የውስጠ-ማህደረ ትውስታ LRU። mtime ሲቀየር መሸጎጫው ዋጋ አልባ ይደረጋል። አገልጋዩ እንደገና ሲጀመር ዳግም ይጀመራል።
ለእያንዳንዱ መሣሪያ የምላሹ ቅርጽ፦
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 ዱካዎች የሉትም
}
6. ለአዳዲስ መሣሪያዎች የቅንብሮች አስተናጋጆች
configType: "custom" ያላቸው አዳዲስ መሣሪያዎች የተለዩ የቅንብሮች API መስመሮች አሏቸው፦
| መስመር | መሣሪያ |
|---|---|
POST /api/cli-tools/forge-settings |
ForgeCode (.forge.toml) |
POST /api/cli-tools/jcode-settings |
jcode (--base-url ፍላግ) |
POST /api/cli-tools/deepseek-tui-settings |
DeepSeek TUI (OPENAI_BASE_URL፣ የቆየ) |
POST /api/cli-tools/codewhale-settings |
CodeWhale (OPENAI_BASE_URL፣ ዋና + የቆየ ~/.deepseek ማመሳሰል) |
POST /api/cli-tools/smelt-settings |
Smelt |
POST /api/cli-tools/pi-settings |
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 + የተለየ .env ቁልፍ) |
ሁሉም መስመሮች ለስህተት ምላሾች sanitizeErrorMessage()ን ይጠቀማሉ (ጥብቅ ደንብ #12)።
7. የዳሽቦርድ ገጾች አርክቴክቸር
CLI Code (/dashboard/cli-code)
src/app/(dashboard)/dashboard/cli-code/page.tsx— የአገልጋይ ኮምፖነንትsrc/app/(dashboard)/dashboard/cli-code/CliCodePageClient.tsx— የደንበኛ ፍርግርግ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— የአገልጋይ ኮምፖነንትsrc/app/(dashboard)/dashboard/cli-agents/CliAgentsPageClient.tsx— የደንበኛ ፍርግርግsrc/app/(dashboard)/dashboard/cli-agents/[id]/page.tsx—ToolDetailClientን እንደገና ይጠቀማል
ACP Agents (/dashboard/acp-agents)
src/app/(dashboard)/dashboard/acp-agents/page.tsx— የአገልጋይ ኮምፖነንት (ከagents/የተዛወረ)
የጋራ UI ኮምፖነንቶች (src/shared/components/cli/)
| ፋይል | ዓላማ |
|---|---|
CliToolCard.tsx |
ብልህ የሁኔታ ካርድ (ማወቅ + ውቅር + መዳረሻ) |
CliConceptCard.tsx |
የእያንዳንዱ ገጽ ጽንሰ-ሐሳብ ማብራሪያ ካርድ |
CliComparisonCard.tsx |
በCLI ዓይነቶች መካከል ባለሦስት-ዓምድ ንጽጽር |
BaseUrlSelect.tsx |
የመዳረሻ ተቆልቋይ ምርጫ (አካባቢያዊ/ደመና/ብጁ) |
ApiKeySelect.tsx |
የAPI ቁልፍ መራጭ |
ManualConfigModal.tsx |
ሊቀዳ የሚችል የውቅር ቅንጣቢ ሞዳል |
የጋራ Hook (src/shared/hooks/cli/)
| ፋይል | ዓላማ |
|---|---|
useToolBatchStatuses.ts |
/api/cli-tools/all-statusesን ያመጣል፣ የመጫን/የማደስ ሁኔታን ያስተዳድራል |
8. i18n
በዕቅድ 14 F9 ውስጥ የታከሉ አዲስ namespaces፦
| Namespace | ዓላማ |
|---|---|
cliCommon |
የጋራ ጽሑፎች (የካርድ መለያዎች፣ የፅንሰ-ሐሳብ/ንፅፅር ጽሑፎች፣ የዝርዝር ገጽ መለያዎች) |
cliCode |
የCLI Code ገጽ ጽሑፎች |
cliAgents |
የCLI Agents ገጽ ጽሑፎች |
acpAgents |
የACP Agents ገጽ ጽሑፎች |
ሙሉ የPT-BR እና EN ትርጉሞች ቀርበዋል። ሌሎች 39 locales በsrc/i18n/request.ts ውስጥ ባለው የnamespace-ደረጃ ውህደት አማካኝነት በራስ-ሰር ወደ EN ይመለሳሉ።
9. ፈጣን መጀመሪያ
ደረጃ 1 — የOmniRoute API ቁልፍ ያግኙ
/dashboard/api-managerን ይክፈቱ → የAPI ቁልፍ ይፍጠሩ- ስም ይስጡት (ለምሳሌ
cli-tools) እና ሁሉንም ፈቃዶች ይምረጡ - ቁልፉን ይቅዱ — ከታች ላለው እያንዳንዱ CLI ያስፈልግዎታል
ቁልፍዎ ይህን ይመስላል፦
sk-xxxxxxxxxxxxxxxx-xxxxxxxxx
ደረጃ 2 — የCLI መሣሪያዎችን ይጫኑ
ሁሉም npm-ተኮር መሣሪያዎች Node.js 22.22.2+ ወይም 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 (በ`omniroute run gemini` ሊጀመር የሚችል → /v1beta surface)
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 በኩል ያዋቅሩ
- ወደ
http://localhost:20128/dashboard/cli-codeይሂዱ - መሣሪያዎን በፍርግርጉ ውስጥ ያግኙ
- የመሣሪያውን ዝርዝር ገጽ ለመክፈት ካርዱን ጠቅ ያድርጉ
- የAPI ቁልፍዎን እና base URLን ይምረጡ
- ውቅረትን ተግብርን ጠቅ ያድርጉ ወይም በእጅ የሚዋቀርበትን ቅንጣቢ ይቅዱ
ደረጃ 4 — ዓለም አቀፍ Environment Variables ያዘጋጁ
# OmniRoute ሁለንተናዊ 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 GOOGLE_GEMINI_BASE_URLን ከROOT ያነባል (የእሱ SDK /v1beta/...ን ራሱ ይጨምራል)
export GOOGLE_GEMINI_BASE_URL="http://localhost:20128"
export GEMINI_API_KEY="sk-your-omniroute-key"
ለርቀት server
localhost:20128ን በserver IP ወይም domain ይተኩ፣ ለምሳሌhttp://<your-server-ip>:20128።
ደረጃ 4 — እያንዳንዱን መሣሪያ ያዋቅሩ
Claude Code
# ~/.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
ለClaude Code የተዋሃደውን Anthropic gateway root ይጠቀሙ። እዚህ /v1ን አይጨምሩ።
ሙከራ፦ claude "say hello"
OpenAI Codex
ዘመናዊው Codex (v0.137+) ~/.codex/config.tomlን ብቻ ያነባል — የቀድሞው
config.yaml የlegacy npm CLI ነው እና ያለምንም ማስጠንቀቂያ ችላ ይባላል። የAPI
ቁልፉ ሁልጊዜ በOMNIROUTE_API_KEY environment variable (env_key) ውስጥ ይቆያል፤
በፋይሉ ውስጥ ፈጽሞ አይቀመጥም፦
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"
ሙሉ ማጣቀሻ (profiles፣ wire_api፣ context windows)፦ CODEX-CLI-CONFIGURATION.md።
ሙከራ፦ 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
ሙከራ፦ opencode
የthinking variantsን ለመላክ
opencode run "your prompt" --model omniroute/claude-sonnet-4-5-thinking --variant highይጠቀሙ።
Cline (CLI ወይም VS Code)
የCLI ሁነታ፦
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 extension ቅንብሮች → API Provider፦ OpenAI Compatible → Base URL፦ http://localhost:20128/v1
ወይም የOmniRoute dashboardን ይጠቀሙ → CLI Tools → Cline → ውቅረትን ተግብር።
KiloCode (CLI ወይም VS Code)
የCLI ሁነታ፦
kilocode --api-base http://localhost:20128/v1 --api-key sk-your-omniroute-key
የVS Code ቅንብሮች፦
{
"kilo-code.openAiBaseUrl": "http://localhost:20128/v1",
"kilo-code.apiKey": "sk-your-omniroute-key"
}
ወይም የOmniRoute dashboardን ይጠቀሙ → CLI Tools → KiloCode → ውቅረትን ተግብር።
Continue (VS Code Extension)
~/.continue/config.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 ለብጁ endpoint models ሲዋቀር እና OmniRoute ያለብጁ header field እንዲሠራ ሲፈልጉ ይህን ይጠቀሙ።
የሚመከር መገኛ፦
- Linux፦
~/.config/Code - Insiders/User/chatLanguageModels.json - Windows፦
%APPDATA%/Code - Insiders/User/chatLanguageModels.json
ቶከን የተደረገበትን 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"
}
}
]
ማስታወሻዎች፦
sk-your-omniroute-keyን በOmniRoute ውስጥ በተፈጠረ API ቁልፍ ይተኩ።- የ
urlመስክ ወደ/api/v1/vscode/{token}/chat/completionsማመልከት አለበት። - የ
modelsUrlመስክ ወደ/api/v1/vscode/{token}/modelsማመልከት አለበት። - ደንበኛው ብጁ ራስጌዎችን የሚደግፍ ከሆነ፣ መደበኛውን
/v1+ Bearer ራስጌ ፍሰት ይምረጡ። - በURL ውስጥ የተካተቱ ቶከኖች ለተኳኋኝነት የሚያገለግሉ አማራጭ መፍትሔዎች ሲሆኑ፣ በአርታዒ ምዝግቦች ወይም በፕሮክሲ ታሪክ ውስጥ ሊታዩ ይችላሉ።
Kiro CLI (Amazon)
# ወደ AWS/Kiro መለያዎ ይግቡ፦
kiro-cli login
# CLIው የራሱን ማረጋገጫ ይጠቀማል — ለKiro CLI ራሱ OmniRoute እንደ ጀርባ አገልግሎት አያስፈልግም።
# ለሌሎች መሣሪያዎች kiro-cliን ከOmniRoute ጎን ለጎን ይጠቀሙ።
kiro-cli status
ለKiro IDE ዴስክቶፕ መተግበሪያ፣ በOmniRoute የሚቀርበውን MITM መጨረሻ ነጥብ
በ/dashboard/cli-tools → Kiro ስር ይጠቀሙ።
10. ውስጣዊ OmniRoute CLI
የomniroute binary ለሰርቨር የሕይወት ዑደት፣ ለማዋቀር፣ ለምርመራ እና ለአቅራቢ አስተዳደር ትዕዛዞችን ያቀርባል። የመግቢያ ነጥብ፦ bin/omniroute.mjs።
omniroute # ሰርቨሩን አስጀምር (ነባሪ port 20128)
omniroute setup # በይነተገናኝ የማዋቀሪያ አዋቂ
omniroute doctor # config፣ DB፣ ports እና runtime ፈትሽ
omniroute providers list # የተዋቀሩ የአቅራቢ ግንኙነቶች
omniroute providers test-all # እያንዳንዱን ንቁ ግንኙነት ፈትሽ
omniroute reset-password # የአስተዳዳሪ የይለፍ ቃልን ዳግም አስጀምር
omniroute logs # የጥያቄ ምዝግቦችን በቀጥታ አሰራጭ
omniroute health # ዝርዝር የጤንነት ሁኔታ (breakers፣ cache፣ memory)
omniroute --version # ስሪቱን አትም
omniroute --help # ሁሉንም ትዕዛዞች አሳይ
ማዋቀር እና ማስጀመር
omniroute setup # በይነተገናኝ የማዋቀሪያ አዋቂ
omniroute setup --non-interactive # የCI/አውቶሜሽን ሁነታ (env vars + flags ያነባል)
omniroute setup --password '<value>' # የአስተዳዳሪ የይለፍ ቃልን በቀጥታ አዘጋጅ
omniroute setup --add-provider \
--provider openai \
--api-key '<value>' \
--test-provider # አቅራቢን በአንድ ጊዜ ጨምር እና ፈትሽ
በይነተገናኝ ላልሆነ ማዋቀር የሚታወቁ environment variables፦
| Var | ዓላማ |
|---|---|
OMNIROUTE_API_KEY |
የአቅራቢ API key (በCommander .env() በኩል ከ--api-key ጋር የተያያዘ) |
DATA_DIR |
የOmniRoute ውሂብ ማውጫን ይተካል |
ሌሎች በይነተገናኝ ያልሆኑ ግብዓቶች በሙሉ እንደ flags ይተላለፋሉ፤ environment variables አይደሉም፦
--password, --provider, --provider-name, --provider-base-url, --default-model
(ከላይ ያሉትን የomniroute setup አማራጮች ይመልከቱ)።
ምርመራዎች
omniroute doctor # config፣ DB፣ ports፣ runtime፣ memory እና liveness ፈትሽ
omniroute doctor --json # በማሽን ሊነበብ የሚችል JSON
omniroute doctor --no-liveness # የHTTP health probeን ዝለል
omniroute doctor --host 0.0.0.0 # የliveness hostን ተካ
omniroute doctor --liveness-url <url> # ሙሉውን የhealth endpoint URL ተካ
doctor እነዚህን ፍተሻዎች ያካሂዳል፦ Config፣ Database፣ Storage/encryption፣
Port availability፣ Node runtime፣ Native binary (better-sqlite3)፣
Memory እና Server liveness። ማንኛውም ፍተሻ fail ከሆነ ዜሮ ባልሆነ ኮድ ይወጣል።
የአቅራቢ አስተዳደር
omniroute providers available # የOmniRoute አቅራቢ ካታሎግ
omniroute providers available --search openai # ካታሎጉን በid/name/alias/category አጣራ
omniroute providers available --category api-key # በcategory አጣራ (api-key፣ oauth፣ free፣ ...)
omniroute providers available --json # በማሽን ሊነበብ የሚችል JSON
omniroute providers list # የተዋቀሩ የአቅራቢ ግንኙነቶች
omniroute providers list --json
omniroute providers test <id|name> # አንድ የተዋቀረ ግንኙነት ፈትሽ
omniroute providers test-all # እያንዳንዱን ንቁ ግንኙነት ፈትሽ
omniroute providers validate # በአካባቢው ብቻ የሚደረግ መዋቅራዊ ማረጋገጫ
omniroute providers add <provider> --credential-env PROVIDER_KEY
omniroute providers import ./providers.json --dry-run --json
omniroute providers auth <provider> # ነባር የOAuth ሂደት
omniroute providers edit <id|name> --default-model <model>
omniroute providers remove <id|name> --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 ባህሪያቸውን ይዘው ይቆያሉ እና
ሰርቨሩ እየሰራ እንዲሆን አያስፈልጋቸውም።
መልሶ ማግኘት እና ዳግም ማስጀመር
omniroute reset-password # የአስተዳዳሪ የይለፍ ቃልን ዳግም አስጀምር (በተጨማሪ፦ omniroute-reset-password)
omniroute reset-encrypted-columns # ለencrypted credential reset ማስጠንቀቂያ + dry-run አሳይ
omniroute reset-encrypted-columns --force # በSQLite ውስጥ encrypted credentialsን በእርግጥ null አድርግ
የማረጋገጫ መረጃ ወደ ውጭ መላክ (⚠ በጥንቃቄ ይያዙ)
omniroute auth export # ማስጠንቀቂያ + የማረጋገጫ ደረጃ አሳይ — የDB መዳረሻ የለም
omniroute auth export --force # የሁሉንም ግንኙነቶች DECRYPTED credentials እንደ JSON ወደ stdout ላክ
omniroute auth export --force --id <id> # ተዛማጁን ግንኙነት ብቻ ወደ ውጭ ላክ
omniroute auth export --force --format env # የOMNIROUTE_<PROVIDER>_<FIELD>=<value> መስመሮችን አውጣ
omniroute auth export --force --out creds.json # ወደ ፋይል ጻፍ (በ0600 ፈቃዶች የሚፈጠር)
auth export በአካባቢው ብቻ የሚሰራ ነው (ቀጥተኛ የSQLite ንባብ፣ የHTTP route የለም) እና ሆን ብሎ
plaintext የሆኑ apiKey/accessToken/refreshToken/idToken እሴቶችን ያትማል/ይጽፋል — ይህ ባህሪው ነው፣
ስህተት አይደለም። --force ሳይኖር ከdatabase ምንም አይነበብም፣ እንዲሁም ምንም አይፈታም። ማንኛውም plaintext
ከመውጣቱ በፊት የstderr ማስጠንቀቂያ ባነር ሁልጊዜ ይታተማል። STORAGE_ENCRYPTION_KEY መዘጋጀት
ያስፈልገዋል። መፍታት ያልተሳካለት field (ጊዜው ያለፈ key፣ የተበላሸ ciphertext) ሙሉውን export ከማቋረጥ ወይም ዋናውን ስህተት ከማጋለጥ ይልቅ
<field>DecryptFailed: true ተብሎ ይዘገባል።
ሌሎች ንዑስ ትዕዛዞች
በሌላ መልኩ ካልተገለጸ በስተቀር፣ እነዚህ እየሰራ ያለ OmniRoute ሰርቨር እንዳለ ይገምታሉ፦
omniroute status # አጠቃላይ የአሂድ ጊዜ ሁኔታ
omniroute logs # የጥያቄ ምዝግብ ማስታወሻዎችን ያለማቋረጥ አሳይ (--json, --search, --follow)
omniroute config show # የአሁኑን ውቅር አሳይ
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 # የውቅር + DB ቅጽበታዊ ቅጂ ይፍጠሩ
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 <k> | set <k> <v> # የአካባቢ ተለዋዋጮችን ይመርምሩ / ያቀናብሩ (ጊዜያዊ)
omniroute test # የአቅራቢ ግንኙነት መሠረታዊ ሙከራ
omniroute update # ዝማኔዎችን ይፈትሹ
omniroute completion # የshell ማጠናቀቂያ ይፍጠሩ
የተለመዱ አማራጮች
| አማራጭ | መግለጫ |
|---|---|
--no-open |
ሲጀመር አሳሹን በራስ-ሰር አትክፈት |
--port <n> |
የAPI ወደቡን ቀይር (ነባሪው 20128) |
--mcp |
በstdio ላይ እንደ MCP አገልጋይ አሂድ (ለIDEዎች) |
--non-interactive |
የCI ሁነታ (ጥያቄዎች የሉም፤ ከአካባቢ ተለዋዋጮች/አማራጮች ያነባል) |
--json |
በማሽን ሊነበብ የሚችል የJSON ውጤት (doctor፣ providers፣ ወዘተ) |
--help, -h |
ለትእዛዙ የተወሰነ እገዛ አሳይ |
--version, -v |
የተጫነውን ስሪት አትም |
የሚገኙ API መገናኛ ነጥቦች
| መገናኛ ነጥብ | መግለጫ | የአጠቃቀም ዓላማ |
|---|---|---|
/v1/chat/completions |
መደበኛ ውይይት (ሁሉም አቅራቢዎች) | ሁሉም ዘመናዊ መሣሪያዎች |
/v1/responses |
Responses API (OpenAI ቅርጸት) | Codex፣ በወኪል የሚከናወኑ የሥራ ፍሰቶች |
/v1/completions |
የቆዩ የጽሑፍ ማጠናቀቂያዎች | prompt: የሚጠቀሙ የቆዩ መሣሪያዎች |
/v1/embeddings |
የጽሑፍ embeddings | RAG፣ ፍለጋ |
/v1/images/generations |
ምስል ማመንጨት | GPT-Image፣ Flux፣ ወዘተ. |
/v1/audio/speech |
ጽሑፍን ወደ ንግግር መቀየር | ElevenLabs፣ OpenAI TTS |
/v1/audio/transcriptions |
ንግግርን ወደ ጽሑፍ መቀየር | Deepgram፣ AssemblyAI |
ቶከን የተካተተበት OmniRoute URL ያላቸው፣ በቀጥታ ለመለጠፍ ዝግጁ የሆኑ ምሳሌዎች፦
የቶከን ምሳሌ: sk-a3ab3c080beaee3a-69f4a4-070d71af
መደበኛ OpenAI base: http://localhost:20128/v1
የVS Code ሞዴሎች: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/models
የVS Code ውይይት: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/chat/completions
የVS Code ምላሾች: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/responses
የOllama መለያዎች: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/api/tags
የOllama ውይይት: http://localhost:20128/api/v1/vscode/sk-a3ab3c080beaee3a-69f4a4-070d71af/api/chat
ችግር ፈቺ
| ስህተት | ምክንያት | መፍትሔ |
|---|---|---|
Connection refused |
OmniRoute እየሄደ አይደለም | omniroute serve |
401 Unauthorized |
የተሳሳተ API key | በ/dashboard/api-manager ውስጥ ያረጋግጡ |
No combo configured |
ንቁ የማዘዋወሪያ combo የለም | በ/dashboard/combos ውስጥ ያዋቅሩ |
| CLI «አልተጫነም» ያሳያል | Binary በPATH ውስጥ የለም | which <command>ን ያረጋግጡ |
| ከመጫን በኋላ Dashboard «አልተገኘም» ያሳያል | Cache ጊዜው ያለፈበት ነው | በdashboard ውስጥ «⟳ ማግኘትን አድስ»ን ጠቅ ያድርጉ |
የቆየ አገናኝ /dashboard/cli-tools |
ከv3.8.6 በፊት የተቀመጠ ዕልባት | በራስ-ሰር ወደ /dashboard/cli-code (308) ይዛወራል |
የቆየ አገናኝ /dashboard/agents |
ከv3.8.6 በፊት የተቀመጠ ዕልባት | በራስ-ሰር ወደ /dashboard/acp-agents (308) ይዛወራል |