OmniRoute Dashboard # ๐Ÿš€ OmniRoute โ€” ืฉืขืจ ื”ื‘ื™ื ื” ื”ืžืœืื›ื•ืชื™ืช ื”ื—ื™ื ืžื™ืช ๐ŸŒ **[English](#-omniroute--the-free-ai-gateway)** | **[Portuguรชs (BR)](#-omniroute--gateway-de-ia-gratuito)** ### ืœืขื•ืœื ืืœ ืชืคืกื™ืง ืœืงื•ื“. ื ื™ืชื•ื‘ ื—ื›ื ืœื“ื’ืžื™ ื‘ื™ื ื” ืžืœืื›ื•ืชื™ืช **ื‘ื—ื™ื ื ื•ื‘ืขืœื•ืช ื ืžื•ื›ื”** ืขื ื—ื–ืจื” ืื•ื˜ื•ืžื˜ื™ืช. _ืฉืจืช ื”-API ื”ืื•ื ื™ื‘ืจืกืœื™ ืฉืœืš - ื ืงื•ื“ืช ืงืฆื” ืื—ืช, 36+ ืกืคืงื™ื, ืืคืก ื–ืžืŸ ื”ืฉื‘ืชื”._ **ื”ืฉืœืžื•ืช ืฆ'ืื˜ โ€ข ื”ื˜ืžืขื•ืช โ€ข ื™ืฆื™ืจืช ืชืžื•ื ื•ืช โ€ข ืื•ื“ื™ื• โ€ข ื“ื™ืจื•ื’ ืžื—ื“ืฉ โ€ข 100% TypeScript** --- ### ๐Ÿค– ืกืคืง AI ื‘ื—ื™ื ื ืขื‘ื•ืจ ืกื•ื›ื ื™ ื”ืงื™ื“ื•ื“ ื”ืžื•ืขื“ืคื™ื ืขืœื™ืš _ื—ื‘ืจ ื›ืœ ื›ืœื™ IDE ืื• CLI ื”ืžื•ืคืขืœ ืขืœ ื™ื“ื™ AI ื“ืจืš OmniRoute - ืฉืขืจ API ื‘ื—ื™ื ื ืœืงื™ื“ื•ื“ ื‘ืœืชื™ ืžื•ื’ื‘ืœ._
OpenClaw
OpenClaw

โญ 205K
NanoBot
NanoBot

โญ 20.9K
PicoClaw
PicoClaw

โญ 14.6K
ZeroClaw
ZeroClaw

โญ 9.9K
IronClaw
IronClaw

โญ 2.1K
OpenCode
OpenCode

โญ 106K
Codex CLI
Codex CLI

โญ 60.8K
Claude Code
Claude Code

โญ 67.3K
Gemini CLI
Gemini CLI

โญ 94.7K
Kilo Code
Kilo Code

โญ 15.5K
๐Ÿ“ก ื›ืœ ื”ืกื•ื›ื ื™ื ืžืชื—ื‘ืจื™ื ื“ืจืš http://localhost:20128/v1 ืื• http://cloud.omniroute.online/v1__OMNI_TOKEN_245, โ€”limited one config ืžื›ืกื” --- [![npm version](https://img.shields.io/npm/v/omniroute?color=cb3837&logo=npm)](https://www.npmjs.com/package/omniroute) [![Docker Hub](https://img.shields.io/docker/v/diegosouzapw/omniroute?label=Docker%20Hub&logo=docker&color=2496ED)](https://hub.docker.com/r/diegosouzapw/omniroute) [![License](https://img.shields.io/github/license/diegosouzapw/OmniRoute)](https://github.com/diegosouzapw/OmniRoute/blob/main/LICENSE) [![Website](https://img.shields.io/badge/Website-omniroute.online-blue?logo=google-chrome&logoColor=white)](https://omniroute.online) [![WhatsApp](https://img.shields.io/badge/WhatsApp-Community-25D366?logo=whatsapp&logoColor=white)](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) [๐ŸŒ Website](https://omniroute.online) โ€ข [๐Ÿš€ Quick Start](#-quick-start) โ€ข [๐Ÿ’ก Features](#-key-features) โ€ข [๐Ÿ“– Docs](#-documentation) โ€ข [๐Ÿ’ฐ Pricing](#-pricing-at-a-glance) โ€ข [๐Ÿ’ฌ WhatsApp](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) ๐ŸŒ **Available in:** ๐Ÿ‡บ๐Ÿ‡ธ [English](README.md) | ๐Ÿ‡ง๐Ÿ‡ท [Portuguรชs (Brasil)](README.pt-BR.md) | ๐Ÿ‡ช๐Ÿ‡ธ [Espaรฑol](README.es.md) | ๐Ÿ‡ซ๐Ÿ‡ท [Franรงais](README.fr.md) | ๐Ÿ‡ฎ๐Ÿ‡น [Italiano](README.it.md) | ๐Ÿ‡ท๐Ÿ‡บ [ะ ัƒััะบะธะน](README.ru.md) | ๐Ÿ‡จ๐Ÿ‡ณ [ไธญๆ–‡ (็ฎ€ไฝ“)](README.zh-CN.md) | ๐Ÿ‡ฉ๐Ÿ‡ช [Deutsch](README.de.md) | ๐Ÿ‡ฎ๐Ÿ‡ณ [เคนเคฟเคจเฅเคฆเฅ€](README.in.md) | ๐Ÿ‡น๐Ÿ‡ญ [เน„เธ—เธข](README.th.md) | ๐Ÿ‡บ๐Ÿ‡ฆ [ะฃะบั€ะฐั—ะฝััŒะบะฐ](README.uk-UA.md) | ๐Ÿ‡ธ๐Ÿ‡ฆ [ุงู„ุนุฑุจูŠุฉ](README.ar.md) | ๐Ÿ‡ฏ๐Ÿ‡ต [ๆ—ฅๆœฌ่ชž](README.ja.md) | ๐Ÿ‡ป๐Ÿ‡ณ [Tiแบฟng Viแป‡t](README.vi.md) | ๐Ÿ‡ง๐Ÿ‡ฌ [ะ‘ัŠะปะณะฐั€ัะบะธ](README.bg.md) | ๐Ÿ‡ฉ๐Ÿ‡ฐ [Dansk](README.da.md) | ๐Ÿ‡ซ๐Ÿ‡ฎ [Suomi](README.fi.md) | ๐Ÿ‡ฎ๐Ÿ‡ฑ [ืขื‘ืจื™ืช](README.he.md) | ๐Ÿ‡ญ๐Ÿ‡บ [Magyar](README.hu.md) | ๐Ÿ‡ฎ๐Ÿ‡ฉ [Bahasa Indonesia](README.id.md) | ๐Ÿ‡ฐ๐Ÿ‡ท [ํ•œ๊ตญ์–ด](README.ko.md) | ๐Ÿ‡ฒ๐Ÿ‡พ [Bahasa Melayu](README.ms.md) | ๐Ÿ‡ณ๐Ÿ‡ฑ [Nederlands](README.nl.md) | ๐Ÿ‡ณ๐Ÿ‡ด [Norsk](README.no.md) | ๐Ÿ‡ต๐Ÿ‡น [Portuguรชs (Portugal)](README.pt.md) | ๐Ÿ‡ท๐Ÿ‡ด [Romรขnฤƒ](README.ro.md) | ๐Ÿ‡ต๐Ÿ‡ฑ [Polski](README.pl.md) | ๐Ÿ‡ธ๐Ÿ‡ฐ [Slovenฤina](README.sk.md) | ๐Ÿ‡ธ๐Ÿ‡ช [Svenska](README.sv.md) | ๐Ÿ‡ต๐Ÿ‡ญ [Filipino](README.phi.md)
--- ## ๐Ÿค” ืœืžื” OmniRoute? **ื”ืคืกื™ืงื• ืœื‘ื–ื‘ื– ื›ืกืฃ ื•ืœื”ื’ื™ืข ืœื’ื‘ื•ืœื•ืช:** - ืžื›ืกืช ื”ืžื ื•ื™ื™ื ืžืกืชื™ื™ืžืช ืœืœื ืฉื™ืžื•ืฉ ื‘ื›ืœ ื—ื•ื“ืฉ - ืžื’ื‘ืœื•ืช ืงืฆื‘ ืขื•ืฆืจื•ืช ืื•ืชืš ื‘ืงื™ื“ื•ื“ ื‘ืืžืฆืข - ืžืžืฉืงื™ API ื™ืงืจื™ื ($20-50 ืœื—ื•ื“ืฉ ืœื›ืœ ืกืคืง) - ืžืขื‘ืจ ื™ื“ื ื™ ื‘ื™ืŸ ืกืคืงื™ื **OmniRoute ืคื•ืชืจ ืืช ื–ื”:** - โœ… **ืžืงืกื ืžื ื•ื™ื™ื** - ืขืงื•ื‘ ืื—ืจ ืžื›ืกืช, ื”ืฉืชืžืฉ ื‘ื›ืœ ืกื™ื‘ื™ื•ืช ืœืคื ื™ ื”ืื™ืคื•ืก - โœ… **ื”ื—ื–ืจ ืื•ื˜ื•ืžื˜ื™** - ืžื ื•ื™ โ†’ ืžืคืชื— API โ†’ ื–ื•ืœ โ†’ ื—ื™ื ื, ืืคืก ื–ืžืŸ ื”ืฉื‘ืชื” - โœ… **ืจื™ื‘ื•ื™ ื—ืฉื‘ื•ื ื•ืช** - ืกื™ื‘ื•ื‘ ื‘ื™ืŸ ื—ืฉื‘ื•ื ื•ืช ืœื›ืœ ืกืคืง - โœ… **ืื•ื ื™ื‘ืจืกืœื™** - ืขื•ื‘ื“ ืขื ืงืœื•ื“ ืงื•ื“, Codex, Gemini CLI, Cursor, Cline, OpenClaw, ื›ืœ ื›ืœื™ CLI --- ## ๐Ÿ”„ ืื™ืš ื–ื” ืขื•ื‘ื“ ``` โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ Your CLI โ”‚ (Claude Code, Codex, Gemini CLI, OpenClaw, Cursor, Cline...) โ”‚ Tool โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ http://localhost:20128/v1 โ†“ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ OmniRoute (Smart Router) โ”‚ โ”‚ โ€ข Format translation (OpenAI โ†” Claude) โ”‚ โ”‚ โ€ข Quota tracking + Embeddings + Images โ”‚ โ”‚ โ€ข Auto token refresh โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ”œโ”€โ†’ [Tier 1: SUBSCRIPTION] Claude Code, Codex, Gemini CLI โ”‚ โ†“ quota exhausted โ”œโ”€โ†’ [Tier 2: API KEY] DeepSeek, Groq, xAI, Mistral, NVIDIA NIM, etc. โ”‚ โ†“ budget limit โ”œโ”€โ†’ [Tier 3: CHEAP] GLM ($0.6/1M), MiniMax ($0.2/1M) โ”‚ โ†“ budget limit โ””โ”€โ†’ [Tier 4: FREE] iFlow, Qwen, Kiro (unlimited) Result: Never stop coding, minimal cost ``` --- ## โšก ื”ืชื—ืœื” ืžื”ื™ืจื” **1. ื”ืชืงืŸ ื‘ืจื—ื‘ื™ ื”ืขื•ืœื:** ```bash npm install -g omniroute omniroute ``` ๐ŸŽ‰ ืœื•ื— ื”ืžื—ื•ื•ื ื™ื ื ืคืชื— ื‘-`http://localhost:20128` | ืคืงื•ื“ื” | ืชื™ืื•ืจ | | ----------------------- | --------------------------------- | | `omniroute` | ื”ืชื—ืœ ืฉืจืช (ื™ืฆื™ืืช ื‘ืจื™ืจืช ืžื—ื“ืœ 20128) | | `omniroute --port 3000` | ื”ืฉืชืžืฉ ื‘ื™ืฆื™ืื” ืžื•ืชืืžืช ืื™ืฉื™ืช | | `omniroute --no-open` | ืืœ ืชืคืชื— ืื•ื˜ื•ืžื˜ื™ืช ืืช ื”ื“ืคื“ืคืŸ | | `omniroute --help` | ื”ืฆื’ ืขื–ืจื” | **2. ื—ื‘ืจ ืกืคืง ื—ื™ื ืžื™:** ืœื•ื— ืžื—ื•ื•ื ื™ื โ† ืกืคืงื™ื โ† ื”ืชื—ื‘ืจ **ืงื•ื“ ืงืœื•ื“** ืื• **ืื ื˜ื™ ื›ื‘ื™ื“ื”** โ† ื”ืชื—ื‘ืจื•ืช OAuth โ† ื‘ื•ืฆืข! **3. ื”ืฉืชืžืฉ ื‘ื›ืœื™ ื”-CLI ืฉืœืš:** ``` Claude Code/Codex/Gemini CLI/OpenClaw/Cursor/Cline Settings: Endpoint: http://localhost:20128/v1 API Key: [copy from dashboard] Model: if/kimi-k2-thinking ``` **ื–ื”ื• ื–ื”!** ื”ืชื—ืœ ืœืงื•ื“ื“ ืขื ื“ื’ืžื™ AI ื‘ื—ื™ื ื. **ืืœื˜ืจื ื˜ื™ื‘ื” - ื”ืคืขืœ ืžื”ืžืงื•ืจ:** ```bash cp .env.example .env npm install PORT=20128 NEXT_PUBLIC_BASE_URL=http://localhost:20128 npm run dev ``` --- ## ๐Ÿณ ื“ื•ืงืจ OmniRoute ื–ืžื™ืŸ ื›ืชืžื•ื ืช Docker ืฆื™ื‘ื•ืจื™ืช ื‘-[Docker Hub](https://hub.docker.com/r/diegosouzapw/omniroute). **ืจื™ืฆื” ืžื”ื™ืจื”:** ```bash docker run -d \ --name omniroute \ --restart unless-stopped \ -p 20128:20128 \ -v omniroute-data:/app/data \ diegosouzapw/omniroute:latest ``` **ืขื ืงื•ื‘ืฅ ืกื‘ื™ื‘ื”:** ```bash # Copy and edit .env first cp .env.example .env docker run -d \ --name omniroute \ --restart unless-stopped \ --env-file .env \ -p 20128:20128 \ -v omniroute-data:/app/data \ diegosouzapw/omniroute:latest ``` **ืฉื™ืžื•ืฉ ื‘-Docker Compose:** ```bash # Base profile (no CLI tools) docker compose --profile base up -d # CLI profile (Claude Code, Codex, OpenClaw built-in) docker compose --profile cli up -d ``` | ืชืžื•ื ื” | ืชื’ | ื’ื•ื“ืœ | ืชื™ืื•ืจ | | ------------------------ | -------- | ------ | ---------------------- | | `diegosouzapw/omniroute` | `latest` | ~250MB | ื”ืžื”ื“ื•ืจื” ื”ื™ืฆื™ื‘ื” ื”ืื—ืจื•ื ื” | | `diegosouzapw/omniroute` | `1.0.3` | ~250MB | ื’ืจืกื” ื ื•ื›ื—ื™ืช | --- ## ๐Ÿ’ฐ ืชืžื—ื•ืจ ื‘ืžื‘ื˜ ื—ื˜ื•ืฃ | ืฉื›ื‘ื” | ืกืคืง | ืขืœื•ืช | ืื™ืคื•ืก ืžื›ืกื” | ื”ื˜ื•ื‘ ื‘ื™ื•ืชืจ ืขื‘ื•ืจ | | --------------- | ---------------- | ----------------------- | ------------------------ | ------------------------ | | **๐Ÿ’ณ ืžื ื•ื™** | ืงืœื•ื“ ืงื•ื“ (ืคืจื•) | 20 ื“ื•ืœืจ ืœื—ื•ื“ืฉ | 5 ืฉืขื•ืช + ืฉื‘ื•ืขื™ | ื›ื‘ืจ ื ืจืฉืžืช | | | ืงื•ื“ืงืก (ืคืœื•ืก/ืคืจื•) | $20-200 ืœื—ื•ื“ืฉ | 5 ืฉืขื•ืช + ืฉื‘ื•ืขื™ | ืžืฉืชืžืฉื™ OpenAI | | | Gemini CLI | **ื—ื™ื ื** | 180K/Mo + 1K/ื™ื•ื | ื›ึผึนืœ ืึถื—ึธื“! | | | GitHub Copilot | $10-19 ืœื—ื•ื“ืฉ | ื—ื•ื“ืฉื™ | ืžืฉืชืžืฉื™ GitHub | | **๐Ÿ”‘ ืžืคืชื— API** | NVIDIA NIM | **ื—ื™ื ื** (1000 ืงืจื“ื™ื˜ื™ื) | ื—ื“ ืคืขืžื™ | ื‘ื“ื™ืงืช ืฉื›ื‘ื•ืช ื—ื™ื ื | | | DeepSeek | ืชืฉืœื•ื ืœืคื™ ืฉื™ืžื•ืฉ | ืื™ืŸ | ื”ืžื—ื™ืจ/ืื™ื›ื•ืช ื”ื˜ื•ื‘ื™ื ื‘ื™ื•ืชืจ | | | ื’ืจื•ืง | ืฉื›ื‘ื” ื—ื™ื ื + ื‘ืชืฉืœื•ื | ืชืขืจื™ืฃ ืžื•ื’ื‘ืœ | ื”ืกืงื” ืžื”ื™ืจื” ื‘ืžื™ื•ื—ื“ | | | xAI (Grok) | ืชืฉืœื•ื ืœืคื™ ืฉื™ืžื•ืฉ | ืื™ืŸ | ื“ื’ืžื™ ื’ืจื•ืง | | | ืžื™ืกื˜ืจืœ | ืฉื›ื‘ื” ื—ื™ื ื + ื‘ืชืฉืœื•ื | ืชืขืจื™ืฃ ืžื•ื’ื‘ืœ | AI ืื™ืจื•ืคืื™ | | | OpenRouter | ืชืฉืœื•ื ืœืคื™ ืฉื™ืžื•ืฉ | ืื™ืŸ | 100+ ื“ื’ืžื™ื | | **๐Ÿ’ฐ ื–ื•ืœ** | GLM-4.7 | $0.6/1 ืžื™ืœื™ื•ืŸ | ื›ืœ ื™ื•ื 10:00 | ื’ื™ื‘ื•ื™ ืชืงืฆื™ื‘ื™ | | | MiniMax M2.1 | $0.2/1 ืžื™ืœื™ื•ืŸ | ื’ืœื’ื•ืœ ืฉืœ 5 ืฉืขื•ืช | ื”ืืคืฉืจื•ืช ื”ื–ื•ืœื” ื‘ื™ื•ืชืจ | | | ืงื™ืžื™ K2 | 9 $ ืœื—ื•ื“ืฉ ื“ื™ืจื” | 10 ืžื™ืœื™ื•ืŸ ืืกื™ืžื•ื ื™ื ืœื—ื•ื“ืฉ | ืขืœื•ืช ืฆืคื•ื™ื” | | **๐Ÿ†“ ื—ื™ื ื** | iFlow | $0 | ืœืœื ื”ื’ื‘ืœื” | 8 ื“ื’ืžื™ื ื—ื™ื ื | | | ืงื•ื•ืŸ | $0 | ืœืœื ื”ื’ื‘ืœื” | 3 ื“ื’ืžื™ื ื—ื™ื ื | | | ืงื™ืจื• | $0 | ืœืœื ื”ื’ื‘ืœื” | ืงืœื•ื“ ื—ื•ืคืฉื™ | **๐Ÿ’ก ื˜ื™ืค ืžืงืฆื•ืขื™:** ื”ืชื—ืœ ืขื Gemini CLI (180K ื—ื™ื ื/ื—ื•ื“ืฉ) + ืฉื™ืœื•ื‘ ืฉืœ iFlow (ืœืœื ื”ื’ื‘ืœื” ื‘ื—ื™ื ื) = ืขืœื•ืช ืฉืœ $0! --- ## ๐ŸŽฏ ืžืงืจื™ ืฉื™ืžื•ืฉ ### ืžืงืจื” 1: "ื™ืฉ ืœื™ ืžื ื•ื™ ืœืงืœื•ื“ ืคืจื•" **ื‘ืขื™ื”:** ืชื•ืงืฃ ื”ืžื›ืกื” ืคื’ ืœืœื ืฉื™ืžื•ืฉ, ืžื’ื‘ืœื•ืช ืชืขืจื™ืฃ ื‘ืžื”ืœืš ืงื™ื“ื•ื“ ื›ื‘ื“ ``` Combo: "maximize-claude" 1. cc/claude-opus-4-6 (use subscription fully) 2. glm/glm-4.7 (cheap backup when quota out) 3. if/kimi-k2-thinking (free emergency fallback) Monthly cost: $20 (subscription) + ~$5 (backup) = $25 total vs. $20 + hitting limits = frustration ``` ### ืžืงืจื” 2: "ืื ื™ ืจื•ืฆื” ืขืœื•ืช ืืคืก" **ื‘ืขื™ื”:** ืœื ื™ื›ื•ืœ ืœื”ืจืฉื•ืช ืœืขืฆืžื• ืžื ื•ื™ื™ื, ืฆืจื™ืš ืงื™ื“ื•ื“ AI ืืžื™ืŸ ``` Combo: "free-forever" 1. gc/gemini-3-flash (180K free/month) 2. if/kimi-k2-thinking (unlimited free) 3. qw/qwen3-coder-plus (unlimited free) Monthly cost: $0 Quality: Production-ready models ``` ### ืžืงืจื” 3: "ืื ื™ ืฆืจื™ืš ืงื™ื“ื•ื“ 24/7, ืœืœื ื”ืคืจืขื•ืช" **ื‘ืขื™ื”:** ืžื•ืขื“ื™ื, ืœื ื™ื›ื•ืœ ืœื”ืจืฉื•ืช ืœืขืฆืžื• ื–ืžืŸ ื”ืฉื‘ืชื” ``` Combo: "always-on" 1. cc/claude-opus-4-6 (best quality) 2. cx/gpt-5.2-codex (second subscription) 3. glm/glm-4.7 (cheap, resets daily) 4. minimax/MiniMax-M2.1 (cheapest, 5h reset) 5. if/kimi-k2-thinking (free unlimited) Result: 5 layers of fallback = zero downtime ``` ### ืžืงืจื” 4: "ืื ื™ ืจื•ืฆื” AI ื‘ื—ื™ื ื ื‘-OpenClaw" **ื‘ืขื™ื”:** ืฆืจื™ืš ืขื•ื–ืจ ื‘ื™ื ื” ืžืœืื›ื•ืชื™ืช ื‘ืืคืœื™ืงืฆื™ื•ืช ื”ื•ื“ืขื•ืช, ื‘ื—ื™ื ื ืœื—ืœื•ื˜ื™ืŸ ``` Combo: "openclaw-free" 1. if/glm-4.7 (unlimited free) 2. if/minimax-m2.1 (unlimited free) 3. if/kimi-k2-thinking (unlimited free) Monthly cost: $0 Access via: WhatsApp, Telegram, Slack, Discord, iMessage, Signal... ``` --- ## ๐Ÿ’ก ืชื›ื•ื ื•ืช ืขื™ืงืจื™ื•ืช ### ๐Ÿง  ื ื™ืชื•ื‘ ืœื™ื‘ื” ื•ืžื•ื“ื™ืขื™ืŸ | ืชื›ื•ื ื” | ืžื” ื–ื” ืขื•ืฉื” | | ---------------------------- | -------------------------------------------------------------------------------- | | ๐ŸŽฏ **Smart 4-tier Fallback** | ืžืกืœื•ืœ ืื•ื˜ื•ืžื˜ื™: ืžื ื•ื™ โ†’ ืžืคืชื— API โ†’ ื–ื•ืœ โ†’ ื—ื™ื ื | | ๐Ÿ“Š **ืžืขืงื‘ ืžื›ืกื•ืช ื‘ื–ืžืŸ ืืžืช** | ืกืคื™ืจืช ืืกื™ืžื•ื ื™ื ื—ื™ื” + ืื™ืคื•ืก ืกืคื™ืจื” ืœืื—ื•ืจ ืœื›ืœ ืกืคืง | | ๐Ÿ”„ **ืชืจื’ื•ื ืคื•ืจืžื˜** | OpenAI โ†” ืงืœื•ื“ โ†” ืชืื•ืžื™ื โ†” ืกืžืŸ โ†” Kiro ื—ืœืงื” + ื—ื™ื˜ื•ื™ ืชื’ื•ื‘ื” | | ๐Ÿ‘ฅ **ืชืžื™ื›ื” ื‘ืจื™ื‘ื•ื™ ื—ืฉื‘ื•ื ื•ืช** | ืžืกืคืจ ื—ืฉื‘ื•ื ื•ืช ืœื›ืœ ืกืคืง ืขื ื‘ื—ื™ืจื” ื—ื›ืžื” | | ๐Ÿ”„ **ืจืขื ื•ืŸ ืืกื™ืžื•ืŸ ืื•ื˜ื•ืžื˜ื™** | ืืกื™ืžื•ื ื™ OAuth ืžืชืจืขื ื ื™ื ืื•ื˜ื•ืžื˜ื™ืช ืขื ื ื™ืกื™ื•ืŸ ื—ื•ื–ืจ | | ๐ŸŽจ **ืฉื™ืœื•ื‘ื™ื ืžื•ืชืืžื™ื ืื™ืฉื™ืช** | 6 ืืกื˜ืจื˜ื’ื™ื•ืช: ืžื™ืœื•ื™ ืจืืฉื•ืŸ, ืขื’ื•ืœ ืจื•ื‘ื™ืŸ, p2c, ืืงืจืื™, ืคื—ื•ืช ื‘ืฉื™ืžื•ืฉ, ืื•ืคื˜ื™ืžื™ื–ืฆื™ื” ืœืขืœื•ืช | | ๐Ÿงฉ **ื“ื’ืžื™ื ืžื•ืชืืžื™ื ืื™ืฉื™ืช** | ื”ื•ืกืฃ ื›ืœ ืžื–ื”ื” ื“ื’ื ืœื›ืœ ืกืคืง | | ๐ŸŒ **ื ืชื‘ ืชื•ื•ื™ื ื›ืœืœื™ื™ื** โ€‹โ€‹ | ื ืชื‘ ื“ืคื•ืกื™ `provider/*` ืœื›ืœ ืกืคืง ื‘ืื•ืคืŸ ื“ื™ื ืžื™ | | ๐Ÿง  **ืชืงืฆื™ื‘ ื—ืฉื™ื‘ื”** | ืžืฆื‘ื™ ืžืขื‘ืจ, ืื•ื˜ื•ืžื˜ื™, ืžื•ืชืืžื™ื ืื™ืฉื™ืช ื•ื”ืชืืžื” ืœืžื•ื“ืœื™ื ืฉืœ ื—ืฉื™ื‘ื” | | ๐Ÿ’ฌ **ื”ื–ืจืงืช ืžืขืจื›ืช ืžื™ื™ื“ื™ืช** | ื”ื•ื“ืขืช ืžืขืจื›ืช ื’ืœื•ื‘ืœื™ืช ื”ื•ื—ืœื” ื‘ื›ืœ ื”ื‘ืงืฉื•ืช | | ๐Ÿ“„ **Responses API** | ืชืžื™ื›ื” ืžืœืื” ืฉืœ OpenAI Responses API (`/v1/responses`) ืขื‘ื•ืจ Codex | ### ๐ŸŽต ืžืžืฉืงื™ API ืจื‘-ืžื•ื“ืืœื™ื™ื | ืชื›ื•ื ื” | ืžื” ื–ื” ืขื•ืฉื” | | ------------------- | --------------------------------------------- | | ๐Ÿ–ผ๏ธ **ื™ืฆื™ืจืช ืชืžื•ื ื•ืช** | `/v1/images/generations` โ€” 4 ืกืคืงื™ื, 9+ ื“ื’ืžื™ื | | ๐Ÿ“ **ื”ื˜ื‘ืขื•ืช** | `/v1/embeddings` โ€” 6 ืกืคืงื™ื, 9+ ื“ื’ืžื™ื | | ๐ŸŽค **ืชืžืœื•ืœ ืื•ื“ื™ื•** | `/v1/audio/transcriptions` โ€” ืชื•ืื ืœื—ื™ืฉื” | | ๐Ÿ”Š **ื˜ืงืกื˜ ืœื“ื™ื‘ื•ืจ** | `/v1/audio/speech` โ€” ืกื™ื ืชื–ืช ืื•ื“ื™ื• ืžืจื•ื‘ื” ืกืคืงื™ื | | ๐Ÿ›ก๏ธ **ืžื ื—ื™ื** | `/v1/moderations` โ€” ื‘ื“ื™ืงื•ืช ื‘ื˜ื™ื—ื•ืช ืชื•ื›ืŸ | | ๐Ÿ”€ **ื“ื™ืจื•ื’ ืžื—ื“ืฉ** | `/v1/rerank` โ€” ื“ื™ืจื•ื’ ืžื—ื“ืฉ ืฉืœ ืจืœื•ื•ื ื˜ื™ื•ืช ื”ืžืกืžืš | ### ๐Ÿ›ก๏ธ ื—ื•ืกืŸ ื•ื‘ื™ื˜ื—ื•ืŸ | ืชื›ื•ื ื” | ืžื” ื–ื” ืขื•ืฉื” | | ------------------------------------ | -------------------------------------------------------------- | | ๐Ÿ”Œ **ืžืคืกืง ืžืขื’ืœื™ื** | ืคืชื™ื—ื”/ืกื’ื™ืจื” ืื•ื˜ื•ืžื˜ื™ืช ืœื›ืœ ืกืคืง ืขื ืขืจื›ื™ ืกืฃ ื”ื ื™ืชื ื™ื ืœื”ื’ื“ืจื” | | ๐Ÿ›ก๏ธ **ืขื“ืจ ื ื’ื“ ืจืขืžื™ื** | Mutex + ืžื’ื‘ืœืช ืงืฆื‘ ืกืžืคื•ืจ ืขื‘ื•ืจ ืกืคืงื™ ืžืคืชื— API | | ๐Ÿง  **ืžื˜ืžื•ืŸ ืกืžื ื˜ื™** | ืžื˜ืžื•ืŸ ื“ื•-ืฉื›ื‘ืชื™ (ื—ืชื™ืžื” + ืกืžื ื˜ื™) ืžืคื—ื™ืช ืืช ื”ืขืœื•ืช ื•ื”ืฉื”ื™ื™ื” | | โšก **ื‘ืงืฉ ืื™ืžืคื•ื˜ื ืฆื™ื”** | ื—ืœื•ืŸ ื‘ื™ื˜ื•ืœ 5s ืขื‘ื•ืจ ื‘ืงืฉื•ืช ื›ืคื•ืœื•ืช | | ๐Ÿ”’ **ื–ื™ื•ืฃ ื˜ื‘ื™ืขื•ืช ืืฆื‘ืข TLS** | ืขื•ืงืฃ ื–ื™ื”ื•ื™ ื‘ื•ื˜ ืžื‘ื•ืกืก TLS ื‘ืืžืฆืขื•ืช wreq-js | | ๐ŸŒ **ืกื™ื ื•ืŸ IP** | ืจืฉื™ืžืช ื”ืจืฉืื•ืช/ืจืฉื™ืžืช ื—ืกื™ืžื•ืช ืขื‘ื•ืจ ื‘ืงืจืช ื’ื™ืฉื” ืœ-API | | ๐Ÿ“Š **ืžื’ื‘ืœื•ืช ืชืขืจื™ืคื™ื ื”ื ื™ืชื ื•ืช ืœืขืจื™ื›ื”** | RPM ื ื™ืชืŸ ืœื”ื’ื“ืจื”, ืคืขืจ ืžื™ื ื™ืžืœื™ ื•ืžืงืกื™ืžื•ื ื‘ืžืงื‘ื™ืœ ื‘ืจืžืช ื”ืžืขืจื›ืช | | ๐Ÿ›ก **ื”ื’ื ืช ื ืงื•ื“ืช ืงืฆื” API** | Auth gating + ื—ืกื™ืžืช ืกืคืง ืขื‘ื•ืจ ื ืงื•ื“ืช ื”ืงืฆื” `/models` | | ๐Ÿ”’ **ื ืจืื•ืช ืคืจื•ืงืกื™** | ืชื’ื™ื ืžืงื•ื“ื“ื™ื ื‘ืฆื‘ืข: ๐ŸŸข ื’ืœื•ื‘ืœื™, ๐ŸŸก ืกืคืง, ๐Ÿ”ต ืœื›ืœ ื—ื™ื‘ื•ืจ ืขื ืชืฆื•ื’ืช IP | | ๐ŸŒ **ืชืฆื•ืจืช ืคืจื•ืงืกื™ ื‘ืฉืœื•ืฉ ืจืžื•ืช** | ื”ื’ื“ืจ ืคืจื•ืงืกื™ ื‘ืจืžื” ื’ืœื•ื‘ืœื™ืช, ืœื›ืœ ืกืคืง ืื• ืœื›ืœ ื—ื™ื‘ื•ืจ | ### ๐Ÿ“Š ื™ื›ื•ืœืช ืชืฆืคื™ืช ื•ื ื™ืชื•ื— | ืชื›ื•ื ื” | ืžื” ื–ื” ืขื•ืฉื” | | ------------------------------- | ---------------------------------------------------------------------- | | ๐Ÿ“ **ื‘ืงืฉ ืจื™ืฉื•ื** | ืžืฆื‘ ื ื™ืคื•ื™ ื‘ืื’ื™ื ืขื ื™ื•ืžื ื™ ื‘ืงืฉื•ืช/ืชื’ื•ื‘ื•ืช ืžืœืื™ื | | ๐Ÿ’พ **ื™ื•ืžื ื™ ืคืจื•ืงืกื™ ืฉืœ SQLite** | ื™ื•ืžื ื™ ืคืจื•ืงืกื™ ืžืชืžืฉื›ื™ื ืฉื•ืจื“ื™ื ืืชื—ื•ืœ ืžื—ื“ืฉ ืฉืœ ื”ืฉืจืช | | ๐Ÿ“Š **ืœื•ื— ื”ืžื—ื•ื•ื ื™ื ืฉืœ ืื ืœื™ื˜ื™ืงืก** | ืžื•ืคืขืœ ืžื—ื“ืฉ ื‘-Recharts: ื›ืจื˜ื™ืกื™ ืกื˜ื˜ื™ืกื˜ื™ืงื”, ื˜ื‘ืœืช ืฉื™ืžื•ืฉ ื‘ืžื•ื“ืœ, ื˜ื‘ืœืช ืกืคืงื™ื | | ๐Ÿ“ˆ **ืžืขืงื‘ ื”ืชืงื“ืžื•ืช** | ื”ืฆื˜ืจืคื•ืช ืœืื™ืจื•ืขื™ ื”ืชืงื“ืžื•ืช SSE ืœืกื˜ืจื™ืžื™ื ื’ | | ๐Ÿงช **LM Evaluations** | ื‘ื“ื™ืงืช ืกื˜ ื–ื”ื‘ ืขื 4 ืืกื˜ืจื˜ื’ื™ื•ืช ื”ืชืืžื” | | ๐Ÿ” **ื‘ืงืฉ ื˜ืœืžื˜ืจื™ื”** | ืฆื‘ื™ืจืช ื–ืžืŸ ืื—ื–ื•ืจ p50/p95/p99 + ืžืขืงื‘ ืื—ืจ X-Request-Id | | ๐Ÿ“‹ **ืœื•ื— ืžื—ื•ื•ื ื™ื ื™ื•ืžื ื™** | ืขืžื•ื“ ืžืื•ื—ื“ ื‘ืŸ 4 ืœืฉื•ื ื™ื•ืช: ื™ื•ืžื ื™ ื‘ืงืฉื•ืช, ื™ื•ืžื ื™ ืคืจื•ืงืกื™, ื™ื•ืžื ื™ ื‘ื™ืงื•ืจืช, ืžืกื•ืฃ | | ๐Ÿ–ฅ๏ธ **ืžืฆื™ื’ ื™ื•ืžืŸ ืžืกื•ืฃ** | ืžืฆื™ื’ ื‘ืกื’ื ื•ืŸ ื˜ืจืžื™ื ืœ ื‘ื–ืžืŸ ืืžืช ืขื ืžืกื ืŸ ืจืžื•ืช, ื—ื™ืคื•ืฉ, ื’ืœื™ืœื” ืื•ื˜ื•ืžื˜ื™ืช | | ๐Ÿ“‘ **ืจื™ืฉื•ื ืžื‘ื•ืกืก ืงื‘ืฆื™ื** | ืžื™ื™ืจื˜ ืžืกื•ืฃ ืœื•ื›ื“ ืืช ื›ืœ ื”ืคืœื˜ ืœืงื•ื‘ืฅ ื™ื•ืžืŸ JSON ืขื ืกื™ื‘ื•ื‘ | | ๐Ÿฅ **ืœื•ื— ืžื—ื•ื•ื ื™ื ืœื‘ืจื™ืื•ืช** | ื–ืžืŸ ืคืขื™ืœื•ืช ืžืขืจื›ืช, ืžืฆื‘ื™ ืžืคืกืง ื–ืจื, ื ืขื™ืœื•ืช, ืกื˜ื˜ื™ืกื˜ื™ืงื•ืช ืžื˜ืžื•ืŸ | | ๐Ÿ’ฐ **ืžืขืงื‘ ืขืœื•ื™ื•ืช** | ื ื™ื”ื•ืœ ืชืงืฆื™ื‘ + ืชืฆื•ืจืช ืชืžื—ื•ืจ ืœืคื™ ื“ื’ื | ### โ˜๏ธ ืคืจื™ืกื” ื•ืกื ื›ืจื•ืŸ | ืชื›ื•ื ื” | ืžื” ื–ื” ืขื•ืฉื” | | ---------------------------------- | --------------------------------------------------------------------- | | ๐Ÿ’พ **ืกื ื›ืจื•ืŸ ืขื ืŸ** | ืกื ื›ืจื•ืŸ ืชืฆื•ืจื” ื‘ื™ืŸ ืžื›ืฉื™ืจื™ื ื‘ืืžืฆืขื•ืช Cloudflare Workers | | ๐ŸŒ **ืคืจื•ืก ื‘ื›ืœ ืžืงื•ื** | Localhost, VPS, Docker, Cloudflare Workers | | ๐Ÿ”‘ **ื ื™ื”ื•ืœ ืžืคืชื—ื•ืช API** | ืฆื•ืจ, ืกื•ื‘ื‘ ื•ื”ื™ืงืฃ ืžืคืชื—ื•ืช API ืœื›ืœ ืกืคืง | | ๐Ÿง™ **ืืฉืฃ ื”ืขืœื™ื™ื” ืœืžื˜ื•ืก** | ื”ื’ื“ืจื” ืžื•ื“ืจื›ืช ื‘ืช 4 ืฉืœื‘ื™ื ืœืžืฉืชืžืฉื™ื ื—ื“ืฉื™ื | | ๐Ÿ”ง **ืœื•ื— ื”ืžื—ื•ื•ื ื™ื ืฉืœ ื›ืœื™ CLI** | ื”ื’ื“ืจ ื‘ืœื—ื™ืฆื” ืื—ืช ืืช Claude, Codex, Cline, OpenClaw, Kilo, Antigravity | | ๐Ÿ”„ **ื’ื™ื‘ื•ื™ื™ื ืฉืœ DB** | ื’ื™ื‘ื•ื™, ืฉื—ื–ื•ืจ, ื™ื™ืฆื•ื ื•ื™ื™ื‘ื•ื โ€‹โ€‹ืื•ื˜ื•ืžื˜ื™ ืขื‘ื•ืจ ื›ืœ ื”ื”ื’ื“ืจื•ืช | | ๐ŸŒ **ื‘ื™ื ืœืื•ืžื™ื•ืช** | i18n ืžืœื ืขื next-intl โ€” ืชืžื™ื›ื” ื‘ืื ื’ืœื™ืช + ืคื•ืจื˜ื•ื’ื–ื™ืช (ื‘ืจื–ื™ืœ) | | ๐ŸŒ **ื‘ื•ืจืจ ืฉืคื”** | ืกืžืœ ื’ืœื•ื‘ื•ืก ื‘ื›ื•ืชืจืช ืœืžืขื‘ืจ ืฉืคื” ื‘ื–ืžืŸ ืืžืช (๐Ÿ‡บ๐Ÿ‡ธ/๐Ÿ‡ง๐Ÿ‡ท) | | ๐Ÿ“‚ **ืกืคืจื™ื™ืช ื ืชื•ื ื™ื ืžื•ืชืืžื™ื ืื™ืฉื™ืช** | `DATA_DIR` env var ื›ื“ื™ ืœืขืงื•ืฃ ืืช ื‘ืจื™ืจืช ื”ืžื—ื“ืœ `~/.omniroute` ื ืชื™ื‘ ืื—ืกื•ืŸ |
๐Ÿ“– ืคืจื˜ื™ ืชื›ื•ื ื” ### ๐ŸŽฏ 4 ืฉื›ื‘ื•ืช ืกืชื™ืจื” ื—ื›ืžื” ืฆื•ืจ ืฉื™ืœื•ื‘ื™ื ืขื ื ืคื™ืœื” ืื•ื˜ื•ืžื˜ื™ืช: ``` Combo: "my-coding-stack" 1. cc/claude-opus-4-6 (your subscription) 2. nvidia/llama-3.3-70b (free NVIDIA API) 3. glm/glm-4.7 (cheap backup, $0.6/1M) 4. if/kimi-k2-thinking (free fallback) โ†’ Auto switches when quota runs out or errors occur ``` ### ๐Ÿ“Š ืžืขืงื‘ ืžื›ืกื•ืช ื‘ื–ืžืŸ ืืžืช - ืฆืจื™ื›ืช ืืกื™ืžื•ื ื™ื ืœื›ืœ ืกืคืง - ืืคืก ืกืคื™ืจื” ืœืื—ื•ืจ (5 ืฉืขื•ืช, ื™ื•ืžื™, ืฉื‘ื•ืขื™) - ื”ืขืจื›ืช ืขืœื•ื™ื•ืช ืขื‘ื•ืจ ืฉื›ื‘ื•ืช ื‘ืชืฉืœื•ื - ื“ื•ื—ื•ืช ื”ื•ืฆืื•ืช ื—ื•ื“ืฉื™ื™ื ### ๐Ÿ”„ ืชืจื’ื•ื ืคื•ืจืžื˜ ืชืจื’ื•ื ื—ืœืง ื‘ื™ืŸ ืคื•ืจืžื˜ื™ื: - **OpenAI** โ†” **ืงืœื•ื“** โ†” **ืชืื•ืžื™ื** โ†” **ืชื’ื•ื‘ื•ืช OpenAI** - ื›ืœื™ ื”-CLI ืฉืœืš ืฉื•ืœื— ืคื•ืจืžื˜ OpenAI โ†’ OmniRoute ืžืชืจื’ื โ†’ ื”ืกืคืง ืžืงื‘ืœ ืคื•ืจืžื˜ ืžืงื•ืจื™ - ืขื•ื‘ื“ ืขื ื›ืœ ื›ืœื™ ื”ืชื•ืžืš ื‘ื ืงื•ื“ื•ืช ืงืฆื” ืžื•ืชืืžื•ืช ืื™ืฉื™ืช ืฉืœ OpenAI - **ื—ื™ื˜ื•ื™ ืชื’ื•ื‘ื”** - ืžืกื™ืจ ืฉื“ื•ืช ืœื ืกื˜ื ื“ืจื˜ื™ื™ื ืœืฆื•ืจืš ืชืื™ืžื•ืช ืงืคื“ื ื™ืช ืฉืœ OpenAI SDK - **ื ื•ืจืžืœื™ื–ืฆื™ื” ืฉืœ ืชืคืงื™ื“ื™ื** โ€” `developer` โ†’ `system` ืขื‘ื•ืจ ืœื-OpenAI; `system` โ†’ `user` ืขื‘ื•ืจ ื“ื’ืžื™ GLM/ERNIE - **ื—ื™ืœื•ืฅ ืชื’ ื—ืฉื™ื‘ื”** โ€” `` ื‘ืœื•ืงื™ื โ†’ `reasoning_content` ืœืžื•ื“ืœื™ื ื—ื•ืฉื‘ื™ื - **ืคืœื˜ ืžื•ื‘ื ื”** โ€” `json_schema` โ†’ `responseMimeType`/`responseSchema` ืฉืœ Gemini ### ๐Ÿ‘ฅ ืชืžื™ื›ื” ื‘ืจื™ื‘ื•ื™ ื—ืฉื‘ื•ื ื•ืช - ื”ื•ืกืฃ ืžืกืคืจ ื—ืฉื‘ื•ื ื•ืช ืœื›ืœ ืกืคืง - ื ื™ืชื•ื‘ ืกื‘ื‘ ืื•ื˜ื•ืžื˜ื™ ืื• ืžื‘ื•ืกืก ืขื“ื™ืคื•ืช - ื—ื–ืจื” ืœื—ืฉื‘ื•ืŸ ื”ื‘ื ื›ืืฉืจ ืื—ื“ ืžื’ื™ืข ืœืžื›ืกื” ### ๐Ÿ”„ ืจืขื ื•ืŸ ืืกื™ืžื•ืŸ ืื•ื˜ื•ืžื˜ื™ - ืืกื™ืžื•ื ื™ OAuth ืžืชืจืขื ื ื™ื ืื•ื˜ื•ืžื˜ื™ืช ืœืคื ื™ ืคืงื™ืขืช ื”ืชื•ืงืฃ - ืื™ืŸ ืฆื•ืจืš ื‘ืื™ืžื•ืช ืžื—ื“ืฉ ื™ื“ื ื™ - ื—ื•ื•ื™ื” ื—ืœืงื” ื‘ื›ืœ ื”ืกืคืงื™ื ### ๐ŸŽจ ืฉื™ืœื•ื‘ื™ื ืžื•ืชืืžื™ื ืื™ืฉื™ืช - ืฆื•ืจ ืฉื™ืœื•ื‘ื™ ื“ื’ืžื™ื ืœืœื ื”ื’ื‘ืœื” - 6 ืืกื˜ืจื˜ื’ื™ื•ืช: ืžื™ืœื•ื™ ืจืืฉื•ืŸ, ืขื’ื•ืœ, ื›ื•ื— ืžืฉืชื™ ื‘ื—ื™ืจื•ืช, ืืงืจืื™, ืคื—ื•ืช ื‘ืฉื™ืžื•ืฉ, ืื•ืคื˜ื™ืžื™ื–ืฆื™ื™ืช ืขืœื•ืช - ืฉืชืฃ ืฉื™ืœื•ื‘ื™ื ื‘ื™ืŸ ืžื›ืฉื™ืจื™ื ืขื Cloud Sync ### ๐Ÿฅ ืœื•ื— ืžื—ื•ื•ื ื™ื ืœื‘ืจื™ืื•ืช - ืžืฆื‘ ืžืขืจื›ืช (ื–ืžืŸ ืคืขื™ืœื•ืช, ื’ืจืกื”, ืฉื™ืžื•ืฉ ื‘ื–ื™ื›ืจื•ืŸ) - ืžืฆื‘ื™ ืžืคืกืง ืœื›ืœ ืกืคืง (ืกื’ื•ืจ/ืคืชื•ื—/ื—ืฆื™ ืคืชื•ื—) - ืžืฆื‘ ืžื’ื‘ืœืช ืชืขืจื™ืฃ ื•ื ืขื™ืœื” ืืงื˜ื™ื‘ื™ืช - ืกื˜ื˜ื™ืกื˜ื™ืงืช ืžื˜ืžื•ืŸ ื—ืชื™ืžื” - ื˜ืœืžื˜ืจื™ื™ืช ืื—ื–ื•ืจ (p50/p95/p99) + ืžื˜ืžื•ืŸ ืคืงื•ื“ื•ืช - ืืคืก ืžืฆื‘ ื‘ืจื™ืื•ืชื™ ื‘ืœื—ื™ืฆื” ืื—ืช ### ๐Ÿ”ง ืžื’ืจืฉ ืžืฉื—ืงื™ื ืœืžืชืจื’ืžื™ื OmniRoute ื›ื•ืœืœ ืžื’ืจืฉ ืžืฉื—ืงื™ ืžืชืจื’ืžื™ื ืžื•ื‘ื ื” ืจื‘ ืขื•ืฆืžื” ืขื **4 ืžืฆื‘ื™ื** ืœื ื™ืคื•ื™ ื‘ืื’ื™ื, ื‘ื“ื™ืงื” ื•ื ื™ื˜ื•ืจ ืชืจื’ื•ืžื™ API: | ืžืฆื‘ | ืชื™ืื•ืจ | | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **๐Ÿ’ป ืžื’ืจืฉ ืžืฉื—ืงื™ื** | ืชืจื’ื•ื ืคื•ืจืžื˜ ื™ืฉื™ืจ - ื”ื“ื‘ืง ื›ืœ ื’ื•ืฃ ื‘ืงืฉืช API ื•ืจืื” ื‘ืื•ืคืŸ ืžื™ื™ื“ื™ ื›ื™ืฆื“ OmniRoute ืžืชืจื’ื ืื•ืชื• ื‘ื™ืŸ ืคื•ืจืžื˜ื™ื ืฉืœ ืกืคืงื™ื (OpenAI โ†” Claude โ†” Gemini โ†” Responses API). ื›ื•ืœืœ ืชื‘ื ื™ื•ืช ืœื“ื•ื’ืžื” ื•ื–ื™ื”ื•ื™ ืื•ื˜ื•ืžื˜ื™ ืฉืœ ืคื•ืจืžื˜ื™ื. | | **๐Ÿ’ฌ ื‘ื•ื“ืง ืฆ'ืื˜** | ืฉืœื— ื‘ืงืฉื•ืช ืฆ'ืื˜ ืืžื™ืชื™ื•ืช ื“ืจืš OmniRoute ื•ืจืื” ืืช ื”ืžืกืœื•ืœ ื”ืžืœื ื”ืœื•ืš ื•ืฉื•ื‘: ื”ืงืœื˜ ืฉืœืš, ื”ื‘ืงืฉื” ื”ืžืชื•ืจื’ืžืช, ืชื’ื•ื‘ืช ื”ืกืคืง ื•ื”ืชื’ื•ื‘ื” ื”ืžืชื•ืจื’ืžืช ื—ื–ืจื”. ืœื ื™ืกื•ืœื ื‘ืคื– ืขื‘ื•ืจ ืื™ืžื•ืช ื ื™ืชื•ื‘ ืžืฉื•ืœื‘. | | **๐Ÿงช ืกืคืกืœ ืžื‘ื—ืŸ** | ืžืฆื‘ ื‘ื“ื™ืงืช ืืฆื•ื•ื” - ื”ื’ื“ื™ืจื• ืžืงืจื™ ื‘ื“ื™ืงื” ืžืจื•ื‘ื™ื ืขื ืชืฉื•ืžื•ืช ื•ืชืคื•ืงื•ืช ืฆืคื•ื™ื•ืช ืฉื•ื ื•ืช, ื”ืคืขืœ ืืช ื›ื•ืœื ื‘ื‘ืช ืื—ืช ื•ื”ืฉื•ื•ื” ืชื•ืฆืื•ืช ื‘ื™ืŸ ืกืคืงื™ื ื•ื“ื’ืžื™ื. | | **๐Ÿ“ฑ ืฆื’ ื—ื™** | ื ื™ื˜ื•ืจ ื‘ืงืฉื•ืช ื‘ื–ืžืŸ ืืžืช - ืฆืคื” ื‘ื‘ืงืฉื•ืช ื ื›ื ืกื•ืช ื›ืฉื”ืŸ ื–ื•ืจืžื•ืช ื“ืจืš OmniRoute, ืจืื” ืชืจื’ื•ืžื™ ืคื•ืจืžื˜ื™ื ื”ืžืชืจื—ืฉื™ื ื‘ืฉื™ื“ื•ืจ ื—ื™ ื•ื–ื™ื”ื•ื™ ื‘ืขื™ื•ืช ื‘ืื•ืคืŸ ืžื™ื™ื“ื™. | **ื’ื™ืฉื”:** ืœื•ื— ืžื—ื•ื•ื ื™ื โ† ืžืชืจื’ื (ืกืจื’ืœ ืฆื“) ### ๐Ÿ’พ ืกื ื›ืจื•ืŸ ืขื ืŸ - ืกื ื›ืจื•ืŸ ืกืคืงื™ื, ืฉื™ืœื•ื‘ื™ื ื•ื”ื’ื“ืจื•ืช ื‘ื™ืŸ ืžื›ืฉื™ืจื™ื - ืกื ื›ืจื•ืŸ ืจืงืข ืื•ื˜ื•ืžื˜ื™ - ืื—ืกื•ืŸ ืžื•ืฆืคืŸ ืžืื•ื‘ื˜ื—
--- ## ๐Ÿ“– ืžื“ืจื™ืš ื”ืชืงื ื”
๐Ÿ’ณ ืกืคืงื™ ืžื ื•ื™ื™ื ### ืงื•ื“ ืงืœื•ื“ (ืคืจื•/ืžืงืก) ```bash Dashboard โ†’ Providers โ†’ Connect Claude Code โ†’ OAuth login โ†’ Auto token refresh โ†’ 5-hour + weekly quota tracking Models: cc/claude-opus-4-6 cc/claude-sonnet-4-5-20250929 cc/claude-haiku-4-5-20251001 ``` **ื˜ื™ืค ืžืงืฆื•ืขืŸ:** ื”ืฉืชืžืฉ ื‘-Opus ืœืžืฉื™ืžื•ืช ืžื•ืจื›ื‘ื•ืช, ื‘ืกื•ื ื˜ ืœืžื”ื™ืจื•ืช. OmniRoute ืขื•ืงื‘ ืื—ืจ ืžื›ืกื” ืœื›ืœ ื“ื’ื! ### OpenAI Codex (ืคืœื•ืก/ืคืจื•) ```bash Dashboard โ†’ Providers โ†’ Connect Codex โ†’ OAuth login (port 1455) โ†’ 5-hour + weekly reset Models: cx/gpt-5.2-codex cx/gpt-5.1-codex-max ``` ### Gemini CLI (180K ื‘ื—ื™ื ื ืœื—ื•ื“ืฉ!) ```bash Dashboard โ†’ Providers โ†’ Connect Gemini CLI โ†’ Google OAuth โ†’ 180K completions/month + 1K/day Models: gc/gemini-3-flash-preview gc/gemini-2.5-pro ``` **ื”ืขืจืš ื”ื˜ื•ื‘ ื‘ื™ื•ืชืจ:** ืฉื›ื‘ืช ื—ื™ื ื ืขื ืงื™ืช! ื”ืฉืชืžืฉ ื‘ื–ื” ืœืคื ื™ ืฉื›ื‘ื•ืช ื‘ืชืฉืœื•ื. ### GitHub Copilot ```bash Dashboard โ†’ Providers โ†’ Connect GitHub โ†’ OAuth via GitHub โ†’ Monthly reset (1st of month) Models: gh/gpt-5 gh/claude-4.5-sonnet gh/gemini-3-pro ```
๐Ÿ”‘ ืกืคืงื™ ืžืคืชื— API ### NVIDIA NIM (1000 ืงืจื“ื™ื˜ื™ื ื‘ื—ื™ื ื!) 1. ื”ื™ืจืฉื: [build.nvidia.com](https://build.nvidia.com) 2. ืงื‘ืœ ืžืคืชื— API ื‘ื—ื™ื ื (ื›ื•ืœืœ 1000 ืงืจื“ื™ื˜ื™ื ืœื”ืกืงื”) 3. ืœื•ื— ืžื—ื•ื•ื ื™ื โ† ื”ื•ืกืฃ ืกืคืง โ† NVIDIA NIM: - ืžืคืชื— API: `nvapi-your-key` **ื“ื’ืžื™ื:** `nvidia/llama-3.3-70b-instruct`, `nvidia/mistral-7b-instruct` ื•ืขื•ื“ 50+ **ื˜ื™ืค ืžืงืฆื•ืขื™:** API ืชื•ืื OpenAI - ืขื•ื‘ื“ ื‘ืฆื•ืจื” ื—ืœืงื” ืขื ืชืจื’ื•ื ื”ืคื•ืจืžื˜ ืฉืœ OmniRoute! ### DeepSeek 1. ื”ื™ืจืฉื: [platform.deepseek.com](https://platform.deepseek.com) 2. ืงื‘ืœ ืžืคืชื— API 3. ืœื•ื— ืžื—ื•ื•ื ื™ื โ† ื”ื•ืกืฃ ืกืคืง โ† DeepSeek **ื“ื’ืžื™ื:** `deepseek/deepseek-chat`, `deepseek/deepseek-coder` ### Groq (ืจืžื” ื—ื™ื ื ื–ืžื™ื ื”!) 1. ื”ื™ืจืฉื: [console.groq.com](https://console.groq.com) 2. ืงื‘ืœ ืžืคืชื— API (ื›ืœื•ืœ ืฉื›ื‘ืช ื—ื™ื ื) 3. ืœื•ื— ืžื—ื•ื•ื ื™ื โ† ื”ื•ืกืฃ ืกืคืง โ† Groq **ื“ื’ืžื™ื:** `groq/llama-3.3-70b`, `groq/mixtral-8x7b` **ื˜ื™ืค ืžืงืฆื•ืขื™:** ื”ืกืงื” ืžื”ื™ืจื” ื‘ืžื™ื•ื—ื“ - ื”ื˜ื•ื‘ ื‘ื™ื•ืชืจ ืœืงื™ื“ื•ื“ ื‘ื–ืžืŸ ืืžืช! ### OpenRouter (100+ ื“ื’ืžื™ื) 1. ื”ื™ืจืฉื: [openrouter.ai](https://openrouter.ai) 2. ืงื‘ืœ ืžืคืชื— API 3. ืœื•ื— ืžื—ื•ื•ื ื™ื โ† ื”ื•ืกืฃ ืกืคืง โ† OpenRouter **ื“ื’ืžื™ื:** ื’ื™ืฉื” ืœ-100+ ื“ื’ืžื™ื ืžื›ืœ ื”ืกืคืงื™ื ื”ื’ื“ื•ืœื™ื ื‘ืืžืฆืขื•ืช ืžืคืชื— API ื™ื—ื™ื“.
๐Ÿ’ฐ ืกืคืงื™ื ื–ื•ืœื™ื (ื’ื™ื‘ื•ื™) ### GLM-4.7 (ืื™ืคื•ืก ื™ื•ืžื™, $0.6/1 ืžื™ืœื™ื•ืŸ) 1. ื”ื™ืจืฉื: [Zhipu AI](https://open.bigmodel.cn/) 2. ืงื‘ืœ ืžืคืชื— API ืž-Coding Plan 3. ืœื•ื— ืžื—ื•ื•ื ื™ื โ† ื”ื•ืกืฃ ืžืคืชื— API: - ืกืคืง: `glm` - ืžืคืชื— API: `your-key` **ื”ืฉืชืžืฉ:** `glm/glm-4.7` **ื˜ื™ืค ืœืžืงืฆื•ืขื ื™ื:** ืชื•ื›ื ื™ืช ืงื™ื“ื•ื“ ืžืฆื™ืขื” ืžื›ืกื” ืฉืœ 3ร— ื‘ืขืœื•ืช ืฉืœ 1/7! ืื™ืคื•ืก ื›ืœ ื™ื•ื 10:00 ื‘ื‘ื•ืงืจ. ### MiniMax M2.1 (ืื™ืคื•ืก ืฉืœ 5 ืฉืขื•ืช, $0.20/1 ืžื™ืœื™ื•ืŸ ื“ื•ืœืจ) 1. ื”ื™ืจืฉื: [MiniMax](https://www.minimax.io/) 2. ืงื‘ืœ ืžืคืชื— API 3. ืœื•ื— ืžื—ื•ื•ื ื™ื โ† ื”ื•ืกืฃ ืžืคืชื— API **ื”ืฉืชืžืฉ:** `minimax/MiniMax-M2.1` **ื˜ื™ืค ืžืงืฆื•ืขื™:** ื”ืืคืฉืจื•ืช ื”ื–ื•ืœื” ื‘ื™ื•ืชืจ ืœื”ืงืฉืจ ืืจื•ืš (1 ืžื™ืœื™ื•ืŸ ืืกื™ืžื•ื ื™ื)! ### Kimi K2 (ื“ื™ืจื” ืฉืœ $9 ืœื—ื•ื“ืฉ) 1. ื”ื™ืจืฉื: [Moonshot AI](https://platform.moonshot.ai/) 2. ืงื‘ืœ ืžืคืชื— API 3. ืœื•ื— ืžื—ื•ื•ื ื™ื โ† ื”ื•ืกืฃ ืžืคืชื— API **ื”ืฉืชืžืฉ:** `kimi/kimi-latest` **ื˜ื™ืค ืžืงืฆื•ืขื™:** 9$ ืงื‘ื•ืข ืœื—ื•ื“ืฉ ืขื‘ื•ืจ 10 ืžื™ืœื™ื•ืŸ ืืกื™ืžื•ื ื™ื = 0.90$/1 ืžื™ืœื™ื•ืŸ ืขืœื•ืช ืืคืงื˜ื™ื‘ื™ืช!
๐Ÿ†“ ืกืคืงื™ื ื‘ื—ื™ื ื (ื’ื™ื‘ื•ื™ ื—ื™ืจื•ื) ### iFlow (8 ื“ื’ืžื™ื ื‘ื—ื™ื ื) ```bash Dashboard โ†’ Connect iFlow โ†’ iFlow OAuth login โ†’ Unlimited usage Models: if/kimi-k2-thinking if/qwen3-coder-plus if/glm-4.7 if/minimax-m2 if/deepseek-r1 ``` ### Qwen (3 ื“ื’ืžื™ื ื‘ื—ื™ื ื) ```bash Dashboard โ†’ Connect Qwen โ†’ Device code authorization โ†’ Unlimited usage Models: qw/qwen3-coder-plus qw/qwen3-coder-flash ``` ### ืงื™ืจื• (ืงืœื•ื“ ื‘ื—ื™ื ื) ```bash Dashboard โ†’ Connect Kiro โ†’ AWS Builder ID or Google/GitHub โ†’ Unlimited usage Models: kr/claude-sonnet-4.5 kr/claude-haiku-4.5 ```
๐ŸŽจ ืฆื•ืจ ืฉื™ืœื•ื‘ื™ื ### ื“ื•ื’ืžื” 1: ื”ื’ื“ืœืช ืžื ื•ื™ โ† ื’ื™ื‘ื•ื™ ื–ื•ืœ ``` Dashboard โ†’ Combos โ†’ Create New Name: premium-coding Models: 1. cc/claude-opus-4-6 (Subscription primary) 2. glm/glm-4.7 (Cheap backup, $0.6/1M) 3. minimax/MiniMax-M2.1 (Cheapest fallback, $0.20/1M) Use in CLI: premium-coding ``` ### ื“ื•ื’ืžื” 2: ื—ื™ื ื ื‘ืœื‘ื“ (ืขืœื•ืช ืืคืก) ``` Name: free-combo Models: 1. gc/gemini-3-flash-preview (180K free/month) 2. if/kimi-k2-thinking (unlimited) 3. qw/qwen3-coder-plus (unlimited) Cost: $0 forever! ```
๐Ÿ”ง ืฉื™ืœื•ื‘ CLI ### ืกืžืŸ IDE ``` Settings โ†’ Models โ†’ Advanced: OpenAI API Base URL: http://localhost:20128/v1 OpenAI API Key: [from OmniRoute dashboard] Model: cc/claude-opus-4-6 ``` ### ืงืœื•ื“ ืงื•ื“ ื”ืฉืชืžืฉ ื‘ื“ืฃ **ื›ืœื™ CLI** ื‘ืœื•ื— ื”ืžื—ื•ื•ื ื™ื ืขื‘ื•ืจ ืชืฆื•ืจื” ื‘ืœื—ื™ืฆื” ืื—ืช, ืื• ืขืจื•ืš ืืช `~/.claude/settings.json` ื‘ืื•ืคืŸ ื™ื“ื ื™. ### Codex CLI ```bash export OPENAI_BASE_URL="http://localhost:20128" export OPENAI_API_KEY="your-omniroute-api-key" codex "your prompt" ``` ### OpenClaw **ืืคืฉืจื•ืช 1 - ืœื•ื— ืžื—ื•ื•ื ื™ื (ืžื•ืžืœืฅ):** ``` Dashboard โ†’ CLI Tools โ†’ OpenClaw โ†’ Select Model โ†’ Apply ``` **ืืคืฉืจื•ืช 2 โ€” ื™ื“ื ื™:** ืขืจื•ืš `~/.openclaw/openclaw.json`: ```json { "models": { "providers": { "omniroute": { "baseUrl": "http://127.0.0.1:20128/v1", "apiKey": "sk_omniroute", "api": "openai-completions" } } } } ``` > **ื”ืขืจื”:** OpenClaw ืขื•ื‘ื“ ืจืง ืขื OmniRoute ืžืงื•ืžื™. ื”ืฉืชืžืฉ ื‘-`127.0.0.1` ื‘ืžืงื•ื ื‘-`localhost` ื›ื“ื™ ืœื”ื™ืžื ืข ืžื‘ืขื™ื•ืช ื‘ืจื–ื•ืœื•ืฆื™ื” ืฉืœ IPv6. ### Cline / Continue / RooCode ``` Settings โ†’ API Configuration: Provider: OpenAI Compatible Base URL: http://localhost:20128/v1 API Key: [from OmniRoute dashboard] Model: if/kimi-k2-thinking ```
--- ## ๐Ÿ“Š ื“ื’ืžื™ื ื–ืžื™ื ื™ื
ื”ืฆื’ ืืช ื›ืœ ื”ื“ื’ืžื™ื ื”ื–ืžื™ื ื™ื **ืงื•ื“ ืงืœื•ื“ (`cc/`)** - ืคืจื•/ืžืงืกื™ืžื•ื: - `cc/claude-opus-4-6` - `cc/claude-sonnet-4-5-20250929` - `cc/claude-haiku-4-5-20251001` **ืงื•ื“ืงืก (`cx/`)** - ืคืœื•ืก/ื™ืชืจื•ื ื•ืช: - `cx/gpt-5.2-codex` - `cx/gpt-5.1-codex-max` **Gemini CLI (`gc/`)** - ื‘ื—ื™ื ื: - `gc/gemini-3-flash-preview` - `gc/gemini-2.5-pro` **GitHub Copilot (`gh/`)**: - `gh/gpt-5` - `gh/claude-4.5-sonnet` **NVIDIA NIM (`nvidia/`)** - ื–ื™ื›ื•ื™ื™ื ื‘ื—ื™ื ื: - `nvidia/llama-3.3-70b-instruct` - `nvidia/mistral-7b-instruct` - 50+ ื“ื’ืžื™ื ื ื•ืกืคื™ื ื‘-[build.nvidia.com](https://build.nvidia.com) **GLM (`glm/`)** - $0.6/1 ืžื™ืœื™ื•ืŸ: - `glm/glm-4.7` **MiniMax (`minimax/`)** - $0.2/1 ืžื™ืœื™ื•ืŸ: - `minimax/MiniMax-M2.1` **iFlow (`if/`)** - ื‘ื—ื™ื ื: - `if/kimi-k2-thinking` - `if/qwen3-coder-plus` - `if/deepseek-r1` - `if/glm-4.7` - `if/minimax-m2` **Qwen (`qw/`)** - ื‘ื—ื™ื ื: - `qw/qwen3-coder-plus` - `qw/qwen3-coder-flash` **Kiro (`kr/`)** - ื‘ื—ื™ื ื: - `kr/claude-sonnet-4.5` - `kr/claude-haiku-4.5` **OpenRouter (`or/`)** - 100+ ื“ื’ืžื™ื: - `or/anthropic/claude-4-sonnet` - `or/google/gemini-2.5-pro` - ื›ืœ ื“ื’ื ืž-[openrouter.ai/models](https://openrouter.ai/models)
--- ## ๐Ÿงช ื”ืขืจื›ื•ืช (ื”ืขืจื›ื•ืช) OmniRoute ื›ื•ืœืœ ืžืกื’ืจืช ื”ืขืจื›ื” ืžื•ื‘ื ื™ืช ืœื‘ื“ื™ืงืช ืื™ื›ื•ืช ืชื’ื•ื‘ืช LLM ืžื•ืœ ืกื˜ ืžื•ื–ื”ื‘. ื’ืฉ ืืœื™ื• ื“ืจืš **Analytics โ†’ Evals** ื‘ืœื•ื— ื”ืžื—ื•ื•ื ื™ื. ### ืกื˜ ืžื•ื–ื”ื‘ ืžื•ื‘ื ื” ื”-"OmniRoute Golden Set" ื”ื ื˜ืขืŸ ืžืจืืฉ ืžื›ื™ืœ 10 ืžืงืจื™ ื‘ื“ื™ืงื” ื”ืžื›ืกื™ื: - ื‘ืจื›ื•ืช, ืžืชืžื˜ื™ืงื”, ื’ื™ืื•ื’ืจืคื™ื”, ื™ืฆื™ืจืช ืงื•ื“ - ืชืื™ืžื•ืช ืœืคื•ืจืžื˜ JSON, ืชืจื’ื•ื, ืกื™ืžื•ืŸ - ืกื™ืจื•ื‘ ื‘ื˜ื™ื—ื•ืชื™ (ืชื•ื›ืŸ ืžื–ื™ืง), ืกืคื™ืจื”, ื”ื™ื’ื™ื•ืŸ ื‘ื•ืœื™ืื ื™ ### ืืกื˜ืจื˜ื’ื™ื•ืช ื”ืขืจื›ื” | ืืกื˜ืจื˜ื’ื™ื” | ืชื™ืื•ืจ | ื“ื•ื’ืžื” | | ---------- | ------------------------------------------ | -------------------------------- | | `exact` | ื”ืคืœื˜ ื—ื™ื™ื‘ ืœื”ืชืื™ื ื‘ื“ื™ื•ืง | `"4"` | | `contains` | ื”ืคืœื˜ ื—ื™ื™ื‘ ืœื”ื›ื™ืœ ืชืช ืžื—ืจื•ื–ืช (ืœื ืชืœื•ื™ ืจื™ืฉื™ื•ืช) | `"Paris"` | | `regex` | ื”ืคืœื˜ ื—ื™ื™ื‘ ืœื”ืชืื™ื ืœื“ืคื•ืก ื”ืจืงืก | `"1.*2.*3"` | | `custom` | ืคื•ื ืงืฆื™ื™ืช JS ืžื•ืชืืžืช ืžื—ื–ื™ืจื” true/false | `(output) => output.length > 10` | --- ## ๐Ÿ” OAuth em Servidor Remoto (ื”ื’ื“ืจืช OAuth ืžืจื—ื•ืง) > **โš ๏ธ ื—ืฉื•ื‘ ืขื‘ื•ืจ ืฉื™ืžื•ืฉ ื‘-OmniRoute ืขื ืžืจื—ื•ืง VPS/Docker/ืฉืจืช** ### ื”ืื ืืคืฉืจ ืœืขืฉื•ืช ืื ื˜ื™ ื›ื‘ื™ื“ื” / CLI ืžื–ืœ ืชืื•ืžื™ื ืขืœ ืฉื™ืจื•ืชื™ื ืžืจื•ื—ืงื™ื? ืฉื™ืžื•ืฉ ื‘-**Antigravity** ื•-**Gemini CLI** ื‘ืฉื™ืžื•ืฉ ื‘-**Google OAuth 2.0** ืขื‘ื•ืจ ืื•ื˜ื ื˜ื™ืงื”. O Google exige que a `redirect_uri` usada no fluxo OAuth seja **exatamente** uma das URIs prรฉ-cadastradas no Google Cloud Console do aplicativo. As credenciais OAuth embutidas no OmniRoute estรฃo cadastradas **apenas para `localhost`**. Quando vocรช acessa o OmniRoute em um servidor remoto (ืœื“ื•ื’ืžื”: `https://omniroute.meuservidor.com`), o Google rejeita a autenticaรงรฃo com: ``` Error 400: redirect_uri_mismatch ``` ### ืคืชืจื•ืŸ: ื”ื’ื“ืจ ืืช ื”ืชืฆื•ืจื” ืฉืœ OAuth ืงืจื ื‘ื“ื™ื•ืง ืืช **OAuth 2.0 Client ID** ืœืœื Google Cloud Console com a URI do seu service. #### ืคืกื• ืืคืก **1. ื’ื™ืฉื” ืœ-Google Cloud Console** ืื‘ืจื”: [https://console.cloud.google.com/apis/credentials](https://console.cloud.google.com/apis/credentials) **2. Crie um novo OAuth 2.0 ืžื–ื”ื” ืœืงื•ื—** - ืœื—ืฅ ืขืœ **"+ ืฆื•ืจ ืื™ืฉื•ืจื™ื"** โ†’ **"ื–ื™ื”ื•ื™ ืœืงื•ื— OAuth"** - ื˜ื™ืคื• ื“ื” ืืคืœื™ืงื˜ื™ื‘ื™: **"ื™ื™ืฉื•ื ืื™ื ื˜ืจื ื˜"** - ืฉื: escolha qualquer nome (ืœื“ื•ื’ืžื”: `OmniRoute Remote`) **3. Adicone ื›ื›ืชื•ื‘ื•ืช URI ืžื•ืจืฉื•ืช ืœื”ืคื ื™ื” ืžื—ื“ืฉ** ืื™ืŸ ืงืžืคื• **"ื›ืชื•ื‘ื•ืช URI ืžื•ืจืฉื•ืช ืœื”ืคื ื™ื” ืžื—ื“ืฉ"**, adicione: ``` https://seu-servidor.com/callback ``` > Substitua `seu-servidor.com` pelo domรญnio ืื• IP do seu servidor (ื›ื•ืœืœ ื porta se necessรกrio, ืœืžืฉืœ: `http://45.33.32.156:20128/callback`). **4. ืฉืžื•ืจ ืืช ื”ืขื•ืชืง ื›-credenciais** ืืครณืก ืงืจื™ืืจ, o Google mostrarรก o **ื–ื™ื”ื•ื™ ืœืงื•ื—** ืื• **ืกื•ื“ ืœืงื•ื—**. **5. ื”ื’ื“ืจ ื›-variรกveis de ambiente** No seu `.env` (ou nas variรกveis de ambiente do Docker): ```bash # Para Antigravity: ANTIGRAVITY_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com ANTIGRAVITY_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret # Para Gemini CLI: GEMINI_OAUTH_CLIENT_ID=seu-client-id.apps.googleusercontent.com GEMINI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret GEMINI_CLI_OAUTH_CLIENT_SECRET=GOCSPX-seu-secret ``` **6. Reinicie o OmniRoute** ```bash # Se usando npm: npm run dev # Se usando Docker: docker restart omniroute ``` **7. Tente conectar novamente** ืœื•ื— ืžื—ื•ื•ื ื™ื โ† ืกืคืงื™ื โ† ืื ื˜ื™ ื›ื‘ื™ื“ื” (ืื• Gemini CLI) โ† OAuth Agora o Google redirecionarรก corretamente para `https://seu-servidor.com/callback` e autenticaรงรฃo funcionarรก. --- ### ื–ืžื ื™ ืคืชืจื•ืŸ ืœืขืงื™ืคืช ื”ื‘ืขื™ื” Se nรฃo quiser criar credenciais prรณprias agora, ainda รฉ possรญvel usar o fluxo **manual de URL**: 1. O OmniRoute abrirรก a URL de autorizaรงรฃo do Google 2. Apรณs vocรช autorizar, o Google tentarรก redirecionar para `localhost` (que falha no servidor remoto) 3. **ื”ืขืชืง ื›ืชื•ื‘ืช URL ืžืœืื”** da barra de endereรงo do seu ื“ืคื“ืคืŸ (mesmo que a pรกgina nรฃo carregue) 4. Cole essa URL no campo que aparece no modal de conexรฃo do OmniRoute 5. ืœื—ืฅ ืขืœ **"ื”ืชื—ื‘ืจ"** > ืคืชืจื•ืŸ ืขืงื™ืคืช ื”ื‘ืขื™ื” ืื• ืงื•ื“ ืื•ื˜ื•ืžื˜ื™ ืฉืœ ื›ืชื•ื‘ืช ื”-URL ืื• ืขืฆืžืื™ืช ืœื”ืคื ื•ืช ืืช ื”ื—ืฉื‘ื•ืŸ ืื• ืœื. --- ## ๐Ÿ› ืคืชืจื•ืŸ ื‘ืขื™ื•ืช
ืœื—ืฅ ื›ื“ื™ ืœื”ืจื—ื™ื‘ ืืช ื”ืžื“ืจื™ืš ืœืคืชืจื•ืŸ ื‘ืขื™ื•ืช **"ืžื•ื“ืœ ื”ืฉืคื” ืœื ืกื™ืคืง ื”ื•ื“ืขื•ืช"** - ืžื™ืฆืชื” ืžื›ืกืช ื”ืกืคืง โ† ื‘ื“ื•ืง ืืช ืขื•ืงื‘ ื”ืžื›ืกื•ืช ืฉืœ ืœื•ื— ื”ืžื—ื•ื•ื ื™ื - ืคืชืจื•ืŸ: ื”ืฉืชืžืฉ ื‘-combo fallback ืื• ืขื‘ื•ืจ ืœืฉื›ื‘ื” ื–ื•ืœื” ื™ื•ืชืจ **ื”ื’ื‘ืœืช ืชืขืจื™ืคื™ื** - ืžื›ืกืช ืžื ื•ื™ื™ื ื ื’ืžืจืช โ† Fallback ืœ-GLM/MiniMax - ื”ื•ืกืฃ ืฉื™ืœื•ื‘: `cc/claude-opus-4-6 โ†’ glm/glm-4.7 โ†’ if/kimi-k2-thinking` **ืคื’ ืชื•ืงืคื• ืฉืœ ืืกื™ืžื•ืŸ OAuth** - ืจืขื ื•ืŸ ืื•ื˜ื•ืžื˜ื™ ืขืœ ื™ื“ื™ OmniRoute - ืื ื”ื‘ืขื™ื•ืช ื ืžืฉื›ื•ืช: ืœื•ื— ืžื—ื•ื•ื ื™ื โ† ืกืคืง โ† ื”ืชื—ื‘ืจ ืžื—ื“ืฉ **ืขืœื•ื™ื•ืช ื’ื‘ื•ื”ื•ืช** - ื‘ื“ื•ืง ืกื˜ื˜ื™ืกื˜ื™ืงืช ืฉื™ืžื•ืฉ ื‘ืœื•ื— ื”ืžื—ื•ื•ื ื™ื โ† ืขืœื•ื™ื•ืช - ื”ื—ืœืฃ ืืช ื”ื“ื’ื ื”ืจืืฉื™ ืœ-GLM/MiniMax - ื”ืฉืชืžืฉ ื‘ืฉื›ื‘ื” ื—ื™ื ืžื™ืช (Gemini CLI, iFlow) ืขื‘ื•ืจ ืžืฉื™ืžื•ืช ืœื ืงืจื™ื˜ื™ื•ืช **ืœื•ื— ื”ืžื—ื•ื•ื ื™ื ื ืคืชื— ื‘ื™ืฆื™ืื” ืฉื’ื•ื™ื”** - ื”ื’ื“ืจ `PORT=20128` ื•`NEXT_PUBLIC_BASE_URL=http://localhost:20128` **ืฉื’ื™ืื•ืช ืกื ื›ืจื•ืŸ ื‘ืขื ืŸ** - ืืžืช `BASE_URL` ื ืงื•ื“ื•ืช ืœืžื•ืคืข ื”ืจื™ืฆื” ืฉืœืš - ืืžืช `CLOUD_URL` ื ืงื•ื“ื•ืช ืœื ืงื•ื“ืช ื”ืงืฆื” ื”ืฆืคื•ื™ื” ืฉืœืš ื‘ืขื ืŸ - ืฉืžื•ืจ ืขืœ ืขืจื›ื™ `NEXT_PUBLIC_*` ืžื™ื•ืฉืจื™ื ืขื ืขืจื›ื™ ืฆื“ ื”ืฉืจืช **ื”ื›ื ื™ืกื” ื”ืจืืฉื•ื ื” ืœื ืขื•ื‘ื“ืช** - ื‘ื“ื•ืง ืืช `INITIAL_PASSWORD` ื‘-`.env` - ืื ืœื ืžื•ื’ื“ืจืช, ืกื™ืกืžืช ื”ื—ืœืคื” ื”ื™ื `123456` **ืœืœื ื™ื•ืžื ื™ ื‘ืงืฉื•ืช** - ื”ื’ื“ืจ `ENABLE_REQUEST_LOGS=true` ื‘-`.env` **ื‘ื“ื™ืงืช ื—ื™ื‘ื•ืจ ืžืจืื” "ืœื ื—ื•ืงื™" ืขื‘ื•ืจ ืกืคืงื™ื ืชื•ืืžื™ OpenAI** - ืกืคืงื™ื ืจื‘ื™ื ืื™ื ื ื—ื•ืฉืคื™ื ื ืงื•ื“ืช ืงืฆื” `/models` - OmniRoute v1.0.6+ ื›ื•ืœืœ ืื™ืžื•ืช ื—ื•ื–ืจ ื‘ืืžืฆืขื•ืช ื”ืฉืœืžืช ืฆ'ืื˜ - ื•ื“ื ืฉื›ืชื•ื‘ืช ื”ืืชืจ ื”ื‘ืกื™ืกื™ืช ื›ื•ืœืœืช ืืช ื”ืกื™ื•ืžืช `/v1`
--- ## ๐Ÿ› ๏ธ Tech Stack - **ื–ืžืŸ ืจื™ืฆื”**: Node.js 18โ€“22 LTS (โš ๏ธ Node.js 24+ **ืœื ื ืชืžืš** - `better-sqlite3` ืงื‘ืฆื™ื ื‘ื™ื ืืจื™ื™ื ืžืงื•ืจื™ื™ื ืื™ื ื ืชื•ืืžื™ื) - **ืฉืคื”**: TypeScript 5.9 โ€” **100% TypeScript** ืขืœ ืคื ื™ `src/` ื•`open-sse/` (v1.0.6) - **ืžืกื’ืจืช**: Next.js 16 + React 19 + Tailwind CSS 4 - **ืžืกื“ ื ืชื•ื ื™ื**: LowDB (JSON) + SQLite (ืžืฆื‘ ืชื—ื•ื + ื™ื•ืžื ื™ proxy) - **ืกื˜ืจื™ืžื™ื ื’**: ืื™ืจื•ืขื™ื ืฉื ืฉืœื—ื• ืขืœ ื™ื“ื™ ืฉืจืช (SSE) - **ืื™ืฉื•ืจ**: OAuth 2.0 (PKCE) + JWT + ืžืคืชื—ื•ืช API - **ื‘ื“ื™ืงื•ืช**: ืจืฅ ืžื‘ื—ืŸ Node.js (ื‘ื“ื™ืงื•ืช 368+ ื™ื—ื™ื“ื•ืช) - **CI/CD**: ืคืขื•ืœื•ืช GitHub (ืคืจืกื•ื ืื•ื˜ื•ืžื˜ื™ ืฉืœ npm + Docker Hub ื‘ืฉื—ืจื•ืจ) - **ืืชืจ**: [omniroute.online](https://omniroute.online) - **ื—ื‘ื™ืœื”**: [npmjs.com/package/omniroute](https://www.npmjs.com/package/omniroute) - **ื“ื•ืงืจ**: [hub.docker.com/r/diegosouzapw/omniroute](https://hub.docker.com/r/diegosouzapw/omniroute) - **ื—ื•ืกืŸ**: ืžืคืกืง ืžืขื’ืœื™ื, ื’ื™ื‘ื•ื™ ืืงืกืคื•ื ื ืฆื™ืืœื™, ืขื“ืจ ื ื’ื“ ืจืขืžื™ื, ื–ื™ื•ืฃ TLS --- ## ๐Ÿ“– ืชื™ืขื•ื“ | ืžืกืžืš | ืชื™ืื•ืจ | | -------------------------------------------- | ----------------------------------------- | | [User Guide](docs/USER_GUIDE.md) | ืกืคืงื™ื, ืฉื™ืœื•ื‘ื™ื, ืฉื™ืœื•ื‘ CLI, ืคืจื™ืกื” | | [API Reference](docs/API_REFERENCE.md) | ื›ืœ ื ืงื•ื“ื•ืช ื”ืงืฆื” ืขื ื“ื•ื’ืžืื•ืช | | [Troubleshooting](docs/TROUBLESHOOTING.md) | ื‘ืขื™ื•ืช ื•ืคืชืจื•ื ื•ืช ื ืคื•ืฆื™ื | | [Architecture](docs/ARCHITECTURE.md) | ืืจื›ื™ื˜ืงื˜ื•ืจืช ืžืขืจื›ืช ื•ืคื ื™ื | | [Contributing](CONTRIBUTING.md) | ืžืขืจืš ืคื™ืชื•ื— ื•ื”ื ื—ื™ื•ืช | | [OpenAPI Spec](docs/openapi.yaml) | ืžืคืจื˜ OpenAPI 3.0 | | [Security Policy](SECURITY.md) | ื“ื™ื•ื•ื— ืขืœ ืคื’ื™ืขื•ืช ื•ื ื”ืœื™ ืื‘ื˜ื—ื” | | [VM Deployment](docs/VM_DEPLOYMENT_GUIDE.md) | ืžื“ืจื™ืš ืฉืœื: ื”ื’ื“ืจื•ืช VM + nginx + Cloudflare | | [Features Gallery](docs/FEATURES.md) | ืกื™ื•ืจ ื—ื–ื•ืชื™ ื‘ืœื•ื— ื”ืžื—ื•ื•ื ื™ื ืขื ืฆื™ืœื•ืžื™ ืžืกืš | ### ๐Ÿ“ธ ืชืฆื•ื’ื” ืžืงื“ื™ืžื” ืฉืœ ืœื•ื— ื”ืžื—ื•ื•ื ื™ื
ืœื—ืฅ ื›ื“ื™ ืœืจืื•ืช ืฆื™ืœื•ืžื™ ืžืกืš ืฉืœ ืœื•ื— ื”ืžื—ื•ื•ื ื™ื | ืขืžื•ื“ | ืฆื™ืœื•ื ืžืกืš | | --------------- | ------------------------------------------------- | | **ืกืคืงื™ื** | ![Providers](docs/screenshots/01-providers.png) | | **ืฉื™ืœื•ื‘ื™ื** | ![Combos](docs/screenshots/02-combos.png) | | **ืื ืœื™ื˜ื™ืงื”** | ![Analytics](docs/screenshots/03-analytics.png) | | **ื‘ืจื™ืื•ืช** | ![Health](docs/screenshots/04-health.png) | | **ืžืชืจื’ื** | ![Translator](docs/screenshots/05-translator.png) | | **ื”ื’ื“ืจื•ืช** | ![Settings](docs/screenshots/06-settings.png) | | **ื›ืœื™ CLI** | ![CLI Tools](docs/screenshots/07-cli-tools.png) | | **ื™ื•ืžื ื™ ืฉื™ืžื•ืฉ** | ![Usage](docs/screenshots/08-usage.png) | | **ื ืงื•ื“ืช ืงืฆื”** | ![Endpoint](docs/screenshots/09-endpoint.png) |
--- ## ๐Ÿ—บ๏ธ ืžืคืช ื“ืจื›ื™ื ืœ-OmniRoute ื™ืฉ **210+ ืชื›ื•ื ื•ืช ืžืชื•ื›ื ื ื•ืช** ืœืื•ืจืš ืฉืœื‘ื™ ืคื™ืชื•ื— ืžืจื•ื‘ื™ื. ืœื”ืœืŸ ืชื—ื•ืžื™ ื”ืžืคืชื—: | ืงื˜ื’ื•ืจื™ื” | ืชื›ื•ื ื•ืช ืžืชื•ื›ื ื ื•ืช | ื”ื‘ื”ืจื” | | --------------------- | --------------- | ---------------------------------------------------------------------------------------- | | ๐Ÿง  **ื ื™ืชื•ื‘ ื•ืžื•ื“ื™ืขื™ืŸ** | 25+ | ื ื™ืชื•ื‘ ืขื ื–ืžืŸ ื”ืื—ื–ื•ืจ ื”ื ืžื•ืš ื‘ื™ื•ืชืจ, ื ื™ืชื•ื‘ ืžื‘ื•ืกืก ืชื’ื™ื, ื‘ื“ื™ืงื” ืžื•ืงื“ืžืช ืฉืœ ืžื›ืกื”, ื‘ื—ื™ืจืช ื—ืฉื‘ื•ืŸ P2C | | ๐Ÿ”’ **ืื‘ื˜ื—ื” ื•ืชืื™ืžื•ืช** | 20+ | ื”ืงืฉื—ืช SSRF, ื”ืกื•ื•ืื” ืฉืœ ืื™ืฉื•ืจื™ื, ื”ื’ื‘ืœืช ืงืฆื‘ ืœื›ืœ ื ืงื•ื“ืช ืงืฆื”, ื”ื™ืงืฃ ืžืคืชื— ื ื™ื”ื•ืœ | | ๐Ÿ“Š **ืฆืคื™ื•ืช** | 15+ | ืื™ื ื˜ื’ืจืฆื™ื” ืฉืœ OpenTelemetry, ื ื™ื˜ื•ืจ ืžื›ืกื•ืช ื‘ื–ืžืŸ ืืžืช, ืžืขืงื‘ ืขืœื•ื™ื•ืช ืœื›ืœ ื“ื’ื | | ๐Ÿ”„ **ืฉื™ืœื•ื‘ื™ ืกืคืงื™ื** | 20+ | ืจื™ืฉื•ื ืžื•ื“ืœื™ื ื“ื™ื ืžื™ื™ื, ืฆื™ื ื•ืŸ ืกืคืงื™ื, Codex ืžืจื•ื‘ื” ื—ืฉื‘ื•ื ื•ืช, ื ื™ืชื•ื— ืžื›ืกืช Copilot | | โšก **ื‘ื™ืฆื•ืขื™ื** | 15+ | ืฉื›ื‘ืช ืžื˜ืžื•ืŸ ื›ืคื•ืœื”, ืžื˜ืžื•ืŸ ื”ื ื—ื™ื”, ืžื˜ืžื•ืŸ ืชื’ื•ื‘ื”, ืกื˜ืจื™ืžื™ื ื’ Keepalive, API ืืฆื•ื•ื” | | ๐ŸŒ **ืžืขืจื›ืช ืืงื•ืœื•ื’ื™ืช** | 10+ | WebSocket API, ื˜ืขื™ื ื” ื—ื•ื–ืจืช ืฉืœ ืชืฆื•ืจื”, ื—ื ื•ืช ืชืฆื•ืจื” ืžื‘ื•ื–ืจืช, ืžืฆื‘ ืžืกื—ืจื™ | ### ๐Ÿ”œ ื‘ืงืจื•ื‘ - ๐Ÿ”— **ืฉื™ืœื•ื‘ OpenCode** - ืชืžื™ื›ื” ื‘ืกืคืง ืžืงื•ืจื™ ืขื‘ื•ืจ IDE ืงื™ื“ื•ื“ AI ืฉืœ OpenCode - ๐Ÿ”— **TRAE Integration** โ€” ืชืžื™ื›ื” ืžืœืื” ื‘ืžืกื’ืจืช ื”ืคื™ืชื•ื— ืฉืœ TRAE AI - ๐Ÿ“ฆ **ืืฆื•ื•ื” API** - ืขื™ื‘ื•ื“ ืืฆื•ื•ื” ืืกื™ื ื›ืจื•ื ื™ ืขื‘ื•ืจ ื‘ืงืฉื•ืช ื‘ื›ืžื•ืช ื’ื“ื•ืœื” - ๐ŸŽฏ **ื ื™ืชื•ื‘ ืžื‘ื•ืกืก ืชื’ื™ื** โ€” ื‘ืงืฉื•ืช ื ื™ืชื•ื‘ ื”ืžื‘ื•ืกืกื•ืช ืขืœ ืชื’ื™ื ื•ืžื˜ื ื ืชื•ื ื™ื ืžื•ืชืืžื™ื ืื™ืฉื™ืช - ๐Ÿ’ฐ **ืืกื˜ืจื˜ื’ื™ื™ืช ื”ืขืœื•ืช ื”ื ืžื•ื›ื” ื‘ื™ื•ืชืจ** โ€” ื‘ื—ืจ ืื•ื˜ื•ืžื˜ื™ืช ืืช ื”ืกืคืง ื”ื–ืžื™ืŸ ื”ื–ื•ืœ ื‘ื™ื•ืชืจ > ๐Ÿ“ ืžืคืจื˜ื™ ืชื›ื•ื ื” ืžืœืื™ื ื–ืžื™ื ื™ื ื‘-[**OMNI_TOKEN_147**](docs/new-features/) (217 ืžืคืจื˜ื™ื ืžืคื•ืจื˜ื™ื) --- ## ๐Ÿ“ง ืชืžื™ื›ื” > ๐Ÿ’ฌ **ื”ืฆื˜ืจืคื• ืœืงื”ื™ืœื” ืฉืœื ื•!** [WhatsApp Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) โ€” ืงื‘ืœ ืขื–ืจื”, ืฉืชืฃ ื˜ื™ืคื™ื ื•ื”ื™ืฉืืจ ืžืขื•ื“ื›ืŸ. - **ืืชืจ**: [omniroute.online](https://omniroute.online) - **GitHub**: [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute) - **ื‘ืขื™ื•ืช**: [github.com/diegosouzapw/OmniRoute/issues](https://github.com/diegosouzapw/OmniRoute/issues) - **ื•ื•ืื˜ืกืืค**: [Community Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) - **ืคืจื•ื™ืงื˜ ืžืงื•ืจื™**: [9router by decolua](https://github.com/decolua/9router) --- ## ๐Ÿ‘ฅ ืชื•ืจืžื™ื [![Contributors](https://contrib.rocks/image?repo=diegosouzapw/OmniRoute&max=100&columns=20&anon=1)](https://github.com/diegosouzapw/OmniRoute/graphs/contributors) ### ื›ื™ืฆื“ ืœืชืจื•ื 1. ืžื–ืœื’ ืืช ื”ืžืื’ืจ 2. ืฆื•ืจ ืืช ืขื ืฃ ื”ืชื›ื•ื ื” ืฉืœืš (`git checkout -b feature/amazing-feature`) 3. ื‘ืฆืข ืืช ื”ืฉื™ื ื•ื™ื™ื ืฉืœืš (`git commit -m 'Add amazing feature'`) 4. ื“ื—ืฃ ืœืกื ื™ืฃ (`git push origin feature/amazing-feature`) 5. ืคืชื—ื• ื‘ืงืฉืช ืžืฉื™ื›ื” ืจืื” [CONTRIBUTING.md](CONTRIBUTING.md) ืœื”ื ื—ื™ื•ืช ืžืคื•ืจื˜ื•ืช. ### ืฉื—ืจื•ืจ ื’ืจืกื” ื—ื“ืฉื” ```bash # Create a release โ€” npm publish happens automatically gh release create v1.0.6 --title "v1.0.6" --generate-notes ``` --- ## ๐Ÿ“Š ื”ื™ืกื˜ื•ืจื™ื™ืช ื›ื•ื›ื‘ื™ื Star History Chart --- ## ๐Ÿ™ ืชื•ื“ื•ืช ืชื•ื“ื” ืžื™ื•ื—ื“ืช ืœ**[9router](https://github.com/decolua/9router)** ืžืืช **[decolua](https://github.com/decolua)** - ื”ืคืจื•ื™ืงื˜ ื”ืžืงื•ืจื™ ืฉื”ื™ื•ื•ื” ื”ืฉืจืื” ืœืžื–ืœื’ ื”ื–ื”. OmniRoute ื‘ื•ื ื” ืขืœ ื”ื‘ืกื™ืก ื”ืžื“ื”ื™ื ื”ื–ื” ืขื ืชื›ื•ื ื•ืช ื ื•ืกืคื•ืช, ืžืžืฉืงื™ API ืจื‘-ืžื•ื“ืืœื™ื™ื ื•ืฉื›ืชื•ื‘ ืžืœื ืฉืœ TypeScript. ืชื•ื“ื” ืžื™ื•ื—ื“ืช ืœ**[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** - ื”ื™ื™ืฉื•ื ื”ืžืงื•ืจื™ ืฉืœ Go ืฉื™ืžืฉ ื”ืฉืจืื” ืœื™ืฆื™ืืช JavaScript ื”ื–ื•. --- ## ๐Ÿ“„ ืจื™ืฉื™ื•ืŸ ืจื™ืฉื™ื•ืŸ MIT - ืจืื” [LICENSE](LICENSE) ืœืคืจื˜ื™ื. --- --- ## ๐Ÿ‡ง๐Ÿ‡ท OmniRoute โ€” Gateway de IA Gratuito ### Nunca pare de codar. Roteamento intelligente ืขื‘ื•ืจ **ืžื•ื“ืœื™ื ืฉืœ IA GRATUITOS e de baixo custo** com fallback automรกtico. _Seu proxy universal de API - ื ืงื•ื“ืช ืงืฆื”, 36+ ื‘ื“ื™ืงื•ืช, ืืคืก ื”ืฉื‘ืชื”._ ### ๐ŸŒ Internacionalizaรงรฃo (i18n) O ืœื•ื— ื”ืžื—ื•ื•ื ื™ื ืฉืœ OmniRoute ืชื•ืžืš ื‘-**ืจื‘ ื‘ื™ื˜ื•ื™ื™ื**. ื ื™ืชื ืช ื”ืกืคืง: | ืื™ื“ื™ื•ืžื” | ืงื•ื“ื™ื’ื• | ืกื˜ื˜ื•ืก | | -------------------- | ------- | ---------- | | ๐Ÿ‡บ๐Ÿ‡ธ ืื ื’ืœื™ืช | `en` | โœ… ืงื•ืžืคืœื˜ื• | | ๐Ÿ‡ง๐Ÿ‡ท ืคื•ืจื˜ื•ื’ื–ื™ืช (ื‘ืจื–ื™ืœ) | `pt-BR` | โœ… ืงื•ืžืคืœื˜ื• | **ืœืžืงืจื” ืฉืœ ื‘ื™ื˜ื•ื™:** ืœื—ืฅ ืขืœ ืœื ื‘ื—ื™ืจื” ื‘ืฉืคื” (๐Ÿ‡บ๐Ÿ‡ธ EN) ืœืœื ื›ื•ืชืจืช ืœืœื•ื— ื”ืžื—ื•ื•ื ื™ื โ† ื‘ื—ื™ืจื” ื‘ืฆื•ืจืช ื‘ื™ื˜ื•ื™. **ืœืคืจื˜ื™ื ื ื•ืกืคื™ื:** 1. Crie `src/i18n/messages/{codigo}.json` baseado em `en.json` 2. Adicone o cรณdigo em `src/i18n/config.ts` โ†’ `LOCALES` e `LANGUAGES` 3. Reinicie o servidor ### โšก Inรญcio Rรกpido ```bash # Instalar via npm npx omniroute@latest # Ou rodar do cรณdigo-fonte cp .env.example .env npm install PORT=20128 NEXT_PUBLIC_BASE_URL=http://localhost:20128 npm run dev ``` ### ๐Ÿณ ื“ื•ืงืจ ```bash docker run -d --name omniroute -p 20128:20128 diegosouzapw/omniroute:latest ``` ### ๐Ÿ”‘ Funcionalidades Principais - **36+ provedores de IA** - ืงืœื•ื“, GPT, Gemini, Llama, Qwen, DeepSeek, e mais - **Roteamento inteligente** - Fallback automรกtico entre provedores - **Traduรงรฃo de formato** โ€” OpenAI โ†” ืงืœื•ื“ โ†” Gemini automaticamente - **ืžื•ืœื˜ื™-ืงื•ื ื˜ื** - Mรบltiplas contas por provedor com seleรงรฃo intelligente - **Cache semรขntico** โ€” Reduz custos e latรชncia - **OAuth automรกtico** โ€” ืืกื™ืžื•ื ื™ื renovam automaticamente - **Combos personalizados** - 6 estratรฉgias de roteamento - **ืœื•ื— ื”ืžื—ื•ื•ื ื™ื ื”ืžืœื** - ืžืขืงื‘, ื™ื•ืžื ื™ื, ื ื™ืชื•ื—ื™ื, ื”ื’ื“ืจื•ืช - **ื›ืœื™ CLI** - ื”ื’ื“ืจ ืืช ืงื•ื“ ืงืœื•ื“, Codex, Cursor, Cline com um clique - **100% TypeScript** โ€” ืงื•ื“ ืจื’ื™ืœ ### ๐Ÿ“– ืชื™ืขื•ื“ | ื“ื•ืงื•ืžื ื˜ื• | ืชื™ืื•ืจ | | ----------------------------------------------- | ---------------------------------- | | [Guia do Usuรกrio](docs/USER_GUIDE.md) | ืคืจื•ื‘ื“ื•ืจื™ื, ืฉื™ืœื•ื‘ื™ื, CLI, ืคืจื™ืกื” | | [Referรชncia da API](docs/API_REFERENCE.md) | Todos OS ื ืงื•ื“ื•ืช ืงืฆื” com exemplos | | [Soluรงรฃo de Problemas](docs/TROUBLESHOOTING.md) | Problemas comuns e soluรงรตes | | [Arquitetura](docs/ARCHITECTURE.md) | Arquitetura e internos do sistema | | [Contribuiรงรฃo](CONTRIBUTING.md) | ื”ืชืงื ื” ืฉืœ ื”ื ื—ื™ื•ืช ื•ื”ื ื—ื™ื•ืช | | [Deploy em VM](docs/VM_DEPLOYMENT_GUIDE.md) | ื’ื™ืื” ืžืœืื”: VM + nginx + Cloudflare | ### ๐Ÿ“ง ืชืžื™ื›ื” > ๐Ÿ’ฌ **Entre para a comunidade!** [Grupo WhatsApp](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) โ€” Tire dรบvidas, compartilhe dicas e fique atualizado. - **ืืชืจ**: [omniroute.online](https://omniroute.online) - **GitHub**: [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute) - **ื‘ืขื™ื•ืช**: [github.com/diegosouzapw/OmniRoute/issues](https://github.com/diegosouzapw/OmniRoute/issues) ---
ื ื‘ื ื” ืขื โค๏ธ ืœืžืคืชื—ื™ื ืฉืžืงื•ื“ื“ื™ื 24/7
omniroute.online