> Объединять бесплатные тарифы вручную непросто — десятки 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?
## 🤝 Поддерживается нашими друзьями из Open Source
> **Хотите присоединиться в качестве друга Open Source?** Это компании, которые поддерживают открытый исходный код и помогают OmniRoute развиваться — и мы публично сообщаем, куда идет каждый токен, который они нам дают. Свяжитесь с нами: [diegosouza.pw@outlook.com](mailto:diegosouza.pw@outlook.com)
Kimi Moonshot AI
Благодарим Kimi (Moonshot AI), нашего основателя-друга Open Source, за поддержку этого проекта! Kimi — это лаборатория ИИ, стоящая за семействами моделей K2 и K3 с открытым весом — Kimi K3 предоставляет окно контекста в 1M токенов, нативное зрение и передовое кодирование за долю цены закрытых моделей, и работает из коробки с Claude Code, Codex и каждым инструментом кодирования, который обслуживает OmniRoute.
Что обеспечивает поддержка Kimi: Кредиты API Kimi обеспечивают работу конвейера выпуска OmniRoute, проверенного ИИ — этап *проверки слияния на базе Kimi K3*, который проверяет каждый pull request перед его отправкой — плюс ежедневную разработку функций. Первоклассная поддержка Kimi поставляется по обоим каналам: прямой Kimi API (kimi-k3) и план кодирования Kimi Code (OAuth и API key). OmniRoute также является первым бразильским проектом с открытым исходным кодом в программе поддержки Kimi. Получите Kimi API key с 15% дополнительными кредитами →
Cheaper Inference cheaperinference.com
Благодарим Cheaper Inference, друга Open Source 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 key →
Ссылки с тегом aff=omniroute являются партнерскими ссылками. Они финансируют проект без дополнительных затрат для вас. 🎟️ Партнерские акции — бесплатные купоны на регистрацию от провайдеров, которых мы не спонсируем (нажмите, чтобы развернуть)Этот раздел предназначен только для реферальных/купонных кодов. Спонсируемые партнерства находятся в разделе **🤝 Поддерживается нашими друзьями из Open Source** выше. 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 создаст виртуальное комбо из подключённых провайдеров с оценкой в реальном времени:
ID модели
Что оптимизируется
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 независимых уровня)
📖 [Механизм автокомбинаций](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
Основной показатель бесплатного уровня по-прежнему составляет **~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 в Agent Card и панель управления с голосовым чатом Faro в режиме push-to-talk. → [Сервер 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, игнорирующих переменные среды прокси, с отдельным центром сертификации для каждого 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` — и **любая** ИИ-среда разработки или 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 Бесплатно навсегда
Qoder AI Qwen3-Max, Kimi-K2 БЕСПЛАТНО без ограничений
Pollinations GPT, Llama, Claude Ключ не требуется
Cloudflare AI Более 50 моделей 10K нейронов в день
NVIDIA NIM GLM, MiniMax ~40 RPM бесплатно
Cerebras GLM 4.7, GPT-OSS 1M токенов в день
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
Интеллектуальная фильтрация, дедупликация и усечение результатов инструментов (с учётом команд)
5
Responses Tool Output
Приоритетное сжатие JSON без потерь и ограниченное сжатие диагностических данных для результатов оболочки, исправлений, поиска и сборки (Responses API)
6
Headroom
Табличное уплотнение массивов JSON без потерь (~30%) с помощью встроенной копии кодека GCF
7
Relevance
Экстрактивная оценка предложений относительно последнего запроса пользователя
8
Caveman
Сжатие текста на основе правил (~65–75% на выходе)
9
Aggressive
Суммаризация и постепенное сокращение старых реплик
10
LLMLingua-2
Семантическое сокращение с помощью машинного обучения на базе 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, устранить первопричину, внести минимальный рабочий diff.
- **У меня СДВГ (сначала действие)** — начинать со следующего действия, нумеровать шаги, предлагать один конкретный следующий шаг, без вступления.
- **Лаконичный 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` или предупреждения о зависимостях peer-dep? [Они безвредны](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
# Использование flakes Nix
nix develop
npm run dev
# Или использование devbox
devbox run npm run dev
```
📖 [Руководство по Docker](docs/guides/DOCKER_GUIDE.md) — профили Compose, HTTPS через Caddy, туннели 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 развивается благодаря увлечённому сообществу открытого исходного кода. Эти люди внесли выдающийся вклад, непосредственно повлиявший на качество, стабильность и охват проекта. **Спасибо.**
### Внешние участники по количеству объединённых pull request
Данные зафиксированы на актуальной вершине 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 надёжным и многофункциональным. Каждый запрос на включение изменений, каждый тестовый сценарий и каждый файл перевода i18n имеют значение. Открытый исходный код создаётся такими людьми, как они.
---
## 💖 Спонсоры
Огромное спасибо людям, которые финансируют OmniRoute из собственного кармана — каждый вклад помогает проекту оставаться бесплатным, независимым и продолжать развиваться.
… и другие, предпочитающие сохранять конфиденциальность 💛Публичные спонсоры GitHub были повторно проверены 2026-08-24. Статус GitHub activeOnly определяет указанные выше активные категории; мы по-прежнему благодарим ранее объявленных публичных разовых спонсоров, а частные спонсоры остаются анонимными.💖 Стать спонсором → — каждый доллар помогает OmniRoute оставаться бесплатным и независимым.
## 👥 Более 600 участников
[](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)
Аудит проведён 2026-08-24 на зафиксированной базе ac02c5b42f, а повторная проверка — на актуальной вершине release/v3.8.50dafb4ae808: 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. Откройте Pull Request, указав **base = эта ветка `release/vX.Y.Z`**
Подробные рекомендации см. в [CONTRIBUTING.md](CONTRIBUTING.md).
### Выпуск новой версии
```bash
# Создайте релиз — публикация в npm произойдёт автоматически
VERSION=x.y.z
gh release create "v${VERSION}" --title "v${VERSION}" --generate-notes
```
## 📊 Звёзды
## 🌍 StarMapper
## 🙏 Благодарности
OmniRoute стоит на плечах гигантов. Он начинался как форк **[9router](https://github.com/decolua/9router)** и порт проекта **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** с Go на TypeScript, а затем каждая из перечисленных ниже подсистем создавалась под влиянием проекта с открытым исходным кодом, который уже реализовал подобную идею. Каждый из них сформировал определённую часть 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 Web учитывалась его архитектура вышестоящего 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 — вдохновил нас на удаление комментариев на основе парсера с сохранением строковых, шаблонных и литералов регулярных выражений.
MITM-перехват и анализ трафика между ассистентом для программирования и LLM повлияли на ранние требования к Traffic Inspector. Четыре ранее заимствованных модуля — объединение SSE, нормализация диалогов, маскирование секретов и очистка заголовков — были заменены независимыми реализациями, созданными с нуля на основе общедоступных стандартов протоколов. Два компонента сквозной передачи на уровне хоста (passthrough.ts и _internal/bypass.cjs) остаются внутренними реализациями OmniRoute, классифицированными независимо; они не переписывались в рамках этой замены.
Прозрачная маршрутизация через прокси для отдельных процессов — она вдохновила нашу отказоустойчивую деинициализацию MITM, тайм-ауты бездействия сокетов, атрибуцию процессов через /proc и перехват TPROXY.
### 📚 Данные о моделях, наблюдаемость и пользовательский интерфейс
Тщательно подобранный список библиотек с безопасными настройками по умолчанию, которым мы руководствуемся при выборе средств безопасности (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