# ЁЯЪА рдУрдореНрдирд┐рд░реВрдЯ - рдирд┐рдГрд╢реБрд▓реНрдХ рдПрдЖрдИ рдЧреЗрдЯрд╡реЗ
ЁЯМР **[English](#-omniroute--the-free-ai-gateway)** | \***\*рдУрдПрдордПрдирдЖрдИ_рдЯреЛрдХрди_159\*\***
### рдХреЛрдбрд┐рдВрдЧ рдХрднреА рдмрдВрдж рди рдХрд░реЗрдВред рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдлрд╝реЙрд▓рдмреИрдХ рдХреЗ рд╕рд╛рде **рдореБрдлрд╝реНрдд рдФрд░ рдХрдо рд▓рд╛рдЧрдд рд╡рд╛рд▓реЗ AI рдореЙрдбрд▓** рдХреЗ рд▓рд┐рдП рд╕реНрдорд╛рд░реНрдЯ рд░реВрдЯрд┐рдВрдЧред
_рдЖрдкрдХрд╛ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдПрдкреАрдЖрдИ рдкреНрд░реЙрдХреНрд╕реА - рдПрдХ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ, 36+ рдкреНрд░рджрд╛рддрд╛, рд╢реВрдиреНрдп рдбрд╛рдЙрдирдЯрд╛рдЗрдоред_
**рдЪреИрдЯ рд╕рдорд╛рдкрди тАв рдПрдВрдмреЗрдбрд┐рдВрдЧ тАв рдЫрд╡рд┐ рдирд┐рд░реНрдорд╛рдг тАв рдСрдбрд┐рдпреЛ тАв рдкреБрдирд░реНрд░реИрдВрдХрд┐рдВрдЧ тАв 100% рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ**
---
### ЁЯдЦ рдЖрдкрдХреЗ рдкрд╕рдВрджреАрджрд╛ рдХреЛрдбрд┐рдВрдЧ рдПрдЬреЗрдВрдЯреЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рдГрд╢реБрд▓реНрдХ рдПрдЖрдИ рдкреНрд░рджрд╛рддрд╛
_OmniRoute рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рд╕реА рднреА AI-рд╕рдВрдЪрд╛рд▓рд┐рдд IDE рдпрд╛ CLI рдЯреВрд▓ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ - рдЕрд╕реАрдорд┐рдд рдХреЛрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдирд┐рдГрд╢реБрд▓реНрдХ API рдЧреЗрдЯрд╡реЗред_
ЁЯУб рд╕рднреА рдПрдЬреЗрдВрдЯ http://localhost:20128/v1 рдпрд╛ http://cloud.omniroute.online/v1 рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬреБрдбрд╝рддреЗ рд╣реИрдВ - рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди, рдЕрд╕реАрдорд┐рдд рдореЙрдбрд▓ рдФрд░ рдХреЛрдЯрд╛
---
[](https://www.npmjs.com/package/omniroute)
[](https://hub.docker.com/r/diegosouzapw/omniroute)
[](https://github.com/diegosouzapw/OmniRoute/blob/main/LICENSE)
[](https://omniroute.online)
[](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)
---
## ЁЯдФрдУрдореНрдиреАрд░реВрдЯ рдХреНрдпреЛрдВ?
**рдкреИрд╕рд╛ рдмрд░реНрдмрд╛рдж рдХрд░рдирд╛ рдФрд░ рд╕реАрдорд╛ рдкрд╛рд░ рдХрд░рдирд╛ рдмрдВрдж рдХрд░реЗрдВ:**
-
рд╕рджрд╕реНрдпрддрд╛ рдХреЛрдЯрд╛ рд╣рд░ рдорд╣реАрдиреЗ рдЕрдкреНрд░рдпреБрдХреНрдд рд░реВрдк рд╕реЗ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ
-
рджрд░ рд╕реАрдорд╛ рдЖрдкрдХреЛ рдХреЛрдбрд┐рдВрдЧ рдХреЗ рдмреАрдЪ рдореЗрдВ рд░реЛрдХ рджреЗрддреА рд╣реИ
-
рдорд╣рдБрдЧреЗ API ($20-50/рдорд╛рд╣ рдкреНрд░рддрд┐ рдкреНрд░рджрд╛рддрд╛)
-
рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХреЗ рдмреАрдЪ рдореИрдиреНрдпреБрдЕрд▓ рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ
**OmniRoute рдЗрд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░рддрд╛ рд╣реИ:**
- тЬЕ **рд╕рдмреНрд╕рдХреНрд░рд┐рдкреНрд╢рди рдЕрдзрд┐рдХрддрдо рдХрд░реЗрдВ** - рдХреЛрдЯрд╛ рдЯреНрд░реИрдХ рдХрд░реЗрдВ, рд░реАрд╕реЗрдЯ рд╕реЗ рдкрд╣рд▓реЗ рд╣рд░ рдмрд┐рдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
- тЬЕ **рдСрдЯреЛ рдлрд╝реЙрд▓рдмреИрдХ** - рд╕рджрд╕реНрдпрддрд╛ тЖТ рдПрдкреАрдЖрдИ рдХреБрдВрдЬреА тЖТ рд╕рд╕реНрддрд╛ тЖТ рдирд┐рдГрд╢реБрд▓реНрдХ, рд╢реВрдиреНрдп рдбрд╛рдЙрдирдЯрд╛рдЗрдо
- тЬЕ **рдорд▓реНрдЯреА-рдЕрдХрд╛рдЙрдВрдЯ** - рдкреНрд░рддрд┐ рдкреНрд░рджрд╛рддрд╛ рдЦрд╛рддреЛрдВ рдХреЗ рдмреАрдЪ рд░рд╛рдЙрдВрдб-рд░реЙрдмрд┐рди
- тЬЕ **рдпреВрдирд┐рд╡рд░реНрд╕рд▓** - рдХреНрд▓рд╛рдЙрдб рдХреЛрдб, рдХреЛрдбреЗрдХреНрд╕, рдЬреЗрдорд┐рдиреА рд╕реАрдПрд▓рдЖрдИ, рдХрд░реНрд╕рд░, рдХреНрд▓рд╛рдЗрди, рдУрдкрдирдХреНрд▓реЙ, рдХрд┐рд╕реА рднреА рд╕реАрдПрд▓рдЖрдИ рдЯреВрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
---
## ЁЯФД рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
```
тФМтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФАтФР
тФВ 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
```
---
## ЁЯОп What OmniRoute Solves тАФ 16 Real Pain Points
> **Every developer using AI tools faces these problems daily.** OmniRoute was built to solve them all тАФ from cost overruns to regional blocks, from broken OAuth flows to zero observability.
ЁЯТ╕ 1. "I pay for an expensive subscription but still get interrupted by limits"
Developers pay $20тАУ200/month for Claude Pro, Codex Pro, or GitHub Copilot. Even paying, quota has a ceiling тАФ 5h of usage, weekly limits, or per-minute rate limits. Mid-coding session, the provider stops responding and the developer loses flow and productivity.
**How OmniRoute solves it:**
- **Smart 4-Tier Fallback** тАФ If subscription quota runs out, automatically redirects to API Key тЖТ Cheap тЖТ Free with zero manual intervention
- **Real-Time Quota Tracking** тАФ Shows token consumption in real-time with reset countdown (5h, daily, weekly)
- **Multi-Account Support** тАФ Multiple accounts per provider with auto round-robin тАФ when one runs out, switches to the next
- **Custom Combos** тАФ Customizable fallback chains with 6 balancing strategies (fill-first, round-robin, P2C, random, least-used, cost-optimized)
- **Codex Business Quotas** тАФ Business/Team workspace quota monitoring directly in the dashboard
ЁЯФМ 2. "I need to use multiple providers but each has a different API"
OpenAI uses one format, Claude (Anthropic) uses another, Gemini yet another. If a dev wants to test models from different providers or fallback between them, they need to reconfigure SDKs, change endpoints, deal with incompatible formats. Custom providers (FriendLI, NIM) have non-standard model endpoints.
**How OmniRoute solves it:**
- **Unified Endpoint** тАФ A single `http://localhost:20128/v1` serves as proxy for all 36+ providers
- **Format Translation** тАФ Automatic and transparent: OpenAI тЖФ Claude тЖФ Gemini тЖФ Responses API
- **Response Sanitization** тАФ Strips non-standard fields (`x_groq`, `usage_breakdown`, `service_tier`) that break OpenAI SDK v1.83+
- **Role Normalization** тАФ Converts `developer` тЖТ `system` for non-OpenAI providers; `system` тЖТ `user` for GLM/ERNIE
- **Think Tag Extraction** тАФ Extracts `` blocks from models like DeepSeek R1 into standardized `reasoning_content`
- **Structured Output for Gemini** тАФ `json_schema` тЖТ `responseMimeType`/`responseSchema` automatic conversion
- **`stream` defaults to `false`** тАФ Aligns with OpenAI spec, avoiding unexpected SSE in Python/Rust/Go SDKs
ЁЯМР 3. "My AI provider blocks my region/country"
Providers like OpenAI/Codex block access from certain geographic regions. Users get errors like `unsupported_country_region_territory` during OAuth and API connections. This is especially frustrating for developers from developing countries.
**How OmniRoute solves it:**
- **3-Level Proxy Config** тАФ Configurable proxy at 3 levels: global (all traffic), per-provider (one provider only), and per-connection/key
- **Color-Coded Proxy Badges** тАФ Visual indicators: ЁЯЯв global proxy, ЁЯЯб provider proxy, ЁЯФ╡ connection proxy, always showing the IP
- **OAuth Token Exchange Through Proxy** тАФ OAuth flow also goes through the proxy, solving `unsupported_country_region_territory`
- **Connection Tests via Proxy** тАФ Connection tests use the configured proxy (no more direct bypass)
- **SOCKS5 Support** тАФ Full SOCKS5 proxy support for outbound routing
- **TLS Fingerprint Spoofing** тАФ Browser-like TLS fingerprint via `wreq-js` to bypass bot detection
ЁЯЖУ 4. "I want to use AI for coding but I have no money"
Not everyone can pay $20тАУ200/month for AI subscriptions. Students, devs from emerging countries, hobbyists, and freelancers need access to quality models at zero cost.
**How OmniRoute solves it:**
- **Free Tier Providers Built-in** тАФ Native support for 100% free providers: iFlow (8 unlimited models), Qwen (3 unlimited models), Kiro (Claude for free), Gemini CLI (180K/month free)
- **Free-Only Combos** тАФ Chain `gc/gemini-3-flash тЖТ if/kimi-k2-thinking тЖТ qw/qwen3-coder-plus` = $0/month with zero downtime
- **NVIDIA NIM Free Credits** тАФ 1000 free credits integrated
- **Cost Optimized Strategy** тАФ Routing strategy that automatically chooses the cheapest available provider
ЁЯФТ 5. "I need to protect my AI gateway from unauthorized access"
When exposing an AI gateway to the network (LAN, VPS, Docker), anyone with the address can consume the developer's tokens/quota. Without protection, APIs are vulnerable to misuse, prompt injection, and abuse.
**How OmniRoute solves it:**
- **API Key Management** тАФ Generation, rotation, and scoping per provider with a dedicated `/dashboard/api-manager` page
- **Model-Level Permissions** тАФ Restrict API keys to specific models (`openai/*`, wildcard patterns), with Allow All/Restrict toggle
- **API Endpoint Protection** тАФ Require a key for `/v1/models` and block specific providers from the listing
- **Auth Guard + CSRF Protection** тАФ All dashboard routes protected with `withAuth` middleware + CSRF tokens
- **Rate Limiter** тАФ Per-IP rate limiting with configurable windows
- **IP Filtering** тАФ Allowlist/blocklist for access control
- **Prompt Injection Guard** тАФ Sanitization against malicious prompt patterns
- **AES-256-GCM Encryption** тАФ Credentials encrypted at rest
ЁЯЫС 6. "My provider went down and I lost my coding flow"
AI providers can become unstable, return 5xx errors, or hit temporary rate limits. If a dev depends on a single provider, they're interrupted. Without circuit breakers, repeated retries can crash the application.
**How OmniRoute solves it:**
- **Circuit Breaker per-provider** тАФ Auto-open/close with configurable thresholds and cooldown (Closed/Open/Half-Open)
- **Exponential Backoff** тАФ Progressive retry delays
- **Anti-Thundering Herd** тАФ Mutex + semaphore protection against concurrent retry storms
- **Combo Fallback Chains** тАФ If the primary provider fails, automatically falls through the chain with no intervention
- **Combo Circuit Breaker** тАФ Auto-disables failing providers within a combo chain
- **Health Dashboard** тАФ Uptime monitoring, circuit breaker states, lockouts, cache stats, p50/p95/p99 latency
ЁЯФз 7. "Configuring each AI tool is tedious and repetitive"
Developers use Cursor, Claude Code, Codex CLI, OpenClaw, Gemini CLI, Kilo Code... Each tool needs a different config (API endpoint, key, model). Reconfiguring when switching providers or models is a waste of time.
**How OmniRoute solves it:**
- **CLI Tools Dashboard** тАФ Dedicated page with one-click setup for Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline
- **GitHub Copilot Config Generator** тАФ Generates `chatLanguageModels.json` for VS Code with bulk model selection
- **Onboarding Wizard** тАФ Guided 4-step setup for first-time users
- **One endpoint, all models** тАФ Configure `http://localhost:20128/v1` once, access 36+ providers
ЁЯФС 8. "Managing OAuth tokens from multiple providers is hell"
Claude Code, Codex, Gemini CLI, Copilot тАФ all use OAuth 2.0 with expiring tokens. Developers need to re-authenticate constantly, deal with `client_secret is missing`, `redirect_uri_mismatch`, and failures on remote servers. OAuth on LAN/VPS is particularly problematic.
**How OmniRoute solves it:**
- **Auto Token Refresh** тАФ OAuth tokens refresh in background before expiration
- **OAuth 2.0 (PKCE) Built-in** тАФ Automatic flow for Claude Code, Codex, Gemini CLI, Copilot, Kiro, Qwen, iFlow
- **Multi-Account OAuth** тАФ Multiple accounts per provider via JWT/ID token extraction
- **OAuth LAN/Remote Fix** тАФ Private IP detection for `redirect_uri` + manual URL mode for remote servers
- **OAuth Behind Nginx** тАФ Uses `window.location.origin` for reverse proxy compatibility
- **Remote OAuth Guide** тАФ Step-by-step guide for Google Cloud credentials on VPS/Docker
ЁЯУК 9. "I don't know how much I'm spending or where"
Developers use multiple paid providers but have no unified view of spending. Each provider has its own billing dashboard, but there's no consolidated view. Unexpected costs can pile up.
**How OmniRoute solves it:**
- **Cost Analytics Dashboard** тАФ Per-token cost tracking and budget management per provider
- **Budget Limits per Tier** тАФ Spending ceiling per tier that triggers automatic fallback
- **Per-Model Pricing Configuration** тАФ Configurable prices per model
- **Usage Statistics Per API Key** тАФ Request count and last-used timestamp per key
- **Analytics Dashboard** тАФ Stat cards, model usage chart, provider table with success rates and latency
ЁЯРЫ 10. "I can't diagnose errors and problems in AI calls"
When a call fails, the dev doesn't know if it was a rate limit, expired token, wrong format, or provider error. Fragmented logs across different terminals. Without observability, debugging is trial-and-error.
**How OmniRoute solves it:**
- **Unified Logs Dashboard** тАФ 4 tabs: Request Logs, Proxy Logs, Audit Logs, Console
- **Console Log Viewer** тАФ Real-time terminal-style viewer with color-coded levels, auto-scroll, search, filter
- **SQLite Proxy Logs** тАФ Persistent logs that survive server restarts
- **Translator Playground** тАФ 4 debugging modes: Playground (format translation), Chat Tester (round-trip), Test Bench (batch), Live Monitor (real-time)
- **Request Telemetry** тАФ p50/p95/p99 latency + X-Request-Id tracing
- **File-Based Logging with Rotation** тАФ Console interceptor captures everything to JSON log with size-based rotation
ЁЯПЧя╕П 11. "Deploying and maintaining the gateway is complex"
Installing, configuring, and maintaining an AI proxy across different environments (local, VPS, Docker, cloud) is labor-intensive. Problems like hardcoded paths, `EACCES` on directories, port conflicts, and cross-platform builds add friction.
**How OmniRoute solves it:**
- **npm global install** тАФ `npm install -g omniroute && omniroute` тАФ done
- **Docker Multi-Platform** тАФ AMD64 + ARM64 native (Apple Silicon, AWS Graviton, Raspberry Pi)
- **Docker Compose Profiles** тАФ `base` (no CLI tools) and `cli` (with Claude Code, Codex, OpenClaw)
- **Electron Desktop App** тАФ Native app for Windows/macOS/Linux with system tray, auto-start, offline mode
- **Split-Port Mode** тАФ API and Dashboard on separate ports for advanced scenarios (reverse proxy, container networking)
- **Cloud Sync** тАФ Config synchronization across devices via Cloudflare Workers
- **DB Backups** тАФ Automatic backup, restore, export and import of all settings
ЁЯМН 12. "The interface is English-only and my team doesn't speak English"
Teams in non-English-speaking countries, especially in Latin America, Asia, and Europe, struggle with English-only interfaces. Language barriers reduce adoption and increase configuration errors.
**How OmniRoute solves it:**
- **Dashboard i18n тАФ 30 Languages** тАФ All 500+ keys translated including Arabic, Bulgarian, Danish, German, Spanish, Finnish, French, Hebrew, Hindi, Hungarian, Indonesian, Italian, Japanese, Korean, Malay, Dutch, Norwegian, Polish, Portuguese (PT/BR), Romanian, Russian, Slovak, Swedish, Thai, Ukrainian, Vietnamese, Chinese, Filipino, English
- **RTL Support** тАФ Right-to-left support for Arabic and Hebrew
- **Multi-Language READMEs** тАФ 30 complete documentation translations
- **Language Selector** тАФ Globe icon in header for real-time switching
ЁЯФД 13. "I need more than chat тАФ I need embeddings, images, audio"
AI isn't just chat completion. Devs need to generate images, transcribe audio, create embeddings for RAG, rerank documents, and moderate content. Each API has a different endpoint and format.
**How OmniRoute solves it:**
- **Embeddings** тАФ `/v1/embeddings` with 6 providers and 9+ models
- **Image Generation** тАФ `/v1/images/generations` with 4 providers and 9+ models
- **Audio Transcription** тАФ `/v1/audio/transcriptions` тАФ Whisper-compatible
- **Text-to-Speech** тАФ `/v1/audio/speech` тАФ Multi-provider audio synthesis
- **Moderations** тАФ `/v1/moderations` тАФ Content safety checks
- **Reranking** тАФ `/v1/rerank` тАФ Document relevance reranking
- **Responses API** тАФ Full `/v1/responses` support for Codex
ЁЯзк 14. "I have no way to test and compare quality across models"
Developers want to know which model is best for their use case тАФ code, translation, reasoning тАФ but comparing manually is slow. No integrated eval tools exist.
**How OmniRoute solves it:**
- **LLM Evaluations** тАФ Golden set testing with 10 pre-loaded cases covering greetings, math, geography, code generation, JSON compliance, translation, markdown, safety refusal
- **4 Match Strategies** тАФ `exact`, `contains`, `regex`, `custom` (JS function)
- **Translator Playground Test Bench** тАФ Batch testing with multiple inputs and expected outputs, cross-provider comparison
- **Chat Tester** тАФ Full round-trip with visual response rendering
- **Live Monitor** тАФ Real-time stream of all requests flowing through the proxy
ЁЯУИ 15. "I need to scale without losing performance"
As request volume grows, without caching the same questions generate duplicate costs. Without idempotency, duplicate requests waste processing. Per-provider rate limits must be respected.
**How OmniRoute solves it:**
- **Semantic Cache** тАФ Two-tier cache (signature + semantic) reduces cost and latency
- **Request Idempotency** тАФ 5s deduplication window for identical requests
- **Rate Limit Detection** тАФ Per-provider RPM, min gap, and max concurrent tracking
- **Editable Rate Limits** тАФ Configurable defaults in Settings тЖТ Resilience with persistence
- **API Key Validation Cache** тАФ 3-tier cache for production performance
- **Health Dashboard with Telemetry** тАФ p50/p95/p99 latency, cache stats, uptime
ЁЯдЦ 16. "I want to control model behavior globally"
Developers who want all responses in a specific language, with a specific tone, or want to limit reasoning tokens. Configuring this in every tool/request is impractical.
**How OmniRoute solves it:**
- **System Prompt Injection** тАФ Global prompt applied to all requests
- **Thinking Budget Validation** тАФ Reasoning token allocation control per request (passthrough, auto, custom, adaptive)
- **6 Routing Strategies** тАФ Global strategies that determine how requests are distributed
- **Wildcard Router** тАФ `provider/*` patterns route dynamically to any provider
- **Combo Enable/Disable Toggle** тАФ Toggle combos directly from the dashboard
- **Provider Toggle** тАФ Enable/disable all connections for a provider with one click
- **Blocked Providers** тАФ Exclude specific providers from `/v1/models` listing
## тЪб рддреНрд╡рд░рд┐рдд рд╢реБрд░реБрдЖрдд
**1. рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:**
ЁЯОЙ рдбреИрд╢рдмреЛрд░реНрдб `http://localhost:20128` рдкрд░ рдЦреБрд▓рддрд╛ рд╣реИ
| рдЖрджреЗрд╢ | рд╡рд┐рд╡рд░рдг |
| ----------------------- | ----------------------------------------- |
| `omniroute` | рд╕рд░реНрд╡рд░ рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреЛрд░реНрдЯ 20128) |
| `omniroute --port 3000` | рдХрд╕реНрдЯрдо рдкреЛрд░реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ |
| `omniroute --no-open` | рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЛ рд╕реНрд╡рддрдГ рди рдЦреЛрд▓реЗрдВ |
| `omniroute --help` | рд╕рд╣рд╛рдпрддрд╛ рджрд┐рдЦрд╛рдПрдБ |
**2. рдПрдХ рдореБрдлрд╝реНрдд рдкреНрд░рджрд╛рддрд╛ рд╕реЗ рдЬреБрдбрд╝реЗрдВ:**
рдбреИрд╢рдмреЛрд░реНрдб тЖТ рдкреНрд░рджрд╛рддрд╛ тЖТ рдХрдиреЗрдХреНрдЯ **рдХреНрд▓рд╛рдЙрдб рдХреЛрдб** рдпрд╛ **рдПрдВрдЯреАрдЧреНрд░реЗрд╡рд┐рдЯреА** тЖТ OAuth рд▓реЙрдЧрд┐рди тЖТ рд╣реЛ рдЧрдпрд╛!
**3. рдЕрдкрдиреЗ рд╕реАрдПрд▓рдЖрдИ рдЯреВрд▓ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:**
```
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
```
---
## ЁЯР│ рдбреЙрдХрд░
рдУрдордиреАрд░реВрдЯ [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
```
**рдкрд░реНрдпрд╛рд╡рд░рдг рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде:**
**рдбреЙрдХрд░ рдХрдВрдкреЛрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛:**
| рдЫрд╡рд┐ | рдЯреИрдЧ | рдЖрдХрд╛рд░ | рд╡рд┐рд╡рд░рдг |
| ------------------------ | -------- | -------- | ------------------- |
| `diegosouzapw/omniroute` | `latest` | ~250рдПрдордмреА | рдирд╡реАрдирддрдо рд╕реНрдерд┐рд░ рд░рд┐рд▓реАрдЬрд╝ |
| `diegosouzapw/omniroute` | `1.0.3` | ~250рдПрдордмреА | рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг |
---
---
## ЁЯЦея╕П Desktop App тАФ Offline & Always-On
> ЁЯЖХ **NEW!** OmniRoute is now available as a **native desktop application** for Windows, macOS, and Linux.
- ЁЯЦея╕П **Native Window** тАФ Dedicated app window with system tray integration
- ЁЯФД **Auto-Start** тАФ Launch OmniRoute on system login
- ЁЯФФ **Native Notifications** тАФ Get alerts for quota exhaustion or provider issues
- тЪб **One-Click Install** тАФ NSIS (Windows), DMG (macOS), AppImage (Linux)
- ЁЯМР **Offline Mode** тАФ Works fully offline with bundled server
```bash
npm run electron:dev # Development mode
npm run electron:build # Current platform
npm run electron:build:win # Windows (.exe)
npm run electron:build:mac # macOS (.dmg)
npm run electron:build:linux # Linux (.AppImage)
```
ЁЯУЦ Full documentation: [`electron/README.md`](electron/README.md)
---
## ЁЯТ░ рдореВрд▓реНрдп рдирд┐рд░реНрдзрд╛рд░рдг рдПрдХ рдирдЬрд╝рд░ рдореЗрдВ
| рдЯрд┐рдпрд░ | рдкреНрд░рджрд╛рддрд╛ | рд▓рд╛рдЧрдд | рдХреЛрдЯрд╛ рд░реАрд╕реЗрдЯ | рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд╢реНрд░реЗрд╖реНрда |
| ----------------- | ------------------- | ------------------------- | -------------------- | ------------------------ |
| **ЁЯТ│ рд╕рджрд╕реНрдпрддрд╛** | рдХреНрд▓рд╛рдЙрдб рдХреЛрдб (рдкреНрд░реЛ) | $20/рдорд╛рд╣ | 5 рдШрдВрдЯреЗ + рд╕рд╛рдкреНрддрд╛рд╣рд┐рдХ | рдкрд╣рд▓реЗ рд╣реА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗ рд▓реА рд╣реИ |
| | рдХреЛрдбреЗрдХреНрд╕ (рдкреНрд▓рд╕/рдкреНрд░реЛ) | $20-200/рдорд╣реАрдирд╛ | 5 рдШрдВрдЯреЗ + рд╕рд╛рдкреНрддрд╛рд╣рд┐рдХ | OpenAI рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ |
| | рдЬреЗрдорд┐рдиреА рд╕реАрдПрд▓рдЖрдИ | **рдореБрдлрд╝реНрдд** | 180K/рдорд╛рд╣ + 1K/рджрд┐рди | рд╕рдм рд▓реЛрдЧ! |
| | рдЧрд┐рдЯрд╣рдм рдХреЛрдкрд╛рдпрд▓рдЯ | $10-19/рдорд╛рд╣ | рдорд╛рд╕рд┐рдХ | GitHub рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ |
| **ЁЯФСрдПрдкреАрдЖрдИ рдХреБрдВрдЬреА** | рдПрдирд╡реАрдбрд┐рдпрд╛ рдПрдирдЖрдИрдПрдо | **рдореБрдлрд╝реНрдд** (1000 рдХреНрд░реЗрдбрд┐рдЯ) | рдПрдХ рдмрд╛рд░ | рдирд┐рдГрд╢реБрд▓реНрдХ рд╕реНрддрд░реАрдп рдкрд░реАрдХреНрд╖рдг |
| | рдбреАрдкрд╕реАрдХ | рднреБрдЧрддрд╛рди-рдкреНрд░рддрд┐-рдЙрдкрдпреЛрдЧ | рдХреЛрдИ рдирд╣реАрдВ | рд╕рд░реНрд╡реЛрддреНрддрдо рдореВрд▓реНрдп/рдЧреБрдгрд╡рддреНрддрд╛ |
| | рдЧреНрд░реЛрдХ | рдлреНрд░реА рдЯрд┐рдпрд░ + рдкреЗрдб | рджрд░ рд╕реАрдорд┐рдд | рдЕрд▓реНрдЯреНрд░рд╛-рдлрд╛рд╕реНрдЯ рдЕрдиреБрдорд╛рди |
| | рдПрдХреНрд╕рдПрдЖрдИ (рдЧреНрд░реЛрдХ) | рднреБрдЧрддрд╛рди-рдкреНрд░рддрд┐-рдЙрдкрдпреЛрдЧ | рдХреЛрдИ рдирд╣реАрдВ | рдЧреНрд░реЛрдХ рдореЙрдбрд▓ |
| | рдорд┐рд╕реНрдЯреНрд░рд▓ | рдлреНрд░реА рдЯрд┐рдпрд░ + рдкреЗрдб | рджрд░ рд╕реАрдорд┐рдд | рдпреВрд░реЛрдкреАрдп рдПрдЖрдИ |
| | рдУрдкрдирд░рд╛рдЙрдЯрд░ | рднреБрдЧрддрд╛рди-рдкреНрд░рддрд┐-рдЙрдкрдпреЛрдЧ | рдХреЛрдИ рдирд╣реАрдВ | 100+ рдореЙрдбрд▓ |
| **ЁЯТ░рд╕рд╕реНрддрд╛** | рдЬреАрдПрд▓рдПрдо-4.7 | $0.6/1 рдорд┐рд▓рд┐рдпрди | рдкреНрд░рддрд┐рджрд┐рди рд╕реБрдмрд╣ 10 рдмрдЬреЗ | рдмрдЬрдЯ рдмреИрдХрдЕрдк |
| | рдорд┐рдиреАрдореИрдХреНрд╕ рдПрдо2.1 | $0.2/1 рдорд┐рд▓рд┐рдпрди | 5 рдШрдВрдЯреЗ рдХреА рд░реЛрд▓рд┐рдВрдЧ | рд╕рдмрд╕реЗ рд╕рд╕реНрддрд╛ рд╡рд┐рдХрд▓реНрдк |
| | рдХрд┐рдореА K2 | $9/рдорд╣реАрдирд╛ рдлреНрд▓реИрдЯ | 10рдПрдо рдЯреЛрдХрди/рдорд╛рд╣ | рдЕрдиреБрдорд╛рдирд┐рдд рд▓рд╛рдЧрдд |
| **ЁЯЖУ рдореБрдлрд╝реНрдд** | рдЖрдИрдлреНрд▓реЛ | $0 | рдЕрд╕реАрдорд┐рдд | 8 рдореЙрдбрд▓ рдирд┐рдГрд╢реБрд▓реНрдХ |
| | рдХреНрд╡реЗрди | $0 | рдЕрд╕реАрдорд┐рдд | 3 рдореЙрдбрд▓ рдореБрдлрд╝реНрдд |
| | рдХрд┐рд░реЛ | $0 | рдЕрд╕реАрдорд┐рдд | рдХреНрд▓рд╛рдЙрдб рдореБрдХреНрдд |
**ЁЯТб рдкреНрд░реЛ рдЯрд┐рдк:** рдЬреЗрдорд┐рдиреА рд╕реАрдПрд▓рдЖрдИ (180 рд╣рдЬрд╛рд░ рдирд┐рдГрд╢реБрд▓реНрдХ/рдорд╛рд╣) + рдЖрдИрдлреНрд▓реЛ (рдЕрд╕реАрдорд┐рдд рдирд┐рдГрд╢реБрд▓реНрдХ) рдХреЙрдореНрдмреЛ = $0 рд▓рд╛рдЧрдд рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ!
---
## ЁЯТб рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ
### ЁЯза рдХреЛрд░ рд░реВрдЯрд┐рдВрдЧ рдФрд░ рдЗрдВрдЯреЗрд▓рд┐рдЬреЗрдВрд╕
| рдлрд╝реАрдЪрд░ | рдпрд╣ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ |
| --------------------------------- | ------------------------------------------------------------------------------------ |
| ЁЯОп **рд╕реНрдорд╛рд░реНрдЯ 4-рдЯрд┐рдпрд░ рдлрд╝реЙрд▓рдмреИрдХ** | рдСрдЯреЛ-рд░реВрдЯ: рд╕рджрд╕реНрдпрддрд╛ тЖТ рдПрдкреАрдЖрдИ рдХреБрдВрдЬреА тЖТ рд╕рд╕реНрддрд╛ тЖТ рдореБрдлрд╝реНрдд |
| ЁЯУК **рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдХреЛрдЯрд╛ рдЯреНрд░реИрдХрд┐рдВрдЧ** | рд▓рд╛рдЗрд╡ рдЯреЛрдХрди рдЧрд┐рдирддреА + рдкреНрд░рддрд┐ рдкреНрд░рджрд╛рддрд╛ рд░реАрд╕реЗрдЯ рдЙрд▓рдЯреА рдЧрд┐рдирддреА |
| ЁЯФД **рдкреНрд░рд╛рд░реВрдк рдЕрдиреБрд╡рд╛рдж** | OpenAI тЖФ рдХреНрд▓рд╛рдЙрдб тЖФ рдЬреЗрдорд┐рдиреА тЖФ рдХрд░реНрд╕рд░ тЖФ рдХрд┐рд░реЛ рд╕реАрдорд▓реЗрд╕ + рд░рд┐рд╕реНрдкреЙрдиреНрд╕ рд╕реИрдирд┐рдЯрд╛рдЗрдЬреЗрд╢рди |
| ЁЯСе **рдорд▓реНрдЯреА-рдЕрдХрд╛рдЙрдВрдЯ рд╕рдкреЛрд░реНрдЯ** | рдмреБрджреНрдзрд┐рдорд╛рди рдЪрдпрди рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐ рдкреНрд░рджрд╛рддрд╛ рдПрдХрд╛рдзрд┐рдХ рдЦрд╛рддреЗ |
| ЁЯФД **рдСрдЯреЛ рдЯреЛрдХрди рд░рд┐рдлреНрд░реЗрд╢** | OAuth рдЯреЛрдХрди рдкреБрдирдГ рдкреНрд░рдпрд╛рд╕ рдХреЗ рд╕рд╛рде рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рддрд╛рдЬрд╝рд╛ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ |
| ЁЯОи **рдХрд╕реНрдЯрдо рдХреЙрдореНрдмреЛ** | 6 рд░рдгрдиреАрддрд┐рдпрд╛рдБ: рдкрд╣рд▓реЗ рднрд░реЗрдВ, рд░рд╛рдЙрдВрдб-рд░реЙрдмрд┐рди, рдкреА2рд╕реА, рдпрд╛рджреГрдЪреНрдЫрд┐рдХ, рдХрдо рд╕реЗ рдХрдо рдЙрдкрдпреЛрдЧ, рд▓рд╛рдЧрдд-рдЕрдиреБрдХреВрд▓рд┐рдд |
| ЁЯзй **рдХрд╕реНрдЯрдо рдореЙрдбрд▓** | рдХрд┐рд╕реА рднреА рдкреНрд░рджрд╛рддрд╛ рд╕реЗ рдХреЛрдИ рднреА рдореЙрдбрд▓ рдЖрдИрдбреА рдЬреЛрдбрд╝реЗрдВ |
| ЁЯМР **рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдб рд░рд╛рдЙрдЯрд░** | `provider/*` рдкреИрдЯрд░реНрди рдХреЛ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдХрд┐рд╕реА рднреА рдкреНрд░рджрд╛рддрд╛ рддрдХ рд░реВрдЯ рдХрд░реЗрдВ |
| ЁЯза **рд╕реЛрдЪ рдмрдЬрдЯ** | рддрд░реНрдХ рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП рдкрд╛рд╕рдереНрд░реВ, рдСрдЯреЛ, рдХрд╕реНрдЯрдо рдФрд░ рдЕрдиреБрдХреВрд▓реА рдореЛрдб |
| ЁЯФА **Model Aliases** | Auto-forward deprecated model IDs to current replacements (built-in + custom) |
| тЪб **Background Degradation** | Auto-route background tasks (titles, summaries) to cheaper models |
| ЁЯТм **рд╕рд┐рд╕реНрдЯрдо рдкреНрд░реЙрдореНрдкреНрдЯ рдЗрдВрдЬреЗрдХреНрд╢рди** | рдЧреНрд▓реЛрдмрд▓ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░реЙрдореНрдкреНрдЯ рд╕рднреА рдЕрдиреБрд░реЛрдзреЛрдВ рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ |
| ЁЯУД **рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдПрдВ рдПрдкреАрдЖрдИ** | рдХреЛрдбреЗрдХреНрд╕ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рдУрдкрдирдПрдЖрдИ рд░рд┐рд╕реНрдкреЙрдиреНрд╕ рдПрдкреАрдЖрдИ (`/v1/responses`) рд╕рдорд░реНрдерди |
### ЁЯО╡ рдорд▓реНрдЯреА-рдореЙрдбрд▓ рдПрдкреАрдЖрдИ
| рдлрд╝реАрдЪрд░ | рдпрд╣ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ |
| ---------------------------- | ------------------------------------------------- |
| ЁЯЦ╝я╕П **рдЫрд╡рд┐ рдирд┐рд░реНрдорд╛рдг** | `/v1/images/generations` - 4 рдкреНрд░рджрд╛рддрд╛, 9+ рдореЙрдбрд▓ |
| ЁЯУР **рдПрдВрдмреЗрдбрд┐рдВрдЧ** | `/v1/embeddings` тАФ 6 рдкреНрд░рджрд╛рддрд╛, 9+ рдореЙрдбрд▓ |
| ЁЯОд **рдСрдбрд┐рдпреЛ рдЯреНрд░рд╛рдВрд╕реНрдХреНрд░рд┐рдкреНрд╢рди** | `/v1/audio/transcriptions` - рдХрд╛рдирд╛рдлреВрд╕реА-рд╕рдВрдЧрдд |
| ЁЯФК **рдЯреЗрдХреНрд╕реНрдЯ-рдЯреВ-рд╕реНрдкреАрдЪ** | `/v1/audio/speech` - рдмрд╣реБ-рдкреНрд░рджрд╛рддрд╛ рдСрдбрд┐рдпреЛ рд╕рдВрд╢реНрд▓реЗрд╖рдг |
| ЁЯЫбя╕П **рд╕рдВрдпрдо** | `/v1/moderations` тАФ рд╕рд╛рдордЧреНрд░реА рд╕реБрд░рдХреНрд╖рд╛ рдЬрд╛рдВрдЪ |
| ЁЯФА **рдкреБрдирд░реНрд░реИрдВрдХрд┐рдВрдЧ** | `/v1/rerank` тАФ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХрддрд╛ рдкреБрдирд░реНрд░реИрдВрдХрд┐рдВрдЧ |
### ЁЯЫбя╕П рд▓рдЪреАрд▓рд╛рдкрди рдФрд░ рд╕реБрд░рдХреНрд╖рд╛
| рдлрд╝реАрдЪрд░ | рдпрд╣ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ |
| ------------------------------------- | ---------------------------------------------------------------------------- |
| ЁЯФМ **рд╕рд░реНрдХрд┐рдЯ рдмреНрд░реЗрдХрд░** | рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдереНрд░реЗрд╢реЛрд▓реНрдб рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐-рдкреНрд░рджрд╛рддрд╛ рд╕реНрд╡рддрдГ рдЦреЛрд▓реЗрдВ/рдмрдВрдж рдХрд░реЗрдВ |
| ЁЯЫбя╕П **рдПрдВрдЯреА-рдердВрдбрд░рд┐рдВрдЧ рдЭреБрдВрдб** | рдПрдкреАрдЖрдИ рдХреБрдВрдЬреА рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдореНрдпреВрдЯреЗрдХреНрд╕ + рд╕реЗрдорд╛рдлреЛрд░ рджрд░-рд╕реАрдорд╛ |
| ЁЯза **рд╕рд┐рдореЗрдВрдЯрд┐рдХ рдХреИрд╢** | рджреЛ-рд╕реНрддрд░реАрдп рдХреИрд╢ (рд╣рд╕реНрддрд╛рдХреНрд╖рд░ + рд╕рд┐рдореЗрдВрдЯрд┐рдХ) рд▓рд╛рдЧрдд рдФрд░ рд╡рд┐рд▓рдВрдмрддрд╛ рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИ |
| тЪб **рдирд┐рд╖реНрдХреНрд░рд┐рдпрддрд╛ рдХрд╛ рдЕрдиреБрд░реЛрдз** | рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП 5s рдбрд┐рдбрдЕрдк рд╡рд┐рдВрдбреЛ |
| ЁЯФТ **рдЯреАрдПрд▓рдПрд╕ рдлрд╝рд┐рдВрдЧрд░рдкреНрд░рд┐рдВрдЯ рд╕реНрдкреВрдлрд╝рд┐рдВрдЧ** | Wreq-js рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЯреАрдПрд▓рдПрд╕-рдЖрдзрд╛рд░рд┐рдд рдмреЙрдЯ рдбрд┐рдЯреЗрдХреНрд╢рди рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░реЗрдВ |
| ЁЯМР **рдЖрдИрдкреА рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ** | рдПрдкреАрдЖрдИ рдЕрднрд┐рдЧрдо рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд▓рд┐рдП рдЕрдиреБрдорддрд┐ рд╕реВрдЪреА/рдЕрд╡рд░реБрджреНрдз рд╕реВрдЪреА |
| ЁЯУК **рд╕рдВрдкрд╛рджрди рдпреЛрдЧреНрдп рджрд░ рд╕реАрдорд╛рдПрдБ** | рд╕рд┐рд╕реНрдЯрдо рд╕реНрддрд░ рдкрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдЖрд░рдкреАрдПрдо, рдиреНрдпреВрдирддрдо рдЕрдВрддрд░ рдФрд░ рдЕрдзрд┐рдХрддрдо рд╕рдорд╡рд░реНрддреА |
| ЁЯТ╛ **Rate Limit Persistence** | Learned limits survive restarts via SQLite with 60s debounce + 24h staleness |
| ЁЯФД **Token Refresh Resilience** | Per-provider circuit breaker (5 failsтЖТ30min) + 30s timeout per attempt |
| ЁЯЫб **рдПрдкреАрдЖрдИ рдПрдВрдбрдкреЙрдЗрдВрдЯ рд╕реБрд░рдХреНрд╖рд╛** | `/models` рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдХреЗ рд▓рд┐рдП рдСрдереЗрдВрдЯрд┐рдХ рдЧреЗрдЯрд┐рдВрдЧ + рдкреНрд░рджрд╛рддрд╛ рдЕрд╡рд░реЛрдзрди |
| ЁЯФТ **рдкреНрд░реЙрдХреНрд╕реА рджреГрд╢реНрдпрддрд╛** | рд░рдВрдЧ-рдХреЛрдбрд┐рдд рдмреИрдЬ: ЁЯЯв рд╡реИрд╢реНрд╡рд┐рдХ, ЁЯЯб рдкреНрд░рджрд╛рддрд╛, ЁЯФ╡ рдЖрдИрдкреА рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐-рдХрдиреЗрдХреНрд╢рди |
| ЁЯМР **3-рд╕реНрддрд░реАрдп рдкреНрд░реЙрдХреНрд╕реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди** | рд╡реИрд╢реНрд╡рд┐рдХ, рдкреНрд░рддрд┐-рдкреНрд░рджрд╛рддрд╛, рдпрд╛ рдкреНрд░рддрд┐-рдХрдиреЗрдХреНрд╢рди рд╕реНрддрд░ рдкрд░ рдкреНрд░реЙрдХреНрд╕реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ |
### ЁЯУК рдЕрд╡рд▓реЛрдХрдирд╢реАрд▓рддрд╛ рдФрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг
| рдлрд╝реАрдЪрд░ | рдпрд╣ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ |
| ------------------------------- | ------------------------------------------------------------------------------ |
| ЁЯУЭ **рд▓реЙрдЧрд┐рдВрдЧ рдХрд╛ рдЕрдиреБрд░реЛрдз** | рдкреВрд░реНрдг рдЕрдиреБрд░реЛрдз/рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд▓реЙрдЧ рдХреЗ рд╕рд╛рде рдбрд┐рдмрдЧ рдореЛрдб |
| ЁЯТ╛ **SQLite рдкреНрд░реЙрдХреНрд╕реА рд▓реЙрдЧреНрд╕** | рд▓рдЧрд╛рддрд╛рд░ рдкреНрд░реЙрдХреНрд╕реА рд▓реЙрдЧ рд╕рд░реНрд╡рд░ рдкреБрдирд░рд╛рд░рдВрдн рд╣реЛрдиреЗ рд╕реЗ рдмрдЪреЗ рд░рд╣рддреЗ рд╣реИрдВ |
| ЁЯУК **рдПрдирд╛рд▓рд┐рдЯрд┐рдХреНрд╕ рдбреИрд╢рдмреЛрд░реНрдб** | рд░рд┐рдЪрд╛рд░реНрдЬ-рд╕рдВрдЪрд╛рд▓рд┐рдд: рд╕реНрдЯреЗрдЯ рдХрд╛рд░реНрдб, рдореЙрдбрд▓ рдЙрдкрдпреЛрдЧ рдЪрд╛рд░реНрдЯ, рдкреНрд░рджрд╛рддрд╛ рддрд╛рд▓рд┐рдХрд╛ |
| ЁЯУИ **рдкреНрд░рдЧрддрд┐ рдЯреНрд░реИрдХрд┐рдВрдЧ** | рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдСрдкреНрдЯ-рдЗрди рдПрд╕рдПрд╕рдИ рдкреНрд░рдЧрддрд┐ рдХрд╛рд░реНрдпрдХреНрд░рдо |
| ЁЯзк **рдПрд▓рдПрд▓рдПрдо рдореВрд▓реНрдпрд╛рдВрдХрди** | 4 рдореИрдЪ рд░рдгрдиреАрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдЧреЛрд▓реНрдбрди рд╕реЗрдЯ рдкрд░реАрдХреНрд╖рдг |
| ЁЯФН **рдЯреЗрд▓реАрдореЗрдЯреНрд░реА рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз** | p50/p95/p99 рд╡рд┐рд▓рдВрдмрддрд╛ рдПрдХрддреНрд░реАрдХрд░рдг + рдПрдХреНрд╕-рдЕрдиреБрд░реЛрдз-рдЖрдИрдбреА рдЯреНрд░реЗрд╕рд┐рдВрдЧ |
| ЁЯУЛ **рд▓реЙрдЧреНрд╕ рдбреИрд╢рдмреЛрд░реНрдб** | рдПрдХреАрдХреГрдд 4-рдЯреИрдм рдкреГрд╖реНрда: рдЕрдиреБрд░реЛрдз рд▓реЙрдЧ, рдкреНрд░реЙрдХреНрд╕реА рд▓реЙрдЧ, рдСрдбрд┐рдЯ рд▓реЙрдЧ, рдХрдВрд╕реЛрд▓ |
| ЁЯЦея╕П **рдХрдВрд╕реЛрд▓ рд▓реЙрдЧ рд╡реНрдпреВрдЕрд░** | рд▓реЗрд╡рд▓ рдлрд╝рд┐рд▓реНрдЯрд░, рдЦреЛрдЬ, рдСрдЯреЛ-рд╕реНрдХреНрд░реЙрд▓ рдХреЗ рд╕рд╛рде рд░реАрдпрд▓-рдЯрд╛рдЗрдо рдЯрд░реНрдорд┐рдирд▓-рд╢реИрд▓реА рд╡реНрдпреВрдЕрд░ |
| ЁЯУС **рдлрд╝рд╛рдЗрд▓-рдЖрдзрд╛рд░рд┐рдд рд▓реЙрдЧрд┐рдВрдЧ** | рдХрдВрд╕реЛрд▓ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯрд░ рд░реЛрдЯреЗрд╢рди рдХреЗ рд╕рд╛рде рд╕рднреА рдЖрдЙрдЯрдкреБрдЯ рдХреЛ JSON рд▓реЙрдЧ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреИрдкреНрдЪрд░ рдХрд░рддрд╛ рд╣реИ |
| ЁЯПе **рд╕реНрд╡рд╛рд╕реНрдереНрдп рдбреИрд╢рдмреЛрд░реНрдб** | рд╕рд┐рд╕реНрдЯрдо рдЕрдкрдЯрд╛рдЗрдо, рд╕рд░реНрдХрд┐рдЯ рдмреНрд░реЗрдХрд░ рд╕реНрдерд┐рддрд┐, рд▓реЙрдХрдЖрдЙрдЯ, рдХреИрд╢ рдЖрдБрдХрдбрд╝реЗ |
| ЁЯТ░ **рд▓рд╛рдЧрдд рдЯреНрд░реИрдХрд┐рдВрдЧ** | рдмрдЬрдЯ рдкреНрд░рдмрдВрдзрди + рдкреНрд░рддрд┐-рдореЙрдбрд▓ рдореВрд▓реНрдп рдирд┐рд░реНрдзрд╛рд░рдг рд╡рд┐рдиреНрдпрд╛рд╕ |
### тШБя╕П рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдФрд░ рд╕рд┐рдВрдХ
| рдлрд╝реАрдЪрд░ | рдпрд╣ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ |
| ---------------------------- | ---------------------------------------------------------------------------- | ----------------------------- |
| ЁЯТ╛ **рдХреНрд▓рд╛рдЙрдб рд╕рд┐рдВрдХ** | рдХреНрд▓рд╛рдЙрдбрдлреНрд▓реЗрдпрд░ рд╡рд░реНрдХрд░реНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рднреА рдбрд┐рд╡рд╛рдЗрд╕реЛрдВ рдореЗрдВ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рд╕рд┐рдВрдХ рдХрд░реЗрдВ |
| ЁЯМР **рдХрд╣реАрдВ рднреА рддреИрдирд╛рдд рдХрд░реЗрдВ** | рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ, рд╡реАрдкреАрдПрд╕, рдбреЙрдХрд░, рдХреНрд▓рд╛рдЙрдбрдлреНрд▓реЗрдпрд░ рд╡рд░реНрдХрд░реНрд╕ |
| ЁЯФС **рдПрдкреАрдЖрдИ рдХреБрдВрдЬреА рдкреНрд░рдмрдВрдзрди** | рдкреНрд░рддрд┐ рдкреНрд░рджрд╛рддрд╛ рдПрдкреАрдЖрдИ рдХреБрдВрдЬрд┐рдпрд╛рдБ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ, рдШреБрдорд╛рдПрдБ рдФрд░ рд╕реНрдХреЛрдк рдХрд░реЗрдВ |
| ЁЯзЩ **рдСрдирдмреЛрд░реНрдбрд┐рдВрдЧ рд╡рд┐рдЬрд╝рд╛рд░реНрдб** | рдкрд╣рд▓реА рдмрд╛рд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП 4-рдЪрд░рдгреАрдп рдирд┐рд░реНрджреЗрд╢рд┐рдд рд╕реЗрдЯрдЕрдк |
| ЁЯФз **рд╕реАрдПрд▓рдЖрдИ рдЯреВрд▓реНрд╕ рдбреИрд╢рдмреЛрд░реНрдб** | рдХреНрд▓рд╛рдЙрдб, рдХреЛрдбреЗрдХреНрд╕, рдХреНрд▓рд╛рдЗрди, рдУрдкрдирдХреНрд▓реЙ, рдХрд┐рд▓реЛ, рдПрдВрдЯреАрдЧреНрд░реЗрд╡рд┐рдЯреА | рдХреЛ рдПрдХ-рдХреНрд▓рд┐рдХ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ |
| ЁЯФД **рдбреАрдмреА рдмреИрдХрдЕрдк** | рд╕рднреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдмреИрдХрдЕрдк, рдкреБрдирд░реНрд╕реНрдерд╛рдкрдирд╛, рдирд┐рд░реНрдпрд╛рдд рдФрд░ рдЖрдпрд╛рдд |
| ЁЯМР **рдЕрдВрддрд░реНрд░рд╛рд╖реНрдЯреНрд░реАрдпрдХрд░рдг** | рдиреЗрдХреНрд╕реНрдЯ-рдЗрдВрдЯрд▓ рдХреЗ рд╕рд╛рде рдкреВрд░реНрдг i18n - рдЕрдВрдЧреНрд░реЗрдЬреА + рдкреБрд░реНрддрдЧрд╛рд▓реА (рдмреНрд░рд╛рдЬреАрд▓) рд╕рдорд░реНрдерди |
| ЁЯМН **рднрд╛рд╖рд╛ рдЪрдпрдирдХрд░реНрддрд╛** | рд░реАрдпрд▓-рдЯрд╛рдЗрдо рднрд╛рд╖рд╛ рд╕реНрд╡рд┐рдЪрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╣реЗрдбрд░ рдореЗрдВ рдЧреНрд▓реЛрдм рдЖрдЗрдХрди (ЁЯЗ║ЁЯЗ╕/ЁЯЗзЁЯЗ╖) |
| ЁЯУВ **рдХрд╕реНрдЯрдо рдбреЗрдЯрд╛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛** | `DATA_DIR` env var рдбрд┐рдлрд╝реЙрд▓реНрдЯ `~/.omniroute` рд╕рдВрдЧреНрд░рд╣рдг рдкрде рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП |
ЁЯУЦ рд╕реБрд╡рд┐рдзрд╛ рд╡рд┐рд╡рд░рдг
### ЁЯОп рд╕реНрдорд╛рд░реНрдЯ 4-рдЯрд┐рдпрд░ рдлрд╝реЙрд▓рдмреИрдХ
рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдлрд╝реЙрд▓рдмреИрдХ рдХреЗ рд╕рд╛рде рдХреЙрдореНрдмреЛ рдмрдирд╛рдПрдВ:
### ЁЯУК рд░реАрдпрд▓-рдЯрд╛рдЗрдо рдХреЛрдЯрд╛ рдЯреНрд░реИрдХрд┐рдВрдЧ
- рдкреНрд░рддрд┐ рдкреНрд░рджрд╛рддрд╛ рдЯреЛрдХрди рдЦрдкрдд
- рдЙрд▓рдЯреА рдЧрд┐рдирддреА рд░реАрд╕реЗрдЯ рдХрд░реЗрдВ (5 рдШрдВрдЯреЗ, рджреИрдирд┐рдХ, рд╕рд╛рдкреНрддрд╛рд╣рд┐рдХ)
- рднреБрдЧрддрд╛рди рдХрд┐рдП рдЧрдП рд╕реНрддрд░реЛрдВ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧрдд рдЕрдиреБрдорд╛рди
- рдорд╛рд╕рд┐рдХ рдЦрд░реНрдЪ рд░рд┐рдкреЛрд░реНрдЯ
### ЁЯФД рдкреНрд░рд╛рд░реВрдк рдЕрдиреБрд╡рд╛рдж
рдкреНрд░рд╛рд░реВрдкреЛрдВ рдХреЗ рдмреАрдЪ рдирд┐рд░реНрдмрд╛рдз рдЕрдиреБрд╡рд╛рдж:
- **рдУрдкрдирдПрдЖрдИ** тЖФ **рдХреНрд▓рд╛рдЙрдб** тЖФ **рдорд┐рдереБрди** тЖФ **рдУрдкрдирдПрдЖрдИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдПрдВ**
- рдЖрдкрдХрд╛ рд╕реАрдПрд▓рдЖрдИ рдЙрдкрдХрд░рдг рдУрдкрдирдПрдЖрдИ рдкреНрд░рд╛рд░реВрдк рднреЗрдЬрддрд╛ рд╣реИ тЖТ рдУрдордиреАрд░реВрдЯ рдЕрдиреБрд╡рд╛рдж рдХрд░рддрд╛ рд╣реИ тЖТ рдкреНрд░рджрд╛рддрд╛ рдореВрд▓ рдкреНрд░рд╛рд░реВрдк рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ
- рдХрд╕реНрдЯрдо рдУрдкрдирдПрдЖрдИ рдПрдВрдбрдкреЙрдЗрдВрдЯреНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рдЯреВрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
- **рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕реНрд╡рдЪреНрдЫрддрд╛** - рд╕рдЦреНрдд рдУрдкрдирдПрдЖрдИ рдПрд╕рдбреАрдХреЗ рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП рдЧреИрд░-рдорд╛рдирдХ рдлрд╝реАрд▓реНрдб рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИ
- **рднреВрдорд┐рдХрд╛ рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг** - `developer` тЖТ рдЧреИрд░-OpenAI рдХреЗ рд▓рд┐рдП `system`; `system` тЖТ GLM/ERNIE рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП `user`
- **рдЯреИрдЧ рдирд┐рд╖реНрдХрд░реНрд╖рдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪреЗрдВ** - `` рдмреНрд▓реЙрдХ тЖТ рд╕реЛрдЪ рдореЙрдбрд▓ рдХреЗ рд▓рд┐рдП `reasoning_content`
- **рд╕рдВрд░рдЪрд┐рдд рдЖрдЙрдЯрдкреБрдЯ** тАФ `json_schema` тЖТ рдорд┐рдереБрди рд░рд╛рд╢рд┐ рдХрд╛ `responseMimeType`/`responseSchema`
### ЁЯСе рдорд▓реНрдЯреА-рдЕрдХрд╛рдЙрдВрдЯ рд╕рдкреЛрд░реНрдЯ
- рдкреНрд░рддрд┐ рдкреНрд░рджрд╛рддрд╛ рдПрдХрд╛рдзрд┐рдХ рдЦрд╛рддреЗ рдЬреЛрдбрд╝реЗрдВ
- рдСрдЯреЛ рд░рд╛рдЙрдВрдб-рд░реЙрдмрд┐рди рдпрд╛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛-рдЖрдзрд╛рд░рд┐рдд рд░реВрдЯрд┐рдВрдЧ
- рдХреЛрдЯрд╛ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдкрд░ рдЕрдЧрд▓реЗ рдЦрд╛рддреЗ рдореЗрдВ рдлрд╝реЙрд▓рдмреИрдХ
### ЁЯФД рдСрдЯреЛ рдЯреЛрдХрди рд░рд┐рдлреНрд░реЗрд╢
- OAuth рдЯреЛрдХрди рд╕рдорд╛рдкреНрддрд┐ рд╕реЗ рдкрд╣рд▓реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рддрд╛рдЬрд╝рд╛ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ
- рдХрд┐рд╕реА рдореИрдиреНрдпреБрдЕрд▓ рдкреБрди: рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ
- рд╕рднреА рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХреЗ рдмреАрдЪ рдирд┐рд░реНрдмрд╛рдз рдЕрдиреБрднрд╡
### ЁЯОи рдХрд╕реНрдЯрдо рдХреЙрдореНрдмреЛ
- рдЕрд╕реАрдорд┐рдд рдореЙрдбрд▓ рд╕рдВрдпреЛрдЬрди рдмрдирд╛рдПрдВ
- 6 рд░рдгрдиреАрддрд┐рдпрд╛рдБ: рдкрд╣рд▓реЗ рднрд░реЗрдВ, рд░рд╛рдЙрдВрдб-рд░реЙрдмрд┐рди, рджреЛ-рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рд╢рдХреНрддрд┐, рдпрд╛рджреГрдЪреНрдЫрд┐рдХ, рдХрдо рд╕реЗ рдХрдо рдЙрдкрдпреЛрдЧ, рд▓рд╛рдЧрдд-рдЕрдиреБрдХреВрд▓рд┐рдд
- рдХреНрд▓рд╛рдЙрдб рд╕рд┐рдВрдХ рдХреЗ рд╕рд╛рде рд╕рднреА рдбрд┐рд╡рд╛рдЗрд╕реЛрдВ рдкрд░ рдХреЙрдореНрдмреЛ рд╕рд╛рдЭрд╛ рдХрд░реЗрдВ
### ЁЯПе рд╕реНрд╡рд╛рд╕реНрдереНрдп рдбреИрд╢рдмреЛрд░реНрдб
- рд╕рд┐рд╕реНрдЯрдо рд╕реНрдерд┐рддрд┐ (рдЕрдкрдЯрд╛рдЗрдо, рд╕рдВрд╕реНрдХрд░рдг, рдореЗрдореЛрд░реА рдЙрдкрдпреЛрдЧ)
- рдкреНрд░рддрд┐ рдкреНрд░рджрд╛рддрд╛ рд╕рд░реНрдХрд┐рдЯ рдмреНрд░реЗрдХрд░ рдХреА рд╕реНрдерд┐рддрд┐ (рдмрдВрдж/рдЦреБрд▓рд╛/рдЖрдзрд╛ рдЦреБрд▓рд╛)
- рджрд░ рд╕реАрдорд╛ рд╕реНрдерд┐рддрд┐ рдФрд░ рд╕рдХреНрд░рд┐рдп рддрд╛рд▓рд╛рдмрдВрджреА
- рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреИрд╢ рдЖрдБрдХрдбрд╝реЗ
- рд╡рд┐рд▓рдВрдмрддрд╛ рдЯреЗрд▓реАрдореЗрдЯреНрд░реА (p50/p95/p99) + рд╢реАрдШреНрд░ рдХреИрд╢
- рдПрдХ рдХреНрд▓рд┐рдХ рд╕реЗ рд╕реНрд╡рд╛рд╕реНрдереНрдп рд╕реНрдерд┐рддрд┐ рд░реАрд╕реЗрдЯ рдХрд░реЗрдВ
### ЁЯФз рдЕрдиреБрд╡рд╛рджрдХ рдЦреЗрд▓ рдХрд╛ рдореИрджрд╛рди
рдУрдордиреАрд░реВрдЯ рдореЗрдВ рдбрд┐рдмрдЧрд┐рдВрдЧ, рдкрд░реАрдХреНрд╖рдг рдФрд░ рдПрдкреАрдЖрдИ рдЕрдиреБрд╡рд╛рджреЛрдВ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП **4 рдореЛрдб** рдХреЗ рд╕рд╛рде рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдЕрдиреБрд╡рд╛рджрдХ рдЦреЗрд▓ рдХрд╛ рдореИрджрд╛рди рд╢рд╛рдорд┐рд▓ рд╣реИ:
| рдореЛрдб | рд╡рд┐рд╡рд░рдг |
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **ЁЯТ╗рдЦреЗрд▓ рдХрд╛ рдореИрджрд╛рди** | рдкреНрд░рддреНрдпрдХреНрд╖ рдкреНрд░рд╛рд░реВрдк рдЕрдиреБрд╡рд╛рдж - рдХрд┐рд╕реА рднреА рдПрдкреАрдЖрдИ рдЕрдиреБрд░реЛрдз рдирд┐рдХрд╛рдп рдХреЛ рдкреЗрд╕реНрдЯ рдХрд░реЗрдВ рдФрд░ рддреБрд░рдВрдд рджреЗрдЦреЗрдВ рдХрд┐ рдУрдореНрдиреАрд░реВрдЯ рдкреНрд░рджрд╛рддрд╛ рдкреНрд░рд╛рд░реВрдкреЛрдВ (рдУрдкрдирдПрдЖрдИ тЖФ рдХреНрд▓рд╛рдЙрдб тЖФ рдЬреЗрдорд┐рдиреА тЖФ рд░рд┐рд╕реНрдкреЙрдиреНрд╕ рдПрдкреАрдЖрдИ) рдХреЗ рдмреАрдЪ рдЗрд╕рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдХреИрд╕реЗ рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдФрд░ рдкреНрд░рд╛рд░реВрдк рдСрдЯреЛ-рдбрд┐рдЯреЗрдХреНрд╢рди рд╢рд╛рдорд┐рд▓ рд╣реИред |
| **ЁЯТм рдЪреИрдЯ рдкрд░реАрдХреНрд╖рдХ** | рдУрдореНрдирд┐рд░реВрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЪреИрдЯ рдЕрдиреБрд░реЛрдз рднреЗрдЬреЗрдВ рдФрд░ рдкреВрд░реА рд░рд╛рдЙрдВрдб-рдЯреНрд░рд┐рдк рджреЗрдЦреЗрдВ: рдЖрдкрдХрд╛ рдЗрдирдкреБрдЯ, рдЕрдиреБрд╡рд╛рджрд┐рдд рдЕрдиреБрд░реЛрдз, рдкреНрд░рджрд╛рддрд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛, рдФрд░ рдЕрдиреБрд╡рд╛рджрд┐рдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╡рд╛рдкрд╕ред рдХреЙрдореНрдмреЛ рд░реВрдЯрд┐рдВрдЧ рдХреЛ рдорд╛рдиреНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдореВрд▓реНрдпред |
| **ЁЯзк рдЯреЗрд╕реНрдЯ рдмреЗрдВрдЪ** | рдмреИрдЪ рдкрд░реАрдХреНрд╖рдг рдореЛрдб - рд╡рд┐рднрд┐рдиреНрди рдЗрдирдкреБрдЯ рдФрд░ рдЕрдкреЗрдХреНрд╖рд┐рдд рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд╕рд╛рде рдХрдИ рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░реЗрдВ, рдЙрди рд╕рднреА рдХреЛ рдПрдХ рд╕рд╛рде рдЪрд▓рд╛рдПрдВ, рдФрд░ рдкреНрд░рджрд╛рддрд╛рдУрдВ рдФрд░ рдореЙрдбрд▓реЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреА рддреБрд▓рдирд╛ рдХрд░реЗрдВред |
| **ЁЯУ▒рд▓рд╛рдЗрд╡ рдореЙрдирд┐рдЯрд░** | рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдЕрдиреБрд░реЛрдз рдХреА рдирд┐рдЧрд░рд╛рдиреА - рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдУрдореНрдиреАрд░реВрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╡рд╛рд╣рд┐рдд рд╣реЛрддреЗ рд╣реБрдП рджреЗрдЦреЗрдВ, рдкреНрд░рд╛рд░реВрдк рдЕрдиреБрд╡рд╛рдж рдХреЛ рд▓рд╛рдЗрд╡ рд╣реЛрддреЗ рд╣реБрдП рджреЗрдЦреЗрдВ, рдФрд░ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреА рддреБрд░рдВрдд рдкрд╣рдЪрд╛рди рдХрд░реЗрдВред |
**рдкрд╣реБрдБрдЪ:** рдбреИрд╢рдмреЛрд░реНрдб тЖТ рдЕрдиреБрд╡рд╛рджрдХ (рд╕рд╛рдЗрдбрдмрд╛рд░)
### ЁЯТ╛ рдХреНрд▓рд╛рдЙрдб рд╕рд┐рдВрдХ
- рд╕рднреА рдбрд┐рд╡рд╛рдЗрд╕реЛрдВ рдореЗрдВ рд╕рд┐рдВрдХ рдкреНрд░рджрд╛рддрд╛, рдХреЙрдореНрдмреЛ рдФрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕
- рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкреГрд╖реНрдарднреВрдорд┐ рд╕рд┐рдВрдХ
- рд╕реБрд░рдХреНрд╖рд┐рдд рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рднрдВрдбрд╛рд░рдг
---
## ЁЯОп рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ
### рдХреЗрд╕ 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: "рдореБрдЭреЗ рд╢реВрдиреНрдп рд▓рд╛рдЧрдд рдЪрд╛рд╣рд┐рдП"
**рд╕рдорд╕реНрдпрд╛:** рд╕рджрд╕реНрдпрддрд╛рдПрдВ рд╡рд╣рди рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдПрдЖрдИ рдХреЛрдбрд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ
### рдХреЗрд╕ 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 рд╕рд╣рд╛рдпрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирд┐рдГрд╢реБрд▓реНрдХ
```
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...
```
---
## ЁЯУЦ рд╕реЗрдЯрдЕрдк рдЧрд╛рдЗрдб
ЁЯТ│ рд╕рджрд╕реНрдпрддрд╛ рдкреНрд░рджрд╛рддрд╛
### рдХреНрд▓рд╛рдЙрдб рдХреЛрдб (рдкреНрд░реЛ/рдореИрдХреНрд╕)
**рдкреНрд░реЛ рдЯрд┐рдк:** рдЬрдЯрд┐рд▓ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдУрдкрд╕ рдФрд░ рдЧрддрд┐ рдХреЗ рд▓рд┐рдП рд╕реЙрдиреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдУрдордиреАрд░реВрдЯ рдкреНрд░рддрд┐ рдореЙрдбрд▓ рдХреЛрдЯрд╛ рдЯреНрд░реИрдХ рдХрд░рддрд╛ рд╣реИ!
### рдУрдкрдирдПрдЖрдИ рдХреЛрдбреЗрдХреНрд╕ (рдкреНрд▓рд╕/рдкреНрд░реЛ)
### рдЬреЗрдорд┐рдиреА рд╕реАрдПрд▓рдЖрдИ (рдореБрдлрд╝реНрдд 180K/рдорд╛рд╣!)
**рд╕рд░реНрд╡реЛрддреНрддрдо рдореВрд▓реНрдп:** рд╡рд┐рд╢рд╛рд▓ рдирд┐рдГрд╢реБрд▓реНрдХ рд╕реНрддрд░! рд╕рд╢реБрд▓реНрдХ рд╕реНрддрд░реЛрдВ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
### рдЧрд┐рдЯрд╣рдм рдХреЛрдкрд╛рдпрд▓рдЯ
ЁЯФС API рдХреБрдВрдЬреА рдкреНрд░рджрд╛рддрд╛
### рдПрдирд╡реАрдбрд┐рдпрд╛ рдПрдирдЖрдИрдПрдо (рдореБрдлрд╝реНрдд 1000 рдХреНрд░реЗрдбрд┐рдЯ!)
1. рд╕рд╛рдЗрди рдЕрдк рдХрд░реЗрдВ: [build.nvidia.com](https://build.nvidia.com)
2. рдирд┐рдГрд╢реБрд▓реНрдХ рдПрдкреАрдЖрдИ рдХреБрдВрдЬреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ (1000 рдЕрдиреБрдорд╛рди рдХреНрд░реЗрдбрд┐рдЯ рд╢рд╛рдорд┐рд▓)
3. рдбреИрд╢рдмреЛрд░реНрдб тЖТ рдкреНрд░рджрд╛рддрд╛ рдЬреЛрдбрд╝реЗрдВ тЖТ рдПрдирд╡реАрдбрд┐рдпрд╛ рдПрдирдЖрдИрдПрдо:
- рдПрдкреАрдЖрдИ рдХреБрдВрдЬреА: `nvapi-your-key`
**рдореЙрдбрд▓:** `nvidia/llama-3.3-70b-instruct`, `nvidia/mistral-7b-instruct`, рдФрд░ 50+ рдЕрдзрд┐рдХ
**рдкреНрд░реЛ рдЯрд┐рдк:** рдУрдкрдирдПрдЖрдИ-рд╕рдВрдЧрдд рдПрдкреАрдЖрдИ - рдУрдордиреАрд░реВрдЯ рдХреЗ рдкреНрд░рд╛рд░реВрдк рдЕрдиреБрд╡рд╛рдж рдХреЗ рд╕рд╛рде рд╕рд╣рдЬрддрд╛ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ!
### рдбреАрдкрд╕реАрдХ
1. рд╕рд╛рдЗрди рдЕрдк рдХрд░реЗрдВ: [platform.deepseek.com](https://platform.deepseek.com)
2. рдПрдкреАрдЖрдИ рдХреБрдВрдЬреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
3. рдбреИрд╢рдмреЛрд░реНрдб тЖТ рдкреНрд░рджрд╛рддрд╛ рдЬреЛрдбрд╝реЗрдВ тЖТ рдбреАрдкрд╕реАрдХ
**рдореЙрдбрд▓:** `deepseek/deepseek-chat`, `deepseek/deepseek-coder`
### рдЧреНрд░реЛрдХ (рдирд┐рдГрд╢реБрд▓реНрдХ рдЯрд┐рдпрд░ рдЙрдкрд▓рдмреНрдз!)
1. рд╕рд╛рдЗрди рдЕрдк рдХрд░реЗрдВ: [console.groq.com](https://console.groq.com)
2. рдПрдкреАрдЖрдИ рдХреБрдВрдЬреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ (рдлреНрд░реА рдЯрд┐рдпрд░ рд╢рд╛рдорд┐рд▓)
3. рдбреИрд╢рдмреЛрд░реНрдб тЖТ рдкреНрд░рджрд╛рддрд╛ рдЬреЛрдбрд╝реЗрдВ тЖТ рдЧреНрд░реЛрдХ
**рдореЙрдбрд▓:** `groq/llama-3.3-70b`, `groq/mixtral-8x7b`
**рдкреНрд░реЛ рдЯрд┐рдк:** рдЕрд▓реНрдЯреНрд░рд╛-рдлрд╛рд╕реНрдЯ рдЕрдиреБрдорд╛рди - рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдХреЛрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡реЛрддреНрддрдо!
### рдУрдкрдирд░рд╛рдЙрдЯрд░ (100+ рдореЙрдбрд▓)
1. рд╕рд╛рдЗрди рдЕрдк рдХрд░реЗрдВ: [openrouter.ai](https://openrouter.ai)
2. рдПрдкреАрдЖрдИ рдХреБрдВрдЬреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
3. рдбреИрд╢рдмреЛрд░реНрдб тЖТ рдкреНрд░рджрд╛рддрд╛ рдЬреЛрдбрд╝реЗрдВ тЖТ рдУрдкрдирд░рд╛рдЙрдЯрд░
**рдореЙрдбрд▓:** рдПрдХ рд╣реА рдПрдкреАрдЖрдИ рдХреБрдВрдЬреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рднреА рдкреНрд░рдореБрдЦ рдкреНрд░рджрд╛рддрд╛рдУрдВ рд╕реЗ 100+ рдореЙрдбрд▓ рддрдХ рдкрд╣реБрдВрдЪреЗрдВред
ЁЯТ░ рд╕рд╕реНрддреЗ рдкреНрд░рджрд╛рддрд╛ (рдмреИрдХрдЕрдк)
### GLM-4.7 (рджреИрдирд┐рдХ рд░реАрд╕реЗрдЯ, $0.6/1 рдорд┐рд▓рд┐рдпрди)
1. рд╕рд╛рдЗрди рдЕрдк рдХрд░реЗрдВ: [Zhipu AI](https://open.bigmodel.cn/)
2. рдХреЛрдбрд┐рдВрдЧ рдпреЛрдЬрдирд╛ рд╕реЗ рдПрдкреАрдЖрдИ рдХреБрдВрдЬреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
3. рдбреИрд╢рдмреЛрд░реНрдб тЖТ рдПрдкреАрдЖрдИ рдХреБрдВрдЬреА рдЬреЛрдбрд╝реЗрдВ:
- рдкреНрд░рджрд╛рддрд╛: `glm`
- рдПрдкреАрдЖрдИ рдХреБрдВрдЬреА: `your-key`
**рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:** `glm/glm-4.7`
**рдкреНрд░реЛ рдЯрд┐рдк:** рдХреЛрдбрд┐рдВрдЧ рдкреНрд▓рд╛рди 1/7 рд▓рд╛рдЧрдд рдкрд░ 3├Ч рдХреЛрдЯрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ! рдкреНрд░рддрд┐рджрд┐рди рд╕реБрдмрд╣ 10:00 рдмрдЬреЗ рд░реАрд╕реЗрдЯ рдХрд░реЗрдВред
### рдорд┐рдиреАрдореИрдХреНрд╕ рдПрдо2.1 (5 рдШрдВрдЯреЗ рд░реАрд╕реЗрдЯ, $0.20/1 рдорд┐рд▓рд┐рдпрди)
1. рд╕рд╛рдЗрди рдЕрдк рдХрд░реЗрдВ: [MiniMax](https://www.minimax.io/)
2. рдПрдкреАрдЖрдИ рдХреБрдВрдЬреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
3. рдбреИрд╢рдмреЛрд░реНрдб тЖТ рдПрдкреАрдЖрдИ рдХреБрдВрдЬреА рдЬреЛрдбрд╝реЗрдВ
**рдЙрдкрдпреЛрдЧ:** `minimax/MiniMax-M2.1`
**рдкреНрд░реЛ рдЯрд┐рдк:** рд▓рдВрдмреЗ рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╕рд╕реНрддрд╛ рд╡рд┐рдХрд▓реНрдк (1M рдЯреЛрдХрди)!
### рдХрд┐рдореА K2 ($9/рдорд╛рд╣ рдлреНрд▓реИрдЯ)
1. рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдВ: [Moonshot AI](https://platform.moonshot.ai/)
2. рдПрдкреАрдЖрдИ рдХреБрдВрдЬреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
3. рдбреИрд╢рдмреЛрд░реНрдб тЖТ рдПрдкреАрдЖрдИ рдХреБрдВрдЬреА рдЬреЛрдбрд╝реЗрдВ
**рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:** `kimi/kimi-latest`
**рдкреНрд░реЛ рдЯрд┐рдк:** 10рдПрдо рдЯреЛрдХрди рдХреЗ рд▓рд┐рдП рдирд┐рд╢реНрдЪрд┐рдд $9/рдорд╛рд╣ = $0.90/1рдПрдо рдкреНрд░рднрд╛рд╡реА рд▓рд╛рдЧрдд!
ЁЯЖУ рдореБрдлрд╝реНрдд рдкреНрд░рджрд╛рддрд╛ (рдЖрдкрд╛рддрдХрд╛рд▓реАрди рдмреИрдХрдЕрдк)
### рдЖрдИрдлреНрд▓реЛ (8 рдореБрдлрд╝реНрдд рдореЙрдбрд▓)
### рдХреНрд╡реЗрди (3 рдореБрдлрд╝реНрдд рдореЙрдбрд▓)
### рдХрд┐рд░реЛ (рдХреНрд▓рд╛рдЙрдб рдлреНрд░реА)
ЁЯОи рдХреЙрдореНрдмреЛ рдмрдирд╛рдПрдВ
### рдЙрджрд╛рд╣рд░рдг 1: рд╕рджрд╕реНрдпрддрд╛ рдЕрдзрд┐рдХрддрдо рдХрд░реЗрдВ тЖТ рд╕рд╕реНрддрд╛ рдмреИрдХрдЕрдк
### рдЙрджрд╛рд╣рд░рдг 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 рдПрдХреАрдХрд░рдг
### рдХрд░реНрд╕рд░ рдЖрдИрдбреАрдИ
### рдХреНрд▓рд╛рдЙрдб рдХреЛрдб
рдПрдХ-рдХреНрд▓рд┐рдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдбреИрд╢рдмреЛрд░реНрдб рдореЗрдВ **CLI рдЯреВрд▓реНрд╕** рдкреГрд╖реНрда рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдпрд╛ `~/.claude/settings.json` рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВред
### рдХреЛрдбреЗрдХреНрд╕ рд╕реАрдПрд▓рдЖрдИ
### рдУрдкрдирдХреНрд▓реЙ
**рд╡рд┐рдХрд▓реНрдк 1 - рдбреИрд╢рдмреЛрд░реНрдб (рдЕрдиреБрд╢рдВрд╕рд┐рдд):**
**рд╡рд┐рдХрд▓реНрдк 2 - рдореИрдиреБрдЕрд▓:** рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ `~/.openclaw/openclaw.json`:
> **рдзреНрдпрд╛рди рджреЗрдВ:** рдУрдкрдирдХреНрд▓рд╛рд╡ рдХреЗрд╡рд▓ рд╕реНрдерд╛рдиреАрдп рдУрдордиреАрд░реВрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред IPv6 рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рд╕рдорд╕реНрдпрд╛рдУрдВ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП `localhost` рдХреЗ рдмрдЬрд╛рдп `127.0.0.1` рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
### рдХреНрд▓рд╛рдЗрди / рдЬрд╛рд░реА рд░рдЦреЗрдВ / рд░реВрдХреЛрдб
---
## ЁЯУК рдЙрдкрд▓рдмреНрдз рдореЙрдбрд▓
рд╕рднреА рдЙрдкрд▓рдмреНрдз рдореЙрдбрд▓ рджреЗрдЦреЗрдВ
**рдХреНрд▓рд╛рдЙрдб рдХреЛрдб (`cc/`)** - рдкреНрд░реЛ/рдореИрдХреНрд╕:
- `cc/claude-opus-4-6`
- `cc/claude-sonnet-4-5-20250929`
- `cc/claude-haiku-4-5-20251001`
**рдХреЛрдбреЗрдХреНрд╕ (`cx/`)** - рдкреНрд▓рд╕/рдкреНрд░реЛ:
-
- `cx/gpt-5.1-codex-max`
**рдорд┐рдереБрди рд╕реАрдПрд▓рдЖрдИ (`gc/`)** - рдореБрдлрд╝реНрдд:
- `gc/gemini-3-flash-preview`
- `gc/gemini-2.5-pro`
**рдЧрд┐рдЯрд╣рдм рдХреЛрдкрд╛рдпрд▓рдЯ (`gh/`)**:
- `gh/gpt-5`
- `gh/claude-4.5-sonnet`
**рдПрдирд╡реАрдбрд┐рдпрд╛ рдПрдирдЖрдИрдПрдо (`nvidia/`)** - рдореБрдлрд╝реНрдд рдХреНрд░реЗрдбрд┐рдЯ:
- `nvidia/llama-3.3-70b-instruct`
- `nvidia/mistral-7b-instruct`
- [build.nvidia.com](https://build.nvidia.com) рдкрд░ 50+ рдЕрдзрд┐рдХ рдореЙрдбрд▓
**рдЬреАрдПрд▓рдПрдо (`glm/`)** - $0.6/1M:
- `glm/glm-4.7`
**рдорд┐рдиреАрдореИрдХреНрд╕ (`minimax/`)** - $0.2/1M:
- `minimax/MiniMax-M2.1`
**iFlow (`if/`)** - рдореБрдлрд╝реНрдд:
- `if/kimi-k2-thinking`
- `if/qwen3-coder-plus`
- `if/deepseek-r1`
- `if/glm-4.7`
- `if/minimax-m2`
**рдХреНрд╡реЗрди (`qw/`)** - рдореБрдлрд╝реНрдд:
- `qw/qwen3-coder-plus`
- `qw/qwen3-coder-flash`
**рдХрд┐рд░реЛ (`kr/`)** - рдореБрдлрд╝реНрдд:
- `kr/claude-sonnet-4.5`
- `kr/claude-haiku-4.5`
**рдУрдкрдирд░рд╛рдЙрдЯрд░ (`or/`)** - 100+ рдореЙрдбрд▓:
- `or/anthropic/claude-4-sonnet`
- `or/google/gemini-2.5-pro`
- [openrouter.ai/models](https://openrouter.ai/models) рд╕реЗ рдХреЛрдИ рднреА рдореЙрдбрд▓
---
## ЁЯзк рдореВрд▓реНрдпрд╛рдВрдХрди (Evaluations)
рдУрдордиреАрд░реВрдЯ рдореЗрдВ рдЧреЛрд▓реНрдбрди рд╕реЗрдЯ рдХреЗ рдореБрдХрд╛рдмрд▓реЗ рдПрд▓рдПрд▓рдПрдо рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдЧреБрдгрд╡рддреНрддрд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдореВрд▓реНрдпрд╛рдВрдХрди рдврд╛рдВрдЪрд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рдбреИрд╢рдмреЛрд░реНрдб рдореЗрдВ **рдПрдирд╛рд▓рд┐рдЯрд┐рдХреНрд╕ тЖТ рдЗрд╡реЗрд▓реНрд╕** рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░реЗрдВред
### рдмрд┐рд▓реНрдЯ-рдЗрди рдЧреЛрд▓реНрдбрди рд╕реЗрдЯ
рдкреНрд░реА-рд▓реЛрдбреЗрдб "рдУрдореНрдиреАрд░реВрдЯ рдЧреЛрд▓реНрдбрди рд╕реЗрдЯ" рдореЗрдВ 10 рдкрд░реАрдХреНрд╖рдг рдорд╛рдорд▓реЗ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
- рдирдорд╕реНрддреЗ, рдЧрдгрд┐рдд, рднреВрдЧреЛрд▓, рдХреЛрдб рдЬрдирд░реЗрд╢рди
- JSON рдкреНрд░рд╛рд░реВрдк рдЕрдиреБрдкрд╛рд▓рди, рдЕрдиреБрд╡рд╛рдж, рдорд╛рд░реНрдХрдбрд╛рдЙрди
- рд╕реБрд░рдХреНрд╖рд╛ рдЗрдирдХрд╛рд░ (рд╣рд╛рдирд┐рдХрд╛рд░рдХ рд╕рд╛рдордЧреНрд░реА), рдЧрд┐рдирддреА, рдмреВрд▓рд┐рдпрди рддрд░реНрдХ
### рдореВрд▓реНрдпрд╛рдВрдХрди рд░рдгрдиреАрддрд┐рдпрд╛рдБ
| рд░рдгрдиреАрддрд┐ | рд╡рд┐рд╡рд░рдг | рдЙрджрд╛рд╣рд░рдг |
| ---------- | ------------------------------------------------- | -------------------------------- |
| `exact` | рдЖрдЙрдЯрдкреБрдЯ рдмрд┐рд▓реНрдХреБрд▓ рдореЗрд▓ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП | `"4"` |
| `contains` | рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рд╕рдмрд╕реНрдЯреНрд░рд┐рдВрдЧ (рдХреЗрд╕-рдЕрд╕рдВрд╡реЗрджрдирд╢реАрд▓) рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП | `"Paris"` |
| `regex` | рдЖрдЙрдЯрдкреБрдЯ рд░реЗрдЧреЗрдХреНрд╕ рдкреИрдЯрд░реНрди рд╕реЗ рдореЗрд▓ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП | `"1.*2.*3"` |
| `custom` | рдХрд╕реНрдЯрдо рдЬреЗрдПрд╕ рдлрд╝рдВрдХреНрд╢рди рд╕рд╣реА/рдЧрд▓рдд рд▓реМрдЯрд╛рддрд╛ рд╣реИ | `(output) => output.length > 10` |
---
## ЁЯРЫ рд╕рдорд╕реНрдпрд╛ рдирд┐рд╡рд╛рд░рдг
рд╕рдорд╕реНрдпрд╛ рдирд┐рд╡рд╛рд░рдг рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ
**"рднрд╛рд╖рд╛ рдореЙрдбрд▓ рдиреЗ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛"**
- рдкреНрд░рджрд╛рддрд╛ рдХреЛрдЯрд╛ рд╕рдорд╛рдкреНрдд тЖТ рдбреИрд╢рдмреЛрд░реНрдб рдХреЛрдЯрд╛ рдЯреНрд░реИрдХрд░ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ
- рд╕рдорд╛рдзрд╛рди: рдХреЙрдореНрдмреЛ рдлрд╝реЙрд▓рдмреИрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдпрд╛ рд╕рд╕реНрддреЗ рд╕реНрддрд░ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВ
**рджрд░ рд╕реАрдорд┐рдд рдХрд░рдирд╛**
- рд╕рджрд╕реНрдпрддрд╛ рдХреЛрдЯрд╛ рдЦрд╝рддреНрдо тЖТ GLM/MiniMax рдкрд░ рдлрд╝реЙрд▓рдмреИрдХ
- рдХреЙрдореНрдмреЛ рдЬреЛрдбрд╝реЗрдВ: `cc/claude-opus-4-6 тЖТ glm/glm-4.7 тЖТ if/kimi-k2-thinking`
**OAuth рдЯреЛрдХрди рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛**
- рдУрдореНрдирд┐рд░реВрдЯ рджреНрд╡рд╛рд░рд╛ рд╕реНрд╡рддрдГ рддрд╛рдЬрд╝рд╛
- рдпрджрд┐ рд╕рдорд╕реНрдпрд╛ рдмрдиреА рд░рд╣рддреА рд╣реИ: рдбреИрд╢рдмреЛрд░реНрдб тЖТ рдкреНрд░рджрд╛рддрд╛ тЖТ рдкреБрдирдГ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ
**рдЙрдЪреНрдЪ рд▓рд╛рдЧрдд**
- рдбреИрд╢рдмреЛрд░реНрдб тЖТ рд▓рд╛рдЧрдд рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рдЖрдБрдХрдбрд╝реЗ рдЬрд╛рдБрдЪреЗрдВ
- рдкреНрд░рд╛рдердорд┐рдХ рдореЙрдбрд▓ рдХреЛ рдЬреАрдПрд▓рдПрдо/рдорд┐рдиреАрдореИрдХреНрд╕ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВ
- рдЧреИрд░-рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдлреНрд░реА рдЯрд┐рдпрд░ (рдорд┐рдереБрди рд╕реАрдПрд▓рдЖрдИ, рдЖрдИрдлреНрд▓реЛ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
**рдбреИрд╢рдмреЛрд░реНрдб рдЧрд▓рдд рдкреЛрд░реНрдЯ рдкрд░ рдЦреБрд▓рддрд╛ рд╣реИ**
- `PORT=20128` рдФрд░ `NEXT_PUBLIC_BASE_URL=http://localhost:20128` рд╕реЗрдЯ рдХрд░реЗрдВ
**рдХреНрд▓рд╛рдЙрдб рд╕рд┐рдВрдХ рддреНрд░реБрдЯрд┐рдпрд╛рдБ**
- рдЕрдкрдиреЗ рдЪрд▓ рд░рд╣реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП `BASE_URL` рдЕрдВрдХ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ
- рдЕрдкрдиреЗ рдЕрдкреЗрдХреНрд╖рд┐рдд рдХреНрд▓рд╛рдЙрдб рдПрдВрдбрдкреЙрдЗрдВрдЯ рдкрд░ `CLOUD_URL` рдкреЙрдЗрдВрдЯ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВ
- `NEXT_PUBLIC_*` рдорд╛рдиреЛрдВ рдХреЛ рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рдорд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрд░реЗрдЦрд┐рдд рд░рдЦреЗрдВ
**рдкрд╣рд▓рд╛ рд▓реЙрдЧрд┐рди рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛**
- `.env` рдореЗрдВ `INITIAL_PASSWORD` рдХреЛ рдЬрд╛рдВрдЪреЗрдВ
- рдпрджрд┐ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рдлрд╝реЙрд▓рдмреИрдХ рдкрд╛рд╕рд╡рд░реНрдб `123456` рд╣реИ
**рдХреЛрдИ рдЕрдиреБрд░реЛрдз рд▓реЙрдЧ рдирд╣реАрдВ**
- `.env` рдореЗрдВ `ENABLE_REQUEST_LOGS=true` рд╕реЗрдЯ рдХрд░реЗрдВ
**рдХрдиреЗрдХреНрд╢рди рдкрд░реАрдХреНрд╖рдг OpenAI-рд╕рдВрдЧрдд рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП "рдЕрдорд╛рдиреНрдп" рджрд┐рдЦрд╛рддрд╛ рд╣реИ**
- рдХрдИ рдкреНрд░рджрд╛рддрд╛ `/models` рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ
- рдУрдордиреАрд░реВрдЯ v1.0.6+ рдореЗрдВ рдЪреИрдЯ рдкреВрд░реНрдгрддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлрд╝реЙрд▓рдмреИрдХ рд╕рддреНрдпрд╛рдкрди рд╢рд╛рдорд┐рд▓ рд╣реИ
- рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдзрд╛рд░ URL рдореЗрдВ `/v1` рдкреНрд░рддреНрдпрдп рд╢рд╛рдорд┐рд▓ рд╣реЛ
---
## ЁЯЫая╕П рдЯреЗрдХ рд╕реНрдЯреИрдХ
- **рд░рдирдЯрд╛рдЗрдо**: Node.js 18тАУ22 LTS (тЪая╕П Node.js 24+ **рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ** рд╣реИ - `better-sqlite3` рдореВрд▓ рдмрд╛рдпрдиреЗрд░рд┐рдЬрд╝ рдЕрд╕рдВрдЧрдд рд╣реИрдВ)
- **рднрд╛рд╖рд╛**: рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ 5.9 - **100% рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ** `src/` рдФрд░ `open-sse/` (v1.0.6) рдореЗрдВ
- **рдлреНрд░реЗрдорд╡рд░реНрдХ**: рдиреЗрдХреНрд╕реНрдЯ.рдЬреЗрдПрд╕ 16 + рд░рд┐рдПрдХреНрдЯ 19 + рдЯреЗрд▓рд╡рд┐рдВрдб рд╕реАрдПрд╕рдПрд╕ 4
- **рдбреЗрдЯрд╛рдмреЗрд╕**: рд▓реЛрдбреАрдмреА (JSON) + SQLite (рдбреЛрдореЗрди рд╕реНрдерд┐рддрд┐ + рдкреНрд░реЙрдХреНрд╕реА рд▓реЙрдЧ)
- **рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ**: рд╕рд░реНрд╡рд░-рднреЗрдЬреЗ рдЧрдП рдЗрд╡реЗрдВрдЯ (рдПрд╕рдПрд╕рдИ)
- **рдкреНрд░рд╛рдорд╛рдгрд┐рдХ**: OAuth 2.0 (PKCE) + JWT + API рдХреБрдВрдЬрд┐рдпрд╛рдБ
- **рдкрд░реАрдХреНрд╖рдг**: Node.js рдкрд░реАрдХреНрд╖рдг рдзрд╛рд╡рдХ (368+ рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг)
- **рд╕реАрдЖрдИ/рд╕реАрдбреА**: рдЧрд┐рдЯрд╣рдм рдХреНрд░рд┐рдпрд╛рдПрдБ (рдСрдЯреЛ рдПрдирдкреАрдПрдо рдкреНрд░рдХрд╛рд╢рди + рд░рд┐рд▓реАрдЬ рдкрд░ рдбреЙрдХрд░ рд╣рдм)
- **рд╡реЗрдмрд╕рд╛рдЗрдЯ**: [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)
- **рд▓рдЪреАрд▓рд╛рдкрди**: рд╕рд░реНрдХрд┐рдЯ рдмреНрд░реЗрдХрд░, рдПрдХреНрд╕рдкреЛрдиреЗрдВрд╢рд┐рдпрд▓ рдмреИрдХрдСрдлрд╝, рдПрдВрдЯреА-рдердВрдбрд░рд┐рдВрдЧ рдЭреБрдВрдб, рдЯреАрдПрд▓рдПрд╕ рд╕реНрдкреВрдлрд┐рдВрдЧ
---
## ЁЯУЦ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг
| рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ | рд╡рд┐рд╡рд░рдг |
| -------------------------------------------- | ------------------------------------------- |
| [User Guide](docs/USER_GUIDE.md) | рдкреНрд░рджрд╛рддрд╛, рдХреЙрдореНрдмреЛ, рд╕реАрдПрд▓рдЖрдИ рдПрдХреАрдХрд░рдг, рддреИрдирд╛рддреА |
| [API Reference](docs/API_REFERENCE.md) | рдЙрджрд╛рд╣рд░рдг рд╕рд╣рд┐рдд рд╕рднреА рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ |
| [Troubleshooting](docs/TROUBLESHOOTING.md) | рд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╕реНрдпрд╛рдПрдБ рдПрд╡рдВ рд╕рдорд╛рдзрд╛рди |
| [Architecture](docs/ARCHITECTURE.md) | рд╕рд┐рд╕реНрдЯрдо рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдФрд░ рдЖрдВрддрд░рд┐рдХ |
| [Contributing](CONTRIBUTING.md) | рд╡рд┐рдХрд╛рд╕ рд╕реЗрдЯрдЕрдк рдФрд░ рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢ |
| [OpenAPI Spec](docs/openapi.yaml) | рдУрдкрдирдПрдкреАрдЖрдИ 3.0 рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛ |
| [Security Policy](SECURITY.md) | рднреЗрджреНрдпрддрд╛ рд░рд┐рдкреЛрд░реНрдЯрд┐рдВрдЧ рдФрд░ рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░рдерд╛рдПрдВ |
| [VM Deployment](docs/VM_DEPLOYMENT_GUIDE.md) | рд╕рдВрдкреВрд░реНрдг рдЧрд╛рдЗрдб: VM + nginx + Cloudflare рд╕реЗрдЯрдЕрдк |
| [Features Gallery](docs/FEATURES.md) | рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдХреЗ рд╕рд╛рде рд╡рд┐рдЬреБрдЕрд▓ рдбреИрд╢рдмреЛрд░реНрдб рдЯреВрд░ |
### ЁЯУ╕ рдбреИрд╢рдмреЛрд░реНрдб рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди
рдбреИрд╢рдмреЛрд░реНрдб рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ
| рдкреЗрдЬ | рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ |
| ----------------- | ------------------------------------------------- |
| **рдкреНрд░рджрд╛рддрд╛** |  |
| **рдХреЙрдореНрдмреЛрд╕** |  |
| **рдПрдирд╛рд▓рд┐рдЯрд┐рдХреНрд╕** |  |
| **рд╕реНрд╡рд╛рд╕реНрдереНрдп** |  |
| **рдЕрдиреБрд╡рд╛рджрдХ** |  |
| **рд╕реЗрдЯрд┐рдВрдЧреНрд╕** |  |
| **рд╕реАрдПрд▓рдЖрдИ рдЙрдкрдХрд░рдг** |  |
| **рдЙрдкрдпреЛрдЧ рд▓реЙрдЧ** |  |
| **рд╕рдорд╛рдкреНрддрд┐ рдмрд┐рдВрджреБ** |  |
---
## ЁЯЧ║я╕П рд░реЛрдбрдореИрдк
рдУрдореНрдирд┐рд░реВрдЯ рдиреЗ рдХрдИ рд╡рд┐рдХрд╛рд╕ рдЪрд░рдгреЛрдВ рдореЗрдВ **210+ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рд╣реИ**ред рдпрд╣рд╛рдВ рдкреНрд░рдореБрдЦ рдХреНрд╖реЗрддреНрд░ рд╣реИрдВ:
| рд╢реНрд░реЗрдгреА | рдирд┐рдпреЛрдЬрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ | рд╣рд╛рдЗрд▓рд╛рдЗрдЯреНрд╕ |
| --------------------------- | ----------------- | ------------------------------------------------------------------------------------------- |
| ЁЯза **рд░реВрдЯрд┐рдВрдЧ рдФрд░ рдЗрдВрдЯреЗрд▓рд┐рдЬреЗрдВрд╕** | 25+ | рдиреНрдпреВрдирддрдо-рд╡рд┐рд▓рдВрдмрддрд╛ рд░реВрдЯрд┐рдВрдЧ, рдЯреИрдЧ-рдЖрдзрд╛рд░рд┐рдд рд░реВрдЯрд┐рдВрдЧ, рдХреЛрдЯрд╛ рдкреНрд░реАрдлрд╝реНрд▓рд╛рдЗрдЯ, рдкреА2рд╕реА рдЦрд╛рддрд╛ рдЪрдпрди |
| ЁЯФТ **рд╕реБрд░рдХреНрд╖рд╛ рдПрд╡рдВ рдЕрдиреБрдкрд╛рд▓рди** | 20+ | рдПрд╕рдПрд╕рдЖрд░рдПрдл рд╣рд╛рд░реНрдбрдирд┐рдВрдЧ, рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓ рдХреНрд▓реЛрдХрд┐рдВрдЧ, рдкреНрд░рддрд┐ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рджрд░-рд╕реАрдорд╛, рдкреНрд░рдмрдВрдзрди рдХреБрдВрдЬреА рд╕реНрдХреЛрдкрд┐рдВрдЧ |
| ЁЯУК **рдЕрд╡рд▓реЛрдХрдирд╢реАрд▓рддрд╛** | 15+ | рдУрдкрди рдЯреЗрд▓реАрдореЗрдЯреНрд░реА рдПрдХреАрдХрд░рдг, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдХреЛрдЯрд╛ рдирд┐рдЧрд░рд╛рдиреА, тАЛтАЛрдкреНрд░рддрд┐ рдореЙрдбрд▓ рд▓рд╛рдЧрдд рдЯреНрд░реИрдХрд┐рдВрдЧ |
| ЁЯФД **рдкреНрд░рджрд╛рддрд╛ рдПрдХреАрдХрд░рдг** | 20+ | рдбрд╛рдпрдиреЗрдорд┐рдХ рдореЙрдбрд▓ рд░рдЬрд┐рд╕реНрдЯреНрд░реА, рдкреНрд░рджрд╛рддрд╛ рдХреВрд▓рдбрд╛рдЙрди, рдорд▓реНрдЯреА-рдЕрдХрд╛рдЙрдВрдЯ рдХреЛрдбреЗрдХреНрд╕, рдХреЛрдкрд╛рдпрд▓рдЯ рдХреЛрдЯрд╛ рдкрд╛рд░реНрд╕рд┐рдВрдЧ |
| тЪб **рдкреНрд░рджрд░реНрд╢рди** | 15+ | рджреЛрд╣рд░реА рдХреИрд╢ рдкрд░рдд, рд╢реАрдШреНрд░ рдХреИрд╢, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреИрд╢, рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдХреАрдкрд▓рд╛рдЗрд╡, рдмреИрдЪ рдПрдкреАрдЖрдИ |
| ЁЯМР **рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░** | 10+ | рд╡реЗрдмрд╕реЙрдХреЗрдЯ рдПрдкреАрдЖрдИ, рдХреЙрдиреНрдлрд┐рдЧ рд╣реЙрдЯ-рд░реАрд▓реЛрдб, рд╡рд┐рддрд░рд┐рдд рдХреЙрдиреНрдлрд┐рдЧ рд╕реНрдЯреЛрд░, рд╡рд╛рдгрд┐рдЬреНрдпрд┐рдХ рдореЛрдб |
### ЁЯФЬ рдЬрд▓реНрдж рдЖ рд░рд╣рд╛ рд╣реИ
- ЁЯФЧ **рдУрдкрдирдХреЛрдб рдЗрдВрдЯреАрдЧреНрд░реЗрд╢рди** - рдУрдкрдирдХреЛрдб рдПрдЖрдИ рдХреЛрдбрд┐рдВрдЧ рдЖрдИрдбреАрдИ рдХреЗ рд▓рд┐рдП рдореВрд▓ рдкреНрд░рджрд╛рддрд╛ рд╕рдорд░реНрдерди
- ЁЯФЧ **TRAE рдПрдХреАрдХрд░рдг** - TRAE AI рд╡рд┐рдХрд╛рд╕ рдврд╛рдВрдЪреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рд╕рдорд░реНрдерди
- ЁЯУж **рдмреИрдЪ рдПрдкреАрдЖрдИ** - рдереЛрдХ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдмреИрдЪ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ
- ЁЯОп **рдЯреИрдЧ-рдЖрдзрд╛рд░рд┐рдд рд░реВрдЯрд┐рдВрдЧ** - рдХрд╕реНрдЯрдо рдЯреИрдЧ рдФрд░ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд░реВрдЯ рдЕрдиреБрд░реЛрдз
- ЁЯТ░ **рдиреНрдпреВрдирддрдо-рд▓рд╛рдЧрдд рд░рдгрдиреАрддрд┐** тАФ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рдмрд╕реЗ рд╕рд╕реНрддреЗ рдЙрдкрд▓рдмреНрдз рдкреНрд░рджрд╛рддрд╛ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ
> ЁЯУЭ рдкреВрд░реНрдг рдлреАрдЪрд░ рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛рдПрдВ [link](docs/new-features/) рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ (217 рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг)
---
## ЁЯУзрд╕рдорд░реНрдерди
> ЁЯТм **рд╣рдорд╛рд░реЗ рд╕рдореБрджрд╛рдп рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВ!** [WhatsApp Group](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) - рд╕рд╣рд╛рдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рд╕реБрдЭрд╛рд╡ рд╕рд╛рдЭрд╛ рдХрд░реЗрдВ рдФрд░ рдЕрдкрдбреЗрдЯ рд░рд╣реЗрдВред
- **рд╡реЗрдмрд╕рд╛рдЗрдЯ**: [omniroute.online](https://omniroute.online)
- **рдЧрд┐рдЯрд╣рдм**: [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)
---
## ЁЯСе рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛
[](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
```
---
## ЁЯУК рд╕рд┐рддрд╛рд░рд╛ рдЗрддрд┐рд╣рд╛рд╕
---
## ЁЯЩП рдЖрднрд╛рд░
**[decolua](https://github.com/decolua)** рджреНрд╡рд╛рд░рд╛ **[decolua](https://github.com/decolua)** рдХреЛ рд╡рд┐рд╢реЗрд╖ рдзрдиреНрдпрд╡рд╛рдж - рдореВрд▓ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЬрд┐рд╕рдиреЗ рдЗрд╕ рдлреЛрд░реНрдХ рдХреЛ рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ред рдУрдордиреАрд░реВрдЯ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реБрд╡рд┐рдзрд╛рдУрдВ, рдорд▓реНрдЯреА-рдореЛрдбрд▓ рдПрдкреАрдЖрдИ рдФрд░ рдкреВрд░реНрдг рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреБрдирд░реНрд▓реЗрдЦрди рдХреЗ рд╕рд╛рде рдЙрд╕ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдиреАрдВрд╡ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред
**[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** рдХреЛ рд╡рд┐рд╢реЗрд╖ рдзрдиреНрдпрд╡рд╛рдж - рдореВрд▓ рдЧреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЬрд┐рд╕рдиреЗ рдЗрд╕ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреЛрд░реНрдЯ рдХреЛ рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ред
---
## ЁЯУД рд▓рд╛рдЗрд╕реЗрдВрд╕
рдПрдордЖрдИрдЯреА рд▓рд╛рдЗрд╕реЗрдВрд╕ - рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП [LICENSE](LICENSE) рджреЗрдЦреЗрдВред
---
---
## ЁЯЗзЁЯЗ╖ рдУрдордиреАрд░реВрдЯ - рдЧреЗрдЯрд╡реЗ рдбреА рдЖрдИрдП рдЧреНрд░реИрдЯреБрдЗрдЯреЛ
### рдиреВрдирдХрд╛ рдкрд╛рд░реЗ рдбреЗ рдХреЛрдбрд░ред рд░реЛрдЯреЗрдореЗрдВрдЯреЛ рдЗрдВрдЯреЗрд▓рд┐рдЬреЗрдВрдЯ рдкреИрд░рд╛ **рдореЙрдбрд▓реЛрд╕ рдбреА рдЖрдИрдП рдЧреНрд░реИрдЯреБрдЗрдЯреЛрд╕ рдФрд░ рдбреЗ рдмреИрдХреНрд╕реЛ рдХрд╕реНрдЯрдо** рдХреЙрдо рдлрд╝реЙрд▓рдмреИрдХ рдСрдЯреЛрдореЗрдЯрд┐рдХреЛред
_рдПрд╕рдИрдпреВ рдкреНрд░реЙрдХреНрд╕реА рдпреВрдирд┐рд╡рд░реНрд╕рд▓ рдбреА рдПрдкреАрдЖрдИ - рдЙрдо рдПрдВрдбрдкреЙрдЗрдВрдЯ, 36+ рдкреНрд░реЛрдбреЛрд░реНрд╕, рд╢реВрдиреНрдп рдбрд╛рдЙрдирдЯрд╛рдЗрдоред_
### ЁЯМР рдЗрдВрдЯрд░рдиреЗрд╢рдирд▓рд┐рдЬрд╝рд╛рдХрд╛рдУ (i18n)
рдУрдореНрдиреАрд░реВрдЯ рдХрд╛ рдбреИрд╢рдмреЛрд░реНрдб **рдорд▓реНрдЯреАрдкреНрд▓реЛрд╕ рдЗрдбрд┐рдпреЛрдорд╛рд╕** рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдЙрдиреНрд╣реЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡рд┐рддрд░рдг:
| рдореБрд╣рд╛рд╡рд░рд╛ | рдХреЛрдбрд┐рдЧреЛ | рд╕реНрдерд┐рддрд┐ |
| ----------------------- | ------- | ----------- |
| ЁЯЗ║ЁЯЗ╕ рдЕрдВрдЧреНрд░реЗрдЬреА | `en` | тЬЕ рдХрдВрдкреНрд▓реАрдЯреЛ |
| ЁЯЗзЁЯЗ╖ рдкреЛрд░реНрдЯреБрдЧреБрдПрд╕ (рдмреНрд░рд╛рдЬреАрд▓) | `pt-BR` | тЬЕ рдХрдВрдкреНрд▓реАрдЯреЛ |
**рдореБрд╣рд╛рд╡рд░реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА:** рдореБрд╣рд╛рд╡рд░реЗ рдХреЗ рдЪрдпрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ (ЁЯЗ║ЁЯЗ╕ EN) рдбреИрд╢рдмреЛрд░реНрдб рдкрд░ рдХреЛрдИ рд╣реЗрдбрд░ рдирд╣реАрдВ тЖТ рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдХреЗ рдЪрдпрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред
**рдПрдХ рдирдпрд╛ рдореБрд╣рд╛рд╡рд░рд╛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП:**
1. `src/i18n/messages/{codigo}.json` рдХреЛ `en.json` рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдХрд░реЗрдВ
2. `src/i18n/config.ts` тЖТ `LOCALES` рдФрд░ `LANGUAGES` рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ
3. рд╕реЗрд╡рд╛ рдкреНрд░рджрд╛рддрд╛ рдХреА рд╕реЗрд╡рд╛
### тЪб рдЗрдирд┐рд╕рд┐рдпреЛ рд░реИрдкрд┐рдбреЛ
```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
```
### ЁЯФС рдлрдВрдХреНрд╕реЛрдирд┐рдпрд▓рд┐рдбреЗрдбреНрд╕ рдкреНрд░рд┐рдВрд╕рд┐рдкреИрд╕
- **36+ рдЖрдИрдП** - рдХреНрд▓рд╛рдЙрдб, рдЬреАрдкреАрдЯреА, рдЬреЗрдорд┐рдиреА, рд▓рд╛рдорд╛, рдХреНрд╡реЗрди, рдбреАрдкрд╕реАрдХ, рдФрд░ рдЕрдиреНрдп
- **рд░реЛрдЯреАрдореЗрдВрдЯреЛ рдЗрдВрдЯреЗрд▓рд┐рдЬреЗрдВрдЯ** тАФ рдлрд╝реЙрд▓рдмреИрдХ рдСрдЯреЛрдореЗрдЯрд┐рдХреЛ рдПрдВрдЯрд░ рдкреНрд░реЛрд╡реЛрд░реНрд╕
- **рдкреНрд░рд╛рд░реВрдк рдЕрдиреБрд╡рд╛рдж** тАФ OpenAI тЖФ рдХреНрд▓рд╛рдЙрдб тЖФ рдЬреЗрдорд┐рдиреА рдСрдЯреЛрдореИрдЯрд┐рдХ
- **рдорд▓реНрдЯреА-рдХреЙрдиреНрдЯрд╛** - рдЪрдпрдирд┐рдд рдЗрдВрдЯреЗрд▓рд┐рдЬреЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдорд▓реНрдЯреАрдкреНрд▓рд╛рд╕ рдХреЙрдиреНрдЯрд╛рд╕
- **рдХреИрд╢ рд╕рд┐рдореЗрдВрдЯрд┐рдХреЛ** - рдХрд╕реНрдЯрдо рдФрд░ рд▓реЗрдЯреЗрдВрд╕реА рд░реЗрдбреБрдЬрд╝
- **OAuth autom├бtico** тАФ рдЯреЛрдХрди рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдирд╡реАрдиреАрдХреГрдд рд╣реЛрддреЗ рд╣реИрдВ
- **рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╕рдВрдпреЛрдЬрди** тАФ 6 рд░реЛрдЯреЗрдореЗрдВрдЯреЛ рдПрд╕реНрдЯреНрд░реИрдЯреЗрдЬреАрд╕
- **рдбреИрд╢рдмреЛрд░реНрдб рд╕рдВрдкреВрд░реНрдг** - рдореЙрдирд┐рдЯрд░, рд▓реЙрдЧ, рд╡рд┐рд╢реНрд▓реЗрд╖рдг, рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди
- **рд╕реАрдПрд▓рдЖрдИ рдЙрдкрдХрд░рдг** - рдХреНрд▓рд╛рдЙрдб рдХреЛрдб, рдХреЛрдбреЗрдХреНрд╕, рдХрд░реНрд╕рд░, рдХреНрд▓рд╛рдЗрди рдХреЛ рдПрдХ рдХреНрд▓рд┐рдХ рдкрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ
- **100% рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ** тАФ рдХреЛрдбрд┐рдЧреЛ рд▓рд┐рдореНрдкреЛ рдФрд░ рдЯрд┐рдкрдбреЛ
### ЁЯУЦ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг
| рдбреЙрдХреНрдпреВрдореЗрдВрдЯреЛ | рд╡рд┐рд╡рд░рдг |
| ----------------------------------------------- | --------------------------------------------- |
| [Guia do Usu├бrio](docs/USER_GUIDE.md) | рдкреНрд░реЛрд╡реЗрдбреЛрд░реНрд╕, рдХреЙрдореНрдмреЛ, рд╕реАрдПрд▓рдЖрдИ, рддреИрдирд╛рддреА |
| [Refer├кncia da API](docs/API_REFERENCE.md) | рд╕рднреА рдУрдПрд╕ рдПрдВрдбрдкреЙрдЗрдВрдЯ рдЙрджрд╛рд╣рд░рдг рдЙрджрд╛рд╣рд░рдг |
| [Solu├з├гo de Problemas](docs/TROUBLESHOOTING.md) | рд╕рдорд╕реНрдпрд╛рдПрдВ рдФрд░ рд╕рдорд╛рдзрд╛рди |
| [Arquitetura](docs/ARCHITECTURE.md) | рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдФрд░ рдЗрдВрдЯрд░реНрдиреЛрд╕ рдбреЛ рд╕рд┐рд╕реНрддреЗрдорд╛ |
| [Contribui├з├гo](CONTRIBUTING.md) | рд╕реЗрдЯрдЕрдк рдбреЗ рдбреЗрд╕реЗрдирд╡реЛрд▓реНрд╡рд┐рдореЗрдВрдЯреЛ рдИ рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢ |
| [Deploy em VM](docs/VM_DEPLOYMENT_GUIDE.md) | рд╕рдВрдкреВрд░реНрдг рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛: VM + nginx + Cloudflare |
### ЁЯУз рд╕рдкреЛрд░реНрдЯ
> ЁЯТм **рдПрдХ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╡реЗрд╢!** [Grupo WhatsApp](https://chat.whatsapp.com/JI7cDQ1GyaiDHhVBpLxf8b?mode=gi_t) тАФ рджреЛ рд╕рдкреНрддрд╛рд╣, рдкреВрд░реНрдг рд╡рд┐рд╡рд░рдг рдФрд░ рдкреВрд░реНрдг рд╡рд┐рд╡рд░рдгред
- **рд╡реЗрдмрд╕рд╛рдЗрдЯ**: [omniroute.online](https://omniroute.online)
- **рдЧрд┐рдЯрд╣рдм**: [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute)
- **рдореБрджреНрджреЗ**: [github.com/diegosouzapw/OmniRoute/issues](https://github.com/diegosouzapw/OmniRoute/issues)
---
24/7 рдХреЛрдб рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП тЭдя╕П рдХреЗ рд╕рд╛рде рдирд┐рд░реНрдорд┐рдд
omniroute.online