Ręczne łączenie darmowych pakietów jest uciążliwe — dziesiątki SDK, dziesiątki limitów zapytań (rate limits) i brak wiedzy, ile tak naprawdę Ci pozostało. OmniRoute agreguje udokumentowane darmowe pakiety z 39 pul dostawców / ponad 460 modeli w jedną rzetelną liczbę i wyświetla ją na żywo w panelu (
/dashboard/free-tiers).
Animowane podsumowanie strony
/dashboard/free-tiersna żywo. Pełna metodologia (deduplikacja pul, pakiety kredytów, warunki dostawców): docs/reference/FREE_TIERS.md.Liczby te są ponownie weryfikowane co dwa tygodnie na podstawie aktualnego katalogu i mogą się zmieniać w obie strony — gdy dostawca kończy darmowy pakiet, liczba spada; gdy pojawia się nowy, rośnie. Publikujemy to, co faktycznie oblicza katalog, nigdy zaokrąglony w górę, optymistyczny wariant. Bramka CI (
check:docs-counts) powoduje błąd budowania projektu, jeśli nagłówek rozbiega się z kodem.
Pytania, wskazówki dotyczące dostawców, plany rozwoju (roadmap) i wsparcie → Discord · Telegram · WhatsApp 🌍 Global / 🇧🇷 Brasil
🚀 Szybki start • 🎯 Komba • 🌐 Dostawcy • 🔌 CLI & MCP • 🗜️ Kompresja • 🌍 Strona WWW
💥 Obietnica • 🤔 Dlaczego • 🏆 Co wyróżnia OmniRoute • 🤖 Zgodne CLI • 🖥️ Gdzie to działa • 🔒 Prywatność • 🎬 W akcji • 📸 Zrzuty ekranu • 📧 Wsparcie
| 🇺🇸 | 🇧🇷 | 🇵🇹 | 🇪🇸 | 🇫🇷 | 🇮🇹 | 🇩🇪 | 🇳🇱 | 🇷🇺 | 🇺🇦 | 🇵🇱 | 🇨🇿 | 🇸🇰 | 🇷🇴 | 🇭🇺 |
| 🇧🇬 | 🇩🇰 | 🇫🇮 | 🇳🇴 | 🇸🇪 | 🇨🇳 | 🇹🇼 | 🇯🇵 | 🇰🇷 | 🇹🇭 | 🇻🇳 | 🇮🇩 | 🇲🇾 | 🇵🇭 | |
| 🇮🇳 | 🇮🇳 | 🇮🇳 | 🇮🇳 | 🇮🇳 | 🇮🇳 | 🇧🇩 | 🇵🇰 | 🇮🇷 | 🇸🇦 | 🇮🇱 | 🇹🇷 | 🇦🇿 | 🇹🇿 |
Kombo to łańcuch modeli, po których OmniRoute nawiguje automatycznie. Wybucha limit, dostawca ulega awarii lub koszty gwałtownie rosną — kombo bezgłośnie przełącza się na kolejny model. To właśnie sprawia, że OmniRoute jest niezawodny. 🛡️
Nie musisz tworzyć żadnego komba. Ustaw swój model na auto (lub jego wariant), a OmniRoute zbuduje wirtualne kombo z Twoich połączonych dostawców, oceniane na żywo:
| Identyfikator modelu | Pod kątem czego optymalizuje |
|---|---|
auto |
🎯 Zbalansowana wartość domyślna (LKGP — trzyma się ostatniego dobrego dostawcy) |
auto/coding |
🧑💻 Wagi zorientowane na jakość przy generowaniu kodu |
auto/fast |
⚡ W pierwszej kolejności najniższe opóźnienia |
auto/cheap |
💰 W pierwszej kolejności najtańsze za token |
auto/offline |
🔋 W pierwszej kolejności największy zapas limitu (quota / rate-limit) |
auto/smart |
🔭 Najpierw jakość + 10% eksploracji w celu odkrycia lepszych modeli |
Wszystkie 18 strategii — łącz i dopasowuj na każdym kroku komba:
| # | Strategia | Co robi |
|---|---|---|
| 1 | priority |
Uporządkowana lista według priorytetu — zużyj każdy cel przed przejściem do kolejnego 🥇 |
| 2 | fill-first |
Wypełnij całkowicie limit każdego celu przed pójściem dalej |
| 3 | weighted |
Wybór losowy ważony według wagi przypisanej do celu |
| 4 | round-robin |
Przechodzenie przez cele po kolei (Round-Robin) |
| 5 | p2c |
Losowe równoważenie obciążenia metodą "wybierz dwa, weź lepszy" (P2C) |
| 6 | least-used |
Wybierz cel o najniższym aktualnym obciążeniu |
| 7 | random |
Jednolity losowy wybór (ze skreśleniem powtórzeń) |
| 8 | strict-random |
Losowo bez usuwania duplikatów 🎲 |
| 9 | cost-optimized |
Minimalizuj koszt w USD za zapytanie na podstawie cennika w katalogu na żywo 💸 |
| 10 | headroom |
Wybierz cel z największym pozostałym limitem |
| 11 | reset-window |
Preferuj cel, którego okno limitu resetuje się najszybciej |
| 12 | reset-aware |
Klasyfikuj według czasu resetu limitu — najpierw krótkie okna 📊 |
| 13 | context-relay |
Przekazuj kontekst między celami przy długich rozmowach 🧠 |
| 14 | context-optimized |
Wybierz cel najlepiej dopasowany do bieżącego rozmiaru kontekstu |
| 15 | lkgp |
Ostatnia znana dobra ścieżka (LKGP) — trzyma się ostatniego udanego celu |
| 16 | auto |
Ocenianie na żywo na podstawie 12 czynników dla każdego połączenia 🤖 |
| 17 | fusion |
Rozesłanie zapytania do panelu modeli + sędzia syntetyzuje jedną odpowiedź (Fusion) 🧬 |
| 18 | pipeline |
Łączenie kroków — wyjście każdego celu zasila kolejny 🔗 |
Silnik Auto-Combo ocenia każdego kandydata na podstawie 12 czynników (stan techniczny, limit, koszt, opóźnienie, wskaźnik sukcesu, aktualność…) — zobacz docs/routing/AUTO-COMBO.md.
Uruchamiasz kilka kluczy na tym samym koncie nadrzędnym (jeden plan Codex Pro, jeden klucz Kimi, jedno stanowisko GLM Coding)? Nagły skok zużycia na jednym kluczu może wyczerpać cały 5-godzinny / godzinny limit i zablokować wszystkich innych. Quota-Share rozdziela limit czasowy dostawcy sprawiedliwie pomiędzy klucze w puli — a dzięki zasadzie oszczędzania pracy (work-conserving), nieużywana część limitu bezczynnego członka jest wypożyczana innym, zamiast się marnować.
| Suwak / Opcja | Co kontroluje |
|---|---|
| ⚖️ Waga alokacji | udział każdego klucza w puli — np. 50 / 30 / 20 |
| 📐 Wymiary | śledzenie % · zapytań · tokenów · $, w oknie 5h / 7d / na model |
| 🚦 Polityka | hard (blokuj po przekroczeniu) · soft (obniż priorytet) · burst (użyj wolnego zapasu) |
| 🧱 Limit max (Cap) | bezwzględny limit na klucz, niezależny od trybu |
Wymuszane na "gorącej ścieżce" zanim żądanie opuści OmniRoute, z limitami na parę (klucz, model) + zachowaniem sesyjności (session stickiness) dla spójności pamięci podręcznej promptów (teraz z przełącznikiem wyłączania dla komba / globalnie). 📖 Silnik Quota Sharing
📖 Silnik Auto-Combo · Podręcznik odporności
| Funkcja | OmniRoute | Inne routery |
|---|---|---|
| 🌐 Dostawcy | 268 | 20–100 |
| 🆓 Darmowi dostawcy | 90+ (40+ darmowych na zawsze) | 1–5 |
| 🔀 Strategie routingu | 18 (priorytetowa, ważona, zoptymalizowana pod kątem kosztów, przekazywanie kontekstu, fusion…) | 1–3 |
| 🗜️ Kompresja tokenów | Kaskadowa RTK + Caveman (15–95%) | Brak / 20–40% |
| 🧰 Wbudowany serwer MCP | 104 narzędzia, 3 protokoły transportowe, 31 zakresów | Rzadkość |
| 🤝 Protokół agenta A2A | 6 umiejętności, JSON-RPC 2.0 | Brak |
| 🧠 Pamięć (FTS5 + wektorowa) | Tak | Rzadkość |
| 🛡️ Barierki ochronne (PII, wstrzykiwanie promptów, wizja) | Tak | Rzadkość |
| ☁️ Agenci chmurowi | Codex, Cursor, Devin, Jules | Brak |
| 🥷 Maskowanie sygnatury TLS | JA3/JA4 przez wreq-js | Brak |
| 🖥️ Wieloplatformowość | Web · Desktop · Termux · PWA | Tylko Web |
| 🌍 i18n (lokalizacja) | 43 języki | 0–4 |
📊 Szczegółowe porównanie z LiteLLM, OpenRouter i Portkey → docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md
Najważniejsze nowości z wersji v3.8.20 → v3.8.49. Pełna historia w
CHANGELOG.md.
- 🗜️ Wzmocnienie kompresji — domyślnie włączone zabezpieczenie przed nadmiernym rozrostem (inflation guard), pakiety Caveman dla DE / FR / JA + chińskiego (wényán), filtry RTK dla Gradle i .NET. → Kompresja
- 💸 Rzetelny koszt ryczałtowy — dostawcy subskrypcyjni / planów kodowania wykazują koszt 0 USD w analityce; budżet, limit i routing nadal działają szacunkowo. → Referencja API
- ⚖️ Routing Quota-Share — podział obciążenia kont według dostępnego limitu: harmonogramowanie DRR, współbieżność na połączenie, wielookienkowe pule, zachowanie sesyjności (session stickiness). → Podręcznik odporności
- 🤖 Konfiguracja CLI/agenta jednym poleceniem —
setup-*konfiguruje ponad 12 narzędzi programistycznych;omniroute launch/launch-codexdziałają bez konfiguracji. → Integracje CLI - 🛰️ Tryb zdalny — steruj zdalną instancją OmniRoute za pomocą tokenów o ograniczonym zakresie (
connect/contexts/tokens) + pomocnika OAuthantigravitydla instalacji na VPS. → Tryb zdalny - 🧭 Inteligentniejszy auto-routing — komba
auto/<kategoria>:<poziom>, Fusion (panel modeli + sędzia), routing uwzględniający specyfikę zadania, nadpisywanie modelu / trybu / budżetu USD per żądanie. → Auto-Combo - 🗜️ Wtyczkowa kompresja — 11 modułowych silników + Studia Kompresji: LLMLingua-2, dwupoziomowy Ultra, omniglyph, weryfikacja dokładności (fidelity gate) na każdym kroku, GCF v3.2, edytor z przeciąganiem elementów. → Kompresja
- 🕵️ Przezroczyste dekodowanie MITM (TPROXY) — przechwytywanie CLI ignorujących zmienne środowiskowe proxy, z instalatorem CA per-SNI i bazy zaufanych certyfikatów. → MITM/TPROXY
- 💸 Telemetria kosztów wszędzie — nagłówki kosztu/użycia
X-OmniRoute-*w każdym punkcie końcowym, nagłówek oszczędności z trafień w cache (cache-HIT), limity wydatków USD na klucz. → Referencja API - 🧠 Pamięć pod Twoją kontrolą — domyślnie wyłączona, opcjonalna kwantyzacja wektorowa int8 + stopniowe wygaszanie (typed decay), nagłówek
x-omniroute-no-memoryna żądanie. → Pamięć - 🛡️ Bezpieczeństwo — ochrona przed wstrzykiwaniem promptów (prompt-injection guard) na każdej trasie LLM (zestaw testów red-team) + darmowe wyszukiwanie w sieci DuckDuckGo jako ostatnia deska ratunku. → Barierki ochronne
- 🖼️ Nowe punkty końcowe —
/v1/ocr(Mistral OCR) i/v1/audio/translations(w stylu Whisper) uzupełniają obsługę multimediów. → Referencja API - 🌍 Wdrożenie i administracja —
basePathdla reverse-proxy, automatyczne wykrywanie języka przeglądarki, śledzenie urządzeń na klucz, zaufanie MITM bez uprawnień roota, lokalizacja zh-TW. → Środowisko - 🤝 Więcej dostawców i agentów — Cursor Cloud Agent, Grok Build (xAI), pełnoprawna karta Ollama, Claude Sonnet 5, Zed, Requesty, SenseNova, Yuanbao… oraz odświeżony katalog 250 dostawców. → Dostawcy
- ⚡ Lokalna wydajność i infrastruktura — uruchamianie lokalnego Redis jednym kliknięciem, instalatory przekaźników dla Cloudflare Workers / Deno Deploy, Bifrost i Mux jako nadzorowane usługi wbudowane. → Usługi wbudowane
Jedna konfiguracja —
http://localhost:20128/v1— i każde IDE lub CLI AI działa na darmowych i tanich modelach.
Claude Code |
Codex CLI |
Cline |
Kilo Code |
Roo Code |
Continue |
Qwen Code |
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 |
Agent Deck |
📖 Konfiguracja per narzędzie dla wszystkich 33 narzędzi (25 z CLI Code + 8 z CLI Agents) → docs/reference/CLI-TOOLS.md · 🧩 Wtyczka OpenCode → @omniroute/opencode-provider
Najbardziej kompletny katalog spośród wszystkich routerów open-source: 268 dostawców, ponad 90 z darmowym pakietem, ponad 40 darmowych na zawsze.
OpenAI |
Anthropic |
Gemini |
xAI Grok |
DeepSeek |
Mistral |
Qwen |
Meta Llama |
Groq |
NVIDIA |
MiniMax |
Cohere |
Perplexity |
HuggingFace |
Together |
Fireworks |
Cloudflare |
Baidu |
…oraz ponad 220 innych — każda ikona ładuje się na żywo z katalogu dostawców w panelu. 📖 Referencja dostawców
📖 Pełny katalog w formacie czytelnym dla maszyn → docs/reference/PROVIDER_REFERENCE.md
Ta sama aplikacja, Twoja maszyna, Twoje zasady. Od globalnej instalacji przez npm po Twój telefon za pomocą Termux.
| Platforma | Instalacja | Najważniejsze cechy |
|---|---|---|
| 📦 npm (globalnie) | npm install -g omniroute |
Jedno polecenie, dowolny system operacyjny |
| 🐳 Docker | docker run … diegosouzapw/omniroute |
Wielonatywność architektur AMD64 + ARM64 |
| 🖥️ Desktop (Electron) | npm run electron:build |
Natywne okno + zasobnik systemowy (system tray) — Windows / macOS / Linux |
| 💪 ARM | natywnie arm64 |
Raspberry Pi, serwery ARM, Apple Silicon |
| 📱 Android (Termux) | pkg install nodejs && npx -y omniroute |
Działa na Twoim telefonie, 24/7, bez roota |
| 📲 PWA | "Dodaj do ekranu głównego" | Pełny ekran, offline, instalacja z poziomu przeglądarki |
| 🧩 Wtyczka OpenCode | @omniroute/opencode-provider |
Natywna integracja z OpenCode |
| 🛠️ Ze źródeł | npm install && npm run dev |
Modyfikuj kod, współtwórz projekt |
📖 Podręcznik Docker · Desktop · Termux · PWA · OpenCode
📖 Autoryzacja · Barierki ochronne · Zgodność
OmniRoute to nie tylko serwer — to kompletny kokpit w wierszu poleceń z ponad 80 poleceniami, plus otwarte protokoły agentów, dzięki którym agent AI może samodzielnie sterować OmniRoute.
omniroute # uruchom bramkę + panel (port 20128)
omniroute chat # interaktywny klient czatu TUI (polecenia ukośnika: /model /combo /skill /memory)
omniroute setup # kreator pierwszej konfiguracji
omniroute doctor # diagnozuj dostawców, porty, natywne zależnościOmniRoute na serwerze? Steruj nim ze swojego laptopa za pomocą tego samego CLI. Zaloguj się raz za pomocą tokenu dostępu o ograniczonym zakresie; każde kolejne polecenie będzie skierowane do zdalnej maszyny.
omniroute connect 192.168.0.15 # hasło → token o ograniczonym zakresie, zapisany jako kontekst
omniroute models list # ← działa na ZDALNYM serwerze
omniroute configure codex # ← wybiera zdalny model, zapisuje lokalny profil Codex
omniroute tokens create --name ci --scope read # generuj węższe tokeny dla innych maszyn
omniroute contexts use default # ← przełącz z powrotem na serwer lokalnyTokeny mają zakresy read / write / admin; trasy uruchamiające procesy pozostają ograniczone do pętli zwrotnej (loopback-only).
📖 Tryb zdalny
Udostępnij OmniRoute przez MCP lub A2A, a każdy zdolny do tego agent autonomicznie otrzyma klucze do całej bramki — routingu, dostawców, kombinacji (combos), pamięci podręcznej, kompresji i pamięci.
| Protokół | Punkt końcowy | Zastosowanie |
|---|---|---|
| 🧰 MCP (stdio) | omniroute --mcp |
Podłącz do Claude Desktop, Cursor, dowolnego klienta MCP |
| 🌊 MCP (HTTP) | http://localhost:20128/api/mcp/stream |
Zdalny MCP — 104 narzędzia, 31 zakresów, pełna ścieżka audytu |
| 📡 MCP (SSE) | http://localhost:20128/api/mcp/sse |
Strumieniowy transport MCP |
| 🤝 A2A | http://localhost:20128/.well-known/agent.json |
Komunikacja agent-do-agenta, JSON-RPC 2.0 + SSE, 6 umiejętności |
# Daj Claude Code pełny zestaw narzędzi OmniRoute przez MCP:
claude mcp add-server omniroute --type http --url http://localhost:20128/api/mcp/stream📖 Serwer MCP · Serwer A2A · Protokoły agentów
Po co używać wielu tokenów, skoro kilka wystarczy? Każde żądanie przechodzi przez potok kompresji OmniRoute w sposób przezroczysty — bez zmian po stronie klienta. Jest to teraz stos 11 modułowych silników, które działają po kolei i mogą być dowolnie łączone w ramach każdego komba routingu — bazując na pomysłach z RTK, Caveman (⭐ 90k+), LLMLingua-2 i Troglodita (PT-BR).
Silniki działają w kolejności potoku; każdy z nich można niezależnie włączać i konfigurować dla poszczególnych komb:
| # | Silnik | Co robi |
|---|---|---|
| 1 | Session-Dedup | Odrzuca treści powtarzające się między kolejnymi turami (adresowane treścią, międzyturowe) |
| 2 | CCR | Archiwizuje duże bloki pod znacznikami pobierania, pobieranymi na żądanie |
| 3 | RTK | Inteligentne filtrowanie, deduplikacja i skracanie wyników narzędzi (z uwzględnieniem poleceń) |
| 4 | Headroom | Bezstratne upakowanie tabelaryczne jednorodnych tablic JSON, płaskich lub zagnieżdżonych (~30%), poprzez wbudowany kodek GCF (specyfikacja v3.2) |
| 5 | Relevance | Ekstrakcyjne ocenianie zdań pod kątem dopasowania do ostatniego zapytania użytkownika |
| 6 | Caveman | Kompresja prozy oparta na regułach (~65–75% na wyjściu) |
| 7 | LLMLingua-2 | Semantyczne przycinanie oparte na uczeniu maszynowym przez MobileBERT ONNX — bezpieczne dla kodu, asynchroniczne |
| 8 | Lite | Usuwanie białych znaków i skracanie adresów URL obrazów (lekki pod kątem opóżeń punkt odniesienia) |
| 9 | Aggressive | Streszczanie + stopniowe "starzenie" starych tur |
| 10 | Ultra | Heurystyczne przycinanie tokenów z opcjonalnym poziomem małego modelu (SLM) |
Bloki kodu, adresy URL i dane strukturyzowane są zawsze zachowywane z dokładnością co do bajtu. Presety uruchamiane jednym kliknięciem łączą te silniki:
| Tryb | Oszczędności | Najlepszy do |
|---|---|---|
| 🪶 Lite | ~15% | Zawsze włączona bezpieczna opcja domyślna |
| 🪨 Standard (Caveman) | ~30% | Codzienne kodowanie |
| ⚡ Aggressive | ~50% | Długie sesje z intensywnym użyciem narzędzi |
| 🔥 Ultra | ~75% | Maksymalne oszczędności |
| 🧰 RTK | 60–90% | Dane wyjściowe z terminala/testów/budowania/git |
| 🔗 Kaskadowa (RTK → Caveman) | 78–95% | Mieszane prompty + logi z narzędzi |
Rzeczywisty przykład — tryb Standard:
Przed (69 tokenów): "The reason your React component is re-rendering is likely because you're creating a new object reference on each render cycle. When you pass an inline object as a prop, React's shallow comparison sees it as a different object every time, which triggers a re-render. I would recommend using useMemo to memoize the object."
Po (19 tokenów): "New object ref each render. Inline object prop = new ref = re-render. Wrap in useMemo."
Ta sama odpowiedź. 72% mniej tokenów. Zero utraty dokładności. ✅
Przykład w PT-BR — tryb Troglodita:
Antes (42 tokens): "O problema é que o componente está re-renderizando porque uma nova referência de objeto está sendo criada em cada ciclo de renderização. Eu recomendaria usar useMemo."
Depois (12 tokens): "Re-render: ref nova cada ciclo (objeto inline recriado). Usar
useMemo."Ta sama odpowiedź. ~70% mniej tokenów. Dokładność techniczna nienaruszona. ✅
Domyślne kaskadowe kombo uruchamia RTK → Caveman. Gdy oba silniki działają na tym samym ładunku narzędzia/kontekstu, oszczędności się kumulują:
combined = 1 − (1 − RTK) × (1 − Caveman_input)
average = 1 − (1 − 0.80) × (1 − 0.46) = 89.2%
range = 78.4 – 94.6%Bloki kodu, adresy URL, JSON i dane strukturyzowane są zawsze chronione przez silnik zachowania integralności.
Opisane wyżej silniki zmniejszają dane wejściowe. Trzy dodatkowe warstwy kształtują jak, kiedy i co trafia na wyjście:
- 🪄 Style wyjściowe (sterowanie osią wyjściową) — wstrzykiwanie deterministycznych, bezpiecznych dla cache instrukcji kształtowania odpowiedzi; można je łączyć, każda o intensywności
lite/full/ultra. Dodanie stylu to jednolinijkowy wpis w rejestrze:- Zwiezła proza — odrzucanie wypełniaczy / przedimków / asekuracyjnych sformułowań; zachowanie dokładnej treści technicznej.
- Mniej kodu — podejście "leniwego seniora" (YAGNI): najmniejsza działająca zmiana, bez nieproszonych struktur kodu.
- Zwięzły CJK (文言) — klasyczny, ultra-zwięzły styl chiński (ograniczony lokalizacyjnie do języka
zh).
- 🎯 Adaptacyjny budżet kontekstu (pokrętło) — zamiast jednego sztywnego progu włączenia/wyłączenia, uruchamia najtańsze i najbardziej bezstratne silniki tylko w takim stopniu, w jakim jest to konieczne, aby zmieścić się w oknie kontekstowym modelu. Polityka:
reserve-output(domyślna, dopasowana do modelu) ·percentage·absolute. Tryb:floor(gwarantowane dopasowanie) ·replace-autotrigger(wygrywa Twój wyraźny wybór) ·off(stary próg). - 🛞 Miejsce decyzji o kompresji (priorytet od najwyższego do najniższego) — nagłówek
x-omniroute-compressionw żądaniu › nadpisanie w kombie routingu › aktywny profil nazwany › adaptacyjny / automatyczny wyzwalacz › domyślne ustawienie panelu › wyłączone. Zastosowany plan jest zwracany w nagłówku odpowiedziX-OmniRoute-Compression: <tryb>; source=<źródło>.
Wyzwalaj automatycznie według progu tokenów, włącz pokrętło adaptacyjne, przypnij nazwany profil, ustaw jednorazowo dla żądania lub przypisz potok do komba routingu — cokolwiek pasuje do Twojego obciążenia pracy. Opcjonalne środowisko testowe offline (npm run eval:compression) ocenia wierność vs oszczędności na przypisanym korpusie przed wdrożeniem zmian.
📖 COMPRESSION_GUIDE.md · RTK_COMPRESSION.md · COMPRESSION_ENGINES.md
1) Zainstaluj i uruchom
npm install -g omniroute
omniroutePanel pod adresem http://localhost:20128 · API pod adresem http://localhost:20128/v1.
2) Podłącz DARMOWEGO dostawcę (bez rejestracji)
Panel → Dostawcy (Providers) → połącz Kiro AI (darmowy Claude, ~50 kredytów/miesiąc na konto) lub OpenCode Free (bez autoryzacji) → gotowe.
3) Skieruj swoje narzędzie do kodowania
Base URL: http://localhost:20128/v1
API Key: [skopiuj z Panel → Endpoints]
Model: auto (inteligentny routing bez konfiguracji — lub dowolny dostawca/model)4) Sprawdź, czy działa
curl http://localhost:20128/v1/models -H "Authorization: Bearer TWÓJ_KLUCZ"Powinieneś zobaczyć listę połączonych modeli. 🎉 To wszystko — zacznij kodować, a OmniRoute automatycznie zajmie się routingiem i przełączaniem awaryjnym.
Jeśli Twój klient nie może wysyłać niestandardowych nagłówków, OmniRoute udostępnia również stokenizowane aliasy zgodności:
OpenAI catalog: http://localhost:20128/vscode/TWÓJ_KLUCZ/
OpenAI models: http://localhost:20128/vscode/TWÓJ_KLUCZ/models
OpenAI chat: http://localhost:20128/vscode/TWÓJ_KLUCZ/chat/completions
OpenAI responses: http://localhost:20128/vscode/TWÓJ_KLUCZ/responses
Ollama chat: http://localhost:20128/vscode/TWÓJ_KLUCZ/api/chat
Ollama tags: http://localhost:20128/vscode/TWÓJ_KLUCZ/api/tagsUżywaj ich tylko w przypadku klientów, którzy nie mogą dołączyć nagłówka Authorization: Bearer .... Autoryzacja przez nagłówek pozostaje preferowanym trybem.
🐳 Docker
docker run -d --name omniroute --restart unless-stopped --stop-timeout 40 \
-p 20128:20128 -v omniroute-data:/app/data diegosouzapw/omniroute:latest🛠️ Ze źródeł
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)
# Używając Nix flakes
nix develop
npm run dev
# Lub używając devbox
devbox run npm run dev📖 Podręcznik Docker — Profile Compose, HTTPS przez Caddy, tunele Cloudflare.
🦭 Podman
# 1. Zbuduj obraz
podman build --target runner-base -t omniroute:base .
# 2. Napraw uprawnienia katalogu danych dla Podmana bez roota
mkdir -p data && podman unshare chown 1000:1000 ./data
# 3. Ustaw środowisko wykonawcze w .env, a następnie uruchom (zobacz contrib/podman/ dla Quadlet)
echo "CONTAINER_HOST=podman" >> .env
podman compose --profile base up -d📖 Podręcznik Podman — Integracja Quadlet z systemd, podman-compose, Quadlet.
⚡ Szybsza / lżejsza instalacja (pomiń budowanie natywne)
Natywny silnik SQLite (better-sqlite3) jest zależnością opcjonalną, więc globalna instalacja nigdy nie blokuje się na kompilacji ze źródeł: używa prekompilowanego pliku binarnego, jeśli pasuje do Twojej platformy/Node, a w przeciwnym razie przezroczyście przełącza się na silnik czystego JS (node:sqlite na Node 22+, w przeciwnym razie dołączony sql.js WASM) — nie są wymagane żadne narzędzia budowania.
Aby całkowicie pominąć natywne przygotowanie po instalacji (CI, tryb bezgłowy/headless lub wolne maszyny):
OMNIROUTE_SKIP_POSTINSTALL=1 npm install -g omniroute # CI=1 również to pomijaW celu uzyskania najszybszej instalacji preferuj pnpm (magazyn adresowany treścią + twarde dowiązania — patrz wyżej). Dla środowiska bez panelu graficznego (headless) użyj profilu Docker base (powyżej) lub podręcznika Termux. CLI i panel webowy są obsługiwane przez ten sam proces na jednym porcie, więc obecnie nie ma osobnego pakietu wyłącznie z CLI.
🎬 Nagrałeś film o OmniRoute? Otwórz zgłoszenie (issue) lub dyskusję (discussion) z linkiem — umieścimy go tutaj.
| Strona | Zrzut ekranu | Strona | Zrzut ekranu |
|---|---|---|---|
| Dostawcy | ![]() |
Komba | ![]() |
| Analityka | ![]() |
Stan techniczny | ![]() |
| Tłumacz | ![]() |
Ustawienia | ![]() |
| Narzędzia CLI | ![]() |
Logi użycia | ![]() |
💬 Rozmawiaj ze społecznością — linki do Discorda, Telegrama i WhatsAppa (🌍 / 🇧🇷) znajdują się na górze tego pliku README.
- 🌍 Strona internetowa: omniroute.online
- 🐙 GitHub: github.com/diegosouzapw/OmniRoute
- 🐛 Zgłoszenia (Issues): zgłoś błąd (dołącz wynik działania komendy
npm run system-info) - 🤝 Współtworzenie: zobacz CONTRIBUTING.md lub wybierz zadanie typu
good first issue
- Środowisko uruchomieniowe: Node.js 22.x lub 24.x LTS (zalecane 24 LTS) —
>=22.22.2 <23 || >=24.0.0 <27 - Język: TypeScript 6.0 — 100% TypeScript w
src/orazopen-sse/(zero typówanyw modułach rdzenia od wersji v2.0) - Framework: Next.js 16 + React 19 + Tailwind CSS 4
- Baza danych: better-sqlite3 (SQLite) + LowDB (spuścizna JSON) — stan domeny, logi proxy, audyt MCP, decyzje o routingu, pamięć, umiejętności
- Schematy: Zod (walidacja wejścia/wyjścia narzędzi MCP, kontrakty API)
- Protokoły: MCP (stdio/HTTP) + A2A v0.3 (JSON-RPC 2.0 + SSE)
- Strumieniowanie: Server-Sent Events (SSE) + most WebSocket (
/v1/ws) - Uwierzytelnianie: OAuth 2.0 (PKCE) + JWT + Klucze API + Autoryzacja zakresów MCP
- Testowanie: Node.js test runner + Vitest (ponad 25 000 przypadków testowych w ponad 3300 plikach — jednostkowe, integracyjne, E2E, bezpieczeństwo, ekosystem)
- Platformy: Desktop (Electron), Android (Termux), PWA (dowolna przeglądarka)
- CI/CD: GitHub Actions (automatyczna publikacja w npm + Docker Hub przy wydaniu wersji)
- Strona WWW: omniroute.online
- Pakiet: npmjs.com/package/omniroute
- Docker: hub.docker.com/r/diegosouzapw/omniroute
- Odporność: Wyłącznik awaryjny (circuit breaker), wykładnicze opóźnienie (exponential backoff), ochrona przed kumulacją zapytań (anti-thundering herd), podszywanie się pod TLS, samonaprawiające się auto-kombo
| Dokument | Opis |
|---|---|
| Podręcznik użytkownika | Dostawcy, komba, integracja CLI, wdrażanie |
| Podręcznik instalacji | Pełne metody instalacji, konfiguracje narzędzi CLI, konfiguracja protokołów, dostrajanie limitów czasu (timeout) |
| Podręcznik narzędzi CLI | Konfiguracja per narzędzie dla Claude Code, Codex, Cursor, Cline, OpenClaw, Kilo, Copilot |
| Tryb zdalny | Steruj zdalnym OmniRoute (VPS) z poziomu CLI na swoim laptopie za pomocą tokenów o ograniczonym zakresie |
| Konfiguracja Claude Code | Skieruj Claude Code na OmniRoute (lokalnie/zdalnie) za pomocą polecenia launch + profili dla poszczególnych modeli |
| Szybki start | 3-krokowa instalacja → połącz → skonfiguruj |
| Dokument | Opis |
|---|---|
| Podręcznik Docker | Uruchamianie w Dockerze, profile Compose, HTTPS przez Caddy, tunele, tagi obrazów |
| Podręcznik Podman | Integracja Quadlet z systemd, podman-compose, SELinux |
| Wdrożenie na VM | Pełny poradnik: konfiguracja VM + nginx + Cloudflare |
| Wdrożenie na Fly.io | Wdrażanie na Fly.io z trwałą pamięcią masową |
| Podręcznik Termux | Uruchamianie OmniRoute na systemie Android za pomocą Termux |
| Podręcznik PWA | Instalacja Progressive Web App, buforowanie, architektura |
| Podręcznik odinstalowywania | Czyste usuwanie dla wszystkich metod instalacji |
| Konfiguracja środowiska | Pełny wykaz zmiennych .env i referencji |
| Dokument | Opis |
|---|---|
| Architektura | Architektura systemu, przepływ danych i mechanizmy wewnętrzne |
| Podręcznik kompresji | 7-opcjowy potok: wyłączona / lite / standard / aggressive / ultra / RTK / kaskadowa |
| Kompresja RTK | Kompresja danych wyjściowych komend, filtry, zaufanie, weryfikacja, odzyskiwanie surowego wyjścia |
| Silniki kompresji | Caveman, RTK, potoki kaskadowe, interfejsy panelu/API/MCP |
| Format reguł kompresji | Schematy JSON pakietów reguł dla filtrów Caveman i RTK |
| Pakiety językowe kompresji | Wykrywanie języka i tworzenie pakietów reguł Caveman |
| Podręcznik odporności | Wyłączniki awaryjne, czasy schładzania, kolejka, ochrona przed kumulacją zapytań, podszywanie się pod TLS |
| Silnik Auto-Combo | Ocenianie na bazie 12 czynników, pakiety trybów, samonaprawianie |
| Podręcznik proxy | 3-poziomowy system proxy, rynek 1proxy, rejestr CRUD |
| Darmowe poziomy | Skonsolidowany katalog ponad 25 darmowych dostawców API |
| Galeria funkcji | Wizualny przegląd panelu ze zrzutami ekranu |
| Dokumentacja kodu źródłowego | Przyjazne dla początkujących omówienie bazy kodu |
| Dokument | Opis |
|---|---|
| Referencja API | Wszystkie punkty końcowe z przykładami |
| Specyfikacja OpenAPI | Specyfikacja OpenAPI 3.0 |
| Serwer MCP | 104 narzędzia MCP, konfiguracje IDE, klienci Python/TS/Go |
| Podręcznik serwera MCP | Instalacja MCP, protokoły transportowe i referencja narzędzi |
| Serwer A2A | Protokół JSON-RPC 2.0, umiejętności, strumieniowanie, zarządzanie zadaniami |
| Podręcznik serwera A2A | Karta agenta A2A, zadania, umiejętności i strumieniowanie |
| Dokument | Opis |
|---|---|
| Współtworzenie | Konfiguracja środowiska deweloperskiego i wytyczne |
| Dziennik zmian | Pełna historia wydań dla każdej wersji |
| Polityka bezpieczeństwa | Zgłaszanie podatności i praktyki bezpieczeństwa |
| Podręcznik i18n | Obsługa ponad 40 języków, przepływ tłumaczeń, kierunek tekstu RTL |
| Lista kontrolna wydania | Kroki walidacji przedwydaniowej |
| Plan pokrycia testami | Strategia pokrycia testami i zestaw ponad 25 000 testów |
OmniRoute jest kształtowane przez pasjonatów ze społeczności open-source. Te osoby wniosły wyjątkowy wkład, który bezpośrednio wpływa na jakość, stabilność i zasięg projektu. Dziękujemy.
|
oyi77 🥇 207 commits • +114K lines Silnik analityczny, agregacje SQL, rynek proxy, pokrycie testami |
R.D. & Randi 🥈 108 commits • +38K lines Strona punktów końcowych, integracje tuneli, przepływy pracy Docker, status A2A, interfejs kompresji |
Chris Staley 🥉 70 commits • +1.8K lines Wzmocnienie strumienia SSE, API Responses, stronicowanie Gemini, poprawki regresji testów |
zenobit 🏅 62 commits • +22K lines Potok CI/CD, i18n dla 33 języków, pakiet dla Void Linux, poprawki platformy |
Jan Leon 🏅 52 commits • +22K lines Routing uwzględniający moc rozumowania, kontrola proxy, widoczność limitów, kompresja Live Zone |
|
Chirag Singhal 🏅 46 commits • +4.8K lines Oczyszczanie błędów, poprawka autouzupełniania MITM, sędzia fusion, poprawność obsługi wyłącznika awaryjnego/429 |
backryun 🏅 43 commits • +70K lines Utrzymanie katalogu dostawców — aktualizacje dla Perplexity, Kimi, Cerebras, Copilot, LMArena |
kfiramar 🏅 38 commits • +1.7K lines Obsługa websocket i passthrough dla Codex, autoryzacja/onboarding, wzmocnienie Electron, migracje baz danych |
Benson K B 🏅 28 commits • +9.2K lines Aplikacja desktopowa Electron, automatyczny instalator aktualizacji, przepływy budowania wydań, wieloplatformowe CI |
Hernan J. Ardila 🏅 22 commits • +174K lines Komba o zerowym opóźnieniu, auto-routing mostu wizyjnego, długość kontekstu w katalogu, wskazówki odporności dla błędów 429 |
🙏 Funkcje, poprawki błędów i ulepszenia infrastruktury wprowadzone przez tych autorów stanowią kluczową część tego, co czyni OmniRoute niezawodnym i bogatym w funkcje. Każde żądanie ściągnięcia (pull request), każdy przypadek testowy i każdy plik tłumaczenia i18n ma znaczenie. Open source tworzą ludzie tacy jak oni.
- Sforkuj repozytorium
- Utwórz gałąź dla swojej funkcji (
git checkout -b feature/amazing-feature) - Zatwierdź swoje zmiany (
git commit -m 'Add amazing feature') - Wypchnij zmiany do gałęzi (
git push origin feature/amazing-feature) - Otwórz Pull Request
Szczegółowe wytyczne znajdziesz w CONTRIBUTING.md.
# Utwórz wydanie — publikacja w npm następuje automatycznie
gh release create v3.8.2 --title "v3.8.2" --generate-notesOmniRoute stoi na barkach gigantów. Projekt powstał jako fork 9router oraz port na TypeScript projektu w Go CLIProxyAPI — a stamtąd każdy z poniższych podsystemów był inspirowany projektem open-source, który powstał wcześniej. Każdy z nich ukształtował konkretny element OmniRoute. To jest nasze podziękowanie dla nich wszystkich. 🙏
⭐ liczba gwiazdek na lipiec 2026 r. — zachęcamy do dodania gwiazdki tym projektom.
| Projekt | ⭐ | Jak zainspirował OmniRoute |
|---|---|---|
| 9router · decolua | 22.7k | Oryginalny projekt, na którym opiera się ten fork — rozbudowany tutaj o wielomodalne API i pełne przepisanie na TypeScript. |
| CLIProxyAPI · router-for-me | 43.6k | Implementacja w Go, która zainspirowała ten port na JavaScript / TypeScript. |
| LiteLLM · BerriAI | 54.0k | Bramka AI, której publiczny zbiór danych o cenach zasila naszą synchronizację śledzenia kosztów, a jej model normalizacji dostawców wpłynął na nasz routing. |
| Projekt | ⭐ | Jak zainspirował OmniRoute |
|---|---|---|
| Caveman · JuliusBrussee | 90.8k | Wirusowy projekt "po co używać wielu tokenów, skoro kilka wystarczy" — jego filozofia "mowy jaskiniowca" zasila nasz standardowy tryb kompresji i ponad 30 reguł usuwania wypełniaczy/kondensacji. |
| RTK – Rust Token Killer · rtk-ai | 71.8k | Wydajna kompresja danych wyjściowych komend — zainspirowała nasz silnik RTK, DSL filtrów JSON, odzyskiwanie surowego wyjścia oraz kaskadowy potok RTK → Caveman. |
| headroom · headroomlabs-ai | 60.1k | Odwracalna kompresja kontekstu (SmartCrusher) — zainspirowała nasz silnik headroom oraz wzorzec znaczników pobierania ccr. |
| LLMLingua · Microsoft | 6.5k | Badania nad kompresją promptów (LLMLingua / LLMLingua-2) — zainspirowały nasz asynchroniczny, bezpieczny dla kodu i odporny na błędy (fail-open) silnik llmlingua. |
| llmlingua-2-js · atjsh | 30 | Port JS/ONNX (MobileBERT / XLM-RoBERTa) używany jako backend wątku roboczego (worker thread) dla naszego silnika LLMLingua. |
| Troglodita · Lenine Júnior | 26 | Kompresja tokenów dla języka portugalskiego (brazylijskiego) — zasila nasz pakiet językowy pt-BR: redukcja pleonazmów i usuwanie wypełniaczy dostosowane do gramatyki brazylijskiej odmiany języka portugalskiego. |
| ponytail · DietrichGebert | 86.0k | Wirusowa umiejętność "leniwego programisty seniora" stosującego zasadę YAGNI — zainspirowała nasz styl wyjściowy less-code: sterowanie najmniejszą działającą zmianą, które ogranicza wygenerowany kod (odpowiednik zwięzłej prozy Cavemana na osi wyjściowej). |
| Projekt | ⭐ | Jak zainspirował OmniRoute |
|---|---|---|
| TOON · toon-format | 24.9k | Token-Oriented Object Notation — jego kolumnowy model oparty na nagłówkach i wierszach ukształtował nasz etap tabelarycznego upakowania. |
| GCF – Graph Compact Format · Blackwell Systems | 22 | Najpierw zainspirował nasz etap tabelarycznego upakowania; teraz jego bezstratny koder profili ogólnych bez zewnętrznych zależności jest bezpośrednio wbudowany (vendored) jako kodek Headroom (licencja MIT, oznaczenie SPDX), zgodny z wersją v3.2 specyfikacji GCF. |
| token-optimizer-mcp · ooples | 444 | Pamięć podręczna Brotli/SQLite + delta kontekstu na sesję — zainspirowały nasz silnik session-dedup. |
| token-savior · Mibayy | 1.1k | Upakowanie danych wyjściowych basha + profile MCP — zainspirowały naszą dyscyplinę wycofywania się z kompresji (bail-out) oraz redukcję kardynalności manifestu narzędzi MCP. |
| token-saver · ppgranger | 117 | Zorientowana na treść kompresja wyjściowa per typ pliku z wycofywaniem się w razie błędów — potwierdziła nasze podejście do obsługi per typ oraz pomijania przy minimalnym zysku. |
| token-optimizer · alexgreensh | 1.7k | "Znajdź duchy-tokeny" — jego wzorzec odciążania i odzyskiwalnych uchwytów wpłynął na naszą koncepcję odciążania CCR. |
| TokenMizer · Shweta-Mishra-ai | 16 | Schemat grafu sesji + deduplikacji linii między turami, który wpłynął na projekt naszego session-dedup. |
| OmniCompress · jessefreitas | 3 | Kolumnowy JSON w Rust + pobieranie adresowane treścią + deduplikacja między wiadomościami — potwierdziły poprawność projektu naszych silników headroom/ccr/session-dedup oraz stabilnego dla cache niezmiennika "skompresowana forma jest niezależna od pozycji". |
| mcp-compressor · Atlassian Labs | 98 | Kompresja schematów/opisów narzędzi MCP — wpłynęła na redukcję kardynalności manifestu narzędzi MCP. |
| RepoMapper · pdavis68 | 187 | Ranking mapy repozytorium w stylu Aider — wpłynął na nasze badania nad mapami repozytoriów i rankingami wyszukiwania. |
| quiet-shell-mcp · mrsimpson | 4 | Deklaratywna redukcja danych wyjściowych powłoki przez MCP — potwierdziła poprawność naszego deklaratywnego upakowania wyjścia basha. |
| ts-morph · David Sherret | 6.1k | Zestaw narzędzi TypeScript Compiler API — zainspirował nasze usuwanie komentarzy oparte na parserze, które zachowuje ciągi znaków, szablony i literały wyrażeń regularnych. |
| Projekt | ⭐ | Jak zainspirował OmniRoute |
|---|---|---|
| Mem0 · mem0ai | 61.2k | Uniwersalna warstwa pamięci — jej model proxy jako granicy zapisu/odczytu ukształtował naszą architekturę pamięci. |
| Letta (MemGPT) · letta-ai | 23.9k | Agenci stanowi z warstwową pamięcią — zainspirowali nasz warstwowy model Context Control & Recovery (CCR). |
| WFGY · onestardao | 1.8k | Taksonomia ProblemMap obejmująca 16 powtarzających się trybów awarii RAG/LLM — wspólny słownik w naszym podręczniku rozwiązywania problemów. |
| Projekt | ⭐ | Jak zainspirował OmniRoute |
|---|---|---|
| llm-interceptor · chouzz | 49 | Przechwytywanie/analiza MITM ruchu asystent kodowania ↔ LLM — nasz Inspektor Ruchu przenosi jego scalanie SSE, normalizację rozmowy, przepuszczanie hosta i maskowanie sekretów (MIT). |
| ProxyBridge · InterceptSuite | 5.5k | Przezroczysty routing proxy per proces — zainspirował nasze odporne na awarie zamykanie MITM, limity bezczynności gniazd, atrybucję procesów przez /proc i przechwytywanie TPROXY. |
| Projekt | ⭐ | Jak zainspirował OmniRoute |
|---|---|---|
| models.dev · SST / OpenCode | 6.0k | Otwarta baza danych specyfikacji modeli AI, cen i możliwości — synchronizowana natywnie z naszym katalogiem modeli. |
| React Flow / xyflow · xyflow | 37.7k | Oparta na węzłach biblioteka wykresów zasilająca nasze działające w czasie rzeczywistym Studio Kompresji oraz Studio Komb/Routingu. |
| LangGraph · LangChain | 37.6k | Wizualizacja grafu przepływu pracy na żywo z LangGraph Studio zainspirowała widok kaskadowy w czasie rzeczywistym w naszych Studiach. |
| Langfuse · Langfuse | 31.4k | Jej model obserwowalności ślad → rozpiętość → generowanie (trace → span → generation) ukształtował widok kaskadowy (waterfall) w naszym Studiu Kompresji. |
| Kiali · Kiali | 3.6k | Obserwowalność siatki usług Istio — zainspirowała nasze plakietki wyłączników awaryjnych oraz wizualizacje krawędzi błędów w Studiu Routingu/Komb. |
| lobe-icons · LobeHub | 2.2k | Logotypy marek AI/LLM, które renderują ikony dostawców w naszym panelu. |
| Projekt | ⭐ | Jak zainspirował OmniRoute |
|---|---|---|
| awesome-secure-defaults · tldrsec | 710 | Starannie dobrana lista domyślnie bezpiecznych bibliotek, która kieruje naszymi wyborami w zakresie bezpieczeństwa (Helmet.js, DOMPurify, ssrf-req-filter, safe-regex, Google Tink). |
| Projekt | Jak współgra z OmniRoute |
|---|---|
| CodeWebChat · robertpiosik | Towarzysz po stronie edytora — rozszerzenie VS Code + przeglądarki, które automatycznie uzupełnia ponad 15 interfejsów webowych chatbotów kontekstem z edytora. Obsługuje ścieżkę darmowego UI webowego obok ścieżki API OmniRoute; pozwala skierować swój tryb API na OmniRoute. |
Chcesz się tutaj pojawić? OmniRoute prezentuje sponsorów przed jedną z najszybciej rozwijających się społeczności bramki AI na GitHubie — i publicznie informujemy, dokąd trafia każdy sponsorowany token. Skontaktuj się z nami: diegosouza.pw@outlook.com
|
Kimi Moonshot AI |
Dziękujemy firmie Kimi (Moonshot AI) za sponsorowanie tego projektu! Kimi to laboratorium AI stojące za otwartymi rodzinami modeli K2 i K3 — Kimi K3 zapewnia okno kontekstowe o rozmiarze 1M tokenów, natywną obsługę wizji oraz możliwości kodowania na najwyższym poziomie za ułamek ceny modeli zamkniętych, i działa od razu z Claude Code, Codex oraz każdym narzędziem programistycznym obsługiwanym przez OmniRoute.
Na co przeznaczane jest sponsorowanie: Kredyty API Kimi zasilają nasz potok wydań walidowany przez AI — etap walidacji scalania opartej na Kimi K3, który analizuje każde żądanie ściągnięcia przed jego wysłaniem — oraz codzienne rozwijanie funkcji. Pełna obsługa Kimi jest dostarczana na obu ścieżkach: bezpośredniego Moonshot API ( kimi-k3) oraz planu kodowania Kimi Code (OAuth i klucz API). Pobierz klucz API Moonshot →
|
OmniRoute jest darmowym projektem o otwartym kodzie źródłowym, tworzonym i utrzymywanym jawnie. Jeśli pozwala Ci zaoszczędzić czas lub pieniądze, rozważ wsparcie rozwoju:
- ⭐ Dodaj gwiazdkę do repozytorium — to naprawdę pomaga w widoczności
- 💖 Sponsorzy GitHub — finansuj bieżące utrzymanie i nowych dostawców
- 🐛 Zgłaszaj błędy i dziel się opiniami w Dyskusjach
Licencja MIT — szczegóły znajdziesz w pliku LICENSE.
⬆ Powrót do góry · Stworzono z ❤️ dla społeczności AI open-source.
OmniRoute v3.8.49 · Node ≥22.22.2 · Licencja MIT · omniroute.online











