# README (Русский) 🌐 **Languages:** 🇺🇸 [English](../../../README.md) · 🇪🇹 [am](../am/README.md) · 🇸🇦 [ar](../ar/README.md) · 🇦🇿 [az](../az/README.md) · 🇧🇬 [bg](../bg/README.md) · 🇧🇩 [bn](../bn/README.md) · 🇧🇦 [bs](../bs/README.md) · 🇨🇿 [cs](../cs/README.md) · 🇩🇰 [da](../da/README.md) · 🇩🇪 [de](../de/README.md) · 🇬🇷 [el](../el/README.md) · 🇪🇸 [es](../es/README.md) · 🇪🇪 [et](../et/README.md) · 🇮🇷 [fa](../fa/README.md) · 🇫🇮 [fi](../fi/README.md) · 🇫🇷 [fr](../fr/README.md) · 🇮🇪 [ga](../ga/README.md) · 🇮🇳 [gu](../gu/README.md) · 🇳🇬 [ha](../ha/README.md) · 🇮🇱 [he](../he/README.md) · 🇮🇳 [hi](../hi/README.md) · 🇭🇷 [hr](../hr/README.md) · 🇭🇺 [hu](../hu/README.md) · 🇦🇲 [hy](../hy/README.md) · 🇮🇩 [id](../id/README.md) · 🇳🇬 [ig](../ig/README.md) · 🇮🇹 [it](../it/README.md) · 🇯🇵 [ja](../ja/README.md) · 🇬🇪 [ka](../ka/README.md) · 🇰🇭 [km](../km/README.md) · 🇮🇳 [kn](../kn/README.md) · 🇰🇷 [ko](../ko/README.md) · 🇱🇹 [lt](../lt/README.md) · 🇱🇻 [lv](../lv/README.md) · 🇮🇳 [ml](../ml/README.md) · 🇮🇳 [mr](../mr/README.md) · 🇲🇾 [ms](../ms/README.md) · 🇲🇹 [mt](../mt/README.md) · 🇲🇲 [my](../my/README.md) · 🇳🇵 [ne](../ne/README.md) · 🇳🇱 [nl](../nl/README.md) · 🇳🇴 [no](../no/README.md) · 🇮🇳 [or](../or/README.md) · 🇮🇳 [pa](../pa/README.md) · 🇵🇭 [phi](../phi/README.md) · 🇵🇱 [pl](../pl/README.md) · 🇵🇹 [pt](../pt/README.md) · 🇧🇷 [pt-BR](../pt-BR/README.md) · 🇷🇴 [ro](../ro/README.md) · 🇱🇰 [si](../si/README.md) · 🇸🇰 [sk](../sk/README.md) · 🇸🇮 [sl](../sl/README.md) · 🇷🇸 [sr](../sr/README.md) · 🇸🇪 [sv](../sv/README.md) · 🇰🇪 [sw](../sw/README.md) · 🇮🇳 [ta](../ta/README.md) · 🇮🇳 [te](../te/README.md) · 🇹🇭 [th](../th/README.md) · 🇹🇷 [tr](../tr/README.md) · 🇺🇦 [uk-UA](../uk-UA/README.md) · 🇵🇰 [ur](../ur/README.md) · 🇺🇿 [uz](../uz/README.md) · 🇻🇳 [vi](../vi/README.md) · 🇳🇬 [yo](../yo/README.md) · 🇨🇳 [zh-CN](../zh-CN/README.md) · 🇹🇼 [zh-TW](../zh-TW/README.md) ---
| 🚀 Начало работы | 🚀 Быстрый старт | 📦 Установка | 🆓 Подключить провайдера |
| 💡 Узнать больше | 💥 Обещание | 🤔 Почему OmniRoute | 🏆 Преимущества |
| ⚙️ Возможности | 🎯 Комбинации | 🌐 Провайдеры | 🔌 CLI и MCP |
| 🗜️ Сжатие | 🖥️ Где он работает | 🔒 Приватность | |
| 👀 Посмотреть | 🎬 В действии | ✨ Что нового | 🤖 Совместимые CLI |
| 💚 Поддержать | 💚 Поддержать / Пожертвовать | 💬 Сообщество | 💖 Спонсоры |
| 📦 Проект | 🛠️ Технологический стек | 📖 Документация | 👥 Участники |
|
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 являются партнерскими ссылками. Они финансируют проект без дополнительных затрат для вас.
|
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 не имеет спонсорства или партнерства с этим провайдером. |
| ID модели | Что оптимизируется |
|---|---|
auto | 🎯 Сбалансированный вариант по умолчанию (LKGP — продолжает использовать последнего успешно сработавшего провайдера) |
auto/coding | 🧑💻 Приоритет качества при генерации кода |
auto/fast | ⚡ Сначала минимальная задержка |
auto/cheap | 💰 Сначала минимальная стоимость токена |
auto/subscription | 🎟️ Только уже оплаченная квота подписки — закрытый отказ, без перехода на тарифицируемый резервный вариант (руководство) |
auto/thrifty | 🪜 Сначала квота тарифного плана, затем по одной ступени к самым дешёвым платным вариантам — возврат к плану после сброса квоты (руководство) |
auto/offline | 🔋 Сначала максимальный запас квоты / лимита запросов |
auto/smart | 🔭 Приоритет качества + 10% запросов для поиска более подходящих моделей |
auto/lkgp | 📌 Явное закрепление за последним успешно сработавшим провайдером |
auto/chaos | 🧪 Параллельная отправка запросов группе моделей (по одной на провайдера, по умолчанию 5) с возвратом одного ответа; один восходящий вызов на каждую модель группы, без инъекции сбоев |
| # | Стратегия | Как она работает |
|---|---|---|
| 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 | quota-weighted |
Пропуск аккаунтов с исчерпанной квотой, затем выбор пропорционально оставшейся квоте ÷ текущей нагрузке — существующие диалоги остаются закреплёнными ⚖️ |
| 12 | reset-window |
Предпочтение цели, окно квоты которой сбросится раньше остальных |
| 13 | reset-aware |
Ранжирование по времени сброса квоты — сначала короткие окна 📊 |
| 14 | context-relay |
Передача контекста между целями для длительных диалогов 🧠 |
| 15 | context-optimized |
Выбор наиболее подходящей цели для текущего размера контекста |
| 16 | cache-optimized |
Закрепление каждого повторно используемого префикса промпта за одним аккаунтом — для максимального количества попаданий в кэш промптов 🎯 |
| 17 | lkgp |
Последний успешно сработавший маршрут — закрепляет запросы за последним успешным провайдером, а затем переключается на резервные правила |
| 18 | auto |
Оценка всех подключений в реальном времени по 16 факторам 🤖 |
| 19 | fusion |
Параллельная отправка запросов группе моделей + модель-судья синтезирует единый ответ 🧬 |
| 20 | pipeline |
Цепочка этапов — выход каждой цели передаётся следующей 🔗 |
| ⭐ Поставить звезду репозиторию | Бесплатно — действительно помогает повысить видимость | Поставить звезду OmniRoute |
| 🐙 GitHub Sponsors | Разовый или ежемесячный платёж · без комиссии платформы | github.com/sponsors/diegosouzapw |
| ☕ Ko-fi | Быстрое разовое пожертвование, регистрация для спонсора не требуется | ko-fi.com/diegosouzapw |
| 🧋 Buy Me a Coffee | Небольшой неформальный знак поддержки | buymeacoffee.com/diegosouzapw |
| 🖐 Liberapay | Регулярные пожертвования · некоммерческая платформа · открытый исходный код | liberapay.com/diegosouzapw |
| 🇧🇷 PIX (Бразилия) | Мгновенно, без комиссии | ключ и QR-код ниже |
| ₿ Криптовалюта | BTC · ETH · USDT-TRC20 · USDC-Solana | адреса ниже |
Ключ (случайный): `5d865059-bc44-483a-962d-43ceb80126eb`
Pix copia-e-cola:
```
00020101021126580014br.gov.bcb.pix01365d865059-bc44-483a-962d-43ceb80126eb5204000053039865802BR5922OMNIROUTE CONTRIBUICAO6006BRASIL62070503***630475DD
```
| ₿ BTC | Bitcoin (SegWit) | bc1qh00smz004sy85wyl28v77tenkt3ckl6eaep7fd |
| Ξ ETH | Ethereum (ERC20) | 0x64Cf6B68A6Ff34288e89172950a2d00102337a84 |
| ₮ USDT | Tron (TRC20) | TKAF41JpuQrHbKTnsQa9svJE2T192Hvsc2 |
| $ USDC | Solana | 2emNNZzVVWQc3FQ2wk9M6qXUQmW8AKdjjL174fXR28Tu |
Примечания для разработчиков: Во время npm install/postinstall проект может создать локальный файл .env для удобства разработчика. Этот файл намеренно игнорируется через .gitignore (см. .gitignore) и никогда не должен попадать в коммиты — если он был случайно добавлен в коммит, замените все раскрытые секреты и удалите файл из истории. Рекомендации по управлению локальными файлами окружения и секретами см. в docs/DEVELOPER-ENVIRONMENT.md.
Claude Code |
Codex CLI |
Cline |
Kilo Code |
Zoo Code |
Continue |
Aider |
ForgeCode |
jcode |
DeepSeek TUI |
CodeWhale |
OpenCode |
Factory Droid |
Copilot CLI |
Cursor CLI |
Smelt |
Pi |
Grok Build |
Hermes Agent |
OpenClaw |
Goose |
Open Interpreter |
Warp AI |
deyin.ai |
OpenAI |
Anthropic |
Gemini |
xAI Grok |
DeepSeek |
Mistral |
Qwen |
Meta Llama |
Groq |
NVIDIA |
MiniMax |
Cohere |
Perplexity |
HuggingFace |
Together |
Fireworks |
Cloudflare |
Baidu |
OpenCode Zen DeepSeek V4, Nemotron 3 Без ограничения на количество токенов |
Kilo Code Автомаршрутизатор, Tencent Hy3 Бесплатно навсегда |
Requesty GPT-OSS 120B, Nemotron Бесплатно навсегда |
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 моделей 10K нейронов/день |
NVIDIA NIM GLM, MiniMax ~40 RPM бесплатно |
Cerebras GLM 4.7, GPT-OSS Одноразовый кредит $5; требуется карта |
OpenRouter :free модели +$10 → более высокий RPM |
| Платформа | Установка | Основные моменты |
|---|---|---|
| 📦 npm (глобальный) | npm install -g omniroute | Одна команда, OS |
| ⚡ Bun (глобальный) | Bun add -g omniroute | Тот же архив реестра, быстрее устанавливается |
| 🐳 Docker | docker run … diegosouzapw/omniroute | Multi-arch AMD64 + ARM64 |
| 🖥️ Desktop (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 | Запускает на вашем телефоне , 24/7, без рута |
| 📲 PWA | «Добавить на главный экран» | Полноэкранный режим, автономный режим, установка из браузера |
| 🧩 OpenCode плагин | @omniroute/opencode-provider | OpenCode интеграция |
| 🤖 VS Код Copilot Chat | install OmniCopilot Расширение | OmniRoute модель zqo в встроенном средстве выбора чата Copilot — стабильная версия & Инсайдеры |
| 🛠️ Из исходного кода | npm install && npm run dev | Взломайте его, внесите свой вклад |
| Магазин | Ссылка | Работает с |
|---|---|---|
| 🧩 VS Marketplace | Установить → | < td align =«left»>VS Code — стабильный & Инсайдеры|
| 🔓 Открыть реестр VSX | Установить → | < td align ="left">Cursor, Windsurf, VSCodium, Theia, code-server, Gitpod, Antigravity, Kiro…
| Что он делает | Как |
|---|---|
| 🟢 Контролирует сервер | Создает omniroute service , принимает уже работающий экземпляр вместо его дублирования |
| 📊 Краткий обзор использования в реальном времени | Квоты поставщика, Claude ограничения session/weekly со сбросом обратного отсчета, 30-дневная разбивка затрат |
| 🔄 Автоматические обновления на месте | Поэтапная установка, атомарная замена, откат в случае сбоя — всегда на новейшей версии |
| 🚀 Запуск при входе в систему | Необязательный запуск при входе в систему; только в трее, без значка в доке |
| 🩺 Doctor & logs | Диагностика в один клик и доступ к журналам сервера |
.dmg с сайта
выпускает . Источник, проблемы и сборка
документы доступны по адресу zoispag/omniroute-tray.
| Интерфейс | Эндпоинт / команда | Назначение |
|---|---|---|
| 🧰 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 | Управление удалённым экземпляром с помощью токенов доступа с ограниченными правами |
| # | Движок | Назначение |
|---|---|---|
| 1 | Session-Dedup | Удаляет содержимое, повторяющееся между ходами (адресация по содержимому, между ходами) |
| 2 | CCR | Архивирует большие блоки за маркерами извлечения, загружая их по запросу |
| 3 | Lite | Удаляет лишние пробелы и сокращает URL изображений (базовый режим с низкой задержкой) |
| 4 | RTK | Интеллектуальная фильтрация результатов инструментов, удаление дубликатов и усечение (с учётом команд) |
| 5 | Responses Tool Output | Сначала сжатие JSON без потерь + ограниченное диагностическое сжатие результатов shell/patch/search/build (Responses API) |
| 6 | Headroom | Сжатие табличных данных в массивах 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 остаются в режиме отказа по умолчанию до получения подтверждений от провайдера. Четыре профиля сжатия (по умолчанию агрессивный, сбалансированный, безопасный для программирования, passthrough) (наиболее агрессивный; включается явно) |
| Режим | Экономия | Лучше всего подходит для | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 🪶 Lite | ~15% | Безопасный режим по умолчанию для постоянного использования | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 🪨 Standard (Caveman) | ~30% | Ежедневной работы с кодом | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ⚡ Aggressive | ~50% | Длительных сессий с большим количеством инструментов | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 🔥 Ultra | ~75% | Максимальной экономии | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 🧰 RTK | 60–90% | Вывода shell/test/build/git | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 🔗 Stacked (RTK → Caveman) | 78–95% |
> **После (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:
# ⚡ Быстрый старт
**1) Установите и запустите**
```bash
npm install -g omniroute
omniroute
```
> 💡 Видите `npm warn ERESOLVE` или предупреждения о peer-зависимостях? [Они безвредны](docs/guides/TROUBLESHOOTING.md#npm-install-warnings-eresolve--peer--deprecated).
> **Используете npm 11 или более позднюю версию?** npm может блокировать скрипты жизненного цикла пакетов, если им не разрешён запуск. `postinstall` в OmniRoute (`node scripts/build/postinstall.mjs`) необходим для подготовки собственных файлов среды выполнения. При глобальной установке разрешите пакеты, названные в предупреждении npm. Для набора пакетов, указанного в OmniRoute 3.8.54:
>
> ```bash
> npm install -g --allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild omniroute
> ```
>
> Чтобы использовать этот список разрешённых пакетов при следующих глобальных установках, настройте его один раз, а затем устанавливайте обычным способом:
>
> ```bash
> npm config set allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild --location=user
> npm install -g omniroute
> ```
>
> Список зависимостей может меняться от релиза к релизу; если npm сообщает другой список, используйте имена пакетов из этого предупреждения. Разрешение для пакета позволяет запускать его скрипты установки.
> **Используете Gemini Web или другого провайдера на основе веб-cookie?** Пакет npm включает
> Playwright, но не его бинарный файл Chromium. Перед первым запросом к веб-провайдеру ознакомьтесь с примечанием
> [Настройка Playwright Chromium](docs/guides/TROUBLESHOOTING.md#gemini-web-and-playwright-chromium).
Панель доступна по адресу `http://localhost:20128` · API — по адресу `http://localhost:20128/v1`.
**2) Подключите подходящего провайдера, используя собственную учётную запись**
Панель → **Провайдеры** → выберите провайдера, чьи текущие условия и квота подходят для вашего сценария использования → добавьте его API-ключ или завершите процедуру подключения учётной записи. Бесплатные тарифы могут требовать регистрации, одобрения или способа оплаты. Ознакомьтесь с [Руководством по бесплатным тарифам](docs/getting-started/FREE-TIERS-GUIDE.md); доступность без ключа не гарантируется, а провайдеры, отмеченные как `tos: avoid`, по умолчанию исключаются из `auto`.
**3) Укажите провайдера в инструменте разработки**
```txt
Base URL: http://localhost:20128/v1
API Key: [скопируйте из Панель → Конечные точки]
Model: auto (маршрутизация среди подходящих подключений — или выберите провайдера/модель)
```
**4) Убедитесь, что всё работает**
```bash
curl http://localhost:20128/v1/models -H "Authorization: Bearer YOUR_KEY"
```
Вы должны увидеть список подключённых моделей. 🎉 Вот и всё — начинайте писать код, а OmniRoute автоматически выбирает маршруты и выполняет переключение при сбоях.
Если ваш клиент не может отправлять пользовательские заголовки, OmniRoute также предоставляет токенизированные совместимые псевдонимы:
```txt
OpenAI catalog: http://localhost:20128/vscode/YOUR_KEY/
OpenAI models: http://localhost:20128/vscode/YOUR_KEY/models
OpenAI chat: http://localhost:20128/vscode/YOUR_KEY/chat/completions
OpenAI responses: http://localhost:20128/vscode/YOUR_KEY/responses
Ollama chat: http://localhost:20128/vscode/YOUR_KEY/api/chat
Ollama tags: 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 сейчас нет.
# 🎬 OmniRoute в действии
## 📹 Видеоруководства
Снимок панели на 2026-10-18 · Исходный каталог: YT 1.352 | TT 334 | IG 290 · Актуальность (дни): YT 5 | TT 48 | IG 49
**Полный рейтинг (дедуплицированные канонические URL, `v > 0`, наибольший охват):**
| #1 | #2 | #3 | #4 | #5 |
| -------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
| [nick_saraev — Instagram](https://www.instagram.com/reel/Da8ZthUPK98/) — **3,042,474** | [nnapier7 — Instagram](https://www.instagram.com/reel/Dbp7wv_CIO0/) — **1,454,535** | [Amidia AI & Tech — YouTube](https://www.youtube.com/watch?v=NJ0TQ-pyMDY) — **794,974** | [theopenstack — Instagram](https://www.instagram.com/reel/DaSs65mMrHk/) — **692,419** | [migue.baena — TikTok](https://www.tiktok.com/@migue.baena/video/7670919268216622358) — **685,788** |
| #6 | #7 | #8 | #9 | #10 |
| ------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
| [milesreevesai — TikTok](https://www.tiktok.com/@milesreevesai/video/7667980059189366019) — **620,400** | [nikothetech — TikTok](https://www.tiktok.com/@nikothetech/video/7671890769665477918) — **610,803** | [Vaibhav Sisinty — YouTube](https://www.youtube.com/watch?v=QucgvbO5gsM) — **509,281** | [buildwithai.club — Instagram](https://www.instagram.com/reel/DbIt9AjK7-U/) — **347,652** | [nivedan.ai — Instagram](https://www.instagram.com/reel/DbIrCksJiqq/) — **331,973** |
Канонические метрики на 2026-10-18: **1.976 уникальных видео** · **20.220.289 известных просмотров** (`v > 0`) · **1.210 каналов/профилей по платформам**. Исходная панель содержит 1.976 строк (YouTube 1.352 = 740 длинных видео + 612 Shorts · TikTok 334 · Instagram 290); после нормализации по каноническому URL, при которой сохраняется наибольшее количество просмотров для каждого видео, дубликатов не осталось. Сбор данных YouTube заморожен на 2026-10-13 (квота API была исчерпана с 14 по 18/10), а TikTok/Instagram — на 2026-09-02 (нет кредитов для сбора данных); для 76 видео количество просмотров по-прежнему отсутствует.
> 🎬 **Сняли видео об OmniRoute?** Создайте [задачу](https://github.com/diegosouzapw/OmniRoute/issues/new) или начните [обсуждение](https://github.com/diegosouzapw/OmniRoute/discussions), указав ссылку, — и мы добавим его сюда.
# 📧 Сообщество и помощь
> Всё в одном месте — следите за публикациями сопровождающего, общайтесь с сообществом или создайте задачу.
| Канал | Где / как |
| ------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------- |
| 💼 **LinkedIn** — подписаться на сопровождающего | [linkedin.com/in/diegosouzapw](https://www.linkedin.com/in/diegosouzapw/) |
| 🐙 **GitHub** — следить за релизами и советами | [@diegosouzapw](https://github.com/diegosouzapw) |
| 💬 **Discord** | [discord.gg/U47eFqAXCn](https://discord.gg/U47eFqAXCn) |
| ✈️ **Telegram** | [t.me/omnirouteOficial](https://t.me/omnirouteOficial) |
| 🟢 **WhatsApp — 🌍 весь мир** | [вступить в группу](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4) |
| 🟢 **WhatsApp — 🇧🇷 Бразилия** | [вступить в группу](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4) |
| 🌍 **Веб-сайт** | [omniroute.online](https://omniroute.online) |
| 🌍 **🌍Сообщество StHub OmniRoute (бесплатно)** | [портал StHub](https://portal.sthub.com.br/communities/groups/st-hub/channels/Omniroute-World-8kRjmK) |
| 📦 **Исходный код** | [github.com/diegosouzapw/OmniRoute](https://github.com/diegosouzapw/OmniRoute) |
| 🐛 **Сообщить об ошибке** | [создать обращение](https://github.com/diegosouzapw/OmniRoute/issues) — приложите вывод `npm run system-info` |
| 🤝 **Внести вклад** | [CONTRIBUTING.md](CONTRIBUTING.md) · [Модель ветвления и релизов](docs/ops/BRANCHING_MODEL.md) · выберите `good first issue` |
| 💚 **Поддержать проект** | [Способы поддержки ↑](#-support-omniroute) · [GitHub Sponsors](https://github.com/sponsors/diegosouzapw) |
---
## 🛠️ Технологический стек
## 📖 Документация
# ⭐ Основные участники
> OmniRoute создаётся увлечённым сообществом открытого исходного кода. Эти люди внесли исключительный вклад, непосредственно повлиявший на качество, стабильность и охват проекта. **Спасибо.**
### Внешние участники по количеству объединённых запросов на включение изменений
---
release/v3.8.53 с коммитом 05bc048d6c. Постраничная перепись GitHub GraphQL содержит 9 947 объединённых PR: 4 130 от владельца репозитория, 240 от Dependabot, 6 от других ботов/приложений и 5 571 внешний PR от 883 отдельных участников. «Изменённые строки» — это сумма добавлений и удалений на GitHub; сюда входят сгенерированные файлы, lock-файлы, каталоги, переводы и документация. Это показатель объёма изменений, а не количество строк кода, написанных автором. В 53 PR указано более 500 000 строк в различиях GitHub (например, в #13399, одном добавлении провайдера, указано 2 347 изменённых файлов), что завышает некоторые приведённые выше итоги. Одинаковые места в рейтинге объединены.
### Коммиты, атрибутированные GitHub
release/v3.8.53. API вернул 903 идентификатора (429 пользователей, 2 бота, 472 анонимных); из этой таблицы исключены сопровождающий, боты и анонимные идентификаторы, а места с одинаковыми результатами сохранены. Этот рейтинг отличается как от приведённого выше рейтинга объединённых PR, так и от представленного ниже подсчёта метаданных Git.
> 🙏 Функции, исправления ошибок и улучшения инфраструктуры этих участников — **важнейшая часть** того, что делает OmniRoute надёжным и функционально насыщенным. Важен каждый pull request, каждый тестовый сценарий и каждый файл перевода i18n. Открытый исходный код создают такие люди, как они.
## 💖 Спонсоры
Огромное спасибо людям, которые финансируют OmniRoute из собственного кармана — каждый вклад помогает проекту оставаться бесплатным, независимым и продолжать развиваться.
isActive определяет приведённые выше пометки об активности; публичные пользователи, ранее оказавшие разовую поддержку, по-прежнему упомянуты с благодарностью, а частные спонсоры остаются анонимными. Пожертвования через Ko-fi, Buy Me a Coffee, Liberapay, PIX и в криптовалюте не указаны, поскольку для них нет публичной записи о спонсоре.
💖 Стать спонсором → — каждый доллар помогает OmniRoute оставаться бесплатным и независимым.
## 👥 Более 1 000 участников
[](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)
Аудит проведён 02.11.2026 на актуальном коммите release/v3.8.53 1c7135e0fb (7 972 коммита): 1 074 нормализованных человеческих идентификатора Git — 759 отображаются как авторы коммитов (включая сопровождающего), а 315 указаны только в явных трейлерах Co-authored-by. При подсчёте учитывается .mailmap, адреса электронной почты сравниваются без учёта регистра, числовые и обычные адреса GitHub noreply объединяются только в том случае, если они содержат один и тот же идентификатор, исключаются 29 идентификаторов ботов/агентов/служб/заполнителей, а обычные адреса электронной почты не объединяются только на основании совпадения отображаемых имён. Аудит от 24.08.2026 выявил 639 участников; повторный запуск этого метода на его исходном коммите ac02c5b42f даёт 619, поэтому увеличение связано с появлением новых участников, а не с применением менее строгого метода.
### Как внести вклад
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 выполняется автоматически
VERSION=x.y.z
gh release create "v${VERSION}" --title "v${VERSION}" --generate-notes
```
## 📊 Звёзды
## 🙏 Благодарности
OmniRoute стоит на плечах гигантов. Он начинался как форк **[9router](https://github.com/decolua/9router)** и TypeScript-порт Go-проекта **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** — а затем каждая представленная ниже подсистема была вдохновлена проектом с открытым исходным кодом, который первым достиг этой цели. Каждый из них сформировал конкретную часть OmniRoute. Это наша благодарность всем им. 🙏
> ⭐ количество звёзд подтверждено через REST API GitHub 3 ноября 2026 г. — поставьте этим проектам звезду. Значения представляют собой точный снимок на указанную дату и, естественно, будут меняться.
### 🧬 Происхождение и шлюз
**[⬆ Вернуться наверх](#-omniroute)** · Создано ❤️ для сообщества разработчиков ИИ с открытым исходным кодом.
Создано Diego Souza · OmniRoute v3.8.54 · Node ≥22.22.2 · Лицензия MIT · omniroute.online
|