Files
OmniRoute/docs/i18n/ru
Diego Rodrigues de Sa e Souza d259d9fcba fix(ci): clear base-reds on release/v3.8.50 (round 3) (#10213)
* fix(ci): clear base-reds on release/v3.8.50 (round 3)

- CHANGELOG.md: restore the top [Unreleased] section dropped by the #10189
  reconcile (docs-sync gate: first section must be Unreleased)
- env-doc-sync: document CONDUCTOR_ORCHESTRATOR_TOKEN + CONDUCTOR_SPOKESPERSON_URL
  in .env.example/ENVIRONMENT.md; allowlist the CI-only GITHUB_STEP_SUMMARY and
  TS7_BASE_REF (ts7 ratchet signals); drop a stray merge artifact line
- providers: restore the audited chatanywhere metadata entry that base-reds
  round 2 dropped together with its duplicate — the provider was half-wired
  (registry+endpoint without APIKEY metadata), which is what the wave3 test
  catches; re-pin providers-constants-split at the measured 228
- docs counts: 338 -> 339 (today's +2 void-ai/helixmind, -1 Puter) via
  gen:provider-reference + README/AGENTS/llm.txt/package.json/diagrams/i18n mirrors
- file-size ratchet: annotated rebaseline for the two pre-existing drifts
  (ModelSelectModal 1138, gateways 1250) following the 2026-08-11 precedent

Refs #9985

* fix(ci): base-reds round 3b — stale sibling tests + mode-pack weight contract

- check-docs-counts-sync.test.ts: drop the imports/subtests of the four helpers
  #10196 removed from the gate script (readMcpFactsFromSource, listLocalizedDocs,
  makeRequiredCountsValidator, checkFreeTierInventory) — the new-API tests that
  #10196 added stay; the file now loads again under the node runner
- quota-connection-recovery.test.ts: convert from vitest APIs to node:test —
  the file lives in tests/unit/*.test.ts (node-runner glob) and the vitest
  runtime crashes when imported outside vitest, killing the whole shard entry
- modePacks.ts: re-normalize all six mode packs to sum 1.0 — #8940 added
  sessionAvailability: 0.05 to every pack without rebalancing (1.05 total);
  ratios preserved exactly (÷1.05), so post-normalizeScoringWeights behavior
  is unchanged; restores the declared sum-to-1.0 contract the 4235 test pins

Refs #9985

* fix(ci): base-reds round 3c — vitest siblings, weights default, secrets FP, mutation tap

- DistributeProxiesButton.test.tsx: wrap renders in NextIntlClientProvider —
  #9245 localized the component (useTranslations) and left the test without
  the intl context, failing all 14 cases
- scoring.ts: re-normalize DEFAULT_WEIGHTS to sum 1.0 (same #8940 class as the
  mode packs — sessionAvailability added without rebalancing; ratios preserved)
- .gitleaks.toml: generalize the kimi sponsor-banner localStorage-key allowlist
  to -v\d+ — #10200 bumped v1→v2 and the stale regex regressed the secrets
  ratchet with a false positive
- stryker.conf.json: register 6 covering unit tests in tap.testFiles (4 modules)
  so their mutant kills count — unblocks check:mutation-test-coverage --strict

Refs #9985

* fix(ci): base-reds round 3d — inspector factor gap, stale registry/gap tests, i18n key sync

- comboScoringInspector: add cacheAffinity/sessionAvailability/connectionDensity
  to FACTOR_KEYS + the factor-key type — calculateScore() weighs them but the
  breakdown omitted them, so the explained contributions never summed to the
  reported score (inspector bug, red on the pure tip)
- combo-scoring-inspector.test: make the explicit-weights override sum-neutral
  (±0.05 shift) so it stays valid for any DEFAULT_WEIGHTS values — the hardcoded
  override only summed to 1.0 against the pre-#8940 defaults, which is also why
  explicit weights silently fell back to 'default' on the tip
- unorouter-registry.test: align to the canonical .com host (api.unorouter.ai
  301-redirects there, verified live) and to wave4's live model discovery
  (passthrough, no static seed) — the .ai/auto-model expectations were stale
- check-migration-numbering.test: 147 left KNOWN_GAPS when
  147_api_keys_model_access_mode.sql landed — assert absent (same as 143)
- i18n: sync-ui pass — 35,914 missing UI keys stamped as __MISSING__ placeholders
  across 42 locales (mechanical; greens the pt-BR key-presence integrity test;
  coverage pct unchanged by design — translation is a separate workstream)

Refs #9985

* fix(ci): base-reds round 3e — 2 real defects + 14 stale sibling tests (waves A-E)

Real defects fixed:
- src/lib/db/apiKeys.ts: #9313's empty-allowlist early return bypassed the group
  permission check, silently disabling group deny rules (#8817) for every key
  without a per-key allowlist; fall-through restored, restricted+[] deny-all kept
- open-sse/utils/proxyFetch.ts: #10032 re-appended the raw transport error to the
  propagated message, reintroducing the proxy user:password leak #9837 closed;
  new redactProxyDetailsInMessage() keeps the reason, redacts URL/credentials
- .github/workflows/quality.yml: #10134 added the TS7 ratchet as a separate
  blocking step AFTER the aggregated gates — the exact #8542 masking mechanism;
  folded into the non-fail-fast loop (still blocking, still PR-only) ⚠️ CI edit,
  gate-strengthening — explicit owner sign-off requested on the PR
- src/i18n/messages/ko.json: 3 machine-mistranslation regressions caught by the
  #8244 glossary checker (장애인→비활성화됨, 양말5://→socks5://, 비클로드→Claude가 아닌)

Stale sibling tests aligned to deliberately-moved contracts (each cites its mover):
request-log-detail-layout + -stream (#9245 intl provider), repro-8542 pin update,
quality-rail-gate-membership (#10134 shape), agentSkills-routes 45→46 (#9058),
cloudflare-ai-catalog-8717 (#8804 supersedes #8808), executor-xai (#9994),
vision-bridge-claude-wire (#9463 minimax→openai), sse-auth forced-pin (#8893),
tls-proxy-context (strengthened leak guards), rate-limit-local-error-classification
(#9164/#9342), minimax-thinking-signature (#9463), codebuddy-cn (#9723 +1 test),
github-copilot-custom-model (#9050), providers-g4f-batch3 (#9584),
synced-capability-warmup (#9199, stricter), sidebar-tools-group (#8221),
oauth-modal-grok-cli-paste (#9245); agentSkills/catalog.ts comment 45→46;
file-size rebaseline for proxyFetch (+19, annotated)

Refs #9985

* fix(ci): base-reds round 3f — waves F-J: 9 more real defects + stale sibling sweep

Real production defects fixed (all red on the pure tip, each with its origin):
- routeGuard.ts: #8949 accidentally DELETED the /api/providers/[id]/login
  local-only pattern — the route spawns a browser, so the loopback gate for a
  process-spawning route was gone (Hard Rules #15/#17); restored (314 guard
  tests green)
- agentSkills generator: #9058's category dispatch gave the config category an
  empty body, wiping skills/config-codex-cli/SKILL.md at the #10131 sync;
  fixed + SKILL.md regenerated via the official generator
- imageRegistry: #9982 broke same-provider bare aliasing (antigravity preview
  id sent upstream unresolved); new resolveSameProviderBareAlias() keeps the
  fal cross-provider fix intact
- imageRegistry: #9982's prefix strip handed the bare nano-banana ids to fal-ai,
  violating the pinned 2026-07-31 operator decision (adobe-firefly owns them);
  fal entries made prefix-only (dispatch already re-prefixes)
- mediaGeneration/fal.ts: the missing-credential 401 guard was lost when #10198
  deleted the superseded falHandler — tests were hitting the live network
- bottleneckPatch/rateLimitManager: #9041's merge clobbered #9604, resurrecting
  the Bottleneck v2.19.5 heartbeat bug (reservoir never refills); patched the
  library defect at the root and re-aligned chat-rate-limit-body-lock to the
  working reservoir contract
- processSupervisor.mjs: #9761 regressed the Node spawn to bare "node" (the
  #9156 launchd bug) and dropped #9209's ipv4first args; both restored
- openai-responses/pureHelpers: #9423's Agent null-sentinel was unreachable on
  the schemaless JSON-string path; gate extended
- i18n en.json: #8222's regen reverted the #9976 unclosed-tag fix and #8559's
  combo-cooldown copy; #9038 shipped 40 t() calls with no messages (runtime
  MISSING_MESSAGE); all restored/added + official sync-ui stamps, and vi's
  zero-marker policy re-established via the sanctioned translation backend

Stale sibling tests aligned (movers cited inline): chat-helpers (#9447),
executor-antigravity (#9351), video-fal-grok (#9982), visionBridge (#9759),
web-session-credentials (#8974), production-build-module-integrity (positive
anchor added), agentSkills-generator/skillManifestsLint/skills-injection/
agentSkillTools-mcp/listCapabilities-a2a (#9058), memory-settings (#10010),
model-catalog-policy-invalidation (#8906), model-alias-seed (#9485),
reactive-context-compaction (#8949), combo-provider-wildcard (broken upsert
helper), oauth-google-loopback (43-locale resurrected-key removal)

Validation: 501/501 across the 47 touched test files; typecheck:core, lint,
file-size, docs-sync all green.

Refs #9985

* fix(ci): base-reds round 3g — wave K/L: 4 more real defects + stale alignments

Real defects:
- base/reasoningEffort.ts: the stale duplicate cherry-pick #9612 re-added the
  codex minimal→low rewrite that #9883 had deliberately removed (OMP minimal
  passthrough); block removed again
- cursorImages.ts: #9840 wired prepareCursorImageForWire (sharp re-encode,
  fail-closed) into the SHARED resolveCursorImages, breaking zai-web and
  conol-web image uploads (HTTP 400 'undecodable'); new prepareForWire opt-out,
  Cursor default path unchanged (8 cursor suites green)
- modelCapabilities/snapshot: catalog prepare still issued 323 per-model reads
  of model_context_overrides + max_input_tokens overrides, violating #9199's
  bulk-load contract; both now resolve from the snapshot single pass
- v1-models-discovery-conformance: re-pinned to the bounded 30s SWR window
  (#9199/#10198) — the old 'stale-first regardless of age' contract is gone

Stale tests aligned (movers cited inline): codex-tools-strict-default (#9828
redundant-oneOf strip), devin-providers (#9245 i18n), db-migrationrunner-
constants-split (147→151 renumber #8228), gitlab-duo-oauth-setup (#9245),
chatcore-extracted-modules (#9161 outbound-protocol keying)

compression-api CI failures were cascade artifacts of codex-tools-strict-default
failing in the same force-exit shard process — no own defect (171/171 local).

Refs #9985

* fix(test): compression-api — register both describes before the runner starts

The DATA_DIR setup + route/db top-level awaits sat BETWEEN the two describes;
under --test-force-exit (the CI unit-runner flag) the process exits once the
already-registered tests finish, so on slow CI machines the whole second
describe died as 'Promise resolution is still pending' — the recurring
CI-only shard-2 failure that never reproduced locally without the flag.
Moved to the top of the file; 10/10 under --test-force-exit locally.

Refs #9985

* fix(quality): freeze modelCapabilities.ts at 1006 (annotated) — snapshot routing growth

Refs #9985

* fix(quality): move the modelCapabilities freeze into the frozen map (nested schema)

Refs #9985

* fix(i18n): translate all 39,718 pending UI keys across 42 locales (owner-approved)

Mass-translated every __MISSING__ placeholder via the official i18n:sync-ui
--translate-markers pipeline (operator backend), restoring i18nUiCoverage to the
100 baseline (was 89.9 after the merge-storm UI landings + the 42 keys #9038
never shipped).

Post-pass repairs, all caught by the existing gates:
- glossary: retired renderings the machine reintroduced normalized again
  (提供商→提供者 zh-CN/zh-TW, 鏈接→連結, 文檔→文件, 調用→呼叫, 供應商→提供者,
  響應→回應, 不活躍→未啟用 zh-TW; 클로드→Claude, 옴니루트→OmniRoute ko);
  DATA_DIR forbidden rendering avoided via 数据文件夹 rephrase
- ICU integrity: 120 values with renamed/dropped {params} repaired (39
  positional renames, 81 reset to the en source — functional over fluent)

Validation: glossary/pt-BR/vi/deno-relay/settings-keys/value-drift/google-
loopback suites 76/76; placeholder diff en×42 locales = 0; worst-locale
coverage = 100.0%.

Refs #9985

---------

Co-authored-by: backryun <bakryun0718@proton.me>
2026-08-13 00:02:25 -03:00
..

🚀 OmniRoute — Бесплатный AI-шлюз (Русский)

🌐 Языки: 🇺🇸 English · 🇸🇦 ar · 🇧🇬 bg · 🇧🇩 bn · 🇨🇿 cs · 🇩🇰 da · 🇩🇪 de · 🇪🇸 es · 🇮🇷 fa · 🇫🇮 fi · 🇫🇷 fr · 🇮🇳 gu · 🇮🇱 he · 🇮🇳 hi · 🇭🇺 hu · 🇮🇩 id · 🇮🇹 it · 🇯🇵 ja · 🇰🇷 ko · 🇮🇳 mr · 🇲🇾 ms · 🇳🇱 nl · 🇳🇴 no · 🇵🇭 phi · 🇵🇱 pl · 🇵🇹 pt · 🇧🇷 pt-BR · 🇷🇴 ro · 🇷🇺 ru · 🇸🇰 sk · 🇸🇪 sv · 🇰🇪 sw · 🇮🇳 ta · 🇮🇳 te · 🇹🇭 th · 🇹🇷 tr · 🇺🇦 uk-UA · 🇵🇰 ur · 🇻🇳 vi · 🇨🇳 zh-CN · 🇹🇼 zh-TW


Панель OmniRoute

🚀 OmniRoute — Бесплатный AI-шлюз

Код без остановок. Один endpoint — 329 провайдеров, 155 free/no-auth.

Claude Code, Codex, Cursor, Cline, Copilot и Antigravity → бесплатные Claude / GPT / Gemini с автопереключением.


RTK + Caveman: экономия 1595% токенов. Лимиты больше не мешают.


~1.53B учитываемых бесплатных токенов / месяц — в первый месяц до ~2.15B с регистрационными бонусами. Живой учёт на /dashboard/free-tiers. (методика →)


329 AI Providers 155 Free/No-Auth 1.53B Free Tokens/mo Token Savings 19 Strategies $0 to start


💬 Сообщество

Discord Telegram WhatsApp Global WhatsApp Brasil

Вопросы, советы по провайдерам, roadmap и поддержка → Discord · Telegram · WhatsApp 🌍 Global / 🇧🇷 Brasil


diegosouzapw%2FOmniRoute | Trendshift

npm License: MIT Stars

npm version NPM Monthly Docker Hub Docker Pulls Electron Downloads Website


🚀 Быстрый старт🎯 Комбо🌐 Провайдеры🔌 CLI и MCP🗜️ Сжатие🌍 Сайт

💥 Обещание🤔 Зачем🏆 Чем отличается🤖 Совместимые CLI🖥️ Где запускать🔒 Приватность🎬 В деле📚 Дальше📧 Поддержка


💰 ~1.53B бесплатных токенов / месяц

Собирать free-tier вручную — боль: десятки SDK, лимиты и непонятный остаток. OmniRoute показывает 155 записи каталога с меткой free/no-auth; строго рассчитанный бюджет охватывает 43 пула / 522 бюджетные записи моделей и отображается live на /dashboard/free-tiers.

  • ~1.53B free tokens / мес (steady) — в первый месяц до ~2.15B с signup-кредитами.
  • Честная математика — каждый shared pool считается один раз. «Если крутить rate limit 24/7» выйдет ~10B — такие цифры мы не публикуем.
  • Отдельно — провайдеры без опубликованного token cap, но с rate/concurrency/account-ограничениями (SiliconFlow, Z.AI GLM-Flash, Kilo, OpenCode Zen…), и разовый top-up OpenRouter на $10 → +24M/мес (не раздувают headline).
  • По моделям, used/remaining и пометки ToS — прямо в дашборде.

Методика (дедуп пулов, кредиты, ToS): docs/reference/FREE_TIERS.md. Цифры пересматривают примерно раз в две недели — могут и упасть, и вырасти. CI (check:docs-counts) падает, если headline расходится с каталогом.


💥 Обещание

Один endpoint. 329 провайдеров. Код не останавливается — OmniRoute сам выбирает самый дешёвый рабочий вариант.

🛡️ Устойчивый fallback
При сбое upstream или исчерпании квоты OmniRoute пробует следующий допустимый маршрут; доступность зависит от провайдеров.
💸 До 95% токенов
RTK + Caveman stacked: 1595% на сжимаемом (в tool-heavy сессиях в среднем ~89%).
🆓 Старт с $0
155 записей каталога помечены free/no-auth; условия и лимиты зависят от провайдера.
🔌 Все инструменты
26+ coding agents — Claude Code, Codex, Cursor, Cline, Copilot, Antigravity — один конфиг.
🧩 Один endpoint
OpenAI ↔ Claude ↔ Gemini ↔ Responses API. Укажите /v1 — и готово.
🛡️ Production-grade
Circuit breakers, TLS stealth, MCP (107 tools), A2A, memory, guardrails, evals. 25000+ тестов.

🤔 Зачем OmniRoute?

Хватит прыгать между десятью кабинетами, мёртвыми ключами и неожиданными счетами.

Боль каждый день Как решает OmniRoute
📉 Подписка сгорает неиспользованной Выжимаем подписку — трекинг квоты, тратим до reset
🛑 Rate limit посреди кода 4-tier auto-fallback — Subscription → API → Cheap → Free
🔥 Tool-output (git diff, логи) жжёт токены RTK + Caveman — 1595% на сжимаемом
💸 Дорогие API ($2050/мес за провайдера) Cost-optimized routing — самый выгодный живой вариант
🧰 У каждого IDE свой сетап Один endpoint, один дашборд
🌍 AI заблокирован в регионе 3-level proxy + TLS fingerprint stealth
┌──────────────────────────────────────────────────────────┐
│     Ваш IDE / CLI  (Claude Code, Cursor, Cline…)          │
└─────────────────────────┬────────────────────────────────┘
                          │ http://localhost:20128/v1
                          ▼
┌──────────────────────────────────────────────────────────┐
│              OmniRoute — умный роутер                      │
│  RTK + Caveman · 19 стратегий · circuit breakers          │
│  TLS stealth · MCP · A2A · guardrails                     │
└─────────────────────────┬────────────────────────────────┘
        ┌─────────────┬────┴────────┬─────────────┐
        ▼ Tier 1      ▼ Tier 2      ▼ Tier 3      ▼ Tier 4
     Подписка        API Key       Cheap         Free
   Claude Code,     DeepSeek,     GLM $0.5,     Kiro, Qoder,
   Codex, Copilot   Groq, xAI     MiniMax $0.2  Pollinations
   квота? ───────▶  бюджет? ───▶  бюджет? ───▶  лимиты upstream

🎯 Комбо — главная фича

Combo — цепочка моделей, по которой OmniRoute ходит сам. Квота кончилась, провайдер упал, цена взлетела — комбо пробует следующий допустимый шаг. Это расширяет покрытие fallback, но не гарантирует доступность upstream. 🛡️

Без настройки — просто auto

Комбо создавать не обязательно. Поставьте модель auto (или вариант) — OmniRoute соберёт виртуальное комбо из подключённых провайдеров:

Model ID На что оптимизирует
auto 🎯 Баланс (LKGP — держится за последний удачный провайдер)
auto/coding 🧑‍💻 Качество кода
auto/fast Минимальная latency
auto/cheap 💰 Минимальная цена за токен
auto/offline 🔋 Максимум headroom по квоте / rate limit
auto/smart 🔭 Качество + 10% exploration

🔀 Или соберите своё — 19 стратегий

# Стратегия Что делает
1 priority Идёт по списку по порядку — выжимает каждый target 🥇
2 fill-first Сначала полностью заполняет квоту target
3 weighted Взвешенный random
4 round-robin Цикл по targets
5 p2c Power-of-two-choices load balancing
6 least-used Наименьшая текущая нагрузка
7 random Uniform random (с dedupe)
8 strict-random Random без dedupe 🎲
9 cost-optimized Минимум $ за запрос из live pricing 💸
10 headroom Больше всего оставшейся квоты
11 reset-window Чья квота reset ближе
12 reset-aware Ранг по reset — короткие окна первыми 📊
13 context-relay Передача контекста между targets 🧠
14 context-optimized Лучший fit под размер контекста
15 cache-optimized Закрепляет повторно используемый prefix prompt за тем же аккаунтом
16 lkgp Last-Known-Good Path — sticky к успеху
17 auto Live scoring по 13 факторам 🤖
18 fusion Панель моделей + judge → один ответ 🧬
19 pipeline Цепочка: output шага N → input N+1 🔗

Auto-Combo scoring: 13 факторов (health, quota, cost, latency, success rate, freshness, cache affinity…). Подробнее: docs/routing/AUTO-COMBO.md.

⚖️ Quota-Share — одна подписка на команду

Несколько ключей на один upstream-аккаунт? Burst на одном ключе может сжечь 5h/hourly quota на всех. Quota-Share честно делит time-based quota между ключами пула (work-conserving: idle-доля отдаётся другим).

Параметр Управление
⚖️ Weight Доля ключа, напр. 50 / 30 / 20
📐 Dimensions % · requests · tokens · $, окна 5h / 7d / per-model
🚦 Policy hard · soft · burst
🧱 Cap Жёсткий потолок на ключ

📖 Quota Sharing Engine

🧱 Три слоя устойчивости

Слой Область Механизм
🔌 Circuit breaker Весь провайдер Перестаёт слать запросы в «падающий» upstream; probe recovery
💤 Connection cooldown Один ключ / аккаунт Пропускает «горячий» ключ, siblings продолжают
🎯 Model lockout Одна модель Блокирует только исчерпанную модель, не всю connection
Combo: "always-on"                         strategy: priority
  1. cc/claude-opus-4-7   ← подписка (сначала)
  2. cx/gpt-5.2-codex     ← вторая подписка
  3. glm/glm-4.7          ← cheap ($0.50.6/1M)
  4. if/kimi-k2-thinking  ← listed free access; rate limits may apply
Итог: 4 уровня расширяют fallback; доступность upstream не гарантируется

📖 Auto-Combo · Resilience Guide


🏆 Чем OmniRoute отличается

Фича OmniRoute Другие роутеры
🌐 Провайдеры 329 20100
🆓 Free/no-auth 155 записей каталога 15
🔀 Стратегии 19 13
🗜️ Сжатие токенов RTK + Caveman (1595%) Нет / 2040%
🧰 MCP server 107 tools, 3 transports, 32 scopes Редко
🤝 A2A 6 skills, JSON-RPC 2.0 Нет
🧠 Memory (FTS5 + vector) Да Редко
🛡️ Guardrails Да Редко
☁️ Cloud agents Codex, Cursor, Devin, Jules Нет
🥷 TLS stealth JA3/JA4 via wreq-js Нет
🖥️ Платформы Web · Desktop · Termux · PWA Только web
🌍 i18n 43 локали 04

📊 Сравнение с LiteLLM, OpenRouter, Portkey → docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md


Что нового

Highlights v3.8.20 → v3.8.49. Полная история: CHANGELOG.md.

  • 🗜️ Compression hardening — inflation guard по умолчанию, Caveman packs DE/FR/JA + Chinese (文言), RTK filters для Gradle & .NET.
  • 💸 Honest flat-rate cost — subscription/coding-plan в analytics = $0; budget/quota/routing по-прежнему оценивают.
  • ⚖️ Quota-Share routing — DRR, concurrency, multi-window buckets, session stickiness.
  • 🤖 One-command CLI setupsetup-* для 12+ tools; omniroute launch / launch-codex.
  • 🛰️ Remote modeconnect / contexts / tokens + OAuth helper для VPS.
  • 🧭 Smarter autoauto/<category>:<tier>, Fusion, task-aware routing, per-request overrides.
  • 🗜️ Pluggable compression — 11 engines + Studios, LLMLingua-2, Ultra, fidelity gate, GCF v3.2.
  • 🕵️ MITM decrypt (TPROXY) — CLI, игнорирующие proxy env; per-SNI CA.
  • 💸 Cost telemetryX-OmniRoute-* headers, cache-HIT savings, per-key USD quotas.
  • 🧠 Memory — opt-in, int8 quantization, x-omniroute-no-memory.
  • 🛡️ Security — prompt-injection guard + DuckDuckGo last-resort search.
  • 🖼️ Endpoints/v1/ocr, /v1/audio/translations.
  • 🤝 Providers & agents — Cursor Cloud Agent, Grok Build (xAI), Ollama card, Claude Sonnet 5, Zed, Requesty…

🤖 Совместимые CLI и агенты

Один конфиг — http://localhost:20128/v1 — и любой AI IDE/CLI едет на free & low-cost моделях.

Claude Code Codex CLI Cline Kilo Code Roo Code Continue
OpenCode Copilot CLI Cursor CLI Factory Droid Grok Build OpenClaw
также · Aider · Goose · Hermes · Kiro · Antigravity · Windsurf · AMP · любой OpenAI-compatible tool

📖 Setup 33 tools → docs/reference/CLI-TOOLS.md · OpenCode plugin → @omniroute/opencode-provider


🌐 329 AI-провайдеров — 155 free/no-auth

Самый полный каталог среди open-source роутеров: 329 провайдеров, включая 155 записи free/no-auth.

🆓 Documented free access — $0 where listed, без карты

Провайдер Что даёт
AgentRouter GPT-5, Claude, Gemini — $100 free credits
Qoder AI Kimi-K2, DeepSeek-R1 — free access; daily/rate limits may apply
Pollinations GPT-5, Claude, Llama 4 — без ключа
LongCat LongCat-2.0 — 10M one-time (KYC)
Cloudflare AI 50+ models — 10K neurons/day
NVIDIA NIM 129 models — ~40 RPM free
Cerebras Qwen3 235B — 1M tokens/day
Kiro Claude Sonnet/Haiku — ~50 credits/mo

📖 Machine-readable catalog → docs/reference/PROVIDER_REFERENCE.md


🖥️ Где запускается OmniRoute — везде

Платформа Установка Плюсы
📦 npm (global) npm install -g omniroute Одна команда, любая ОС
🐳 Docker docker run … diegosouzapw/omniroute AMD64 + ARM64
🖥️ Desktop (Electron) npm run electron:build Окно + tray — Win/macOS/Linux
💪 ARM native arm64 Pi, ARM servers, Apple Silicon
📱 Android (Termux) pkg install nodejs && npx -y omniroute На телефоне 24/7, без root
📲 PWA «Add to Home Screen» Fullscreen, offline
🧩 OpenCode plugin @omniroute/opencode-provider Нативная интеграция
🛠️ Из исходников npm install && npm run dev Хакинг и контрибьют

📖 Docker · Desktop · Termux · PWA · OpenCode


🔒 Приватно и local-first

Ваши ключи, ваша машина, ваши данные. OmniRoute — локальный прокси, без «звонков домой».

  • 🏠 100% на вашем железе — npm, Docker, desktop или телефон. Нет cloud-hop OmniRoute.
  • 🔐 Credentials at rest — API keys и OAuth в AES-256-GCM.
  • 🚫 Zero telemetry по умолчанию — промпты уходят только выбранным провайдерам.
  • 🛡️ Жёсткий gateway — scoping ключей, IP filter, rate limits, prompt-injection guard, loopback-only process routes.
  • 📜 MIT, fully open-source — аудируйте построчно, self-host навсегда.

📖 Authorization · Guardrails · Compliance


🔌 Полный CLI + A2A и MCP

Это не «просто сервер» — CLI-кокит с 80+ командами и открытыми agent-протоколами, чтобы AI управлял OmniRoute сам.

⌨️ Настоящий CLI

omniroute               # gateway + dashboard (порт 20128)
omniroute chat          # TUI-чат (/model /combo /skill /memory)
omniroute setup         # мастер первого запуска
omniroute doctor        # диагностика провайдеров, портов, native deps

🛰️ Remote mode — CLI здесь, OmniRoute на VPS

omniroute connect 192.168.0.15            # пароль → scoped token
omniroute models list                     # ← на REMOTE
omniroute configure codex                 # remote model → local Codex profile
omniroute tokens create --name ci --scope read
omniroute contexts use default            # ← обратно на local

Scopes: read / write / admin. Process-spawning routes — только loopback. 📖 Remote Mode

🤝 Подключите агента — он управляет шлюзом

Протокол Endpoint Зачем
🧰 MCP (stdio) omniroute --mcp Claude Desktop, Cursor, любой MCP client
🌊 MCP (HTTP) http://localhost:20128/api/mcp/stream Remote MCP — 107 tools, 32 scopes
📡 MCP (SSE) http://localhost:20128/api/mcp/sse Streaming MCP
🤝 A2A http://localhost:20128/.well-known/agent.json Agent-to-agent, JSON-RPC 2.0 + SSE
claude mcp add-server omniroute --type http --url http://localhost:20128/api/mcp/stream

📖 MCP · A2A · Agent Protocols


🗜️ Экономьте 1595% токенов — автоматически

Зачем тратить много токенов, если хватает меньшего? Каждый запрос идёт через compression pipeline прозрачно — клиент не меняется. Стек из 11 composable engines (идеи RTK, Caveman, LLMLingua-2, Troglodita).

🧱 11-engine stack

# Engine Что делает
1 Session-Dedup Убирает повторённый cross-turn контент
2 CCR Крупные блоки за retrieve-markers, fetch on demand
3 RTK Умная фильтрация tool-result, dedup, truncation
4 Headroom Lossless tabular compaction JSON arrays (~30%), GCF v3.2
5 Relevance Extractive scoring относительно last user query
6 Caveman Rule-based prose (~6575% на output)
7 LLMLingua-2 ML semantic pruning (MobileBERT ONNX), code-safe
8 Lite Whitespace + image-URL trimming
9 Aggressive Summarization + progressive aging старых turns
10 Ultra Heuristic pruning + optional SLM tier

Код, URL и structured data всегда сохраняются byte-perfect.

Режим Экономия Когда
🪶 Lite ~15% Безопасный always-on default
🪨 Standard (Caveman) ~30% Ежедневный coding
Aggressive ~50% Длинные tool-heavy сессии
🔥 Ultra ~75% Максимум экономии
🧰 RTK 6090% Shell / test / build / git output
🔗 Stacked (RTK → Caveman) 7895% Промпты + tool logs

Пример — Standard:

До (69 tokens): "The reason your React component is re-rendering is likely because you're creating a new object reference on each render cycle…"

После (19 tokens): "New object ref each render. Inline object prop = new ref = re-render. Wrap in useMemo."

Тот же смысл. 72% tokens. Без потери точности.

Default stack: RTK → Caveman. Combined:

combined = 1  (1  RTK) × (1  Caveman_input)
average  = 1  (1  0.80) × (1  0.46) = 89.2%
range    = 78.4  94.6%

Precedence (high → low): header x-omniroute-compression combo override named profile adaptive panel default off.

📖 COMPRESSION_GUIDE.md · RTK_COMPRESSION.md · COMPRESSION_ENGINES.md


Быстрый старт

1) Установка и запуск

npm install -g omniroute
omniroute

💡 Видите npm warn ERESOLVE / peer-dep? Это безвредно.

Dashboard: http://localhost:20128 · API: http://localhost:20128/v1.

2) Подключите FREE-провайдера (без signup)

Dashboard → ProvidersKiro AI (free Claude, ~50 credits/mo) или OpenCode Free (без auth) → готово.

3) Направьте coding tool

Base URL: http://localhost:20128/v1
API Key:  [Dashboard → Endpoints]
Model:    auto            (zero-config smart routing — или любой provider/model)

4) Проверка

curl http://localhost:20128/v1/models -H "Authorization: Bearer YOUR_KEY"

Должны появиться подключённые модели. 🎉 Дальше пишите код — OmniRoute сам роутит и делает fallback.

Если клиент не умеет custom headers — tokenized aliases:

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, source, pnpm, Arch

🐳 Docker

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

🛠️ Из исходников

cp .env.example .env && npm install
PORT=20128 npm run dev

📦 pnpm

pnpm add -g omniroute@latest --allow-build=better-sqlite3 --allow-build=@swc/core && omniroute

🐧 Arch Linux (AUR)

yay -S omniroute-bin && systemctl --user enable --now omniroute.service

🔧 Nix (Flake)

nix develop
npm run dev
# или: devbox run npm run dev

📖 Docker Guide — Compose, Caddy HTTPS, Cloudflare tunnels.

Полезные флаги CLI

Команда Описание
omniroute Сервер (PORT=20128, API + dashboard)
omniroute --port 3000 Порт 3000
omniroute --mcp MCP server (stdio)
omniroute --no-open Не открывать браузер
omniroute --help Справка

Split-port:

PORT=20128 DASHBOARD_PORT=20129 omniroute
# API:       http://localhost:20128/v1
# Dashboard: http://localhost:20129

Удаление

Команда Действие
npm run uninstall Убирает app, сохраняет ~/.omniroute
npm run uninstall:full Удаляет app и все ключи/БД
npm uninstall -g omniroute Глобальный npm uninstall

Старт с $0 — Free Stack

Шаг Действие Что открывается
1 Подключить Kiro (AWS Builder ID OAuth) Claude Sonnet / Haiku
2 Подключить Qoder (Google OAuth) kimi-k2-thinking, qwen3-coder-plus…
3 Подключить Qwen (Device Code) qwen3-coder-plus/flash…
4 /dashboard/combos → шаблон Free Stack ($0) Round-robin free-провайдеров

IDE/CLI: http://localhost:20128/v1 · API Key: любая строка (если REQUIRE_API_KEY=false).

Дополнительно free: Groq (30 RPM), NVIDIA NIM (~40 RPM), Cerebras (1M tok/day), LongCat, Cloudflare Workers AI (10K Neurons/day).


🎬 OmniRoute в деле

Guia em Português
🇧🇷 Português
Полный гайд
English Guide
🇺🇸 English
Complete walkthrough
Руководство на русском
🇷🇺 Русский
Полное руководство

🎬 Сняли видео про OmniRoute? Откройте issue или discussion — добавим в этот раздел.


📚 Узнать больше

💰 Цены и zero-cost stack
Tier Примеры Стоимость
💳 Subscription Claude Code Pro / Codex / Copilot $10200/мес
🔑 API Key (free tiers) NVIDIA NIM, Cerebras, Groq Free
💰 Cheap GLM ~$0.5/1M · MiniMax ~$0.20.3/1M Копейки
🆓 Documented free access Kiro, Qoder, Qwen, Pollinations, LongCat $0 where listed

Playbook A — выжать подписку + cheap backup:

Combo: "maximize-claude"
  1. cc/claude-opus-4-7
  2. glm/glm-4.7
  3. if/kimi-k2-thinking

Playbook B — zero-cost coding:

Combo: "free-tier-fallback"
  1. if/kimi-k2-thinking
  2. qw/qwen3-coder-plus

💡 «Cost» в дашборде — tracker экономии, не счёт OmniRoute. OmniRoute вам не выставляет счета.

📖 Free catalog → docs/reference/FREE_TIERS.md

🌍 Геоблоки — 3-level proxy + stealth

🇷🇺 🇨🇳 🇮🇷 и другие restricted regions? Proxy на 3 уровнях (global / per-provider / per-connection): API, OAuth, connection tests, token refresh, model sync.

  • Protocols: HTTP/HTTPS, SOCKS5, auth proxies
  • TLS fingerprint spoofing (wreq-js), CLI fingerprint matching
  • OAuth через proxy — лечит unsupported_country_region_territory

📖 docs/ops/PROXY_GUIDE.md

Возможности (кратко)

Routing: 19 стратегий · task-aware · thinking budget · wildcards · system prompt injection. Compatibility: OpenAI ↔ Claude ↔ Gemini ↔ Responses · OAuth PKCE auto-refresh · multi-account · Batch + Files API.
Protocols: MCP (107 tools) · A2A · ACP · cloud agents. Quality/ops: Evals · guardrails (PII, injection) · health · p50/p95/p99 · webhooks · audit.
Media: embeddings, images, video, music, STT/TTS, OCR, moderations, rerank.

📖 Env, FAQ
Variable Default Назначение
PORT 20128 API + dashboard
REQUIRE_API_KEY false Требовать API key на /v1
DATA_DIR ~/.omniroute БД и конфиги
REQUEST_TIMEOUT_MS 600000 Базовый timeout
STREAM_IDLE_TIMEOUT_MS inherits Idle gap SSE

OmniRoute берёт деньги? Нет — open-source на вашей машине. Платите только платным провайдерам.
Free правда unlimited? Нет гарантии: даже без опубликованного token cap действуют rate/concurrency/account/region limits и условия провайдера. Комбо из нескольких free/no-auth записей повышает устойчивость, но не отменяет эти ограничения. Сжатие портит качество? Сжимается input; code/URL/JSON protected.
Регион заблокирован? Proxy + stealth.

📖 User Guide · API · Environment

🐛 Troubleshooting
Проблема Быстрый фикс
"Language model did not provide messages" Квота провайдера → combo fallback
429 rate limit Цепочка: cc/claude → glm/glm-4.7 → if/kimi-k2-thinking
OAuth expired Auto-refresh; иначе Providers → re-auth
unsupported_country_region_territory Settings → Proxy
Docker SQLite lock --stop-timeout 40
Node runtime Node >=22.0.0 <23 или >=24.0.0 <27

🐛 Баг? npm run system-info → приложите system-info.txt к issue.
📖 TROUBLESHOOTING.md

📸 Скриншоты дашборда
Page Screenshot Page Screenshot
Providers Providers Combos Combos
Analytics Analytics Health Health
Translator Translator Settings Settings
CLI Tools CLI Tools Usage Logs Usage

📧 Поддержка и сообщество

💬 Ссылки Discord / Telegram / WhatsApp — в шапке README.


🛠️ Стек

  • Runtime: Node.js 22.x или 24.x LTS — >=22.0.0 <23 || >=24.0.0 <27
  • Language: TypeScript (src/ + open-sse/)
  • Framework: Next.js 16 + React 19 + Tailwind CSS 4
  • DB: better-sqlite3 + LowDB
  • Validation: Zod
  • Protocols: MCP (stdio/HTTP/SSE) + A2A (JSON-RPC 2.0 + SSE)
  • Auth: OAuth 2.0 (PKCE) + JWT + API keys + MCP scopes
  • Platforms: Electron desktop, Termux, PWA
  • CI/CD: GitHub Actions → npm + Docker Hub
  • Resilience: circuit breakers, backoff, anti-thundering-herd, TLS stealth, auto-combo

📖 Документация

📘 Старт

Документ О чём
User Guide Провайдеры, комбо, CLI, deploy
Setup Guide Установка, CLI tools, protocols, timeouts
CLI Tools Claude Code, Codex, Cursor, Cline…
Remote Mode CLI с ноутбука → OmniRoute на VPS
Quick Start EN root: install → connect → point

🔧 Ops

Документ О чём
Docker Guide Run, Compose, Caddy, tunnels
Podman Quadlet, SELinux
VM Deployment VM + nginx + Cloudflare
Termux Android
Environment Полный .env reference

🧠 Архитектура и фичи

Документ О чём
Architecture Система и data flow
Compression Guide Pipeline сжатия
Resilience Guide Breakers, cooldown, queue
Auto-Combo Scoring и self-heal
Proxy Guide 3-level proxy
Free Tiers Free catalog

🤖 Протоколы и API

Документ О чём
API Reference Все endpoints
MCP Server Tools, transports
A2A Server Skills, streaming

📋 Проект

Документ О чём
CONTRIBUTING Dev setup
CHANGELOG История релизов
SECURITY Vulnerability reporting
I18N 43 языка, pipeline переводов

👥 Как внести вклад

  1. Fork репозитория
  2. Ветка: git checkout -b docs/ru-readme-full-translation
  3. Commit: git commit -m "docs(i18n): full Russian README rewrite"
  4. Push и Pull Request в upstream

Полный гайд: CONTRIBUTING.md.

Contributors


📊 Star History

Star History Chart



Сделано с ❤️ open-source сообществом · MIT License · omniroute.online

Если OmniRoute помог сэкономить — поставьте star репозиторию.