> **Używaj własnych kont dostawców.** To szacunkowa suma łączna z osobno kwalifikujących się darmowych planów zewnętrznych dostawców, a nie przydział tokenów od OmniRoute. Zarejestruj się, uzyskaj dane uwierzytelniające, jeśli są wymagane, i podłącz dostawców, których możesz używać; każdy dostawca sam kontroluje swoje limity, dostępność i warunki.
>
> Ręczne łączenie darmowych planów jest uciążliwe — dziesiątki SDK, dziesiątki limitów szybkości i brak pojęcia, ile faktycznie masz. OmniRoute kataloguje **467 wpisów darmowych planów w 34 powtarzających się kluczach pul** i oblicza nagłówek tokenów na podstawie **17 pul z opublikowanym dodatnim miesięcznym budżetem oraz pięciu limitów Groq na model**, z deduplikacją według wspólnej puli. Limity, które otwierają się dopiero po regionalnej weryfikacji tożsamości (obecnie: ModelScope), są pokazywane osobno, +~6M po regionalnej weryfikacji tożsamości, i nigdy nie są wliczane do nagłówka. Wynik pozostaje widoczny na pulpicie (`/dashboard/free-tiers`).
> Animowane podsumowanie bieżącej strony `/dashboard/free-tiers`. Pełna metodologia (deduplikacja pul, progi kredytów, warunki dostawców): **[docs/reference/FREE_TIERS.md](docs/reference/FREE_TIERS.md)**.
>
> Te liczby są ponownie audytowane co dwa tygodnie względem bieżącego katalogu i **zmieniają się w obie strony** — dostawca kończy darmowy plan i liczba spada; pojawia się nowy i rośnie. Publikujemy to, co katalog faktycznie wylicza, nigdy zaokrąglony w górę najlepszy scenariusz.
⭐ Oznacz repozytorium gwiazdką, jeśli OMNIROUTE pomógł Ci zaoszczędzić pieniądze i ułatwić pracę.
[](https://github.com/diegosouzapw/OmniRoute)
[](https://www.star-history.com/diegosouzapw/omniroute)
[](https://olud.ai/project/diegosouzapw-omniroute.html)
### 💬 Dołącz do społeczności
**👋 Obserwuj maintainera — poznaj nowych dostawców, wydania i wskazówki jako pierwszy:**
[](https://www.linkedin.com/in/diegosouzapw/)
[](https://github.com/diegosouzapw)
[](https://discord.gg/U47eFqAXCn)
[](https://t.me/omnirouteOficial)
[](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4)
[](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4)
[](https://omniroute.online)
**Pytania, wskazówki dotyczące dostawców, plan działania i wsparcie → [Discord](https://discord.gg/U47eFqAXCn) · [Telegram](https://t.me/omnirouteOficial) · WhatsApp [🌍 Global](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4) / [🇧🇷 Brasil](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4) / [Portal](https://portal.sthub.com.br/communities/groups/st-hub/channels/Omniroute-World-8kRjmK)**
## 📈 Brama stale się rozwija
## 🆓 Zainstaluj, podłącz dostawcę, a następnie kieruj ruch przez jeden endpoint
```bash
# Po podłączeniu dostawcy skopiuj swój klucz OmniRoute z Dashboard → Endpoints:
curl http://localhost:20128/v1/chat/completions \
-H "Authorization: Bearer YOUR_OMNIROUTE_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"auto","messages":[{"role":"user","content":"Hello!"}]}'
```
`auto` wymaga kwalifikującej się trasy. Świeża instalacja może nie mieć żadnych kwalifikujących się celów bezkluczowych, a dostawca bezkluczowy może odrzucać klientów zewnętrznych. Dostawcy oznaczeni `tos: avoid`, w tym Kiro, są domyślnie wykluczeni z automatycznego routingu; podłączenie konta nie zmienia tego ustawienia. Zajrzyj do [Free Tiers Guide](docs/getting-started/FREE-TIERS-GUIDE.md) przed wyborem dostawcy.📦 Gotowe do skopiowania skrypty quickstart dla **Python, Node.js, PHP i cURL** → [`examples/quickstart/`](examples/quickstart/)
# 💥 Obietnica
# 🤔 Dlaczego OmniRoute?
## 🤝 Wspierane przez naszych Przyjaciół Open Source
> **Chcesz dołączyć jako Przyjaciel Open Source?** To są firmy, które wspierają open source i pomagają OmniRoute działać — a my publicznie informujemy, na co przeznaczany jest każdy token, który nam przekazują. Skontaktuj się: [diegosouza.pw@outlook.com](mailto:diegosouza.pw@outlook.com)
Kimi Moonshot AI
Dzięki **Kimi (Moonshot AI)**, naszemu założycielskiemu Przyjacielowi Open Source, za wsparcie tego projektu! Kimi to laboratorium AI stojące za rodzinami modeli K2 i K3 o otwartej wadze — **Kimi K3** oferuje okno kontekstowe 1M tokenów, natywną wizję i kodowanie na poziomie granicznym za ułamek cen modeli zamkniętych, i działa od razu po wyjęciu z pudełka z Claude Code, Codex i każdym narzędziem do kodowania, które obsługuje OmniRoute.
**Co umożliwia wsparcie Kimi:** Kredyty API Kimi zasilają potok wydawniczy OmniRoute walidowany przez AI — etap *walidacji scalania zasilany przez Kimi K3*, który przegląda każdy pull request przed jego wdrożeniem — a także codzienny rozwój funkcji. Wysokiej klasy wsparcie Kimi jest dostępne na obu torach: bezpośrednim API Kimi (kimi-k3) oraz planie kodowania Kimi Code (OAuth i klucz API). OmniRoute jest również pierwszym brazylijskim projektem open-source w programie wsparcia Kimi. Zdobądź klucz API Kimi z 15% dodatkowymi kredytami →
Cheaper Inference cheaperinference.com
Dzięki **Cheaper Inference**, Przyjacielowi Open Source OmniRoute, za wsparcie tego projektu! Cheaper Inference to bramka z rankingiem kosztów, która odsprzedaje 42 modele graniczne — Claude, GPT-5.x, Gemini, Kimi K3, GLM, DeepSeek, Grok i MiniMax — za jednym punktem końcowym kompatybilnym z OpenAI, kierując każde żądanie do najtańszego kwalifikującego się dostawcy, nigdy nie pobierając opłat powyżej ceny katalogowej twórcy modelu.
**Wysokiej klasy wsparcie w OmniRoute:** Uzupełnianie czatu, natywny punkt końcowy /v1/responses, wizja, wywoływanie narzędzi i 3 modele obrazów (grok-imagine, nano-banana-pro, nano-banana-2, dostępne jako cheaperinference/<model>). Zdobądź klucz API →
Linki oznaczone aff=omniroute to linki partnerskie. Finansują one projekt bez dodatkowych kosztów dla Ciebie. 🎟️ Promocja Afiliacyjna — darmowe kupony rejestracyjne od dostawców, których nie sponsorujemy (kliknij, aby rozwinąć)Ta sekcja jest przeznaczona wyłącznie na kody polecające/kupony. Sponsorowane partnerstwa znajdują się w sekcji 🤝 Wspierane przez naszych Przyjaciół Open Source powyżej. OmniRoute nie ma żadnego sponsoringu ani partnerstwa z wymienionymi tutaj dostawcami — są to publiczne kupony, z których każdy może skorzystać.
AgentRouter agentrouter.org
AgentRouter — rejestracja afiliacyjna · **$100 darmowych kredytów** przy rejestracji (darmowy serwer, spodziewaj się wyższego opóźnienia — najlepszy do testowania, nie do produkcji). Wysokiej klasy wsparcie w OmniRoute od **v3.8.50**: Uzupełnianie czatu, format danych kompatybilny z Anthropic i ścieżka kompatybilna z OpenAI. Dostępne modele to claude-opus-4-8, claude-opus-5, gpt-5.6-sol i inne. **Zdobądź swoje $100 →**
⚠️ *Link afiliacyjny — OmniRoute nie ma sponsoringu ani partnerstwa z tym dostawcą.*
Znasz innego dostawcę z hojnym darmowym kuponem rejestracyjnym, który przynosi korzyści użytkownikom OmniRoute? Otwórz zgłoszenie, a dodamy go tutaj.
## 🎯 Kombinacje — flagowa funkcja
> **Kombinacja** to łańcuch modeli, między którymi OmniRoute routuje **automatycznie**. Jeśli limit zostanie wyczerpany, dostawca ulegnie awarii lub koszty gwałtownie wzrosną, kombinacja może przejść do następnego kwalifikującego się, sprawnego modelu. 🛡️
### ⚡ Bez konfiguracji — po prostu użyj `auto`
Nie musisz tworzyć kombinacji. Ustaw model na `auto` (lub jeden z wariantów), a OmniRoute utworzy wirtualną kombinację z połączonych dostawców, oceniając ich na bieżąco:
Identyfikator modelu
Co optymalizuje
auto
🎯 Zrównoważone ustawienie domyślne (LKGP — pozostaje przy ostatnim sprawdzonym dostawcy)
auto/coding
🧑💻 Wagi ukierunkowane przede wszystkim na jakość generowania kodu
auto/fast
⚡ Najpierw najniższe opóźnienie
auto/cheap
💰 Najpierw najniższy koszt za token
auto/subscription
🎟️ Tylko limit subskrypcji, za którą już płacisz — w razie niepowodzenia kończy działanie, nigdy nie przełącza się na płatną opcję zapasową (przewodnik)
auto/thrifty
🪜 Najpierw limit planu, a następnie stopniowe przechodzenie do najtańszych płatnych opcji — powrót do planu po odnowieniu limitu (przewodnik)
auto/offline
🔋 Najpierw największy zapas limitu / ograniczenia szybkości
auto/smart
🔭 Najpierw jakość + 10% eksploracji w celu odkrywania lepszych modeli
auto/lkgp
📌 Jawne trzymanie się ostatniego sprawdzonego dostawcy
auto/chaos
🧪 Równoległe rozsyłanie do panelu modeli (po jednym na dostawcę, domyślnie 5), zwracające jedną odpowiedź; jedno wywołanie nadrzędne na każdy model w panelu, bez wstrzykiwania awarii
##
### 🔀 Lub utwórz własną — 20 strategii routingu
Wszystkie **20** strategii — łącz je dowolnie na poszczególnych etapach kombinacji:
#
Strategia
Jak działa
1
priority
Uporządkowana lista z pierwszym celem — wyczerpuje każdy przed przejściem do następnego 🥇
2
fill-first
W pełni wykorzystuje limit każdego celu przed przejściem dalej
3
weighted
Losowy wybór ważony wagą każdego celu
4
round-robin
Cyklicznie przechodzi przez cele w ustalonej kolejności
5
p2c
Losowe równoważenie obciążenia metodą wyboru spośród dwóch opcji
6
least-used
Wybiera cel o aktualnie najniższym obciążeniu
7
random
Jednostajny wybór losowy (z usuwaniem duplikatów)
8
strict-random
Wybór losowy bez usuwania powtórzeń 🎲
9
cost-optimized
Minimalizuje koszt $ na żądanie na podstawie aktualnych cen katalogowych 💸
10
headroom
Wybiera cel z największym pozostałym limitem
11
quota-weighted
Pomija konta z wyczerpanym limitem, a następnie losuje proporcjonalnie do pozostałego limitu ÷ bieżącego obciążenia — istniejące konwersacje pozostają przypięte ⚖️
12
reset-window
Preferuje cel, którego okres limitu odnowi się najwcześniej
13
reset-aware
Klasyfikuje według czasu odnowienia limitu — najpierw krótkie okresy 📊
14
context-relay
Przekazuje kontekst między celami podczas długich konwersacji 🧠
15
context-optimized
Wybiera opcję najlepiej dopasowaną do bieżącego rozmiaru kontekstu
16
cache-optimized
Przypina każdy prefiks promptu wielokrotnego użytku do tego samego konta — maksymalizuje trafienia w pamięci podręcznej promptów 🎯
17
lkgp
Ostatnia sprawdzona ścieżka — przypina do ostatniego dostawcy, który pomyślnie obsłużył żądanie, a następnie przełącza się na reguły awaryjne
18
auto
Bieżąca ocena 16 czynników dla każdego połączenia 🤖
19
fusion
Rozsyła żądanie do panelu modeli, a model oceniający syntetyzuje jedną odpowiedź 🧬
20
pipeline
Łączy etapy — dane wyjściowe każdego celu są przekazywane do następnego 🔗
Silnik Auto-Combo ocenia każdego kandydata na podstawie **16 czynników** (stan, limity, koszt, opóźnienie, dopasowanie do zadania, jakość, dostępność sesji…) — zobacz [`docs/routing/AUTO-COMBO.md`](docs/routing/AUTO-COMBO.md).
##
### 🧱 Odporność jest wbudowana (3 niezależne warstwy)
📖 [Silnik Auto-Combo](docs/routing/AUTO-COMBO.md) · [Przewodnik po odporności](docs/architecture/RESILIENCE_GUIDE.md)
## 🏆 Co wyróżnia OmniRoute
📊 Pełna metodologia i szczegółowe porównanie poszczególnych funkcji z 9router, OpenRouter, CLIProxyAPI i LiteLLM → [`docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md`](docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md)
## 💚 Wesprzyj OmniRoute
OmniRoute jest udostępniany na licencji MIT i rozwijany w sposób otwarty. Jeśli pozwala Ci oszczędzać czas lub pieniądze, oto jak możesz pomóc zachować jego niezależność — wybierz dowolną formę wsparcia. Sponsoring nigdy nie wpływa na priorytet routingu; zapewnia widoczność, a nie wyższą pozycję.
**🇧🇷 PIX** — natychmiastowo, bez opłat (Brazylia)
Klucz (losowy): `5d865059-bc44-483a-962d-43ceb80126eb`
Kod PIX do skopiowania i wklejenia:
```
00020101021126580014br.gov.bcb.pix01365d865059-bc44-483a-962d-43ceb80126eb5204000053039865802BR5922OMNIROUTE CONTRIBUICAO6006BRASIL62070503***630475DD
```
₿ Kryptowaluty — BTC · ETH · USDT-TRC20 · USDC-Solana (kliknij, aby rozwinąć)
₿ BTC
Bitcoin (SegWit)
bc1qh00smz004sy85wyl28v77tenkt3ckl6eaep7fd
Ξ ETH
Ethereum (ERC20)
0x64Cf6B68A6Ff34288e89172950a2d00102337a84
₮ USDT
Tron (TRC20)
TKAF41JpuQrHbKTnsQa9svJE2T192Hvsc2
$ USDC
Solana
2emNNZzVVWQc3FQ2wk9M6qXUQmW8AKdjjL174fXR28Tu
⚠️ Każdą monetę wysyłaj wyłącznie w podanej sieci — wysłanie jej w niewłaściwej sieci może spowodować utratę środków.
🐛 Znalazłeś błąd lub masz uwagi? Otwórz [dyskusję](https://github.com/diegosouzapw/OmniRoute/discussions).
Uwagi dla deweloperów: Podczas npm install/postinstall projekt może dla wygody dewelopera wygenerować lokalny plik .env. Plik ten jest celowo ignorowany za pośrednictwem .gitignore (zobacz .gitignore) i nigdy nie może zostać zatwierdzony w repozytorium — jeśli zostanie zatwierdzony przypadkowo, zmień wszystkie ujawnione dane poufne i usuń plik z historii. Wskazówki dotyczące zarządzania lokalnymi plikami środowiskowymi i danymi poufnymi znajdziesz w dokumencie docs/DEVELOPER-ENVIRONMENT.md.
## 📡 OmniRoute Radar
Główna wartość deklarowana dla bezpłatnego poziomu nadal wynosi **~1.62B tokenów/miesiąc** na podstawie udokumentowanego,
pozbawionego duplikatów między pulami katalogu powyżej. Tymczasowe środki przyznawane przy rejestracji u dostawców mogą niezależnie zwiększyć limit w pierwszym
miesiącu do **~2.22B**. Radar to opcjonalna, podpisana nakładka na katalog dla osób, które chcą mieć dostęp do bardziej aktualnych
informacji o dostępności bezpłatnych modeli między wydaniami OmniRoute; katalog społecznościowy oraz wszystkie istniejące bezpłatne
funkcje pozostają bezpłatne.
Osoby wspierające projekt mogą otrzymywać aktualizowany na bieżąco katalog oraz informacje o dodatkowych możliwościach oferowanych przez dostawców. Jego oddzielny,
zmienny pułap wynosi **maksymalnie około 3B tokenów/miesiąc**, zależnie od dostępności u dostawców.
Pułap ten nie jest gwarantowany: dostawcy mogą w dowolnym
momencie zmieniać limity, kryteria kwalifikacji, modele lub regiony.
Radar jest opcjonalny i obsługuje wyłącznie żądania GET. Klient OmniRoute nie przesyła promptów, ruchu, konfiguracji
dostawców, telemetrii użytkowania ani lokalnego stanu odrzucenia powiadomień. Informacje o kryteriach kwalifikacji oraz
aktualnym katalogu znajdziesz na stronie **[radar.omniroute.online/planos](https://radar.omniroute.online/planos)**.
## ✨ Co nowego
> Najnowsze najważniejsze zmiany z **v3.8.20 → v3.8.53**. Pełna historia w [`CHANGELOG.md`](CHANGELOG.md).
- **⚖️ Routing `quota-weighted`** — dwudziesta strategia combo pomija wyczerpane konta, a następnie losuje spośród pozostałych proporcjonalnie do pozostałego limitu ÷ obciążenia w toku, utrzymując przypięcie istniejących rozmów. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **🧰 Tryb headless** — `omniroute serve --headless` (lub `OMNIROUTE_HEADLESS=1`) uruchamia wyłącznie silnik proxy `/v1/*`, z wyłączonym dashboardem i podsystemami dostępnymi tylko dla dashboardu. → [Tryb headless](docs/guides/HEADLESS.md)
- **🔎 Odkrywanie modeli** — `/v1/models` filtruje według możliwości, kontekstu, rodzaju i tekstu, a `POST /v1/models/query` zwraca krótką, deterministyczną listę z tą samą widocznością na poziomie klucza. → [Dokumentacja API](docs/reference/API_REFERENCE.md)
- **🔑 Kontrola routingu na poziomie klucza** — przypnij klucz API do jednego modelu lub combo za pomocą `forcedModel` i dodawaj lub usuwaj modele oraz combo klucza atomowo (`/api/keys/{id}/access`). → [Dokumentacja API](docs/reference/API_REFERENCE.md) · [OpenAPI](docs/openapi.yaml)
- **🛡️ Dokładniejsza kontrola PII** — wybór według typu, do 20 zweryfikowanych niestandardowych wzorców maskowania i liczniki wykryć według typu; samo maskowanie nadal wymaga włączenia. → [Guardrails](docs/security/GUARDRAILS.md)
- **🌍 67 języków** — dashboard, lustra dokumentacji i CLI, a `npm run i18n:add-locale` dodaje język wszędzie jedną komendą. → [Przewodnik i18n](docs/guides/I18N.md)
- **🎛️ OmniConductor** — przychodzące delegowanie A2A do Twojej floty agentów, umiejętności Conductor na karcie Agent Card oraz panel dashboardu z głosowym czatem push-to-talk Faro. → [Serwer A2A](docs/frameworks/A2A-SERVER.md)
- **🛂 Adaptacyjne przyjmowanie żądań i ochrona przed przeciążeniem** — ciężkie żądania czatu trafiają do kolejki zamiast zwracać 503, z atomowymi kroczącymi dzierżawami RPM na połączenie. → [Przewodnik po odporności](docs/architecture/RESILIENCE_GUIDE.md)
- **🗂️ Kanoniczna kolejność `/v1/models`** — jeden ciągły blok pogrupowany według dostawcy dla każdego dostawcy (combo przypięte na początku), stabilny we wszystkich źródłach katalogu. → [Dokumentacja API](docs/reference/API_REFERENCE.md)
- **🗜️ Wzmocnienie kompresji** — domyślnie włączona ochrona przed inflacją, pakiety Caveman dla DE / FR / JA + chińskiego (wényán), filtry RTK dla Gradle i .NET. → [Kompresja](docs/compression/COMPRESSION_ENGINES.md)
- **💸 Uczciwy koszt ryczałtowy** — dostawcy subskrypcji / planów kodowania wykazują **$0** w analityce kosztów; budżet, limity i routing nadal dokonują szacunków. → [Dokumentacja API](docs/reference/API_REFERENCE.md)
- **⚖️ Routing Quota-Share** — sprawiedliwy podział limitu współdzielonego konta między klucze w puli, w trybie work-conserving, dzięki czemu bezczynne udziały są pożyczane. → [Przewodnik po odporności](docs/architecture/RESILIENCE_GUIDE.md)
- **🤖 Konfiguracja CLI/agentów jedną komendą** — 15 zarejestrowanych komend `setup-*`; `omniroute run` uruchamia 7 CLI (Claude Code, Codex, Aider, Goose, OpenCode, Qwen Code, Gemini CLI); `omniroute configure` obsługuje 11 celów z interaktywnym wyborem dostawcy i modelu oraz ulubionymi w podziale na konteksty. → [Integracje CLI](docs/guides/CLI-INTEGRATIONS.md)
- **🛰️ Tryb zdalny** — steruj zdalnym OmniRoute za pomocą tokenów z ograniczonym zakresem (`connect` / `contexts` / `tokens`) + pomocnik OAuth `antigravity` dla instalacji na VPS. → [Tryb zdalny](docs/guides/REMOTE-MODE.md)
- **🧭 Inteligentniejszy automatyczny routing** — combo `auto/:`, **Fusion** (panel modeli + sędzia), routing świadomy zadania, nadpisywanie modelu / trybu / budżetu USD na żądanie. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **🗜️ Wtykowa kompresja** — 12 komponowalnych silników + Compression Studios: LLMLingua-2, dwupoziomowy Ultra, omniglyph, kontrola wierności na każdym kroku, GCF v3.2, edytor kolejności metodą przeciągnij i upuść. → [Kompresja](docs/compression/COMPRESSION_ENGINES.md)
- **🕵️ Przezroczyste odszyfrowywanie MITM (TPROXY)** — przechwytuj CLI ignorujące zmienne środowiskowe proxy, z certyfikatem CA per SNI + instalatorem magazynu zaufania. → [MITM/TPROXY](docs/security/MITM-TPROXY-DECRYPT.md)
- **💸 Telemetria kosztów wszędzie** — nagłówki kosztów/użycia `X-OmniRoute-*` w każdym punkcie końcowym, nagłówek oszczędności przy trafieniu w cache, limity wydatków w USD na klucz. → [Dokumentacja API](docs/reference/API_REFERENCE.md)
- **🧠 Pamięć pod Twoją kontrolą** — domyślnie wyłączona, opcjonalna kwantyzacja wektorowa int8 + typizowany zanik (typed decay), `x-omniroute-no-memory` na żądanie. → [Pamięć](docs/frameworks/MEMORY.md)
- **🛡️ Bezpieczeństwo** — ochrona przed prompt injection w każdym routingu LLM (zestaw testów red-team), opcjonalna bariera maskowania poświadczeń (redaguje ujawnione klucze API/sekrety w obu kierunkach), darmowe wyszukiwanie w sieci DuckDuckGo jako ostatnia deska ratunku oraz opcjonalna brama logowania OIDC dla dashboardu (logowanie hasłem zawsze pozostaje dostępne). → [Guardrails](docs/security/GUARDRAILS.md)
- **🖼️ Nowe punkty końcowe** — `/v1/ocr` (Mistral OCR) i `/v1/audio/translations` (w stylu Whisper) dopełniają powierzchnię mediów. → [Dokumentacja API](docs/reference/API_REFERENCE.md)
- **🎨 Generowanie obrazów / wideo / dźwięku** — jedno API dla mediów: wideo xAI Grok Imagine i Novita AI, ComfyUI, Magnific, Adobe Firefly, Segmind oraz dostawcy mowy, tacy jak ElevenLabs. → [Dokumentacja API](docs/reference/API_REFERENCE.md)
- **🌍 Wdrożenia i operacje** — `basePath` reverse proxy, automatyczne wykrywanie języka przeglądarki, śledzenie urządzeń per klucz, zaufanie MITM bez roota, lokalizacja zh-TW. → [Środowisko](docs/reference/ENVIRONMENT.md)
- **🤝 Więcej dostawców i agentów** — agenci chmurowi (Codex Cloud, Cursor, Devin, Jules), Grok Build (xAI) z logowaniem przez przeglądarkę + OAuth, karta Ollama jako pełnoprawna, Claude Opus 5 i Sonnet 5, oficjalne partnerstwo Kimi (Code/Web/Moonshot), Zed, Requesty, SenseNova, Yuanbao, Agnes AI… oraz odświeżony **katalog 375 dostawców**. → [Dostawcy](docs/reference/PROVIDER_REFERENCE.md)
- **📡 Przejrzystość routingu** — każda odpowiedź zawiera nagłówek `X-OmniRoute-Decision` wskazujący strategię/dostawcę/opóźnienie, które ją obsłużyły, nowa strategia combo `cache-optimized` + czynnik `cacheAffinity` Auto-Combo kierują powtarzane żądania z powrotem do połączenia przechowującego buforowany prefiks, a punkt końcowy `/v1/auto-combo/{channel}/candidates` tylko do odczytu udostępnia bieżącą pulę kandydatów kanału `auto/*`. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **⚡ Lokalna wydajność i infrastruktura** — lokalny Redis jednym kliknięciem, deployery relay Cloudflare Workers / Deno Deploy, Bifrost i Mux jako nadzorowane usługi wbudowane. → [Usługi wbudowane](docs/frameworks/EMBEDDED-SERVICES.md)
- **🧩 W pakiecie również** — framework wtyczek + marketplace, frameworki umiejętności Omni/Agent/GitHub, integracja z vaultem Obsidian (22 narzędzia MCP), API Batch i Files zgodne z OpenAI, semantyczna pamięć podręczna odpowiedzi, grywalizacja z rankingami, wykrywanie agentów ACP (15 wbudowanych agentów), zaplanowany eksport logów do BigQuery, `auto/chaos` równoległe rozsyłanie do wielu modeli, most do bota Telegram, menedżer wersji w aplikacji i rankingi darmowych dostawców LMArena-ELO. → [Dokumentacja](docs/README.md)
## 🤖 Kompatybilne interfejsy CLI i agenci programistyczni
> Jedna konfiguracja — `http://localhost:20128/v1` — i **każde** środowisko IDE lub narzędzie CLI oparte na AI działa z darmowymi i niedrogimi modelami.
+ działa również z · Agent Deck · Kiro · Command Code · Antigravity · Windsurf · AMP · dowolnym narzędziem zgodnym z OpenAI
📖 Konfiguracja każdego z 37 narzędzi (27 narzędzi CLI do kodowania + 10 agentów CLI) → [`docs/reference/CLI-TOOLS.md`](docs/reference/CLI-TOOLS.md) · 🧩 Wtyczka OpenCode → [`@omniroute/opencode-provider`](https://www.npmjs.com/package/@omniroute/opencode-provider)
**Uruchom dowolne obsługiwane narzędzie CLI przez OmniRoute za pomocą jednego polecenia** — bez zapisywania plików konfiguracyjnych,
z danymi uwierzytelniającymi wstrzykiwanymi osobno dla każdego procesu oraz tymczasowym, izolowanym katalogiem domowym dla Qwen/Gemini:
```bash
omniroute run claude --model openai/gpt-5.4 # Claude Code
omniroute run codex --model glm/glm-5.2 # OpenAI Codex CLI
omniroute run aider --model glm/glm-5.2 -- --message "reply OK"
omniroute run goose --model glm/glm-5.2
omniroute run opencode --model glm/glm-5.2 -- run "reply OK"
omniroute run qwen --model glm/glm-5.2 -- -p "reply OK"
omniroute run gemini --model glm/glm-5.2 -- --skip-trust -p "reply OK"
# Możesz też interaktywnie wybrać dostawcę i model oraz zapisać konfigurację danego narzędzia:
omniroute configure codex # także: claude opencode qwen aider goose gemini cline continue kilo 5dive
```
Każde polecenie uwzględnia aktywny zdalny kontekst (`omniroute connect `), opcja `--dry-run`
umożliwia podgląd dokładnych zmiennych środowiskowych i argumentów bez wykonywania polecenia, a `--api-key-env NAME` zapobiega
zapisywaniu sekretów w historii powłoki. → [Integracje CLI](docs/guides/CLI-INTEGRATIONS.md)
## 🌐 375 dostawców AI — 153 oznaczone w katalogu jako darmowe
> **375 zarejestrowanych dostawców** w kanonicznych kolekcjach czatu, mediów, wyszukiwania, lokalnych, agentów chmurowych i systemowych, w tym **153 z metadanymi odkrywania `hasFree: true`**. Rejestr modeli czatu obejmuje **239 dostawców / 3059 unikalnych par dostawca-model / 1475 surowych identyfikatorów modeli**; oddzielny katalog darmowych budżetów zawiera **467 wierszy dla poszczególnych modeli**, **34 cykliczne pule** i **51 dostawców z cyklicznym/bezkluczowym darmowym dostępem na zawsze**. To celowo różne mianowniki; definicje i obliczenia z deduplikacją pul znajdują się w [Dokumentacji dostawców](docs/reference/PROVIDER_REFERENCE.md) i [Darmowych planach](docs/reference/FREE_TIERS.md).
### 🏢 Każde duże laboratorium — przez jeden punkt końcowy
OpenAI
Anthropic
Gemini
xAI Grok
DeepSeek
Mistral
Qwen
Meta Llama
Groq
NVIDIA
MiniMax
Cohere
Perplexity
HuggingFace
Together
Fireworks
Cloudflare
Baidu
…i ponad 350 kolejnych — każda ikona jest ładowana na żywo z katalogu dostawców panelu. 📖 [Dokumentacja dostawców](docs/reference/PROVIDER_REFERENCE.md)
### 🆓 Darmowe na zawsze — 0 USD, bez karty
OpenCode Zen DeepSeek V4, Nemotron 3 Bez limitu tokenów
Kilo Code Automatyczny router, Tencent Hy3 Bezpłatnie na zawsze
Requesty GPT-OSS 120B, Nemotron Bezpłatnie na zawsze
SiliconFlow DeepSeek V3.2 / R1 Bezpłatny plan
Z.AI GLM GLM-4.7 / 4.5-Flash Bezpłatnie na zawsze
Baidu ERNIE ERNIE 4.0 Bezpłatnie na zawsze
Qoder AI Qwen3-Max, Kimi-K2 Bez limitów i BEZPŁATNIE
Pollinations GPT, Llama, Claude Klucz nie jest wymagany
Cloudflare AI Ponad 50 modeli 10 tys. neuronów dziennie
NVIDIA NIM GLM, MiniMax Bezpłatnie około 40 RPM
Cerebras GLM 4.7, GPT-OSS Jednorazowy kredyt 5 USD; wymagana karta
📖 Pełny katalog w formacie do odczytu maszynowego → [`docs/reference/PROVIDER_REFERENCE.md`](docs/reference/PROVIDER_REFERENCE.md)
## 🖥️ Gdzie działa OmniRoute — wszędzie
> Ta sama aplikacja, Twój sprzęt, Twoje zasady. Od globalnej instalacji npm aż po **Twój telefon** za pośrednictwem Termux.
Platforma
Instalacja
Najważniejsze cechy
📦 npm (globalnie)
npm install -g omniroute
Jedno polecenie, dowolny system operacyjny
🐳 Docker
docker run … diegosouzapw/omniroute
Wiele architektur: AMD64 + ARM64
🖥️ Aplikacja desktopowa (Electron)
npm run electron:build
Natywne okno + zasobnik systemowy — Windows / macOS / Linux
🎩 Pasek menu (OmniRouteTray)
brew install --cask zoispag/tap/omniroute-tray
Nadzoruje i automatycznie aktualizuje serwer — macOS
💪 ARM
natywne 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, działanie offline, instalacja z przeglądarki
🧩 Wtyczka OpenCode
@omniroute/opencode-provider
Natywna integracja z OpenCode
🤖 VS Code Copilot Chat
zainstaluj rozszerzenie OmniCopilot
Każdy model OmniRoute w natywnym selektorze Copilot Chat — wersje stabilne i Insiders
🛠️ Ze źródeł
npm install && npm run dev
Modyfikuj i współtwórz
📖 [Przewodnik po Dockerze](docs/guides/DOCKER_GUIDE.md) · [Aplikacja desktopowa](electron/README.md) · [Zasobnik na pasku menu](https://github.com/zoispag/omniroute-tray) · [Termux](docs/guides/TERMUX_GUIDE.md) · [PWA](docs/guides/PWA_GUIDE.md) · [OpenCode](docs/frameworks/OPENCODE.md)
### 🧩 Nowość: OmniRoute wewnątrz natywnego Copilot Chat w VS Code
> Bez nowego paska bocznego i bez nowego interfejsu czatu — każdy model udostępniany przez OmniRoute pojawia się bezpośrednio w
> **selektorze modeli Copilot Chat, którego już używasz**. Od VS Code 1.122 modele dostawców działają
> bez logowania do GitHub ani subskrypcji Copilot — tryb agenta, wywoływanie narzędzi i obsługa obrazów,
> za darmo.
Zainstaluj rozszerzenie **[OmniCopilot](https://github.com/diegosouzapw/OmniCopilot)**, wskaż mu
swój serwer OmniRoute (domyślnie `localhost:20128`), a następnie otwórz Copilot Chat → selektor modeli
→ **Zarządzaj modelami…** → **OmniRoute**.
W edytorze otwórz widok **Rozszerzenia**, wyszukaj **„OmniRoute”** i kliknij **Zainstaluj**
— działa tak samo w obu sklepach. Kod źródłowy, zgłoszenia problemów i instrukcja publikowania znajdują się w
[diegosouzapw/OmniCopilot](https://github.com/diegosouzapw/OmniCopilot).
📖 [Przewodnik po VS Code Copilot Chat](docs/guides/VSCODE-COPILOT.md) — konfiguracja, zawartość selektora, panel w karcie, rozwiązywanie problemów
### 🎩 Nowość: OmniRouteTray — Twoja brama dostępna z paska menu
> `omniroute serve` działa najlepiej, gdy jest stale uruchomione. **[OmniRouteTray](https://github.com/zoispag/omniroute-tray)**
> zmienia je w bezobsługową aplikację paska menu dla macOS: uruchamia serwer, utrzymuje go przy życiu
> po ponownym uruchomieniu systemu, aktualizuje go w miejscu i zapewnia dostęp do bieżącego budżetu tokenów jednym kliknięciem — **bez
> pozostawiania otwartego okna terminala i bez konieczności pilnowania `npm install -g omniroute`.**
Aplikacja została zbudowana przy użyciu [Tauri v2](https://v2.tauri.app/) (rdzeń w Rust tak mały, że mieści się w granicy błędu zaokrąglenia), zawiera
własne podpisane środowisko uruchomieniowe Node 24 i zarządza należącą do aplikacji instalacją OmniRoute, dzięki czemu nigdy nie koliduje z Twoim
globalnym `node`/`bun`. **Korzysta z Twojej istniejącej konfiguracji i bazy danych w `~/.omniroute/`** — jest to więc
ten sam OmniRoute, którego już używasz, tylko w kapeluszu. 🎩
Co robi
Jak
🟢 Nadzoruje serwer
Uruchamia omniroute serve i przejmuje już działającą instancję zamiast ją duplikować
📊 Bieżące użycie w skrócie
Paski limitów dostawców, limity sesji i tygodniowe Claude z odliczaniem do ich zresetowania oraz zestawienie kosztów za 30 dni
🔄 Automatycznie aktualizuje w miejscu
Instalacja etapowa, atomowa podmiana i wycofanie zmian w razie błędu — zawsze najnowsza wersja
🚀 Uruchamia przy logowaniu
Opcjonalne uruchamianie przy logowaniu; tylko zasobnik, bez ikony w Docku
🩺 Diagnostyka i dzienniki
Diagnostyka jednym kliknięciem i dostęp do dzienników serwera
```sh
brew install --cask zoispag/tap/omniroute-tray
```
Wolisz pobrać plik? Pobierz najnowszy plik .dmg z sekcji
Wydania. Kod źródłowy, zgłoszenia problemów i dokumentacja
kompilacji znajdują się w repozytorium zoispag/omniroute-tray.
💛 Projekt społecznościowy autorstwa @zoispag — nie jest to oficjalne wydanie OmniRoute.
> Poza serwerem OmniRoute jest **pełnoprawnym centrum sterowania z wiersza poleceń** z **ponad 80 poleceniami**, a także obsługuje otwarte protokoły agentowe, dzięki czemu agent AI może zarządzać nim **samodzielnie**.
### ⌨️ Prawdziwy interfejs CLI (nie tylko `start`)
```bash
omniroute # uruchamia bramę i panel (port 20128)
omniroute chat # interaktywny klient czatu TUI (polecenia z ukośnikiem: /model /combo /skill /memory)
omniroute setup # kreator pierwszego uruchomienia z instrukcjami
omniroute doctor # diagnozuje dostawców, porty i zależności natywne
```
### 🛰️ Tryb zdalny — uruchom CLI tutaj, a OmniRoute na VPS-ie
Masz OmniRoute na serwerze? Steruj nim z laptopa za pomocą **tego samego CLI**. Zaloguj się raz
przy użyciu tokenu dostępu o określonym zakresie; każde kolejne polecenie będzie kierowane do zdalnej instancji.
```bash
omniroute connect 192.168.0.15 # hasło → token o określonym zakresie, zapisany jako kontekst
omniroute models # ← działa na ZDALNYM serwerze
omniroute configure codex # ← wybiera zdalny model i zapisuje lokalny profil Codex
omniroute tokens create --name ci --scope read # tworzy tokeny o węższym zakresie dla innych maszyn
omniroute contexts use default # ← przełącza z powrotem na lokalny serwer
```
Tokeny mają zakres `read` / `write` / `admin`; trasy uruchamiające procesy pozostają dostępne wyłącznie przez interfejs pętli zwrotnej.
📖 [Tryb zdalny](docs/guides/REMOTE-MODE.md)
### 🤝 Podłącz agenta — a będzie samodzielnie sterować OmniRoute
Udostępnij OmniRoute przez **MCP**, **A2A**, **REST API**, **webhooki** lub **zdalny interfejs CLI** — każdy odpowiednio wyposażony agent (lub Twój własny kod) otrzyma dostęp do całej bramy: routingu, dostawców, kombinacji, pamięci podręcznej, kompresji i pamięci — autonomicznie. Poniższe punkty końcowe HTTP są dostępne pod adresem `http://localhost:20128`.
Interfejs
Punkt końcowy / polecenie
Zastosowanie
🧰 MCP (stdio)
omniroute --mcp
Integracja z Claude Desktop, Cursor i dowolnym klientem MCP
Komunikacja między agentami, JSON-RPC 2.0 + SSE, 6 umiejętności
🌐 REST API
/v1/*
Zgodność z OpenAI — czat, osadzenia, obrazy, dźwięk, OCR
🔔 Webhooki
/api/webhooks
Wysyłanie zdarzeń żądań i limitów do Slacka, Discorda, Telegrama lub pod dowolny adres URL
🛰️ Zdalny CLI
omniroute connect
Sterowanie zdalną instancją za pomocą tokenów dostępu o określonym zakresie
```bash
# Udostępnij 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](docs/frameworks/MCP-SERVER.md) · [Serwer A2A](docs/frameworks/A2A-SERVER.md) · [Protokoły agentowe](docs/frameworks/AGENT_PROTOCOLS_GUIDE.md)
## 🗜️ Oszczędzaj 15–95% tokenów — automatycznie
### 📖 Jak to działa — potok, architektura i obliczanie oszczędności
Domyślna kombinacja stosu uruchamia `RTK → Caveman`. Gdy oba silniki przetwarzają ten sam ładunek narzędzia lub kontekstu, oszczędności się kumulują:
```txt
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, dane JSON i dane strukturalne są **zawsze chronione** przez silnik zachowywania zawartości.
> **Po co używać wielu tokenów, skoro wystarczy ich niewiele?** Każde żądanie przechodzi przez potok kompresji OmniRoute **w sposób przezroczysty** — bez zmian po stronie klienta. Jest to teraz **stos 12 komponowalnych silników**, które działają kolejno i mogą być dowolnie łączone w poszczególnych kombinacjach routingu — w oparciu o rozwiązania z [RTK](https://github.com/rtk-ai/rtk), [Caveman](https://github.com/JuliusBrussee/caveman) (⭐ ponad 90 tys.), [LLMLingua-2](https://github.com/microsoft/LLMLingua) oraz [Troglodita](https://github.com/leninejunior/troglodita) (PT-BR).
### 🧱 Stos 12 silników
Silniki działają zgodnie z kolejnością w potoku; każdy z nich można niezależnie włączać, wyłączać i konfigurować dla poszczególnych kombinacji:
#
Silnik
Działanie
1
Session-Dedup
Usuwa zawartość powtarzającą się między turami (adresowana zawartością, między turami)
2
CCR
Archiwizuje duże bloki za znacznikami pobierania, umożliwiając ich wczytanie na żądanie
3
Lite
Usuwa nadmiarowe białe znaki i skraca adresy URL obrazów (wariant bazowy o niskich opóźnieniach)
4
RTK
Inteligentne filtrowanie, deduplikacja i skracanie wyników narzędzi (z uwzględnieniem poleceń)
5
Responses Tool Output
Bezstratne w pierwszej kolejności przetwarzanie JSON oraz ograniczona kompresja diagnostyczna danych wyjściowych powłoki, poprawek, wyszukiwania i kompilacji (Responses API)
6
Headroom
Bezstratna kompresja tabelaryczna tablic JSON (~30%) przy użyciu dołączonego kodeka GCF
7
Relevance
Ekstrakcyjne ocenianie zdań względem ostatniego zapytania użytkownika
8
Caveman
Kompresja prozy oparta na regułach (~65–75% na wyjściu)
9
Aggressive
Podsumowywanie i stopniowe postarzanie starych tur
10
LLMLingua-2
Semantyczne przycinanie z użyciem uczenia maszynowego za pośrednictwem MobileBERT ONNX — bezpieczne dla kodu, asynchroniczne
11
Ultra
Heurystyczne przycinanie tokenów z opcjonalną warstwą małego modelu (SLM)
12
OmniGlyph
Eksperymentalne kodowanie kontekstu jako obrazu dla przetestowanego modelu Claude Fable 5 przy bezpośrednim połączeniu z Anthropic; transformatory GPT 5.6 pozostają domyślnie zablokowane do czasu otrzymania potwierdzeń od dostawcy. Cztery profile kompresji (domyślny agresywny, zrównoważony, bezpieczny dla kodu, bez przetwarzania) (najbardziej agresywny; wymaga jawnego włączenia)
Bloki kodu, adresy URL i dane strukturalne są **zawsze zachowywane** z dokładnością do pojedynczego bajtu. **Ustawienia wstępne dostępne jednym kliknięciem** łączą silniki:
Tryb
Oszczędność
Najlepsze zastosowanie
🪶 Lite
~15%
Bezpieślny tryb domyślny, który może być zawsze włączony
🪨 Standardowy (Caveman)
~30%
Codzienne programowanie
⚡ Agresywny
~50%
Długie sesje intensywnie korzystające z narzędzi
🔥 Ultra
~75%
Maksymalne oszczędności
🧰 RTK
60–90%
Dane wyjściowe powłoki, testów, kompilacji i poleceń git
🔗 Stos (RTK → Caveman)
78–95%
Mieszane prompty i dzienniki narzędzi
**Rzeczywisty przykład — tryb standardowy:**
> **Przed (69 tokenów):** _„Przyczyną ponownego renderowania komponentu React jest prawdopodobnie tworzenie nowej referencji do obiektu w każdym cyklu renderowania. Gdy przekazujesz obiekt wbudowany jako właściwość, płytkie porównanie Reacta za każdym razem rozpoznaje go jako inny obiekt, co uruchamia ponowne renderowanie. Zalecam użycie useMemo do zapamiętania obiektu”._
>
> **Po (19 tokenów):** _„Nowa referencja obiektu przy każdym renderowaniu. Wbudowany obiekt jako właściwość = nowa referencja = ponowne renderowanie. Opakuj w useMemo”._
>
> **Ta sama odpowiedź. O 72% mniej tokenów. Bez utraty dokładności.** ✅
**Przykład PT-BR — tryb [Troglodita](https://github.com/leninejunior/troglodita):**
> **Przed (42 tokeny):** _"Problem polega na tym, że komponent renderuje się ponownie, ponieważ w każdym cyklu renderowania tworzona jest nowa referencja obiektu. Zaleciłbym użycie `useMemo`."_
>
> **Po (12 tokenów):** _"Re-render: nowa ref w każdym cyklu (obiekt inline tworzony od nowa). Użyć `useMemo`."_
>
> **Ta sama odpowiedź. ~70% mniej tokenów. Precyzja techniczna nietknięta.** ✅
### 🎚️ Poza silnikami — style wyjścia, adaptacyjne pokrętło i kontrola per żądanie
Powyższe 12 silników zmniejsza to, co trafia **do środka**. Trzy kolejne warstwy kształtują **jak**, **kiedy** i co wychodzi **na zewnątrz**:
- **🪄 Output Styles** _(sterowanie osią wyjścia)_ — wstrzykują deterministyczne, bezpieczne dla cache'u instrukcje kształtujące odpowiedź; można je łączyć, każda w intensywności `lite` / `full` / `ultra`. Dodanie stylu to jeden wiersz w rejestrze:
- **Terse prose** — usuwa wodę / rodzajniki / asekuranctwo; treść techniczna pozostaje dokładna.
- **Less code** — „leniwy senior dev" YAGNI: najmniejsza działająca zmiana, bez niechcianego rusztowania.
- **Ponytail (lazy senior dev)** — wspina się po drabinie YAGNI, naprawia przyczynę źródłową, najmniejszy działający diff.
- **I have ADHD (action-first)** — najpierw następna akcja, kroki numerowane, jeden konkretny następny krok, bez wstępu.
- **Terse CJK (文言)** — klasyczny chiński, ultra-zwięzły styl (ograniczony lokalizacją do `zh`).
- **🎯 Adaptive context-budget** _(pokrętło)_ — zamiast jednego progu tokenów włącz/wyłącz, eskaluje najtańsze i najbardziej bezstratne silniki tylko tak daleko, jak trzeba, by **zmieścić się w oknie kontekstu modelu**. Polityka: `reserve-output` (domyślna, świadoma modelu) · `percentage` · `absolute`. Tryb: `floor` (gwarantuje dopasowanie) · `replace-autotrigger` (Twój jawny wybór wygrywa) · `off` (stary próg).
- **🎛️ Gdzie decyduje się kompresja** _(priorytet, od wysokiego do niskiego)_ — nagłówek `x-omniroute-compression` per żądanie › nadpisanie w combie routingu › aktywny profil nazwany › adaptive / auto-trigger › domyślne panelu › wyłączone. Zastosowany plan jest zwracany w nagłówku odpowiedzi `X-OmniRoute-Compression: ; source=`.
Auto-trigger po progu tokenów, włączenie adaptacyjnego pokrętła, przypięcie nazwanego profilu, jednorazowe ustawienie per żądanie albo przypisanie pipeline'u do comba routingu — cokolwiek pasuje do obciążenia. Opcjonalny, offline'owy **eval harness** (`npm run eval:compression`) ocenia wierność względem oszczędności na przypiętym korpusie, zanim wdrożysz zmianę.
📖 [`COMPRESSION_GUIDE.md`](docs/compression/COMPRESSION_GUIDE.md) · [`RTK_COMPRESSION.md`](docs/compression/RTK_COMPRESSION.md) · [`COMPRESSION_ENGINES.md`](docs/compression/COMPRESSION_ENGINES.md)
# ⚡ Szybki start
**1) Zainstaluj i uruchom**
```bash
npm install -g omniroute
omniroute
```
> 💡 Widzisz `npm warn ERESOLVE` lub ostrzeżenia o peer-deps? [Są nieszkodliwe](docs/guides/TROUBLESHOOTING.md#npm-install-warnings-eresolve--peer--deprecated).
> **Używasz npm 11 lub nowszego?** npm może blokować skrypty cyklu życia pakietu, jeśli nie zostaną dozwolone. `postinstall` OmniRoute (`node scripts/build/postinstall.mjs`) jest wymagany do przygotowania jego natywnych plików runtime. Podczas instalacji globalnej zezwól na pakiety wymienione w ostrzeżeniu npm. Dla zestawu pakietów zgłoszonego przez OmniRoute 3.8.53:
>
> ```bash
> npm install -g --allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild omniroute
> ```
>
> Aby ponownie wykorzystać tę listę dozwolonych w przyszłych instalacjach globalnych, skonfiguruj ją raz, a potem instaluj normalnie:
>
> ```bash
> npm config set allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild --location=user
> npm install -g omniroute
> ```
>
> Lista zależności może się zmieniać między wydaniami; jeśli npm zgłosi inną listę, użyj nazw pakietów z tego ostrzeżenia. Zezwolenie na pakiet umożliwia uruchamianie jego skryptów instalacyjnych.
> **Używasz Gemini Web lub innego providera opartego na ciasteczkach webowych?** Pakiet npm zawiera Playwright, ale nie zawiera jego binarki Chromium. Przed wykonaniem pierwszego żądania do providera webowego zapoznaj się z notatką o [konfiguracji Chromium dla Playwright](docs/guides/TROUBLESHOOTING.md#gemini-web-and-playwright-chromium).
Panel pod `http://localhost:20128` · API pod `http://localhost:20128/v1`.
**2) Podłącz kwalifikującego się providera, używając własnego konta**
Panel → **Providers** → wybierz providera, którego aktualne warunki i limity pasują do Twojego przypadku użycia → dodaj jego klucz API lub dokończ flow konta. Darmowe plany mogą wymagać rejestracji, zatwierdzenia lub metody płatności. Przejrzyj [Przewodnik po darmowych planach](docs/getting-started/FREE-TIERS-GUIDE.md); dostępność bez klucza nie jest gwarantowana, a providerzy oznaczeni jako `tos: avoid` są domyślnie wykluczeni z `auto`.
**3) Wskaż swoje narzędzie do kodowania**
```txt
Base URL: http://localhost:20128/v1
API Key: [copy from Dashboard → Endpoints]
Model: auto (routes among eligible connections — or choose provider/model)
```
**4) Sprawdź, czy działa**
```bash
curl http://localhost:20128/v1/models -H "Authorization: Bearer YOUR_KEY"
```
Powinieneś zobaczyć listę podłączonych modeli. 🎉 To wszystko — zaczynaj kodować, a OmniRoute sam routuje i wykonuje fallback za Ciebie.
Jeśli Twój klient nie potrafi wysyłać niestandardowych nagłówków, OmniRoute udostępnia także tokenizowane aliasy zgodności:
```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
```
Używaj ich tylko w klientach, które nie potrafią dołączyć `Authorization: Bearer ...`. Uwierzytelnianie nagłówkiem pozostaje preferowanym trybem.
## 📦 Więcej metod instalacji — Docker, kod źródłowy, 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` wskazuje najwyższą **opublikowaną** stabilną wersję SemVer. Nie śledzi gałęzi git `main`. W przypadku GitOps przypnij `:X.Y.Z`. Zobacz [Kanały wydań Docker](docs/guides/DOCKER_GUIDE.md#release-channels).Obraz ustawia na stałe **`OMNIROUTE_MEMORY_MB=1024`**. To wystarcza dla panelu i lekkiego czatu. **Agenci programistyczni** (`POST /v1/responses` z Claude Code, Codex, Grok, …) wymagają znacznie większej sterty V8, w przeciwnym razie proces kończy się błędem `FATAL ERROR` przy około 12 GiB w przypadku dwóch nakładających się długich kontekstów. Przydziel kontenerowi więcej pamięci niż rozmiar sterty (bufory natywne znajdują się poza V8):
| Obciążenie | Sterta (`-e OMNIROUTE_MEMORY_MB`) | Kontener (`--memory`) |
| -------------------------------------- | --------------------------------- | --------------------- |
| Panel / lekki czat | `1024` (domyślna wartość obrazu) | ≥2 g |
| Jeden agent programistyczny | `8192` | ≥10 g |
| Dwa równoczesne długie `/v1/responses` | `10240`–`12288` | ≥12–16 g |
```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
```
Pełna tabela: [Przewodnik po Dockerze — pamięć RAM środowiska uruchomieniowego](docs/guides/DOCKER_GUIDE.md#runtime-ram-for-coding-agents).
> **Kanał przedpremierowy Dockera:** `diegosouzapw/omniroute:next` oraz
> `diegosouzapw/omniroute:next-web` śledzą bieżącą domyślną gałąź `release/v*`.
> Te zmienne tagi są przeznaczone wyłącznie do testowania niewydanych poprawek i
> **nie są obsługiwane w środowisku produkcyjnym**. Zobacz
> [Kanały wydań Docker](docs/guides/DOCKER_GUIDE.md#release-channels).
**🥟 Bun**
Standardowe polecenie `bun install` oraz instalacja globalna (`bun install -g omniroute`) są obsługiwane dzięki wykrywaniu środowiska uruchomieniowego Bun:
- **Wbudowany `bun:sqlite`**: podczas działania w środowisku Bun OmniRoute używa wbudowanego sterownika `bun:sqlite`, a w środowisku Node.js korzysta awaryjnie z `better-sqlite3` lub `sql.js`.
- **Automatyczny wybór narzędzia pakującego Webpack w środowisku deweloperskim**: tryb deweloperski (`bun run dev`) automatycznie wykrywa Bun i wyłącza Turbopack na rzecz Webpack, aby zapobiec niezgodnościom natywnych powiązań V8. Kompilacje produkcyjne (`bun run build`) stosują `OMNIROUTE_USE_TURBOPACK` dokładnie tak samo jak w Node: domyślnie Turbopack, a `OMNIROUTE_USE_TURBOPACK=0` pozwala budować za pomocą Webpack (`Dockerfile.bun` udostępnia tę opcję jako `--build-arg`).
- **Dedykowany plik Dockerfile dla Bun**: wieloetapowy `Dockerfile.bun` do natywnych wdrożeń produkcyjnych Bun (`docker build -f Dockerfile.bun -t omniroute:bun .`).
```bash
# Zainstaluj i uruchom za pomocą Bun
bun install
bun run dev
```
**🛠️ Z kodu źródłowego**
```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
# Korzystanie z płatków Nix
nix develop
npm run dev
# Lub korzystanie z devbox
devbox run npm run dev
```
📖 [Przewodnik po Dockerze](docs/guides/DOCKER_GUIDE.md) — profile Compose, HTTPS z Caddy, tunele Cloudflare.
**🦭 Podman**
```bash
# 1. Przygotuj katalog danych montowany przez dowiązanie
mkdir -p data
# 2. Tylko Linux + lokalny Podman bez roota (nigdy zdalny klient Podman Machine):
podman unshare chown 1000:1000 ./data
# 3. Ustaw wskazówkę dotyczącą środowiska uruchomieniowego, zbuduj lokalny obraz Compose i uruchom
echo "CONTAINER_HOST=podman" >> .env
podman compose --profile base up -d --build
```
W systemie macOS lub Windows Podman korzysta ze zdalnej maszyny Podman Machine: pomiń `podman unshare` i
postępuj zgodnie z [instrukcjami dotyczącymi katalogu danych właściwymi dla danej topologii](contrib/podman/README.md#data-directory-permissions-by-topology).
📖 [Przewodnik po Podmanie](contrib/podman/README.md) — kompilacje Compose, Podman Machine oraz
konfiguracja Quadlet dla Linux/systemd.
**⚡ Szybsza / lżejsza instalacja (pominięcie kompilacji natywnej)**
Natywny silnik SQLite (`better-sqlite3`) jest zależnością **opcjonalną**, dlatego instalacja
globalna nigdy nie jest blokowana przez kompilację z kodu źródłowego: używa wstępnie skompilowanego pliku binarnego, gdy jest on zgodny
z Twoją platformą/Node, a w przeciwnym razie w sposób przezroczysty przełącza się na silnik oparty wyłącznie na JS
(`node:sqlite` w Node 22+, w innym przypadku dołączony `sql.js` WASM) — narzędzia kompilacyjne nie są wymagane.
Aby całkowicie pominąć natywne przygotowanie po instalacji (CI, środowiska bez interfejsu graficznego lub wolne maszyny):
```bash
OMNIROUTE_SKIP_POSTINSTALL=1 npm install -g omniroute # CI=1 również je pomija
```
Aby uzyskać najszybszą instalację, wybierz **pnpm** (magazyn adresowany zawartością + dowiązania twarde — patrz wyżej).
Aby korzystać ze środowiska bez panelu i interfejsu graficznego, użyj profilu Docker `base` (powyżej) lub
[przewodnika po Termux](docs/guides/TERMUX_GUIDE.md). Interfejs CLI i panel internetowy są obsługiwane przez ten
sam proces na jednym porcie, dlatego obecnie nie istnieje osobny pakiet zawierający wyłącznie CLI.
Strategia pokrycia testami dla ponad 56 000 statycznych deklaracji testów w ponad 7800 śledzonych plikach testowych
# ⭐ Najlepsi współtwórcy
> OmniRoute kształtuje pełna pasji społeczność 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.**
### Współtwórcy zewnętrzni według scalonych pull requestów
Spis sporządzono 2026-10-18 15:09:09 UTC na podstawie aktualnego czubka release/v3.8.52656f01cb43. Paginowany spis GitHub GraphQL zawiera 9 191 scalonych PR-ów: 3 834 autorstwa właściciela repozytorium, 229 od Dependabota, 6 od innych botów/aplikacji oraz 5 122 zewnętrzne PR-y od 835 różnych współtwórców. „Zmienione linie” to dodania + usunięcia w GitHubie i obejmują wygenerowane pliki, pliki blokad, katalogi, tłumaczenia i dokumentację; to churn, a nie liczba autorowanych linii kodu. 49 PR-ów wykazuje różnice w GitHubie powyżej 500 000 linii (na przykład #13399, dodanie pojedynczego providera, wymienia 2347 zmienionych plików), co zawyża kilka powyższych sum. Remisy są klasyfikowane łącznie.
### Commity przypisane w GitHubie
Ponownie sprawdzono 2026-10-18 14:44:45 UTC: commity przypisane w GitHubie zgłoszone przez Contributors API repozytorium dla domyślnej gałęzi release/v3.8.52. API zwróciło 849 tożsamości (429 użytkowników, 2 boty, 418 anonimowych); ta tabela pomija maintainera, boty oraz tożsamości anonimowe i zachowuje remisy w rankingu. Różni się ona zarówno od powyższego rankingu scalonych PR-ów, jak i od poniższego spisu opartego na metadanych Git.
> 🙏 Funkcje, poprawki błędów i usprawnienia infrastruktury wprowadzone przez tych współtwórców są **kluczowym elementem** tego, co czyni OmniRoute niezawodnym i bogatym w funkcje. Każdy pull request, każdy przypadek testowy i każdy plik tłumaczenia i18n ma znaczenie. Open source tworzą ludzie tacy jak oni.
---
## 💖 Sponsorzy
Serdeczne podziękowania dla osób, które finansują OmniRoute z własnej kieszeni — każda wpłata pomaga utrzymać projekt bezpłatnym, niezależnym i stale rozwijanym.
… oraz inni, którzy wolą zachować anonimowość 💛Publiczni sponsorzy w GitHub Sponsors zostali ponownie zweryfikowani 2026-10-18 za pośrednictwem interfejsu GitHub Sponsors GraphQL API: 11 publicznych sponsoringów (6 aktywnych, 5 zakończonych) spośród łącznie 14. Status isActive w GitHub określa powyższe etykiety aktywności; nadal dziękujemy byłym publicznym jednorazowym darczyńcom, a prywatni sponsorzy pozostają anonimowi. Wpłaty za pośrednictwem Ko-fi, Buy Me a Coffee, Liberapay, PIX oraz darowizny w kryptowalutach nie są wymienione, ponieważ nie mają publicznego wpisu sponsora.💖 Zostań sponsorem → — każdy dolar pomaga utrzymać OmniRoute bezpłatnym i niezależnym.
## 👥 Ponad 900 współtwórców
[](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)
Audyt przeprowadzono 2026-10-18 na aktualnym wierzchołku gałęzi release/v3.8.52, tj. ad160ab2d1 (6 826 commitów): 993 znormalizowane tożsamości osób w Git — 707 występuje jako autorzy commitów (w tym opiekun projektu), a 286 wyłącznie w jawnych stopkach Co-authored-by. Zestawienie uwzględnia .mailmap, porównuje adresy e-mail bez rozróżniania wielkości liter, łączy numeryczne i zwykłe adresy GitHub noreply tylko wtedy, gdy wskazują tę samą nazwę użytkownika, wyklucza 26 tożsamości botów, agentów, usług i wpisów zastępczych oraz nie scala zwykłych adresów e-mail tylko dlatego, że powiązane z nimi nazwy wyświetlane są identyczne. W audycie z 2026-08-24 wykazano 639 osób; ponowne zastosowanie tej metody do bazy tamtego audytu, ac02c5b42f, daje wynik 619, więc wzrost wynika z udziału nowych współtwórców, a nie z zastosowania mniej rygorystycznej metody.
### Jak wnieść wkład
1. Utwórz fork repozytorium
2. Utwórz gałąź na podstawie **aktywnego** wierzchołka `release/vX.Y.Z` (nie `main`) — zobacz [Model gałęzi i wydań](docs/ops/BRANCHING_MODEL.md)
3. Utwórz własną gałąź funkcji (`git checkout -b feat/amazing-feature`)
4. Zatwierdź zmiany (`git commit -m 'feat: add amazing feature'`)
5. Wypchnij zmiany do gałęzi (`git push origin feat/amazing-feature`)
6. Otwórz Pull Request z ustawieniem **base = ta gałąź `release/vX.Y.Z`**
Szczegółowe wytyczne znajdują się w pliku [CONTRIBUTING.md](CONTRIBUTING.md).
### Publikowanie nowej wersji
```bash
# Utwórz wydanie — npm publish zostanie wykonane automatycznie
VERSION=x.y.z
gh release create "v${VERSION}" --title "v${VERSION}" --generate-notes
```
## 📊 Gwiazdki
## 🌍 StarMapper
## 🙏 Podziękowania
OmniRoute stoi na ramionach gigantów. Projekt rozpoczął się jako fork **[9router](https://github.com/decolua/9router)** oraz port projektu **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** z języka Go do TypeScript — a następnie każdy z poniższych podsystemów został zainspirowany projektem open source, który przecierał szlaki. Każdy z nich ukształtował konkretną część OmniRoute. W ten sposób dziękujemy im wszystkim. 🙏
> ⭐ liczby gwiazdek zweryfikowano za pomocą interfejsu GitHub REST API 18 października 2026 r. — przyznajcie tym projektom gwiazdkę. Podane liczby stanowią dokładny obraz z tego dnia i z czasem będą się naturalnie zmieniać.
### 🧬 Pochodzenie i brama
Brama AI, której publiczny zbiór danych cenowych zasila naszą synchronizację śledzenia kosztów, a model normalizacji dostawców wpłynął na nasz mechanizm routingu.
Kod źródłowy na licencji MIT zaadaptowany do dołączonego mostu ChatGPT Web → Codex Responses, obejmującego adaptery sesji przeglądarki, ramkowania odpowiedzi, użycia i wyszukiwania internetowego.
Mapowania modeli Grok, generator Statsig symulujący TypeError, domyślne ustawienia żądań i urządzeń oraz procesor odpowiedzi NDJSON zostały w znaczącym stopniu zaadaptowane do modułu wykonawczego Grok Web w OmniRoute.
Główne pośrednie źródło kodu stojące za grok2api-merged; jego implementacje modeli, nagłówków, ładunków, Statsig i procesorów zostały zachowane w linii pochodzenia Grok Web.
Podstawowy kod źródłowy na licencji MIT dla ładunków Grok i domyślnych ustawień urządzeń, generatora Statsig oraz procesora result.response, przeniesiony za pośrednictwem TQZHR i grok2api-merged.
Pośrednie źródło wskazane przez grok2api-merged jako podstawa jego warstwy puli serwerów proxy; OmniRoute zachowuje informację o tym pochodzeniu, ale nie deklaruje przeniesienia puli proxy do swojego ograniczonego modułu wykonawczego Grok Web.
Uwierzytelniany za pomocą plików cookie serwer proxy Grok oraz wzorzec strumieniowania result.response.token wpłynęły na warstwę transportową Grok Web w OmniRoute.
Pierwotna implementacja Grok Web korzystała z jego projektu warstwy nadrzędnej HTTP/przeglądarki; jej bezpośrednia ścieżka HTTP wywodzi się z GrokProxy, dlatego nie deklarujemy niezależnego przeniesienia kodu.
Viralowy projekt „po co używać wielu tokenów, gdy kilka załatwia sprawę” — jego filozofia jaskiniowej mowy napędza nasz standardowy tryb kompresji oraz ponad 30 reguł usuwania wypełniaczy i kondensacji.
Wysokowydajna kompresja danych wyjściowych poleceń — zainspirowała nasz silnik RTK, DSL filtrów JSON, odzyskiwanie surowych danych wyjściowych oraz potok warstwowy RTK → Caveman.
Badania nad kompresją promptów (LLMLingua / LLMLingua-2) — zainspirowały nasz asynchroniczny, bezpieczny dla kodu i odporny na awarie silnik llmlingua.
Viralowa umiejętność kodowania YAGNI „leniwego starszego programisty” — zainspirowała nasz styl danych wyjściowych less-code: ukierunkowanie na najmniejszą działającą zmianę, które ogranicza _generowany_ kod (odpowiednik zwięzłej prozy Cavemana dla osi danych wyjściowych).
Jego ukierunkowany na działanie, przyjazny osobom z ADHD styl odpowiedzi został zaadaptowany jako zwięzły styl danych wyjściowych OmniRoute w pięciu językach.
### 🧩 Kompaktowe formaty, badania nad tokenami i narzędzia uwzględniające kod
Uwzględniająca zawartość kompresja danych wyjściowych dla poszczególnych typów plików z rezygnacją w razie niepowodzenia — potwierdziła zasadność naszego rozdzielania według typów i pomijania kompresji przy zbyt małym zysku.
Kolumnowy JSON w języku Rust, pobieranie adresowane zawartością oraz deduplikacja między wiadomościami — potwierdziły zasadność projektu naszych silników headroom/ccr/session-dedup i stabilnego względem pamięci podręcznej niezmiennika „skompresowana postać jest niezależna od pozycji”.
Deklaratywna redukcja danych wyjściowych powłoki za pośrednictwem MCP — potwierdziła zasadność naszego deklaratywnego kompaktowania danych wyjściowych Bash.
Przechwytywanie i analiza metodą MITM ruchu między asystentem programowania a LLM pomogły określić wczesne wymagania dotyczące Inspektora ruchu. Cztery wcześniej opracowane na tej podstawie moduły — scalanie SSE, normalizacja konwersacji, maskowanie sekretów i oczyszczanie nagłówków — zostały zastąpione niezależnymi implementacjami clean-room opartymi na publicznych standardach protokołów. Dwie powierzchnie przekazywania ruchu hosta (passthrough.ts i _internal/bypass.cjs) pozostają wewnętrznymi implementacjami OmniRoute sklasyfikowanymi niezależnie; nie zostały przepisane w ramach tej wymiany.
Przezroczyste kierowanie ruchu przez serwer proxy dla poszczególnych procesów — zainspirowało nasz odporny na awarie mechanizm wyłączania MITM, limity czasu bezczynności gniazd, przypisywanie procesów za pomocą /proc oraz przechwytywanie TPROXY.
### 📚 Dane modeli, obserwowalność i interfejs użytkownika
Starannie dobrana lista bibliotek domyślnie zapewniających bezpieczeństwo, która pomaga nam dokonywać wyborów w zakresie zabezpieczeń (Helmet.js, DOMPurify, ssrf-req-filter, safe-regex, Google Tink).
Mechanizmy ponownego mapowania modeli z uwzględnieniem konta, walidacji ścieżek plików wykonywalnych oraz obsługi etykiet planów wpłynęły na środowisko uruchomieniowe Antigravity w OmniRoute.
Pomógł zidentyfikować powierzchnię limitów Grok Build; następnie OmniRoute niezależnie zweryfikował i skorygował format danych przesyłanych na żywo.
## 📄 Licencja
Licencja MIT — szczegóły w pliku [LICENSE](LICENSE).
---
**[⬆ Powrót na górę](#-omniroute)** · Stworzone z ❤️ dla społeczności open-source AI.
OmniRoute v3.8.53 · Node ≥22.22.2 · Licencja MIT · omniroute.online