Измените один base_url в Claude Code, Cursor или своём Agent — и переключайтесь между Claude, GPT, Gemini, DeepSeek, Kimi и сотнями других моделей через единый API, совместимый с OpenAI—это не эксклюзив OpenRouter. OmniRoute — один из самых быстрорастущих open-source AI-шлюзов на GitHub в 2026 году: лицензия MIT, самостоятельный хостинг, каталог 290+ провайдеров и 500+ моделей (90+ с бесплатным тарифом). В этом руководстве — что это такое, первый успешный API-вызов, подключение Claude Code и чеклист безопасности для продакшена.
Что такое OmniRoute и какие задачи решает
Коротко: OmniRoute — это LLM reverse proxy на вашей собственной машине. Он предоставляет upstream единые /v1/chat/completions (плюс Anthropic /v1/messages, Gemini /v1beta/models и др.) и подключается downstream к вашим API-ключам провайдеров, OAuth-подпискам или бесплатным пулам.
Типичные сценарии
- Fallback по нескольким ключам при исчерпании лимита подписки Claude
- Единая точка входа Agent для Claude Code, Cursor и Cline с общими audit-логами
- Данные остаются внутри—нет стороннего прокси в пути запроса
- Бюджеты и квоты—см. наш гайд по бюджетной маршрутизации Auto Combo
OmniRoute vs OpenRouter vs LiteLLM
| Критерий | OmniRoute | OpenRouter | LiteLLM Proxy |
|---|---|---|---|
| Хостинг | Self-hosted | Облачный SaaS | Self-hosted (Python) |
| Биллинг | Тарифы провайдеров + ваша инфраструктура | Предоплаченные токены + ~5,5% комиссии | Тарифы провайдеров + ваша инфраструктура |
| Каталог | 290+ провайдеров / 500+ моделей | 300+ хостинговых моделей | Что вы настроите |
| Лучше всего для | Локальный шлюз, смешанные подписки, бюджеты | Быстрые эксперименты, без ops | Минимальный Python-прокси |
Для таблиц цен за токен читайте наш сравнительный обзор цен OpenRouter. Для бюджетов Agent-запросов на OmniRoute см. бюджетную маршрутизацию Auto Combo.
Установка и запуск (Docker / npm)
Docker (рекомендуется)
docker run -d --name omniroute \
-p 20128:20128 \
-v omniroute-data:/data \
diegosouzapw/omniroute
Откройте http://localhost:20128 → /dashboard.
npm (быстрая локальная проверка)
npm install -g omniroute
omniroute
Совет по Cloud Mac
Запустите OmniRoute на облачном Mac Zilmac для стабильного IP и SSH—сочетайте LLM-шлюз с xcodebuild на том же или соседнем хосте.
Dashboard в четыре шага
- Создайте API Key—все клиенты используют
Authorization: Bearer <key>. - Подключите провайдеров—OAuth, вставьте API-ключи или включите бесплатные no-auth пулы (только для теста).
- Направьте клиентов на
http://<host>:20128/v1. - Мониторьте использование—управляющие маршруты без ключа должны возвращать
401.
Список всех моделей: GET /v1/models
export OMNI_KEY="your-omniroute-api-key"
curl -s http://localhost:20128/v1/models \
-H "Authorization: Bearer $OMNI_KEY" | jq '.data | length'
Первый API-вызов (curl / Python / Node)
Используйте ID в формате provider/model. Отсутствующий префикс может быть добавлен автоматически; несоответствия возвращают 400.
curl
curl -s http://localhost:20128/v1/chat/completions \
-H "Authorization: Bearer $OMNI_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"anthropic/claude-sonnet-4-6","messages":[{"role":"user","content":"Explain OmniRoute in one sentence"}],"max_tokens":256}'
Python
from openai import OpenAI
client = OpenAI(api_key="your-key", base_url="http://localhost:20128/v1")
print(client.chat.completions.create(
model="openai/gpt-5.4",
messages=[{"role": "user", "content": "Hello"}],
).choices[0].message.content)
Потоковая передача
curl -N http://localhost:20128/v1/chat/completions \
-H "Authorization: Bearer $OMNI_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"deepseek/deepseek-chat","messages":[{"role":"user","content":"Count to 5"}],"stream":true}'
Anthropic Messages
Нативные клиенты Anthropic могут использовать POST /v1/messages. Полный список эндпоинтов: API Reference.
Псевдонимы намерений auto/* и fallback
Псевдонимы вроде auto/best-coding выбирают здоровую модель в пределах квоты—без изменения клиента при смене провайдера. В продакшене используйте бюджетную маршрутизацию, чтобы избежать нежелательного fallback на бесплатный тариф.
curl -s http://localhost:20128/v1/chat/completions \
-H "Authorization: Bearer $OMNI_KEY" -H "Content-Type: application/json" \
-d '{"model":"auto/best-coding","messages":[{"role":"user","content":"quicksort"}]}'
Claude Code, Cursor и Copilot
| Клиент | Настройка | Примечания |
|---|---|---|
| Claude Code | ANTHROPIC_BASE_URL=http://host:20128 | OAuth или API-маршрутизация |
| Cursor | Переопределить OpenAI Base URL → /v1 | Ключ OmniRoute как API key |
| Cline / Continue | Провайдер, совместимый с OpenAI | Попробуйте auto/best-coding |
Чеклист продакшена и безопасности
- Обновитесь до последнего релиза (v3.8.50+); удалите пароли по умолчанию;
- Никогда не открывайте порт
20128в публичный интернет без TLS; - Отдельные API-ключи на участника, лимиты токенов, IP allowlist;
- Бесплатные пулы только как fallback; резервное копирование тома
/data.
FAQ
400 model not found?
Проверьте написание provider/model и подключение провайдера в dashboard. Попробуйте auto/best-free для проверки цепочки.
Ollama локально?
Да—POST /v1/api/chat интегрирует локальные модели в ту же таблицу маршрутизации.
Использовать с OpenRouter?
Да—OmniRoute может рассматривать OpenRouter как downstream-провайдера для гибридной настройки.
Шлюз для моделей, облачный Mac для сборок
OmniRoute выбирает LLM; для iOS/macOS-пайплайнов по-прежнему нужен Xcode. Облачный Mac Zilmac берёт на себя подпись, нотаризацию и TestFlight вместе с Agent-воркфлоу.