OmniRoute — свободный AI-шлюз на 358 провайдеров
📂 Исходный код на GitHubЛокальный прокси-сервер (MIT), который маршрутизирует запросы к 358 AI-провайдерам через одну OpenAI-совместимую точку, автоматически переключаясь при исчерпании квоты, с 19 стратегиями маршрутизации и сжатием токенов до 95%
OmniRoute — локальный AI-шлюз с открытым исходным кодом (MIT, 70 300+ звёзд, 600+ контрибьюторов), который подключает любой AI-инструмент к 358 провайдерам и 1 300+ моделям через одну OpenAI-совместимую конечную точку — http://localhost:20128/v1. Проект написан на TypeScript, распространяется через npm и Docker, и нигде не «звонит домой»: всё работает на вашей машине.
Зачем это нужно
Каждый AI-редактор и CLI-агент требует собственную настройку провайдера. В результате разработчик жонглирует десятком дашбордов, мёртвыми API-ключами, внезапными лимитами и сюрпризами в счетах. OmniRoute решает эту проблему радикально:
- Один endpoint — 36 готовых интеграций (Claude Code, Codex, Cursor, Cline, Copilot, OpenCode, Aider, Goose, Kilo Code и другие) подключаются к
localhost:20128/v1 - Никогда не упираться в лимиты — четырёхуровневый авто-фолбэк: Подписка → API → Дешёвый → Бесплатный, за миллисекунды
- 150+ бесплатных провайдеров — из них 54 с бесплатным доступом навсегда, без карты
- ~1,62 млрд бесплатных токенов в месяц — агрегировано по документированным бесплатным тарифам, с дедубликацией общих пулов. Методика расчёта открыта и пересматривается каждые две недели: docs/reference/FREE_TIERS.md
19 стратегий маршрутизации
OmniRoute предлагает 19 стратегий, которые можно комбинировать внутри «комбо» — цепочек из моделей, по которым запрос скользит автоматически:
| Стратегия | Описание |
|---|---|
priority |
Упорядоченный список — исчерпать каждый перед переходом к следующему |
fill-first |
Сначала полностью выбрать квоту одной цели, потом переключаться |
cost-optimized |
Минимизация $ за запрос по живому каталогу цен |
headroom |
Выбор цели с наибольшим оставшимся объёмом квоты |
reset-window |
Приоритет цели, у которой окно квоты сбросится раньше всего |
cache-optimized |
Закрепить переиспользуемый префикс промпта за одним аккаунтом ради попаданий в кеш |
context-relay |
Передача контекста между целями в длинных диалогах |
fusion |
Параллельный запрос к панели моделей + синтез ответа судьёй |
pipeline |
Цепочка шагов — выход каждого подаётся на вход следующему |
lkgp |
Last-Known-Good Path — прилипание к последнему успешному провайдеру |
auto |
16-факторный живой скоринг по всем подключениям |
Режим auto (и его варианты auto/coding, auto/fast, auto/cheap, auto/offline, auto/smart, auto/chaos) строит виртуальное комбо из подключённых провайдеров и оценивает кандидатов по 16 факторам: здоровье, квота, стоимость, задержка, соответствие задаче, доступность сессии и другие. Подробности — в docs/routing/AUTO-COMBO.md.
Сжатие токенов: экономия 15–95%
Каждый запрос прозрачно проходит через конвейер из 12 компрессионных движков — Session-Dedup, CCR, Lite, RTK, Headroom, Relevance, Caveman, Aggressive, LLMLingua-2, Ultra и другие. Каждый движок включается и настраивается независимо, а готовые пресеты собирают их в один клик:
| Режим | Экономия | Для чего |
|---|---|---|
| Lite | ~15% | Безопасный режим по умолчанию |
| Standard (Caveman) | ~30% | Ежедневное программирование |
| Aggressive | ~50% | Длинные сессии с инструментами |
| Ultra | ~75% | Максимальная экономия |
| RTK | 60–90% | Вывод shell/тестов/сборки/git |
| Stacked (RTK → Caveman) | 78–95% | Смешанные промпты + логи инструментов |
Блоки кода, URL и структурированные данные всегда сохраняются байт-в-байт. В среднем на сессиях с интенсивным использованием инструментов экономия составляет ~89%. Сверху есть адаптивный регулятор: OmniRoute сам решает, насколько сжать, чтобы запрос влез в контекстное окно выбранной модели, а уровень можно переопределить на один запрос заголовком x-omniroute-compression. Полный список движков — в docs/compression/COMPRESSION_ENGINES.md.
Квота-шеринг для команд
Несколько ключей к одному аккаунту (один Codex Pro, один ключ Kimi, одно место GLM Coding)? OmniRoute распределяет квоту честно между ключами пула с настраиваемыми весами (50/30/20) и политиками (hard / soft / burst). Неиспользуемая доля одалживается активным участникам, поэтому никто не простаивает впустую.
Устойчивость: три слоя самовосстановления
| Слой | Область | Что делает |
|---|---|---|
| Circuit Breaker | Весь провайдер | Останавливает запросы к падающему провайдеру, авто-пробинг для восстановления |
| Connection Cooldown | Один ключ/аккаунт | Пропускает ключ под 429, пока остальные продолжают работу |
| Model Lockout | Провайдер + модель | Карантин одной модели, не трогая остальные |
Поверх этого тяжёлые запросы встают в очередь вместо ошибки 503, а каждый ответ несёт заголовок X-OmniRoute-Decision — какая стратегия, провайдер и задержка его обслужили.
MCP и A2A: агент управляет шлюзом
OmniRoute выставляет себя как MCP-сервер (110 инструментов, 3 транспорта, 33 области видимости) и A2A-агент (6 навыков, JSON-RPC 2.0). Это значит, что AI-агент может сам управлять маршрутизацией, провайдерами, комбо, кешем, сжатием и памятью:
claude mcp add-server omniroute --type http --url http://localhost:20128/api/mcp/stream
Описание интерфейсов и областей видимости — в docs/frameworks/MCP-SERVER.md.
Что нового
Репозиторий живёт на ветках релизов и обновляется быстро. Из последнего:
- Modality Bridge — через один шлюз проходят не только текст, но и изображения, аудио и видео
- Генерация медиа — эндпоинты
/v1/ocrи/v1/audio/translations, генерация картинок, видео и речи - OmniRouteTray — нативное приложение в строке меню macOS, которое следит за сервером и само его обновляет
- OmniCopilot — расширение для VS Code: все модели OmniRoute в нативном пикере Copilot Chat
- Прозрачный MITM (TPROXY) — перехват CLI, которые игнорируют переменные прокси, с per-SNI центром сертификации
- Честная стоимость — провайдеры с подпиской показываются как $0 в аналитике, при этом бюджет, квота и маршрутизация всё равно продолжают оценивать
- Облачные агенты — Codex Cloud, Cursor, Devin, Jules, Grok Build и Ollama как полноценные карточки провайдеров
Где запускается
| Платформа | Установка |
|---|---|
| npm | npm install -g omniroute |
| Docker | docker run … diegosouzapw/omniroute (AMD64 + ARM64) |
| Desktop (Electron) | Windows / macOS / Linux |
| Строка меню macOS | brew install --cask zoispag/tap/omniroute-tray |
| Android (Termux) | pkg install nodejs && npx -y omniroute |
| PWA | «Добавить на главный экран» из браузера |
| OpenCode | @omniroute/opencode-provider |
| VS Code Copilot Chat | расширение OmniCopilot |
Почему локально
OmniRoute — локальный прокси. API-ключи и OAuth-токены шифруются на диске (AES-256-GCM), промпты уходят только выбранным провайдерам, телеметрия по умолчанию отключена, а все действия пишутся в локальный журнал SQLite. Полный аудит исходного кода, MIT-лицензия, self-host навсегда.
Быстрый старт
npm install -g omniroute
omniroute # Запуск шлюза + дашборда на порту 20128
omniroute setup # Мастер первой настройки
omniroute run claude # Запуск Claude Code с автоподстановкой модели
omniroute doctor # Диагностика провайдеров и подключений