> Об’єднувати безкоштовні рівні вручну складно — десятки SDK, десятки обмежень швидкості й жодного розуміння, скільки ресурсів у вас насправді є. OmniRoute каталогізує **489 записів безкоштовних рівнів у 35 ключах регулярних пулів** і обчислює загальну кількість токенів на основі **17 пулів з опублікованим додатним місячним бюджетом, а також п’яти окремих лімітів Groq для кожної моделі**, усуваючи дублювання спільних пулів. Квоти, доступ до яких відкривається лише після регіональної перевірки особи (наразі: ModelScope), відображаються окремо — ще ~6 млн після регіональної перевірки особи — і ніколи не додаються до загального показника. Результат постійно доступний на інформаційній панелі (`/dashboard/free-tiers`).
> Анімований огляд актуальної сторінки `/dashboard/free-tiers`. Повна методологія (усунення дублювання пулів, рівні кредитів, умови постачальників): **[docs/reference/FREE_TIERS.md](docs/reference/FREE_TIERS.md)**.
>
> Ці показники повторно перевіряються кожні два тижні за актуальним каталогом і **можуть змінюватися в обидва боки** — якщо постачальник припиняє надавати безкоштовний рівень, показник зменшується; якщо з’являється новий — зростає. Ми публікуємо саме те, що фактично обчислює каталог, а не округлений у більший бік найкращий можливий результат.
⭐ Поставте зірку репозиторію, якщо OMNIROUTE допоміг вам заощадити кошти та полегшив вашу роботу.
[](https://github.com/diegosouzapw/OmniRoute)
[](https://www.star-history.com/diegosouzapw/omniroute)
[](https://olud.ai/project/diegosouzapw-omniroute.html)
### 💬 Приєднуйтеся до спільноти
**👋 Стежте за супроводжувачем — першими дізнавайтеся про нових постачальників, випуски та поради:**
[](https://www.linkedin.com/in/diegosouzapw/)
[](https://github.com/diegosouzapw)
[](https://discord.gg/U47eFqAXCn)
[](https://t.me/omnirouteOficial)
[](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4)
[](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4)
[](https://omniroute.online)
**Запитання, поради щодо постачальників, план розвитку та підтримка → [Discord](https://discord.gg/U47eFqAXCn) · [Telegram](https://t.me/omnirouteOficial) · WhatsApp [🌍 Глобальна спільнота](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4) / [🇧🇷 Бразилія](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4) / [Портал](https://portal.sthub.com.br/communities/groups/st-hub/channels/Omniroute-World-8kRjmK)**
## 📈 Шлюз продовжує зростати
| | v3.8.49 | **v3.8.50** | `v3.8.51+` |
| -------------------------------- | :-----: | :----------------------: | :--------: |
| 🌐 Постачальники | 290 | **357** | ще в черзі |
| 🧠 Унікальні ID чат-моделей | 1185 | **1312** | — |
| 🖼️ Міст модальностей | — | 🆕 зір + аудіо + відео | — |
| 📡 Безкоштовний каталог Radar | — | 🆕 за згодою користувача | — |
| ⚖️ Планування з урахуванням квот | — | 🆕 Quota-Share | — |
| 📊 Телеметрія квот | — | 🆕 у реальному часі | — |
**→ [Дорожня карта](ROADMAP.md) — рухаємося колією до `v3.9.0 LTS`**
## 🆓 Працює одразу після встановлення — без ключів, без налаштувань
```bash
# Свіжа установка, нульові облікові дані — `auto` вже працює:
curl http://localhost:20128/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"auto","messages":[{"role":"user","content":"Hello!"}]}'
```
Віддаєте перевагу конкретному безкоштовному бекенду? Викличте `oc/…` (OpenCode Free) безпосередньо. Потім перейдіть на `auto` і дозвольте OmniRoute вибрати.📦 Скрипти швидкого старту для копіювання та вставки для **Python, Node.js, PHP та cURL** → [`examples/quickstart/`](examples/quickstart/)
# 💥 Обіцянка
# 🤔 Чому OmniRoute?
## 🤝 За підтримки наших друзів з відкритим кодом
> **Хочете приєднатися як друг відкритого коду?** Це компанії, які підтримують відкритий код і допомагають OmniRoute розвиватися — і ми публічно повідомляємо, куди йде кожен токен, який вони нам надають. Зв'яжіться з нами: [diegosouza.pw@outlook.com](mailto:diegosouza.pw@outlook.com)
Kimi Moonshot AI
Дякуємо Kimi (Moonshot AI), нашому засновнику-другу відкритого коду, за підтримку цього проекту! Kimi — це лабораторія ШІ, що стоїть за відкритими моделями K2 та K3 — Kimi K3 забезпечує контекстне вікно на 1 мільйон токенів, нативне бачення та кодування на передовому рівні за частку ціни закритих моделей, і працює "з коробки" з Claude Code, Codex та всіма інструментами кодування, які підтримує OmniRoute.
Що підтримує Kimi: Кредити API Kimi забезпечують конвеєр випуску OmniRoute, перевірений ШІ — етап перевірки злиття за допомогою Kimi K3, який перевіряє кожен запит на злиття перед його відправкою — а також щоденну розробку функцій. Першокласна підтримка Kimi доступна на обох шляхах: прямий Kimi API (kimi-k3) та план кодування Kimi Code (OAuth та ключ API). OmniRoute також є першим бразильським проектом з відкритим кодом у програмі підтримки Kimi. Отримайте ключ API Kimi з 15% додаткових кредитів →
Cheaper Inference cheaperinference.com
Дякуємо Cheaper Inference, другу відкритого коду OmniRoute, за підтримку цього проекту! Cheaper Inference — це шлюз з рейтингом вартості, який перепродає 42 передові моделі — Claude, GPT-5.x, Gemini, Kimi K3, GLM, DeepSeek, Grok та MiniMax — за однією сумісною з OpenAI кінцевою точкою, маршрутизуючи кожен запит до найдешевшого відповідного провайдера, ніколи не стягуючи плату вище прейскурантної ціни виробника моделі.
Першокласна підтримка в OmniRoute: Chat Completions, нативна кінцева точка /v1/responses, бачення, виклик інструментів та 3 моделі зображень (grok-imagine, nano-banana-pro, nano-banana-2, доступні як cheaperinference/<model>). Отримайте ключ API →
Посилання, позначені aff=omniroute, є партнерськими. Вони фінансують проект без додаткових витрат для вас. 🎟️ Партнерська акція — безкоштовні купони на реєстрацію від провайдерів, яких ми не спонсоруємо (натисніть, щоб розгорнути)Цей розділ призначений лише для реферальних/купонних кодів. Спонсорські партнерства знаходяться вище в розділі 🤝 За підтримки наших друзів з відкритим кодом. OmniRoute не має спонсорства чи партнерства з провайдерами, переліченими тут — це публічні купони, які може використовувати кожен.
AgentRouter agentrouter.org
AgentRouter — партнерська реєстрація · $100 безкоштовних кредитів при реєстрації (безкоштовний сервер, очікуйте вищу затримку — найкраще для тестування, не для виробництва). Першокласна підтримка в OmniRoute з v3.8.50: Chat Completions, сумісний з Anthropic формат дроту та сумісний з OpenAI шлях. Доступні моделі включають claude-opus-4-8, claude-opus-5, gpt-5.6-sol та інші. Отримайте свої $100 →
⚠️ Партнерське посилання — OmniRoute не має спонсорства чи партнерства з цим провайдером.
Знаєте іншого провайдера з щедрим безкоштовним купоном на реєстрацію, який приносить користь користувачам OmniRoute? Відкрийте issue, і ми додамо його сюди.
## 🎯 Комбо — флагманська функція
> **Комбо** — це ланцюжок моделей, між якими OmniRoute виконує маршрутизацію **автоматично**. Якщо квоту вичерпано, постачальник дає збій або витрати різко зростають, комбо може перейти до наступної придатної та справної моделі. 🛡️
### ⚡ Без конфігурації — просто використовуйте `auto`
Не потрібно створювати комбо. Укажіть `auto` (або один із його варіантів) як модель, і OmniRoute створить віртуальне комбо з підключених постачальників, оцінюючи їх у реальному часі:
Ідентифікатор моделі
Що оптимізує
auto
🎯 Збалансований варіант за замовчуванням (LKGP — закріплюється за останнім справним постачальником)
auto/coding
🧑💻 Пріоритет якості під час генерації коду
auto/fast
⚡ Насамперед найнижча затримка
auto/cheap
💰 Насамперед найнижча вартість токена
auto/offline
🔋 Насамперед найбільший запас квоти / ліміту запитів
auto/smart
🔭 Пріоритет якості + 10% дослідження для пошуку кращих моделей
auto/lkgp
📌 Явне закріплення за останнім відомим справним постачальником
auto/chaos
🧪 Ваги ін’єкції збоїв для перевірки стійкості (хаос-інжиніринг)
##
### 🔀 Або створіть власне комбо — 19 стратегій маршрутизації
Усі **19** стратегій — комбінуйте їх для кожного кроку комбо:
#
Стратегія
Що вона робить
1
priority
Упорядкований список із пріоритетом першої цілі — вичерпує кожну перед переходом до наступної 🥇
2
fill-first
Повністю використовує квоту кожної цілі перед переходом до наступної
3
weighted
Зважений випадковий вибір за вагою кожної цілі
4
round-robin
Послідовно перебирає цілі по колу
5
p2c
Випадкове балансування навантаження за принципом вибору з двох
6
least-used
Вибирає ціль із найменшим поточним навантаженням
7
random
Рівномірний випадковий вибір (без повторів)
8
strict-random
Випадковий вибір без усунення повторів 🎲
9
cost-optimized
Мінімізує вартість запиту в $ на основі актуальних цін із каталогу 💸
10
headroom
Вибирає ціль із найбільшим залишком квоти
11
reset-window
Надає перевагу цілі, вікно квоти якої буде скинуто найшвидше
12
reset-aware
Ранжує за часом скидання квоти — спочатку короткі вікна 📊
13
context-relay
Передає контекст між цілями під час тривалих розмов 🧠
14
context-optimized
Вибирає ціль, яка найкраще відповідає поточному розміру контексту
15
cache-optimized
Закріплює кожен повторно використовуваний префікс промпту за тим самим обліковим записом — максимізує влучання в кеш промптів 🎯
16
lkgp
Останній відомий справний шлях — закріплюється за останнім успішним постачальником, а потім переходить до резервних правил
17
auto
Оцінювання кожного підключення в реальному часі за 16 факторами 🤖
18
fusion
Паралельно звертається до групи моделей, а модель-суддя синтезує єдину відповідь 🧬
19
pipeline
Поєднує кроки в ланцюжок — результат кожної цілі передається наступній 🔗
Механізм Auto-Combo оцінює кожного кандидата за **16 факторами** (справність, квота, вартість, затримка, відповідність завданню, якість, доступність сеансу…) — див. [`docs/routing/AUTO-COMBO.md`](docs/routing/AUTO-COMBO.md).
##
### 🧱 Вбудована стійкість (3 незалежні рівні)
📖 [Рушій Auto-Combo](docs/routing/AUTO-COMBO.md) · [Посібник із відмовостійкості](docs/architecture/RESILIENCE_GUIDE.md)
## 🏆 Що відрізняє OmniRoute
📊 Повна методологія та деталі за функціями порівняно з 9router, OpenRouter, CLIProxyAPI та LiteLLM → [`docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md`](docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md)
## 💚 Підтримайте OmniRoute
OmniRoute розповсюджується за ліцензією MIT і підтримується відкрито. Якщо він заощаджує ваш час або гроші, ось як можна допомогти йому залишатися незалежним — оберіть зручний для вас спосіб. Спонсорство ніколи не впливає на пріоритет маршрутизації; воно дає видимість, а не вищу позицію в рейтингу.
⭐ Поставте зірку репозиторію
Безкоштовно — це справді допомагає підвищити видимість
**🇧🇷 PIX** — миттєво, без комісій (Бразилія)
Ключ (випадковий): `5d865059-bc44-483a-962d-43ceb80126eb`
Pix copia-e-cola:
```
00020101021126580014br.gov.bcb.pix01365d865059-bc44-483a-962d-43ceb80126eb5204000053039865802BR5922OMNIROUTE CONTRIBUICAO6006BRASIL62070503***630475DD
```
₿ Криптовалюта — BTC · ETH · USDT-TRC20 · USDC-Solana (натисніть, щоб розгорнути)
₿ BTC
Bitcoin (SegWit)
bc1qh00smz004sy85wyl28v77tenkt3ckl6eaep7fd
Ξ ETH
Ethereum (ERC20)
0x64Cf6B68A6Ff34288e89172950a2d00102337a84
₮ USDT
Tron (TRC20)
TKAF41JpuQrHbKTnsQa9svJE2T192Hvsc2
$ USDC
Solana
2emNNZzVVWQc3FQ2wk9M6qXUQmW8AKdjjL174fXR28Tu
⚠️ Надсилайте кожну монету лише через зазначену мережу — надсилання через неправильну мережу може призвести до втрати коштів.
🐛 Знайшли помилку або маєте відгук? Відкрийте [обговорення](https://github.com/diegosouzapw/OmniRoute/discussions).
Примітки для розробників: Під час npm install/postinstall проєкт може створити локальний файл .env для зручності розробників. Цей файл навмисно ігнорується через .gitignore (див. .gitignore), і його в жодному разі не можна додавати до репозиторію — якщо його випадково додано, змініть усі розкриті секрети та видаліть файл з історії. Рекомендації щодо керування локальними файлами середовища та секретами див. у docs/DEVELOPER-ENVIRONMENT.md.
## 📡 OmniRoute Radar
Основний показник безкоштовного рівня залишається на рівні **~1,62 млрд токенів/місяць** згідно з наведеним вище задокументованим каталогом із дедуплікацією пулів. Тимчасові кредити за реєстрацію в постачальників можуть окремо збільшити обсяг у першому місяці до **~2,22 млрд**. Radar — це необов’язкове підписане доповнення до каталогу для тих, хто хоче отримувати актуальніші дані про доступність безкоштовних моделей між випусками OmniRoute; каталог спільноти та всі наявні безкоштовні функції залишаються безкоштовними.
Прихильники можуть отримувати актуальний каталог і додаткові пропозиції від постачальників. Його окрема змінна верхня межа становить **щонайбільше приблизно 3 млрд токенів/місяць** залежно від доступності постачальників. Ця верхня межа не є гарантією: постачальники можуть будь-коли змінювати квоти, критерії відповідності, моделі або регіони.
Radar використовується за бажанням і лише через GET-запити. Клієнт OmniRoute не передає запити, трафік, конфігурацію постачальників, телеметрію використання або локальний стан приховування оголошень. Дізнайтеся про критерії відповідності та поточний каталог на сторінці **[radar.omniroute.online/planos](https://radar.omniroute.online/planos)**.
## ✨ Що нового
> Останні основні зміни від **v3.8.20 до v3.8.50**. Повна історія — у [`CHANGELOG.md`](CHANGELOG.md).
- **🎛️ OmniConductor** — вхідне делегування A2A вашому парку агентів, навички Conductor у картці агента та панель дашборда з голосовим чатом Faro у режимі «натисни й говори». → [Сервер A2A](docs/frameworks/A2A-SERVER.md)
- **🛂 Адаптивний контроль доступу та захист від перевантаження** — ресурсомісткі запити чату стають у чергу замість повернення помилки 503, з атомарними ковзними орендами RPM для кожного підключення. → [Посібник зі стійкості](docs/architecture/RESILIENCE_GUIDE.md)
- **🗂️ Канонічне впорядкування `/v1/models`** — один суцільний блок із групуванням за постачальником для кожного постачальника (комбінації закріплено на початку), стабільний у всіх джерелах каталогу. → [Довідник API](docs/reference/API_REFERENCE.md)
- **🗜️ Посилений захист стиснення** — увімкнений за замовчуванням захист від надмірного розпакування, пакети Caveman для DE / FR / JA + китайської (wényán), фільтри RTK для Gradle і .NET. → [Стиснення](docs/compression/COMPRESSION_ENGINES.md)
- **💸 Чесна вартість за фіксованим тарифом** — постачальники з підпискою / тарифним планом для програмування відображають **$0** в аналітиці витрат; бюджет, квота й маршрутизація й надалі використовують оцінки. → [Довідник API](docs/reference/API_REFERENCE.md)
- **⚖️ Маршрутизація Quota-Share** — справедливо розподіляє квоту спільного облікового запису між об’єднаними ключами та ефективно використовує ресурси, передаючи незадіяні частки іншим. → [Посібник зі стійкості](docs/architecture/RESILIENCE_GUIDE.md)
- **🤖 Налаштування CLI/агента однією командою** — 13 зареєстрованих команд `setup-*`; `omniroute run` запускає 7 CLI (Claude Code, Codex, Aider, Goose, OpenCode, Qwen Code, Gemini CLI); `omniroute configure` підтримує 10 цільових систем з інтерактивним вибором постачальника й моделі та вподобаннями для кожного контексту. → [Інтеграції CLI](docs/guides/CLI-INTEGRATIONS.md)
- **🛰️ Віддалений режим** — керуйте віддаленим OmniRoute за допомогою токенів з обмеженою областю дії (`connect` / `contexts` / `tokens`) і помічника OAuth `antigravity` для встановлення на VPS. → [Віддалений режим](docs/guides/REMOTE-MODE.md)
- **🧭 Розумніша автомаршрутизація** — комбінації `auto/:`, **Fusion** (панель моделей + суддя), маршрутизація з урахуванням завдання, перевизначення моделі / режиму / бюджету в USD для кожного запиту. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **🗜️ Розширюване стиснення** — 12 компонованих рушіїв + Compression Studios: LLMLingua-2, дворівневий Ultra, omniglyph, перевірка точності на кожному кроці, GCF v3.2, редактор зі зміною порядку перетягуванням. → [Стиснення](docs/compression/COMPRESSION_ENGINES.md)
- **🕵️ Прозоре MITM-розшифрування (TPROXY)** — перехоплюйте CLI, які ігнорують змінні середовища проксі, за допомогою окремого CA для кожного SNI та інсталятора сховища довіри. → [MITM/TPROXY](docs/security/MITM-TPROXY-DECRYPT.md)
- **💸 Телеметрія витрат усюди** — заголовки вартості/використання `X-OmniRoute-*` у кожній кінцевій точці, заголовок заощаджень від влучання в кеш, квоти витрат у USD для кожного ключа. → [Довідник API](docs/reference/API_REFERENCE.md)
- **🧠 Пам’ять під вашим контролем** — вимкнена за замовчуванням, опціональна int8-квантизація векторів + типізоване згасання, `x-omniroute-no-memory` для кожного запиту. → [Пам’ять](docs/frameworks/MEMORY.md)
- **🛡️ Безпека** — захист від ін’єкцій у промпти на кожному маршруті LLM (набір тестів red-team), опціональний захисний механізм маскування облікових даних (редагує витоки ключів API/секретів в обох напрямках), безкоштовний вебпошук DuckDuckGo як крайній засіб і опціональний шлюз входу OIDC для дашборда (вхід за паролем завжди залишається доступним). → [Захисні механізми](docs/security/GUARDRAILS.md)
- **🖼️ Нові кінцеві точки** — `/v1/ocr` (Mistral OCR) і `/v1/audio/translations` (у стилі Whisper) доповнюють набір мультимедійних можливостей. → [Довідник API](docs/reference/API_REFERENCE.md)
- **🎨 Генерування зображень / відео / аудіо** — єдиний API для медіа: xAI Grok Imagine і відео Novita AI, ComfyUI, Magnific, Adobe Firefly, Segmind, а також постачальники мовленнєвих сервісів, як-от ElevenLabs. → [Довідник API](docs/reference/API_REFERENCE.md)
- **🌍 Розгортання та експлуатація** — `basePath` зворотного проксі, автоматичне визначення мови браузера, відстеження пристроїв для кожного ключа, довіра до MITM без root-прав, локалізація zh-TW. → [Середовище](docs/reference/ENVIRONMENT.md)
- **🤝 Більше постачальників і агентів** — хмарні агенти (Codex Cloud, Cursor, Devin, Jules), Grok Build (xAI) з браузером і входом через OAuth, повноцінна картка Ollama, Claude Opus 5 і Sonnet 5, офіційне партнерство з Kimi (Code/Web/Moonshot), Zed, Requesty, SenseNova, Yuanbao, Agnes AI… а також оновлений **каталог із 352 постачальників**. → [Постачальники](docs/reference/PROVIDER_REFERENCE.md)
- **📡 Прозорість маршрутизації** — кожна відповідь містить заголовок `X-OmniRoute-Decision` із назвою стратегії/постачальника/затримки, що її обслужили; нова стратегія комбінації `cache-optimized` і фактор Auto-Combo `cacheAffinity` спрямовують повторні запити назад до підключення, яке зберігає кешований префікс, а кінцева точка лише для читання `/v1/auto-combo/{channel}/candidates` надає доступ до актуального пулу кандидатів каналу `auto/*`. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **⚡ Локальна продуктивність та інфраструктура** — локальний Redis в один клік, засоби розгортання ретрансляторів Cloudflare Workers / Deno Deploy, Bifrost і Mux як контрольовані вбудовані служби. → [Вбудовані служби](docs/frameworks/EMBEDDED-SERVICES.md)
- **🧩 Також у комплекті** — фреймворк плагінів + маркетплейс, фреймворки навичок Omni/Agent/GitHub, інтеграція зі сховищем Obsidian (22 інструменти MCP), сумісні з OpenAI API Batch і Files, семантичний кеш відповідей, гейміфікація з таблицями лідерів, виявлення агентів ACP (15 вбудованих агентів), запланований експорт журналів у BigQuery, ін’єкція збоїв `auto/chaos`, міст до бота Telegram, вбудований менеджер версій і рейтинги безкоштовних постачальників LMArena-ELO. → [Документація](docs/README.md)
## 🤖 Сумісні CLI та агенти для програмування
> Одна конфігурація — `http://localhost:20128/v1` — і **кожне** середовище AI IDE або CLI працює з безкоштовними та недорогими моделями.
+ також працює з · Agent Deck · Kiro · Command Code · Antigravity · Windsurf · AMP · будь-яким інструментом, сумісним з OpenAI
📖 Налаштування кожного з усіх 36 інструментів (26 CLI для роботи з кодом + 10 CLI-агентів) → [`docs/reference/CLI-TOOLS.md`](docs/reference/CLI-TOOLS.md) · 🧩 Плагін OpenCode → [`@omniroute/opencode-provider`](https://www.npmjs.com/package/@omniroute/opencode-provider)
**Запускайте будь-який підтримуваний CLI через OmniRoute однією командою** — без запису конфігураційних файлів,
з обліковими даними, що передаються окремо кожному процесу, а Qwen/Gemini отримують тимчасову ізольовану домашню директорію:
```bash
omniroute run claude --model openai/gpt-5.4 # Claude Code
omniroute run codex --model glm/glm-5.2 # OpenAI Codex CLI
omniroute run aider --model glm/glm-5.2 -- --message "reply OK"
omniroute run goose --model glm/glm-5.2
omniroute run opencode --model glm/glm-5.2 -- run "reply OK"
omniroute run qwen --model glm/glm-5.2 -- -p "reply OK"
omniroute run gemini --model glm/glm-5.2 -- --skip-trust -p "reply OK"
# Або виберіть постачальника й модель інтерактивно та запишіть власну конфігурацію інструмента:
omniroute configure codex # також: claude opencode qwen aider goose gemini cline continue kilo
```
Кожна команда враховує активний віддалений контекст (`omniroute connect `), `--dry-run`
показує точні змінні середовища й аргументи без виконання, а `--api-key-env NAME` не допускає потрапляння секретів
до історії команд вашої оболонки. → [Інтеграції CLI](docs/guides/CLI-INTEGRATIONS.md)
## 🌐 357 постачальників ШІ — 152 позначені в каталозі як безкоштовні
> **357 зареєстрованих постачальників** у канонічних колекціях чатів, медіа, пошуку, локальних і хмарних агентів та систем, зокрема **152 з метаданими виявлення `hasFree: true`**. Реєстр чат-моделей охоплює **229 постачальників / 2 554 унікальні пари «постачальник–модель» / 1 283 необроблені ідентифікатори моделей**; окремий каталог безкоштовних бюджетів містить **491 рядок для окремих моделей**, **35 поновлюваних пулів** і **54 постачальники з поновлюваним або назавжди безкоштовним доступом без ключа**. Ці знаменники навмисно відрізняються; визначення та розрахунки з усуненням дублікатів пулів наведено в [Довіднику постачальників](docs/reference/PROVIDER_REFERENCE.md) і [Безкоштовних рівнях](docs/reference/FREE_TIERS.md).
### 🏢 Усі провідні лабораторії — через єдину кінцеву точку
OpenAI
Anthropic
Gemini
xAI Grok
DeepSeek
Mistral
Qwen
Meta Llama
Groq
NVIDIA
MiniMax
Cohere
Perplexity
HuggingFace
Together
Fireworks
Cloudflare
Baidu
…і ще понад 330 — кожна піктограма завантажується наживо з каталогу постачальників панелі керування. 📖 [Довідник постачальників](docs/reference/PROVIDER_REFERENCE.md)
### 🆓 Безкоштовно назавжди — $0, без картки
OpenCode Zen DeepSeek V4, Nemotron 3 Без обмеження токенів
Kilo Code Автоматична маршрутизація, Tencent Hy3 Безкоштовно назавжди
SiliconFlow DeepSeek V3.2 / R1 Безкоштовний рівень
Z.AI GLM GLM-4.7 / 4.5-Flash Безкоштовно назавжди
Baidu ERNIE ERNIE 4.0 Безкоштовно назавжди
Qoder AI Qwen3-Max, Kimi-K2 Необмежено й БЕЗКОШТОВНО
Pollinations GPT, Llama, Claude Ключ не потрібен
Cloudflare AI Понад 50 моделей 10 тис. нейронів на день
NVIDIA NIM GLM, MiniMax ~40 RPM безкоштовно
Cerebras GLM 4.7, GPT-OSS 1 млн токенів на день
OpenRouter Моделі :free +$10 → вищий RPM
📖 Повний машиночитний каталог → [`docs/reference/PROVIDER_REFERENCE.md`](docs/reference/PROVIDER_REFERENCE.md)
## 🖥️ Де працює OmniRoute — будь-де
> Той самий застосунок, ваш пристрій, ваші правила. Від глобального встановлення через npm до **вашого телефона** через Termux.
Платформа
Встановлення
Особливості
📦 npm (глобально)
npm install -g omniroute
Одна команда, будь-яка ОС
🐳 Docker
docker run … diegosouzapw/omniroute
Мультиархітектурна підтримка AMD64 + ARM64
🖥️ Настільний застосунок (Electron)
npm run electron:build
Нативне вікно та системний трей — Windows / macOS / Linux
🎩 Рядок меню (OmniRouteTray)
brew install --cask zoispag/tap/omniroute-tray
Контролює та автоматично оновлює сервер — macOS
💪 ARM
нативна підтримка arm64
Raspberry Pi, ARM-сервери, Apple Silicon
📱 Android (Termux)
pkg install nodejs && npx -y omniroute
Працює на вашому телефоні цілодобово, без root-доступу
📲 PWA
«Додати на головний екран»
Повноекранний режим, офлайн-робота, встановлення з браузера
🧩 Плагін OpenCode
@omniroute/opencode-provider
Нативна інтеграція з OpenCode
🤖 VS Code Copilot Chat
встановіть розширення OmniCopilot
Усі моделі OmniRoute у нативному списку вибору Copilot Chat — стабільна версія та Insiders
🛠️ З вихідного коду
npm install && npm run dev
Змінюйте код і робіть внесок у проєкт
📖 [Посібник із Docker](docs/guides/DOCKER_GUIDE.md) · [Настільний застосунок](electron/README.md) · [Трей у рядку меню](https://github.com/zoispag/omniroute-tray) · [Termux](docs/guides/TERMUX_GUIDE.md) · [PWA](docs/guides/PWA_GUIDE.md) · [OpenCode](docs/frameworks/OPENCODE.md)
### 🧩 Нове: OmniRoute у нативному Copilot Chat для VS Code
> Жодної нової бічної панелі чи нового інтерфейсу чату — кожна модель, яку надає OmniRoute, з’являється безпосередньо в
> **засобі вибору моделі Copilot Chat, яким ви вже користуєтеся**. Починаючи з VS Code 1.122, моделі провайдерів працюють
> без входу в GitHub або передплати Copilot — режим агента, виклики інструментів і підтримка зображень
> безкоштовно.
Встановіть розширення **[OmniCopilot](https://github.com/diegosouzapw/OmniCopilot)**, підключіть його
до свого сервера OmniRoute (типово `localhost:20128`), а потім відкрийте Copilot Chat → засіб вибору моделі
→ **Керувати моделями…** → **OmniRoute**.
У редакторі відкрийте подання **Розширення**, знайдіть **«OmniRoute»** і натисніть **Встановити**
— в обох магазинах усе працює однаково. Вихідний код, список проблем та інструкція з публікації доступні в
[diegosouzapw/OmniCopilot](https://github.com/diegosouzapw/OmniCopilot).
📖 [Посібник із VS Code Copilot Chat](docs/guides/VSCODE-COPILOT.md) — налаштування, вміст засобу вибору, панель керування у вкладці, усунення несправностей
### 🎩 Нове: OmniRouteTray — ваш шлюз у рядку меню
> `omniroute serve` найкраще працює, коли запущений постійно. **[OmniRouteTray](https://github.com/zoispag/omniroute-tray)**
> перетворює його на застосунок для рядка меню macOS, який достатньо один раз налаштувати й забути: він запускає сервер, підтримує його роботу
> після перезавантажень, оновлює його на місці та дає доступ до актуального бюджету токенів одним клацанням — **жодного
> відкритого вікна термінала й жодного `npm install -g omniroute`, за яким потрібно стежити.**
Створений за допомогою [Tauri v2](https://v2.tauri.app/) (ядро на Rust, розміром майже як похибка округлення), він постачається
з власним підписаним середовищем виконання Node 24 і керує встановленням OmniRoute, що належить застосунку, тому ніколи не конфліктує з вашими
глобальними `node`/`bun`. Він **використовує вашу наявну конфігурацію та базу даних `~/.omniroute/`** — тобто це
той самий OmniRoute, який ви вже запускаєте, лише в капелюсі. 🎩
Що він робить
Як
🟢 Контролює сервер
Запускає omniroute serve і підключається до вже запущеного екземпляра замість його дублювання
📊 Актуальні дані про використання одним поглядом
Індикатори квот провайдерів, ліміти Claude на сеанс і тиждень зі зворотним відліком до скидання, розподіл витрат за 30 днів
🔄 Автоматично оновлюється на місці
Поетапне встановлення, атомарна заміна, відкат у разі збою — завжди найновіший випуск
🚀 Запускається під час входу
Необов’язковий запуск під час входу; лише в треї, без піктограми в Dock
🩺 Діагностика та журнали
Діагностика одним клацанням і доступ до журналів сервера
```sh
brew install --cask zoispag/tap/omniroute-tray
```
Віддаєте перевагу завантаженню? Завантажте найновіший файл .dmg зі сторінки
Релізи. Вихідний код, перелік проблем і документація
зі збирання доступні в репозиторії zoispag/omniroute-tray.
💛 Проєкт спільноти від @zoispag — не є офіційним релізом OmniRoute.
> Окрім сервера, OmniRoute — це **повнофункціональний командний центр у терміналі** з **понад 80 командами**, а також відкритими агентними протоколами, завдяки яким ШІ-агент може керувати ним **самостійно**.
### ⌨️ Справжній CLI (не лише `start`)
```bash
omniroute # запуск шлюзу й панелі керування (порт 20128)
omniroute chat # інтерактивний клієнт чату TUI (команди: /model /combo /skill /memory)
omniroute setup # покроковий майстер першого запуску
omniroute doctor # діагностика постачальників, портів і нативних залежностей
```
### 🛰️ Віддалений режим — запускайте CLI тут, а OmniRoute — на VPS
OmniRoute працює на сервері? Керуйте ним із ноутбука за допомогою **того самого CLI**. Увійдіть один раз
із токеном доступу з обмеженою областю дії — після цього кожна команда буде спрямована на віддалений сервер.
```bash
omniroute connect 192.168.0.15 # пароль → токен з обмеженою областю дії, збережений як контекст
omniroute models list # ← виконується на ВІДДАЛЕНОМУ сервері
omniroute configure codex # ← вибирає віддалену модель і записує локальний профіль Codex
omniroute tokens create --name ci --scope read # створює токени з вужчими правами для інших машин
omniroute contexts use default # ← повернення до локального сервера
```
Токени мають області дії `read` / `write` / `admin`; маршрути, що запускають процеси, залишаються доступними лише через loopback-інтерфейс.
📖 [Віддалений режим](docs/guides/REMOTE-MODE.md)
### 🤝 Підключіть агента — і він сам керуватиме OmniRoute
Надайте доступ до OmniRoute через **MCP**, **A2A**, **REST API**, **вебхуки** або **віддалений CLI** — будь-який здатний агент (або ваш власний код) отримає ключі до всього шлюзу: маршрутизації, постачальників, комбінацій, кешу, стиснення та пам’яті — для автономної роботи. Наведені нижче HTTP-кінцеві точки доступні за адресою `http://localhost:20128`.
Інтерфейс
Кінцева точка / команда
Призначення
🧰 MCP (stdio)
omniroute --mcp
Підключення до Claude Desktop, Cursor або будь-якого MCP-клієнта
🌊 MCP (HTTP)
/api/mcp/stream
Віддалений MCP — 110 інструментів, 33 області дії (примусове застосування вмикається за бажанням), повний журнал аудиту
📡 MCP (SSE)
/api/mcp/sse
Потоковий транспорт MCP
🤝 A2A
/.well-known/agent.json
Взаємодія між агентами, JSON-RPC 2.0 + SSE, 6 навичок
🌐 REST API
/v1/*
Сумісність з OpenAI — чат, векторні представлення, зображення, аудіо, OCR
🔔 Вебхуки
/api/webhooks
Надсилання подій запитів / квот до Slack, Discord, Telegram або на будь-яку URL-адресу
🛰️ Віддалений CLI
omniroute connect
Керування віддаленим екземпляром за допомогою токенів доступу з обмеженими областями дії
```bash
# Надайте Claude Code повний набір інструментів OmniRoute через MCP:
claude mcp add-server omniroute --type http --url http://localhost:20128/api/mcp/stream
```
📖 [Сервер MCP](docs/frameworks/MCP-SERVER.md) · [Сервер A2A](docs/frameworks/A2A-SERVER.md) · [Агентні протоколи](docs/frameworks/AGENT_PROTOCOLS_GUIDE.md)
## 🗜️ Заощаджуйте 15–95% токенів — автоматично
### 📖 Як це працює — конвеєр, архітектура та розрахунок заощадження
Стандартна стекова комбінація запускає `RTK → Caveman`. Коли обидва рушії обробляють те саме корисне навантаження інструментів/контексту, заощадження перемножуються:
```txt
combined = 1 − (1 − RTK) × (1 − Caveman_input)
average = 1 − (1 − 0.80) × (1 − 0.46) = 89.2%
range = 78.4 – 94.6%
```
Блоки коду, URL-адреси, JSON і структуровані дані **завжди захищені** рушієм збереження.
> **Навіщо використовувати багато токенів, коли достатньо кількох?** Кожен запит проходить через конвеєр стиснення OmniRoute **прозоро** — без змін у клієнті. Тепер це **стек із 12 компонованих рушіїв**, які запускаються послідовно та довільно комбінуються для кожної комбінації маршрутизації — на основі ідей із [RTK](https://github.com/rtk-ai/rtk), [Caveman](https://github.com/JuliusBrussee/caveman) (⭐ 90K+), [LLMLingua-2](https://github.com/microsoft/LLMLingua) та [Troglodita](https://github.com/leninejunior/troglodita) (PT-BR).
### 🧱 Стек із 12 рушіїв
Рушії запускаються в порядку конвеєра; кожен із них можна незалежно вмикати, вимикати та налаштовувати для кожної комбінації:
#
Рушій
Що він робить
1
Session-Dedup
Видаляє вміст, що повторюється між репліками (з адресацією за вмістом, між репліками)
2
CCR
Архівує великі блоки за маркерами отримання, завантажуючи їх на вимогу
3
Lite
Скорочує пробіли та URL-адреси зображень (базовий режим із низькою затримкою)
4
RTK
Інтелектуальна фільтрація, дедуплікація та скорочення результатів інструментів (з урахуванням команд)
Табличне ущільнення масивів JSON без втрат (~30%) за допомогою вбудованого кодека GCF
7
Relevance
Екстрактивне оцінювання речень відносно останнього запиту користувача
8
Caveman
Стиснення прози на основі правил (~65–75% у вихідних даних)
9
Aggressive
Узагальнення + поступове старіння давніх реплік
10
LLMLingua-2
Семантичне відсікання за допомогою ML через MobileBERT ONNX — безпечне для коду, асинхронне
11
Ultra
Евристичне відсікання токенів із необов’язковим рівнем малої моделі (SLM)
12
OmniGlyph
Експериментальне кодування контексту як зображення для перевіреної Claude Fable 5 під час прямого з’єднання з Anthropic; трансформери GPT 5.6 залишаються закритими в разі помилки до отримання підтверджень від постачальника. Чотири профілі стиснення (агресивний за замовчуванням, збалансований, безпечний для коду, без змін) (найагресивніший; потребує явного ввімкнення)
Блоки коду, URL-адреси та структуровані дані **завжди зберігаються** з побайтовою точністю. **Готові набори одним натисканням** поєднують рушії:
Режим
Заощадження
Найкраще підходить для
🪶 Lite
~15%
Безпечний стандартний режим для постійного використання
🪨 Standard (Caveman)
~30%
Щоденного написання коду
⚡ Aggressive
~50%
Тривалих сеансів з інтенсивним використанням інструментів
🔥 Ultra
~75%
Максимального заощадження
🧰 RTK
60–90%
Виводу оболонки/тестів/збирання/git
🔗 Stacked (RTK → Caveman)
78–95%
Змішаних підказок + журналів інструментів
**Реальний приклад — режим Standard:**
> **До (69 токенів):** _"Причина повторного рендерингу вашого компонента React, імовірно, полягає в тому, що ви створюєте нове посилання на об’єкт під час кожного циклу рендерингу. Коли ви передаєте вбудований об’єкт як властивість, поверхневе порівняння React щоразу сприймає його як інший об’єкт, що запускає повторний рендеринг. Я рекомендую використовувати useMemo для мемоізації об’єкта."_
>
> **Після (19 токенів):** _"Нове посилання на об’єкт під час кожного рендерингу. Вбудована властивість-об’єкт = нове посилання = повторний рендеринг. Обгорніть у useMemo."_
>
> **Та сама відповідь. На 72% менше токенів. Жодної втрати точності.** ✅
**Приклад PT-BR — режим [Troglodita](https://github.com/leninejunior/troglodita):**
> **До (42 токени):** _"Проблема в тому, що компонент повторно рендериться, оскільки в кожному циклі рендерингу створюється нове посилання на об’єкт. Я б рекомендував використовувати useMemo."_
>
> **Після (12 токенів):** _"Повторний рендеринг: нове посилання в кожному циклі (вбудований об’єкт створюється наново). Використати `useMemo`."_
>
> **Та сама відповідь. На ~70% менше токенів. Технічна точність збережена.** ✅
### 🎚️ Не лише рушії — стилі виведення, адаптивний регулятор і керування для окремих запитів
12 наведених вище рушіїв скорочують те, що надходить **на вхід**. Ще три рівні визначають, **як**, **коли** й що надходить **на вихід**:
- **🪄 Стилі виведення** _(керування віссю виведення)_ — додають детерміновані, безпечні для кешування інструкції з формування відповіді; їх можна поєднувати, кожен із рівнем інтенсивності `lite` / `full` / `ultra`. Додавання стилю — це один рядок у реєстрі:
- **Лаконічна проза** — прибирає зайві слова / артиклі / невпевнені формулювання; точно зберігає технічний зміст.
- **Менше коду** — YAGNI у стилі «лінивого старшого розробника»: найменша працездатна зміна без непотрібної структури.
- **Кінський хвіст (лінивий старший розробник)** — піднімається сходами YAGNI, усуває першопричину, створює найменшу працездатну різницю.
- **У мене РДУГ (спочатку дія)** — починає з наступної дії, нумерує кроки, наводить один конкретний наступний крок, без вступу.
- **Лаконічна CJK (文言)** — ультралаконічний стиль класичної китайської мови (доступний лише для локалі `zh`).
- **🎯 Адаптивний бюджет контексту** _(регулятор)_ — замість єдиного порога токенів «увімкнено/вимкнено» поступово залучає найдешевші рушії з найменшими втратами лише настільки, наскільки потрібно, щоб **уміститися у вікно контексту моделі**. Політика: `reserve-output` (типово, з урахуванням моделі) · `percentage` · `absolute`. Режим: `floor` (гарантує вміщення) · `replace-autotrigger` (ваш явний вибір має пріоритет) · `off` (застарілий поріг).
- **🎛️ Де визначається стиснення** _(пріоритет, від високого до низького)_ — заголовок `x-omniroute-compression` окремого запиту › перевизначення комбінації маршрутизації › активний іменований профіль › адаптивний режим / автозапуск › типове налаштування панелі › вимкнено. Застосований план повертається в заголовку відповіді `X-OmniRoute-Compression: ; source=`.
Налаштуйте автозапуск за порогом токенів, увімкніть адаптивний регулятор, закріпіть іменований профіль, задайте одноразове налаштування для окремого запиту або призначте конвеєр для комбінації маршрутизації — залежно від робочого навантаження. Необов’язковий автономний **набір для оцінювання** (`npm run eval:compression`) оцінює точність відтворення порівняно з економією на зафіксованому корпусі, перш ніж ви впровадите зміни.
📖 [`COMPRESSION_GUIDE.md`](docs/compression/COMPRESSION_GUIDE.md) · [`RTK_COMPRESSION.md`](docs/compression/RTK_COMPRESSION.md) · [`COMPRESSION_ENGINES.md`](docs/compression/COMPRESSION_ENGINES.md)
# ⚡ Швидкий старт
**1) Установіть і запустіть**
```bash
npm install -g omniroute
omniroute
```
> 💡 Бачите `npm warn ERESOLVE` або попередження про залежності? [Вони нешкідливі](docs/guides/TROUBLESHOOTING.md#npm-install-warnings-eresolve--peer--deprecated).
Панель керування доступна за адресою `http://localhost:20128` · API — за адресою `http://localhost:20128/v1`.
**2) Підключіть БЕЗКОШТОВНОГО провайдера (без реєстрації)**
Панель керування → **Провайдери** → підключіть **Kiro AI** (безкоштовний Claude, ~50 кредитів на місяць для кожного облікового запису) або **OpenCode Free** (без автентифікації) → готово.
**3) Налаштуйте свій інструмент програмування**
```txt
Базова URL-адреса: http://localhost:20128/v1
Ключ API: [скопіюйте з Панель керування → Кінцеві точки]
Модель: auto (розумна маршрутизація без налаштувань — або будь-який провайдер/модель)
```
**4) Переконайтеся, що все працює**
```bash
curl http://localhost:20128/v1/models -H "Authorization: Bearer YOUR_KEY"
```
Ви маєте побачити список підключених моделей. 🎉 Ось і все — починайте програмувати, а OmniRoute автоматично маршрутизуватиме запити та перемикатиметься на резервні варіанти.
Якщо ваш клієнт не може надсилати власні заголовки, OmniRoute також надає токенізовані псевдоніми сумісності:
```txt
Каталог OpenAI: http://localhost:20128/vscode/YOUR_KEY/
Моделі OpenAI: http://localhost:20128/vscode/YOUR_KEY/models
Чат OpenAI: http://localhost:20128/vscode/YOUR_KEY/chat/completions
Відповіді OpenAI: http://localhost:20128/vscode/YOUR_KEY/responses
Чат Ollama: http://localhost:20128/vscode/YOUR_KEY/api/chat
Теги Ollama: http://localhost:20128/vscode/YOUR_KEY/api/tags
```
Використовуйте їх лише для клієнтів, які не можуть додати `Authorization: Bearer ...`. Автентифікація через заголовок залишається рекомендованим режимом.
## 📦 Інші способи встановлення — Docker, вихідний код, pnpm, Arch
**🐳 Docker**
```bash
docker run -d --name omniroute --restart unless-stopped --stop-timeout 40 \
-p 127.0.0.1:20128:20128 -v omniroute-data:/app/data diegosouzapw/omniroute:latest
```
`:latest` відповідає найвищій **опублікованій** стабільній версії SemVer. Він не відстежує git `main`. Для GitOps закріпіть `:X.Y.Z`. Див. [Канали випусків Docker](docs/guides/DOCKER_GUIDE.md#release-channels). В образі зафіксовано **`OMNIROUTE_MEMORY_MB=1024`**. Цього достатньо для панелі керування та нескладного чату. **Агентам для програмування** (`POST /v1/responses` від Claude Code, Codex, Grok, …) потрібна значно більша купа V8, інакше процес завершується з `FATAL ERROR` приблизно за 12 ГіБ при двох тривалих контекстах, що перекриваються. Виділяйте контейнеру більше пам’яті, ніж розмір купи (нативні буфери розташовуються поза V8):
| Робоче навантаження | Купа (`-e OMNIROUTE_MEMORY_MB`) | Контейнер (`--memory`) |
| ------------------------------------- | ------------------------------- | ---------------------- |
| Панель керування / нескладний чат | `1024` (типове значення образу) | ≥2 ГБ |
| Один агент для програмування | `8192` | ≥10 ГБ |
| Два одночасні тривалі `/v1/responses` | `10240`–`12288` | ≥12–16 ГБ |
```bash
docker run -d --name omniroute --restart unless-stopped --stop-timeout 40 \
-e OMNIROUTE_MEMORY_MB=8192 --memory=10g \
-p 127.0.0.1:20128:20128 -v omniroute-data:/app/data diegosouzapw/omniroute:latest
```
Повна таблиця: [Посібник із Docker — оперативна пам’ять під час виконання](docs/guides/DOCKER_GUIDE.md#runtime-ram-for-coding-agents).
> **Канал попередніх випусків Docker:** `diegosouzapw/omniroute:next` і
> `diegosouzapw/omniroute:next-web` відповідають поточній типовій гілці `release/v*`.
> Ці змінювані теги призначені лише для тестування ще не випущених виправлень і
> **не підтримуються для промислового використання**. Див.
> [Канали випусків Docker](docs/guides/DOCKER_GUIDE.md#release-channels).
**🥟 Bun**
Стандартні `bun install` і глобальне встановлення (`bun install -g omniroute`) підтримуються завдяки виявленню середовища виконання Bun:
- **Вбудований `bun:sqlite`**: під час роботи в Bun OmniRoute використовує вбудований драйвер Bun `bun:sqlite`, а в Node.js — `better-sqlite3` або `sql.js` як резервний варіант.
- **Автоматичний вибір пакувальника Webpack під час розробки**: режим розробки (`bun run dev`) автоматично виявляє Bun і вимикає Turbopack на користь Webpack, щоб запобігти несумісності нативних прив’язок V8. Виробничі збірки (`bun run build`) використовують `OMNIROUTE_USE_TURBOPACK` так само, як і в Node: типово Turbopack, а `OMNIROUTE_USE_TURBOPACK=0` — для збирання за допомогою Webpack (`Dockerfile.bun` надає його як `--build-arg`).
- **Окремий Dockerfile для Bun**: багатоетапний `Dockerfile.bun` для нативних виробничих розгортань Bun (`docker build -f Dockerfile.bun -t omniroute:bun .`).
```bash
# Встановлення та запуск за допомогою Bun
bun install
bun run dev
```
**🛠️ З вихідного коду**
```bash
cp .env.example .env && npm install
PORT=20128 npm run dev
```
**📦 pnpm**
```bash
pnpm add -g omniroute@latest --allow-build=better-sqlite3 --allow-build=@swc/core && omniroute
```
**🐧 Arch Linux (AUR)**
```bash
yay -S omniroute-bin && systemctl --user enable --now omniroute.service
```
**🔧 Nix (Flake)**
```bash
# Використання Nix flakes
nix develop
npm run dev
# Або використання devbox
devbox run npm run dev
```
📖 [Посібник із Docker](docs/guides/DOCKER_GUIDE.md) — профілі Compose, Caddy HTTPS, тунелі Cloudflare.
**🦭 Podman**
```bash
# 1. Підготуйте каталог даних для монтування через bind mount
mkdir -p data
# 2. Лише Linux + локальний rootless Podman (ніколи не віддалений клієнт Podman Machine):
podman unshare chown 1000:1000 ./data
# 3. Установіть підказку середовища виконання, зберіть локальний образ Compose і запустіть
echo "CONTAINER_HOST=podman" >> .env
podman compose --profile base up -d --build
```
У macOS або Windows Podman використовує віддалену Podman Machine: пропустіть `podman unshare` і
дотримуйтеся [рекомендацій щодо каталогу даних для відповідної топології](contrib/podman/README.md#data-directory-permissions-by-topology).
📖 [Посібник із Podman](contrib/podman/README.md) — збірки Compose, Podman Machine і
налаштування Quadlet для Linux/systemd.
**⚡ Швидше / компактніше встановлення (без нативної збірки)**
Нативний рушій SQLite (`better-sqlite3`) є **необов’язковою** залежністю, тому глобальне
встановлення ніколи не блокується через компіляцію з вихідного коду: воно використовує попередньо зібраний бінарний файл, якщо він відповідає
вашій платформі/Node, а в іншому разі прозоро переходить на рушій на чистому JS
(`node:sqlite` у Node 22+, інакше — вбудований WASM `sql.js`) — інструменти для збирання не потрібні.
Щоб повністю пропустити нативну підготовку після встановлення (для CI, безголових або повільних машин):
```bash
OMNIROUTE_SKIP_POSTINSTALL=1 npm install -g omniroute # CI=1 також пропускає її
```
Для найшвидшого встановлення віддавайте перевагу **pnpm** (сховище з адресацією за вмістом + жорсткі посилання — див. вище).
Для безголового середовища виконання без панелі керування використовуйте профіль Docker `base` (вище) або
[посібник із Termux](docs/guides/TERMUX_GUIDE.md). CLI та вебпанель керування обслуговуються
одним процесом на одному порту, тому наразі окремого пакета лише для CLI немає.
Стратегія покриття тестами для понад 39 000 статичних оголошень тестів у понад 5 100 відстежуваних файлах тестів
# ⭐ Найактивніші учасники
> OmniRoute розвивається завдяки натхненній спільноті відкритого коду. Ці люди зробили винятковий внесок, який безпосередньо впливає на якість, стабільність і поширення проєкту. **Дякуємо.**
### Зовнішні учасники за кількістю об’єднаних запитів на злиття
Зафіксовано на актуальній вершині гілки release/v3.8.50 — dafb4ae808, зі злиттями до 2026-08-24 05:26:03 UTC включно. Посторінковий перепис GitHub GraphQL містить 5 911 об’єднаних PR: 2 707 від власника репозиторію, 179 від Dependabot і 3 025 зовнішніх PR від 535 різних учасників. «Змінені рядки» — це сума доданих і видалених рядків за даними GitHub, що включає згенеровані файли, файли блокування, каталоги, переклади та документацію; це обсяг змін, а не кількість авторських рядків коду. У разі однакових результатів на межі рейтингу враховано всіх учасників.
### Коміти з атрибуцією GitHub
Bob.Hou 🏅 51 коміт, зарахований GitHub · ділить 10-те місце
Xiangzhe 🏅 51 коміт, зарахований GitHub · ділить 10-те місце
Повторно перевірено 2026-08-24 06:14:31 UTC: коміти, зараховані GitHub, отримані через API учасників репозиторію для стандартної гілки release/v3.8.50. API повернув 525 ідентичностей (415 користувачів, 2 боти, 108 анонімних); із цієї таблиці виключено супроводжувача, ботів та анонімні ідентичності, а однакові позиції в рейтингу збережено. Ця таблиця відрізняється як від наведеного вище рейтингу об’єднаних PR, так і від наведеного нижче переліку 639 осіб на основі метаданих Git.
> 🙏 Функції, виправлення помилок і вдосконалення інфраструктури, створені цими учасниками, є **основною складовою** того, що робить OmniRoute надійним і функціонально насиченим. Кожен pull request, кожен тестовий сценарій і кожен файл перекладу i18n мають значення. Відкритий код створюють такі люди, як вони.
---
## 💖 Спонсори
Щира подяка людям, які фінансують OmniRoute із власної кишені — кожен внесок допомагає проєкту залишатися безкоштовним, незалежним і продовжувати розвиватися.
… та інші, які воліють залишатися непублічними 💛Публічних спонсорів GitHub повторно перевірено 2026-08-24. Статус activeOnly у GitHub визначає наведені вище позначки активності; раніше оприлюдненим публічним одноразовим благодійникам ми й надалі дякуємо, а приватні спонсори залишаються анонімними.💖 Стати спонсором → — кожен долар допомагає OmniRoute залишатися безкоштовним і незалежним.
## 👥 Понад 600 учасників
[](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)
Перевірено 2026-08-24 на зафіксованій базі ac02c5b42f та повторно перевірено на актуальній вершині dafb4ae808 гілки release/v3.8.50: 639 нормалізованих людських ідентичностей Git — 407 зазначені як автори комітів (включно із супровідником), а 232 — лише в явних завершальних рядках Co-authored-by. Під час підрахунку нормалізовано імена користувачів GitHub noreply, виключено 26 ідентичностей ботів, агентів, служб і заповнювачів, а звичайні адреси електронної пошти не об’єднувалися лише через збіг відображуваних імен.
### Як зробити внесок
1. Створіть форк репозиторію
2. Створіть гілку від вершини **активної** гілки `release/vX.Y.Z` (не від `main`) — див. [Модель гілок і випусків](docs/ops/BRANCHING_MODEL.md)
3. Створіть власну гілку функціональності (`git checkout -b feat/amazing-feature`)
4. Закомітьте свої зміни (`git commit -m 'feat: add amazing feature'`)
5. Надішліть зміни до гілки (`git push origin feat/amazing-feature`)
6. Відкрийте запит на злиття, указавши **base = відповідна гілка `release/vX.Y.Z`**
Докладні настанови див. у [CONTRIBUTING.md](CONTRIBUTING.md).
### Випуск нової версії
```bash
# Створіть випуск — npm publish виконається автоматично
VERSION=x.y.z
gh release create "v${VERSION}" --title "v${VERSION}" --generate-notes
```
## 📊 Зірки
## 🌍 StarMapper
## 🙏 Подяки
OmniRoute стоїть на плечах гігантів. Він розпочався як форк **[9router](https://github.com/decolua/9router)** і TypeScript-порт проєкту **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)**, написаного мовою Go, — а відтоді кожна наведена нижче підсистема надихалася проєктом із відкритим кодом, який реалізував її раніше. Кожен із них сформував конкретну частину OmniRoute. Так ми висловлюємо подяку всім їм. 🙏
> ⭐ кількість зірок перевірено через REST API GitHub 24 серпня 2026 року — поставте зірку цим проєктам. Наведені значення є точним знімком станом на вказану дату й закономірно змінюватимуться.
### 🧬 Походження та шлюз
Шлюз ШІ, загальнодоступний набір даних про ціни якого використовується для нашої синхронізації відстеження витрат, а модель нормалізації провайдерів вплинула на нашу маршрутизацію.
Вихідний код під ліцензією MIT, адаптований у вбудований міст ChatGPT Web → Codex Responses, зокрема адаптери браузерних сесій, формування відповідей, обліку використання та вебпошуку.
Шаблони, перенесені до відновлення потоків, псевдонімів без міркувань, резервного вебпошуку, обмежень ковзного вікна, редагування журналів і посилених сценаріїв запуску.
Його зіставлення моделей Grok, генератор Statsig із підробленим TypeError, типові налаштування запитів і пристроїв та обробник відповідей NDJSON були суттєво адаптовані для виконавця Grok Web в OmniRoute.
Основне транзитивне джерело коду, на якому базується grok2api-merged; його реалізації моделей, заголовків, корисного навантаження, Statsig та обробника збережено в лінії походження Grok Web.
Базовий вихідний код під ліцензією MIT для корисного навантаження Grok і типових налаштувань пристрою, генератора Statsig та обробника result.response, що перейшов через TQZHR і grok2api-merged.
Транзитивне джерело, зазначене grok2api-merged як основа для його шару пулу проксі; OmniRoute зберігає це повідомлення про походження, але не заявляє про перенесення пулу проксі до свого обмеженого виконавця Grok Web.
Його проксі Grok з автентифікацією за допомогою cookie та шаблон потокового передавання result.response.token вплинули на транспорт Grok Web в OmniRoute.
Початкова реалізація Grok Web спиралася на його дизайн взаємодії з upstream через HTTP/браузер; її прямий HTTP-шлях походить від GrokProxy, тому не заявляється про незалежне перенесення коду.
Вірусний проєкт «навіщо багато токенів, коли мало токенів роблять справу» — його філософія печерної мови лежить в основі нашого стандартного режиму стиснення та понад 30 правил видалення слів-паразитів і конденсації.
Високопродуктивне стиснення виводу команд — надихнуло нас на рушій RTK, DSL фільтрації JSON, відновлення необробленого виводу та комбінований конвеєр RTK → Caveman.
Дослідження зі стиснення промптів (LLMLingua / LLMLingua-2) — надихнуло нас на асинхронний, безпечний для коду рушій llmlingua, який у разі помилки продовжує роботу без стиснення.
Стиснення токенів для pt-BR — лежить в основі нашого мовного пакета pt-BR: скорочення плеоназмів і видалення слів-паразитів, налаштовані відповідно до граматики бразильського варіанта португальської мови.
Вірусна навичка YAGNI-програміста «лінивий старший розробник» — надихнула нас на стиль виводу less-code: орієнтацію на найменшу працездатну зміну, яка скорочує _згенерований_ код (аналог лаконічної прози Caveman на осі виводу).
Стиснення виводу з урахуванням вмісту та типу файлу, а також вихід зі стиснення в разі помилки — підтвердили правильність нашої диспетчеризації за типами й пропуску стиснення за недостатнього виграшу.
Стовпчиковий JSON на Rust, отримання за адресацією вмісту та дедуплікація між повідомленнями — підтвердили правильність архітектури наших рушіїв headroom/ccr/session-dedup та стабільного для кешу інваріанта «стиснена форма не залежить від позиції».
Набір інструментів TypeScript Compiler API — надихнув нас на видалення коментарів за допомогою парсера зі збереженням рядкових, шаблонних і regex-літералів.
MITM-перехоплення й аналіз трафіку між асистентом із написання коду та LLM вплинули на початкові вимоги до інспектора трафіку. Чотири раніше похідні модулі — об’єднання SSE, нормалізація розмов, маскування секретів і санітизація заголовків — було замінено незалежними реалізаціями, створеними з нуля на основі загальнодоступних стандартів протоколів. Дві поверхні наскрізного передавання хоста (passthrough.ts і _internal/bypass.cjs) залишаються внутрішніми реалізаціями OmniRoute, класифікованими незалежно; їх не переписували в межах цієї заміни.
Прозора маршрутизація через проксі для кожного процесу — надихнула нас на стійке до збоїв завершення роботи MITM, тайм-аути бездіяльності сокетів, визначення належності процесів через /proc і перехоплення TPROXY.
### 📚 Дані моделей, спостережуваність та інтерфейс
Спостережуваність сервісної сітки Istio — надихнула на створення значків автоматичних вимикачів і візуалізації ребер із помилками в студії маршрутизації/комбінування.
Добірка бібліотек із безпечними налаштуваннями за замовчуванням, якою ми керуємося у виборі засобів безпеки (Helmet.js, DOMPurify, ssrf-req-filter, safe-regex, Google Tink).
Його залежне від облікового запису перепризначення моделей, перевірка шляхів до виконуваних файлів і поведінка міток планів вплинули на середовище виконання Antigravity в OmniRoute.
Виявив інтерфейс квоти Grok Build; після цього OmniRoute незалежно перевірив і виправив актуальний формат передавання даних.
## 📄 Ліцензія
Ліцензія MIT — подробиці див. у файлі [LICENSE](LICENSE).
---
**[⬆ Повернутися нагору](#-omniroute)** · Створено з ❤️ для спільноти ШІ з відкритим кодом.
OmniRoute v3.8.51 · Node ≥22.22.2 · Ліцензія MIT · omniroute.online