> **Korzystaj z własnych kont u dostawców.** Jest to szacunkowa łączna wartość osobno dostępnych bezpłatnych planów zewnętrznych dostawców, a nie pula tokenów przyznawana przez OmniRoute. Zarejestruj się, uzyskaj dane uwierzytelniające tam, gdzie są wymagane, i połącz dostawców, z których możesz korzystać; każdy dostawca samodzielnie określa swoje limity, dostępność i warunki.
>
> Ręczne łączenie bezpłatnych planów jest uciążliwe — dziesiątki SDK, dziesiątki limitów szybkości i brak wiedzy o tym, ile faktycznie masz do dyspozycji. OmniRoute kataloguje **489 pozycji bezpłatnych planów w ramach 35 cyklicznych kluczy pul** i oblicza podaną liczbę tokenów na podstawie **17 pul z opublikowanym dodatnim miesięcznym budżetem oraz pięciu limitów Groq dla poszczególnych modeli**, eliminując duplikaty wynikające ze współdzielonych pul. Limity dostępne dopiero po regionalnej weryfikacji tożsamości (obecnie: ModelScope) są prezentowane osobno — +~6 mln po regionalnej weryfikacji tożsamości — i nigdy nie są wliczane do wartości głównej. Wynik pozostaje widoczny w panelu (`/dashboard/free-tiers`).
> Animowane podsumowanie strony `/dashboard/free-tiers` z danymi na żywo. Pełna metodologia (deduplikacja pul, poziomy środków, warunki dostawców): **[docs/reference/FREE_TIERS.md](docs/reference/FREE_TIERS.md)**.
>
> Wartości te są ponownie audytowane co dwa tygodnie na podstawie aktualnego katalogu i **zmieniają się w obu kierunkach** — gdy dostawca kończy bezpłatny plan, liczba spada; gdy pojawia się nowy, rośnie. Publikujemy wartości faktycznie obliczane przez katalog, nigdy zaokrąglony w górę najlepszy możliwy wynik.
⭐ Dodaj gwiazdkę do repozytorium, jeśli OMNIROUTE pomógł Ci oszczę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 opiekuna projektu — jako pierwszy otrzymuj informacje o nowych dostawcach, wydaniach i wskazówkach:**
[](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 rozwoju i wsparcie → [Discord](https://discord.gg/U47eFqAXCn) · [Telegram](https://t.me/omnirouteOficial) · WhatsApp [🌍 Globalnie](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4) / [🇧🇷 Brazylia](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)**
## 📈 Gateway stale się rozwija
## 🆓 Zainstaluj, połącz dostawcę, a następnie kieruj żądania przez jeden punkt końcowy
```bash
# Po połą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ę miejsc docelowych niewymagających klucza, a dostawca niewymagający klucza może odrzucać klientów zewnętrznych. Dostawcy oznaczeni jako `tos: avoid`, w tym OpenCode Free i Kiro, są domyślnie wykluczeni z automatycznego trasowania; połączenie konta nie zmienia tego ustawienia. Przed wyborem dostawcy zapoznaj się z [Przewodnikiem po bezpłatnych planach](docs/getting-started/FREE-TIERS-GUIDE.md).📦 Gotowe do skopiowania i wklejenia skrypty szybkiego startu 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 kieruje ruch **automatycznie**. Jeśli limit zostanie wyczerpany, dostawca ulegnie awarii lub koszty gwałtownie wzrosną, kombinacja może przejść do kolejnego kwalifikującego się, sprawnego modelu. 🛡️
### ⚡ Bez konfiguracji — po prostu użyj `auto`
Nie musisz tworzyć kombinacji. Ustaw model na `auto` (lub jeden z jego wariantów), a OmniRoute utworzy wirtualną kombinację na podstawie połączonych dostawców i będzie oceniać ich na bieżąco:
Identyfikator modelu
Co optymalizuje
auto
🎯 Zrównoważone ustawienie domyślne (LKGP — pozostaje przy ostatnim sprawdzonym dostawcy)
auto/coding
🧑💻 Wagi stawiające jakość na pierwszym miejscu podczas generowania kodu
auto/fast
⚡ Najpierw najniższe opóźnienie
auto/cheap
💰 Najpierw najniższy koszt tokenu
auto/offline
🔋 Najpierw największy zapas limitu / przepustowości
auto/smart
🔭 Jakość na pierwszym miejscu + 10% eksploracji w celu odkrywania lepszych modeli
auto/lkgp
📌 Jawne przywiązanie do 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, a nie wstrzykiwanie awarii
##
### 🔀 Lub utwórz własną kombinację — 19 strategii routingu
Wszystkie **19** strategii — możesz je dowolnie łączyć na każdym etapie kombinacji:
#
Strategia
Działanie
1
priority
Uporządkowana lista z pierwszym celem — wykorzystuje każdy przed przejściem do następnego 🥇
2
fill-first
W pełni wykorzystuje limit każdego celu przed przejściem do następnego
3
weighted
Losowy wybór ważony według wagi poszczególnych celów
4
round-robin
Cyklicznie przechodzi przez cele w ustalonej kolejności
5
p2c
Losowe równoważenie obciążenia metodą wyboru lepszego z dwóch
6
least-used
Wybiera cel o najniższym bieżącym obciążeniu
7
random
Jednostajny wybór losowy (bez duplikatów)
8
strict-random
Losowy wybór bez usuwania powtórzeń 🎲
9
cost-optimized
Minimalizuje koszt $ na żądanie na podstawie bieżących cen katalogowych 💸
10
headroom
Wybiera cel z największym pozostałym limitem
11
reset-window
Preferuje cel, którego okno limitu zostanie zresetowane najwcześniej
12
reset-aware
Klasyfikuje według czasu resetowania limitu — najpierw krótkie okna 📊
13
context-relay
Przekazuje kontekst między celami podczas długich rozmów 🧠
14
context-optimized
Wybiera cel najlepiej dopasowany do bieżącego rozmiaru kontekstu
15
cache-optimized
Przypisuje każdy prefiks monitu wielokrotnego użytku do tego samego konta — maksymalizuje trafienia w pamięci podręcznej monitów 🎯
16
lkgp
Ostatnia znana dobra ścieżka — przypisuje do ostatniego dostawcy, który pomyślnie obsłużył żądanie, a następnie stosuje reguły przełączania awaryjnego
17
auto
Bieżąca ocena wszystkich połączeń na podstawie 16 czynników 🤖
18
fusion
Rozsyła żądanie do panelu modeli, a model oceniający tworzy jedną zbiorczą odpowiedź 🧬
19
pipeline
Łączy etapy — wynik każdego celu jest przekazywany do następnego 🔗
Mechanizm Auto-Combo ocenia każdego kandydata na podstawie **16 czynników** (stan, limit, 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
> Najważniejsze nowości z wersji **v3.8.20 → v3.8.50**. Pełna historia znajduje się w pliku [`CHANGELOG.md`](CHANGELOG.md).
- **🎛️ OmniConductor** — przychodzące delegowanie A2A do floty agentów, umiejętności Conductor na karcie agenta oraz panel pulpitu z czatem głosowym push-to-talk obsługiwanym przez Faro. → [Serwer A2A](docs/frameworks/A2A-SERVER.md)
- **🛂 Adaptacyjne dopuszczanie i ochrona przed przeciążeniem** — wymagające żądania czatu trafiają do kolejki zamiast zwracać błąd 503, z atomowymi, kroczącymi dzierżawami RPM dla każdego połączenia. → [Przewodnik po odporności](docs/architecture/RESILIENCE_GUIDE.md)
- **🗂️ Kanoniczna kolejność `/v1/models`** — jeden ciągły blok dla każdego dostawcy, pogrupowany według dostawców (z kombinacjami przypiętymi na początku), spójny we wszystkich źródłach katalogu. → [Dokumentacja API](docs/reference/API_REFERENCE.md)
- **🗜️ Wzmocnienie kompresji** — domyślnie włączone zabezpieczenie przed nadmierną dekompresją, pakiety Caveman dla DE / FR / JA oraz chińskiego (wényán), filtry RTK dla Gradle i .NET. → [Kompresja](docs/compression/COMPRESSION_ENGINES.md)
- **💸 Rzetelny koszt ryczałtowy** — dostawcy subskrypcji i planów programistycznych wykazują koszt **$0** w analizach kosztów; mechanizmy budżetu, limitów i routingu nadal korzystają z oszacowań. → [Dokumentacja API](docs/reference/API_REFERENCE.md)
- **⚖️ Routing Quota-Share** — sprawiedliwie dzieli limit współdzielonego konta między klucze w puli, zachowując pełne wykorzystanie zasobów dzięki udostępnianiu niewykorzystanych przydziałów. → [Przewodnik po odporności](docs/architecture/RESILIENCE_GUIDE.md)
- **🤖 Konfiguracja CLI/agenta jednym poleceniem** — 13 zarejestrowanych poleceń `setup-*`; `omniroute run` uruchamia 7 narzędzi CLI (Claude Code, Codex, Aider, Goose, OpenCode, Qwen Code, Gemini CLI); `omniroute configure` obsługuje 10 miejsc docelowych z interaktywnym wyborem dostawcy i modelu oraz ulubionymi ustawieniami dla poszczególnych kontekstów. → [Integracje CLI](docs/guides/CLI-INTEGRATIONS.md)
- **🛰️ Tryb zdalny** — sterowanie zdalną instancją OmniRoute za pomocą tokenów o ograniczonym zakresie (`connect` / `contexts` / `tokens`) oraz pomocnika OAuth `antigravity` dla instalacji na VPS. → [Tryb zdalny](docs/guides/REMOTE-MODE.md)
- **🧭 Inteligentniejszy automatyczny routing** — kombinacje `auto/:`, **Fusion** (panel modeli + sędzia), routing uwzględniający zadanie oraz nadpisywanie modelu / trybu / budżetu w USD dla poszczególnych żądań. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **🗜️ Modułowa kompresja** — 12 komponowalnych silników + Compression Studios: LLMLingua-2, dwupoziomowy Ultra, omniglyph, bramka wierności dla każdego kroku, GCF v3.2 oraz edytor z możliwością zmiany kolejności przez przeciąganie. → [Kompresja](docs/compression/COMPRESSION_ENGINES.md)
- **🕵️ Przezroczyste deszyfrowanie MITM (TPROXY)** — przechwytywanie narzędzi CLI ignorujących zmienne środowiskowe serwera proxy, z urzędem certyfikacji dla każdego SNI oraz instalatorem magazynu zaufanych certyfikatów. → [MITM/TPROXY](docs/security/MITM-TPROXY-DECRYPT.md)
- **💸 Telemetria kosztów wszędzie** — nagłówki kosztów i wykorzystania `X-OmniRoute-*` w każdym punkcie końcowym, nagłówek oszczędności wynikających z trafienia w pamięć podręczną oraz limity wydatków w USD dla poszczególnych kluczy. → [Dokumentacja API](docs/reference/API_REFERENCE.md)
- **🧠 Pamięć pod Twoją kontrolą** — domyślnie wyłączona, opcjonalna kwantyzacja wektorowa int8 i typowany zanik oraz `x-omniroute-no-memory` dla poszczególnych żądań. → [Pamięć](docs/frameworks/MEMORY.md)
- **🛡️ Bezpieczeństwo** — ochrona przed wstrzykiwaniem promptów na każdej trasie LLM (zestaw testów red-team), opcjonalne zabezpieczenie maskujące dane uwierzytelniające (redaguje ujawnione klucze API i sekrety w obu kierunkach), bezpłatne wyszukiwanie internetowe DuckDuckGo jako ostatnia deska ratunku oraz opcjonalna bramka logowania OIDC do pulpitu (logowanie hasłem pozostaje zawsze dostępne). → [Zabezpieczenia](docs/security/GUARDRAILS.md)
- **🖼️ Nowe punkty końcowe** — `/v1/ocr` (Mistral OCR) i `/v1/audio/translations` (w stylu Whisper) uzupełniają obsługę multimediów. → [Dokumentacja API](docs/reference/API_REFERENCE.md)
- **🎨 Generowanie obrazów / wideo / dźwięku** — jedno API dla multimediów: generowanie wideo za pomocą xAI Grok Imagine i Novita AI, ComfyUI, Magnific, Adobe Firefly, Segmind oraz dostawcy syntezy mowy, tacy jak ElevenLabs. → [Dokumentacja API](docs/reference/API_REFERENCE.md)
- **🌍 Wdrażanie i eksploatacja** — `basePath` odwrotnego serwera proxy, automatyczne wykrywanie języka przeglądarki, śledzenie urządzeń dla poszczególnych kluczy, zaufanie MITM bez uprawnień roota oraz 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 przeglądarką i logowaniem OAuth, pełnoprawna karta Ollama, Claude Opus 5 i Sonnet 5, oficjalne partnerstwo z Kimi (Code/Web/Moonshot), Zed, Requesty, SenseNova, Yuanbao, Agnes AI… oraz odświeżony **katalog 352 dostawców**. → [Dostawcy](docs/reference/PROVIDER_REFERENCE.md)
- **📡 Przejrzystość routingu** — każda odpowiedź zawiera nagłówek `X-OmniRoute-Decision` wskazujący strategię, dostawcę i opóźnienie obsługujące żądanie; nowa strategia kombinacji `cache-optimized` wraz z czynnikiem Auto-Combo `cacheAffinity` kieruje powtarzające się żądania z powrotem do połączenia przechowującego prefiks w pamięci podręcznej, a punkt końcowy tylko do odczytu `/v1/auto-combo/{channel}/candidates` udostępnia aktywną pulę kandydatów kanału `auto/*`. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **⚡ Lokalna wydajność i infrastruktura** — lokalny Redis uruchamiany jednym kliknięciem, narzędzia wdrożeniowe przekaźników dla Cloudflare Workers / Deno Deploy oraz Bifrost i Mux jako nadzorowane usługi wbudowane. → [Usługi wbudowane](docs/frameworks/EMBEDDED-SERVICES.md)
- **🧩 Również w zestawie** — framework wtyczek i marketplace, frameworki umiejętności Omni/Agent/GitHub, integracja ze skarbcem Obsidian (22 narzędzia MCP), zgodne z OpenAI interfejsy API Batch i Files, semantyczna pamięć podręczna odpowiedzi, grywalizacja z tabelami wyników, wykrywanie agentów ACP (15 wbudowanych agentów), zaplanowany eksport dzienników do BigQuery, równoległe rozsyłanie do wielu modeli `auto/chaos`, most do bota Telegram, wbudowany menedżer wersji oraz rankingi bezpłatnych dostawców LMArena-ELO. → [Dokumentacja](docs/README.md)
## 🤖 Zgodne interfejsy CLI i agenci programistyczni
> Jedna konfiguracja — `http://localhost:20128/v1` — i **każde** IDE lub 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 poszczególnych narzędzi dla wszystkich 36 narzędzi (26 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 jednym poleceniem** — bez zapisywania plików konfiguracyjnych,
z danymi uwierzytelniającymi wstrzykiwanymi dla każdego procesu oraz jednorazowym, 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"
# Lub wybierz interaktywnie dostawcę i model oraz zapisz własną konfigurację narzędzia:
omniroute configure codex # także: claude opencode qwen aider goose gemini cline continue kilo
```
Każde polecenie uwzględnia aktywny kontekst zdalny (`omniroute connect `), opcja `--dry-run`
wyświetla dokładny podgląd 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)
## 🌐 372 dostawców AI — 154 oznaczonych w katalogu jako bezpłatni
> **372 zarejestrowanych dostawców** w kanonicznych kolekcjach czatu, multimediów, wyszukiwania, rozwiązań lokalnych, agentów chmurowych i systemowych, w tym **154 z metadanymi wykrywania `hasFree: true`**. Rejestr modeli czatu obejmuje **237 dostawców / 3 009 unikalnych par dostawca–model / 1 443 nieprzetworzone identyfikatory modeli**; osobny katalog bezpłatnych limitów zawiera **491 wierszy dla poszczególnych modeli**, **35 odnawialnych pul** oraz **54 dostawców oferujących odnawialny lub niewymagający klucza bezpłatny dostęp bezterminowy**. Są to celowo różne podstawy obliczeń; definicje i obliczenia z deduplikacją pul znajdują się w dokumentach [Dokumentacja dostawców](docs/reference/PROVIDER_REFERENCE.md) i [Bezpłatne poziomy](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 330 innych — każda ikona jest pobierana na żywo z katalogu dostawców panelu. 📖 [Dokumentacja dostawców](docs/reference/PROVIDER_REFERENCE.md)
### 🆓 Bezpłatnie bezterminowo — $0, 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 BEZPŁATNIE bez ograniczeń
Pollinations GPT, Llama, Claude Klucz nie jest wymagany
Cloudflare AI Ponad 50 modeli 10 tys. neuronów/dzień
NVIDIA NIM GLM, MiniMax ~40 RPM bezpłatnie
Cerebras GLM 4.7, GPT-OSS Jednorazowy kredyt $5; wymagana karta
OpenRouter Modele :free +$10 → wyższy limit RPM
📖 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ń**, oferującym **ponad 80 poleceń**, a także otwarte protokoły agentowe, dzięki którym agent AI może obsługiwać go **samodzielnie**.
### ⌨️ Prawdziwy interfejs CLI (nie tylko `start`)
```bash
omniroute # uruchom bramę i panel (port 20128)
omniroute chat # interaktywny klient czatu TUI (polecenia z ukośnikiem: /model /combo /skill /memory)
omniroute setup # kreator pierwszej konfiguracji
omniroute doctor # diagnozuj dostawców, porty i natywne zależności
```
### 🛰️ Tryb zdalny — uruchom CLI tutaj, a OmniRoute na VPS-ie
OmniRoute działa na serwerze? Steruj nim z laptopa za pomocą **tego samego CLI**. Zaloguj się raz
przy użyciu tokena dostępu z określonym zakresem; od tej chwili każde polecenie będzie kierowane do zdalnej instancji.
```bash
omniroute connect 192.168.0.15 # hasło → token z określonym zakresem, zapisany jako kontekst
omniroute models list # ← wykonuje się na ZDALNYM serwerze
omniroute configure codex # ← wybiera zdalny model i zapisuje lokalny profil Codex
omniroute tokens create --name ci --scope read # utwórz tokeny o węższym zakresie dla innych maszyn
omniroute contexts use default # ← przełącz 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)
### 🤝 Połącz agenta — a będzie samodzielnie sterować OmniRoute
Udostępnij OmniRoute przez **MCP**, **A2A**, **REST API**, **webhooki** lub **zdalny CLI** — każdy odpowiednio wyposażony agent (lub Twój własny kod) uzyska 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 lub 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ń / limitów do Slacka, Discorda, Telegrama lub dowolnego adresu URL
🛰️ Zdalny CLI
omniroute connect
Sterowanie zdalną instancją za pomocą tokenów dostępu z określonym zakresem
```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ślne połączenie uruchamia `RTK → Caveman`. Gdy oba mechanizmy przetwarzają ten sam ładunek narzędziowy lub kontekstowy, 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, JSON i dane strukturalne są **zawsze chronione** przez silnik zachowania danych.
> **Po co używać wielu tokenów, skoro wystarczy ich mniej?** Każde żądanie przechodzi przez potok kompresji OmniRoute **w sposób przezroczysty** — bez zmian po stronie klienta. Jest to obecnie **zestaw 12 komponowalnych silników**, które działają kolejno i można je dowolnie łączyć w poszczególnych kombinacjach routingu — bazując na pomysłach z projektów [RTK](https://github.com/rtk-ai/rtk), [Caveman](https://github.com/JuliusBrussee/caveman) (⭐ 90K+), [LLMLingua-2](https://github.com/microsoft/LLMLingua) i [Troglodita](https://github.com/leninejunior/troglodita) (PT-BR).
### 🧱 Zestaw 12 silników
Silniki działają zgodnie z kolejnością w potoku; każdy 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 (adresowanie według zawartości, między turami)
2
CCR
Archiwizuje duże bloki za znacznikami pobierania, umożliwiając dostęp do nich na żądanie
3
Lite
Usuwa nadmiarowe białe znaki i adresy URL obrazów (lekki pod względem opóźnień wariant bazowy)
4
RTK
Inteligentne filtrowanie, deduplikacja i skracanie wyników narzędzi (z uwzględnieniem poleceń)
5
Responses Tool Output
Kompresja JSON z priorytetem bezstratności oraz ograniczona kompresja danych diagnostycznych dla wyników powłoki, poprawek, wyszukiwania i kompilacji (Responses API)
6
Headroom
Bezstratne, tabelaryczne upakowanie tablic JSON (~30%) przy użyciu dołączonego kodeka GCF
7
Relevance
Ekstrakcyjna ocena zdań względem ostatniego zapytania użytkownika
8
Caveman
Kompresja prozy oparta na regułach (~65–75% w danych wyjściowych)
9
Aggressive
Podsumowywanie i stopniowe ograniczanie starszych tur
10
LLMLingua-2
Semantyczne przycinanie oparte na uczeniu maszynowym za pomocą 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 zmierzonego 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ą co do bajtu. **Ustawienia wstępne uruchamiane jednym kliknięciem** łączą silniki:
Tryb
Oszczędności
Najlepsze zastosowanie
🪶 Lite
~15%
Bezpieślny domyślny tryb do stałego użycia
🪨 Standard (Caveman)
~30%
Codzienne programowanie
⚡ Aggressive
~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 git
🔗 Połączony (RTK → Caveman)
78–95%
Mieszane prompty i dzienniki narzędzi
**Rzeczywisty przykład — tryb Standard:**
> **Przed (69 tokenów):** _„Powodem ponownego renderowania komponentu React jest prawdopodobnie tworzenie nowej referencji do obiektu w każdym cyklu renderowania. Gdy przekazujesz obiekt zapisany bezpośrednio w kodzie jako właściwość, płytkie porównanie React traktuje go za każdym razem jako inny obiekt, co wywołuje ponowne renderowanie. Zalecam użycie useMemo do zapamiętania obiektu.”_
>
> **Po (19 tokenów):** _„Nowa referencja obiektu przy każdym renderowaniu. Obiekt zapisany bezpośrednio jako właściwość = nowa referencja = ponowne renderowanie. Użyj 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 do obiektu. Zalecam użycie useMemo.”_
>
> **Po (12 tokenów):** _„Ponowne renderowanie: nowa referencja w każdym cyklu (ponownie tworzony obiekt inline). Użyj `useMemo`.”_
>
> **Ta sama odpowiedź. ~70% mniej tokenów. Precyzja techniczna zachowana.** ✅
### 🎚️ Więcej niż silniki — style wyjścia, adaptacyjne pokrętło i kontrola dla poszczególnych żądań
12 powyższych silników zmniejsza to, co trafia **na wejście**. Trzy kolejne warstwy określają **jak**, **kiedy** i co trafia **na wyjście**:
- **🪄 Style wyjścia** _(sterowanie osią wyjścia)_ — wstrzykują deterministyczne, bezpieczne dla pamięci podręcznej instrukcje kształtowania odpowiedzi; można je łączyć, każdy z intensywnością `lite` / `full` / `ultra`. Dodanie stylu wymaga jednego wpisu w rejestrze:
- **Zwięzła proza** — usuwa wypełniacze / rodzajniki / asekuracyjne sformułowania; zachowuje dokładność treści technicznej.
- **Mniej kodu** — YAGNI w stylu „leniwego starszego programisty”: najmniejsza działająca zmiana, bez niezamawianej otoczki.
- **Kucyk (leniwy starszy programista)** — wspina się po drabinie YAGNI, usuwa główną przyczynę, tworzy najmniejszy działający diff.
- **Mam ADHD (najpierw działanie)** — zaczyna od następnego działania, numeruje kroki, podaje jeden konkretny kolejny krok, bez wstępu.
- **Zwięzły CJK (文言)** — ultrazwięzły styl klasycznego języka chińskiego (ograniczony do ustawień regionalnych `zh`).
- **🎯 Adaptacyjny budżet kontekstu** _(pokrętło)_ — zamiast pojedynczego progu tokenów typu włącz/wyłącz uruchamia najtańsze silniki o najmniejszych stratach tylko w zakresie niezbędnym, aby **zmieścić się w oknie kontekstowym modelu**. Zasada: `reserve-output` (domyślna, uwzględniająca model) · `percentage` · `absolute`. Tryb: `floor` (gwarantuje dopasowanie) · `replace-autotrigger` (Twój jawny wybór ma pierwszeństwo) · `off` (starszy próg).
- **🎛️ Gdzie podejmowana jest decyzja o kompresji** _(kolejność pierwszeństwa, od najwyższego do najniższego)_ — nagłówek `x-omniroute-compression` dla żądania › nadpisanie kombinacji routingu › aktywny nazwany profil › adaptacja / automatyczne wyzwalanie › domyślne ustawienie panelu › wyłączone. Zastosowany plan jest zwracany w nagłówku odpowiedzi `X-OmniRoute-Compression: ; source=`.
Ustaw automatyczne wyzwalanie według progu tokenów, włącz adaptacyjne pokrętło, przypnij nazwany profil, skonfiguruj jednorazowo dla konkretnego żądania albo przypisz potok do kombinacji routingu — wybierz rozwiązanie najlepiej pasujące do obciążenia. Opcjonalny, działający offline **zestaw ewaluacyjny** (`npm run eval:compression`) ocenia zgodność względem oszczędności na ustalonym 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 ostrzeżenia `npm warn ERESOLVE` lub dotyczące zależności równorzędnych? [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 pakietów, jeśli nie zostały dozwolone. Skrypt `postinstall` OmniRoute (`node scripts/build/postinstall.mjs`) jest wymagany do przygotowania natywnych plików środowiska uruchomieniowego. Podczas instalacji globalnej zezwól na pakiety wymienione w ostrzeżeniu npm. Dla zestawu pakietów zgłaszanego przez OmniRoute 3.8.51:
>
> ```bash
> npm install -g --allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild omniroute
> ```
>
> Aby ponownie używać tej listy dozwolonych pakietów podczas przyszłych instalacji globalnych, skonfiguruj ją jednorazowo, a następnie instaluj w zwykły sposób:
>
> ```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 zmieniać się między wydaniami; jeśli npm zgłosi inną listę, użyj nazw pakietów z tego ostrzeżenia. Zezwolenie pakietowi umożliwia uruchamianie jego skryptów instalacyjnych.
> **Używasz Gemini Web lub innego dostawcy korzystającego z plików cookie przeglądarki?** Pakiet npm zawiera
> Playwright, ale nie zawiera jego pliku binarnego Chromium. Przed wysłaniem pierwszego żądania do dostawcy internetowego zapoznaj się z uwagą
> [dotyczącą konfiguracji Chromium dla Playwright](docs/guides/TROUBLESHOOTING.md#gemini-web-and-playwright-chromium).
Panel pod adresem `http://localhost:20128` · API pod adresem `http://localhost:20128/v1`.
**2) Połącz kwalifikującego się dostawcę przy użyciu własnego konta**
Panel → **Dostawcy** → wybierz dostawcę, którego aktualne warunki i limit odpowiadają Twojemu zastosowaniu → dodaj jego klucz API lub ukończ proces logowania na konto. Bezpłatne plany mogą wymagać rejestracji, zatwierdzenia lub podania metody płatności. Zapoznaj się z [przewodnikiem po bezpłatnych planach](docs/getting-started/FREE-TIERS-GUIDE.md); dostępność bez klucza nie jest gwarantowana, a dostawcy oznaczeni jako `tos: avoid` są domyślnie wykluczeni z `auto`.
**3) Skonfiguruj swoje narzędzie programistyczne**
```txt
Bazowy URL: http://localhost:20128/v1
Klucz API: [skopiuj z Panel → Punkty końcowe]
Model: auto (kieruje między kwalifikującymi się połączeniami — lub wybierz dostawcę/model)
```
**4) Sprawdź, czy działa**
```bash
curl http://localhost:20128/v1/models -H "Authorization: Bearer YOUR_KEY"
```
Powinna zostać wyświetlona lista połączonych modeli. 🎉 To wszystko — zacznij programować, a OmniRoute będzie automatycznie kierować żądania i przełączać się na rozwiązania zapasowe.
Jeśli klient nie może wysyłać niestandardowych nagłówków, OmniRoute udostępnia również tokenizowane aliasy zgodności:
```txt
Katalog OpenAI: http://localhost:20128/vscode/YOUR_KEY/
Modele OpenAI: http://localhost:20128/vscode/YOUR_KEY/models
Czat OpenAI: http://localhost:20128/vscode/YOUR_KEY/chat/completions
Odpowiedzi OpenAI: http://localhost:20128/vscode/YOUR_KEY/responses
Czat Ollama: http://localhost:20128/vscode/YOUR_KEY/api/chat
Tagi Ollama: http://localhost:20128/vscode/YOUR_KEY/api/tags
```
Używaj ich tylko w przypadku klientów, którzy nie mogą dołączyć nagłówka `Authorization: Bearer ...`. Uwierzytelnianie za pomocą nagłówka 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 39 000 statycznych deklaracji testów w ponad 5 100 śledzonych plikach testowych
# ⭐ Najważniejsi współtwórcy
> OmniRoute jest kształtowany przez pełną pasji społeczność open source. Osoby te wniosły wyjątkowy wkład, który bezpośrednio wpływa na jakość, stabilność i zasięg projektu. **Dziękujemy.**
### Zewnętrzni współtwórcy według liczby scalonych pull requestów
Stan zamrożony na najnowszym zatwierdzeniu dafb4ae808 aktywnej gałęzi release/v3.8.50, z uwzględnieniem scaleń do 2026-08-24 05:26:03 UTC. Stronicowany spis GitHub GraphQL obejmuje 5 911 scalonych PR-ów: 2 707 autorstwa właściciela repozytorium, 179 autorstwa Dependabot oraz 3 025 zewnętrznych PR-ów od 535 różnych współtwórców. „Zmienione wiersze” to suma wierszy dodanych i usuniętych według GitHub, obejmująca wygenerowane pliki, pliki blokad, katalogi, tłumaczenia i dokumentację; jest to miara skali zmian, a nie liczba wierszy kodu autorstwa danej osoby. Remisy na granicy zestawienia zostały zachowane.
### Commity przypisane przez GitHub
Bob.Hou 🏅 51 commitów przypisanych przez GitHub · ex aequo na 10. miejscu
Xiangzhe 🏅 51 commitów przypisanych przez GitHub · ex aequo na 10. miejscu
Sprawdzono ponownie 2026-08-24 06:14:31 UTC: commity przypisane przez GitHub, zgłoszone przez interfejs Contributors API repozytorium dla domyślnej gałęzi release/v3.8.50. API zwróciło 525 tożsamości (415 użytkowników, 2 boty, 108 anonimowych); ta tabela nie uwzględnia opiekuna projektu, botów ani anonimowych tożsamości i zachowuje miejsca ex aequo. Różni się zarówno od powyższego rankingu scalonych PR-ów, jak i poniższego spisu 639 osób opartego na metadanych Git.
> 🙏 Funkcje, poprawki błędów i ulepszenia infrastruktury wprowadzone przez tych współtwórców stanowią **kluczową część** 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. Otwarte oprogramowanie jest tworzone przez ludzi takich 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-08-24. Status activeOnly w serwisie GitHub określa powyższe oznaczenia aktywności; wcześniej ujawnieni publiczni jednorazowi darczyńcy nadal są uwzględniani w podziękowaniach, a prywatni sponsorzy pozostają anonimowi.💖 Zostań sponsorem → — każdy dolar pomaga utrzymać OmniRoute bezpłatnym i niezależnym.
## 👥 Ponad 600 współtwórców
[](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)
Audyt przeprowadzono 2026-08-24 na zamrożonej bazie ac02c5b42f, a następnie ponownie sprawdzono na bieżącym wierzchołku release/v3.8.50dafb4ae808: 639 znormalizowanych tożsamości osób w Git — 407 występuje jako autorzy commitów (w tym opiekun projektu), a 232 wyłącznie w jawnych stopkach Co-authored-by. Spis normalizuje nazwy użytkowników GitHub noreply, wyklucza 26 tożsamości botów, agentów, usług i symboli zastępczych oraz nie scala zwykłych adresów e-mail wyłącznie dlatego, że powiązane z nimi nazwy wyświetlane są identyczne.
### 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 swoją 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, ustawiając **base = tę gałąź `release/vX.Y.Z`**
Szczegółowe wytyczne znajdziesz w pliku [CONTRIBUTING.md](CONTRIBUTING.md).
### Wydawanie nowej wersji
```bash
# Utwórz wydanie — publikacja npm nastąpi 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 powstał jako fork **[9router](https://github.com/decolua/9router)** oraz port napisanego w Go projektu **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** do TypeScriptu — a od tego momentu każdy z poniższych podsystemów był inspirowany projektem open source, który przecierał szlaki. Każdy z nich ukształtował konkretną część OmniRoute. W ten sposób pragniemy podziękować im wszystkim. 🙏
> ⭐ liczba gwiazdek została zweryfikowana za pomocą interfejsu REST API GitHuba 24 sierpnia 2026 r. — przyznaj gwiazdkę tym projektom. Podane wartości stanowią dokładny obraz z tego dnia i z czasem będą się oczywiście zmieniać.
### 🧬 Pochodzenie i brama
Brama AI, której publiczny zbiór danych cenowych zasila naszą synchronizację śledzenia kosztów i której model normalizacji dostawców wpłynął na nasz mechanizm routingu.
Źródła na licencji MIT zaadaptowane we wbudowany most ChatGPT Web → Codex Responses, obejmujący adaptery sesji przeglądarki, ramkowania odpowiedzi, użycia i wyszukiwania w sieci.
Wzorce przeniesione do odzyskiwania strumieni, aliasów bez myślenia, awaryjnego wyszukiwania w sieci, limitów opartych na oknie przesuwnym, redagowania dzienników i wzmocnionych mechanizmów uruchamiania.
Wzorce wyboru narzędzi, ograniczeń danych wyjściowych i zatwierdzania narzędzi z Cursor Composer, zaadaptowane do natywnego modułu wykonawczego Cursor.
Mapowania modeli Grok, generator Statsig imitujący TypeError, domyślne ustawienia żądań i urządzeń oraz procesor odpowiedzi NDJSON zostały w znacznym 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.
Bazowe źródło na licencji MIT dla domyślnych ustawień ładunków i urządzeń Grok, generatora Statsig oraz procesora result.response, przeniesionego za pośrednictwem TQZHR i grok2api-merged.
Pośrednie źródło wskazane przez grok2api-merged jako podstawa warstwy puli serwerów proxy; OmniRoute zachowuje informację o tym pochodzeniu, ale nie deklaruje przeniesienia puli proxy do swojego modułu wykonawczego Grok Web o ograniczonym zakresie.
Jego serwer proxy Grok uwierzytelniany za pomocą plików cookie oraz wzorzec strumieniowania result.response.token wpłynęły na warstwę transportową Grok Web w OmniRoute.
Pierwotna implementacja Grok Web opierała się na jego projekcie komunikacji nadrzędnej HTTP/przeglądarka; bezpośrednia ścieżka HTTP wywodzi się z GrokProxy, dlatego nie deklaruje się niezależnego przeniesienia kodu.
Popularny projekt „po co używać wielu tokenów, gdy kilka tokenów wystarczy” — jego filozofia jaskiniowej mowy stanowi podstawę naszego standardowego trybu kompresji oraz ponad 30 reguł usuwania wypełniaczy i kondensacji treści.
Wydajna kompresja danych wyjściowych poleceń — zainspirowała nasz silnik RTK, język DSL filtrów JSON, odzyskiwanie surowych danych wyjściowych oraz połączony potok RTK → Caveman.
Badania nad kompresją promptów (LLMLingua / LLMLingua-2) — zainspirowały nasz asynchroniczny, bezpieczny dla kodu silnik llmlingua, który w razie błędu przepuszcza dane bez zmian.
Popularna umiejętność kodowania YAGNI „leniwego starszego programisty” — zainspirowała nasz styl wynikowy less-code: ukierunkowanie na najmniejszą działającą zmianę, które ogranicza ilość _generowanego_ kodu (odpowiednik zwięzłej prozy Cavemana po stronie danych wyjściowych).
Kompresja danych wyjściowych zależna od zawartości i typu pliku, z rezygnacją uwzględniającą błędy — potwierdziła trafność naszego kierowania według typu i pomijania kompresji przy zbyt małym zysku.
Kolumnowy JSON w Rust, pobieranie adresowane zawartością oraz deduplikacja między wiadomościami — potwierdziły trafność projektu naszych silników headroom/ccr/session-dedup oraz niezmiennika stabilności pamięci podręcznej „skompresowana postać jest niezależna od położenia”.
Przechwytywanie i analiza MITM ruchu między asystentem programistycznym a LLM wpłynęły na wczesne wymagania dotyczące Inspektora ruchu. Cztery wcześniej opracowane moduły — scalanie SSE, normalizacja konwersacji, maskowanie sekretów i oczyszczanie nagłówków — zostały zastąpione niezależnymi implementacjami typu clean-room, opartymi na publicznych standardach protokołów. Dwa mechanizmy 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.
Transparentne kierowanie ruchu proxy dla poszczególnych procesów — zainspirowało nasz odporny na awarie mechanizm zamykania 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 ukierunkowuje nasze wybory w zakresie zabezpieczeń (Helmet.js, DOMPurify, ssrf-req-filter, safe-regex, Google Tink).
Mechanizm ponownego mapowania modeli z uwzględnieniem kont, walidacja ścieżek plików wykonywalnych oraz sposób działania etykiet planów wpłynęły na środowisko wykonawcze Antigravity w OmniRoute.
Zidentyfikował mechanizm limitów Grok Build; następnie OmniRoute niezależnie zweryfikował i skorygował bieżący format danych przesyłanych przez sieć.
## 📄 Licencja
Licencja MIT — szczegółowe informacje znajdziesz w pliku [LICENSE](LICENSE).
---
**[⬆ Powrót na górę](#-omniroute)** · Stworzone z ❤️ dla społeczności open source zajmującej się AI.
OmniRoute v3.8.52 · Node ≥22.22.2 · Licencja MIT · omniroute.online