> Ręczne łączenie darmowych planów jest uciążliwe — dziesiątki zestawów SDK, dziesiątki limitów szybkości i brak wiedzy o tym, ile faktycznie masz do dyspozycji. OmniRoute kataloguje **489 wpisów darmowych planów w ramach 35 cyklicznych kluczy pul** i oblicza prezentowaną 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, które stają się dostępne dopiero po regionalnej weryfikacji tożsamości (obecnie: ModelScope), są przedstawiane oddzielnie — dodatkowe ~6 mln za regionalną weryfikacją tożsamości — i nigdy nie są wliczane do głównej wartości. Wynik pozostaje widoczny w panelu (`/dashboard/free-tiers`).
> Animowane podsumowanie aktywnej strony `/dashboard/free-tiers`. Pełna metodologia (deduplikacja pul, poziomy kredytów, warunki dostawców): **[docs/reference/FREE_TIERS.md](docs/reference/FREE_TIERS.md)**.
>
> Wartości te są ponownie kontrolowane co dwa tygodnie względem aktualnego katalogu i **zmieniają się w obu kierunkach** — gdy dostawca kończy darmowy plan, liczba spada; gdy pojawia się nowy, liczba rośnie. Publikujemy wartości faktycznie obliczane przez katalog, nigdy zaokrąglony w górę najbardziej optymistyczny wariant.
⭐ 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 opiekuna projektu — jako pierwszy dowiaduj się 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 pomoc techniczna → [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)**
## 📈 Brama wciąż się rozwija
## 🆓 Działa od razu po instalacji — bez kluczy, bez konfiguracji
```bash
# Świeża instalacja, zero poświadczeń — `auto` już działa:
curl http://localhost:20128/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"auto","messages":[{"role":"user","content":"Hello!"}]}'
```
Wolisz konkretny darmowy backend? Wywołaj `oc/…` (OpenCode Free) bezpośrednio. Następnie przejdź na `auto` i pozwól OmniRoute wybrać.📦 Skrypty szybkiego startu do kopiowania i wklejania 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 przełącza ruch **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 jego wariantów), a OmniRoute utworzy wirtualną kombinację z połączonych dostawców, ocenianych na bieżąco:
Identyfikator modelu
Co optymalizuje
auto
🎯 Zrównoważone ustawienie domyślne (LKGP — pozostaje przy ostatnim sprawdzonym dostawcy)
auto/coding
🧑💻 Wagi z priorytetem jakości przy generowaniu kodu
auto/fast
⚡ Najpierw najniższe opóźnienie
auto/cheap
💰 Najpierw najniższy koszt tokenu
auto/offline
🔋 Najpierw największy zapas limitu / ograniczenia szybkości
auto/smart
🔭 Priorytet jakości + 10% eksploracji w celu wykrywania lepszych modeli
auto/lkgp
📌 Jawne trzymanie się ostatniego sprawdzonego dostawcy
auto/chaos
🧪 Wagi wstrzykiwania błędów do testowania odporności (inżynieria chaosu)
##
### 🔀 Lub utwórz własną — 19 strategii routingu
Wszystkie **19** strategii — dowolnie łącz je w poszczególnych krokach kombinacji:
#
Strategia
Jak działa
1
priority
Uporządkowana lista z pierwszym celem — wyczerpuje każdy z nich 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 według wagi każdego celu
4
round-robin
Cyklicznie przechodzi przez cele w ustalonej kolejności
5
p2c
Losowe równoważenie obciążenia metodą wyboru z dwóch opcji
6
least-used
Wybiera cel z najniższym bieżącym obciążeniem
7
random
Jednostajny wybór losowy (z deduplikacją)
8
strict-random
Losowy wybór bez usuwania powtórzeń 🎲
9
cost-optimized
Minimalizuje koszt w $ na żądanie na podstawie aktualnych 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 najlepsze dopasowanie do bieżącego rozmiaru kontekstu
15
cache-optimized
Przypisuje każdy prefiks podpowiedzi wielokrotnego użytku do tego samego konta — maksymalizuje trafienia w pamięci podręcznej podpowiedzi 🎯
16
lkgp
Ostatnia znana sprawna ścieżka — przypisuje ruch do ostatniego dostawcy, który obsłużył żądanie pomyślnie, a następnie korzysta z reguł awaryjnych
17
auto
Bieżąca ocena każdego połączenia na podstawie 16 czynników 🤖
18
fusion
Rozsyła żądanie do panelu modeli, a model oceniający syntetyzuje jedną odpowiedź 🧬
19
pipeline
Łączy kroki — 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 & szczegóły funkcji w porównaniu do 9router, OpenRouter, CLIProxyAPI & 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 ostatnie zmiany od **v3.8.20 → v3.8.50**. Pełna historia znajduje się w [`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 Faro typu „naciśnij, aby mówić”. → [Serwer A2A](docs/frameworks/A2A-SERVER.md)
- **🛂 Adaptacyjne dopuszczanie i ochrona przed przeciążeniem** — zasobożerne żą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 pogrupowany według dostawcy dla każdego dostawcy (kombinacje przypięte na początku), stabilny we wszystkich źródłach katalogu. → [Dokumentacja API](docs/reference/API_REFERENCE.md)
- **🗜️ Wzmocniona kompresja** — domyślnie włączone zabezpieczenie przed nadmierną dekompresją, pakiety Caveman dla DE / FR / JA oraz języka chińskiego (wényán), filtry RTK dla Gradle i .NET. → [Kompresja](docs/compression/COMPRESSION_ENGINES.md)
- **💸 Rzetelny koszt ryczałtowy** — dostawcy subskrypcyjni / planów programistycznych wykazują koszt **$0** w analityce kosztów; budżet, limit i routing nadal korzystają z szacunków. → [Dokumentacja API](docs/reference/API_REFERENCE.md)
- **⚖️ Routing Quota-Share** — sprawiedliwie rozdziela limit współdzielonego konta między klucze w puli, z pełnym wykorzystaniem 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 środowisk docelowych, oferując interaktywny wybór dostawcy i modelu oraz ulubione pozycje 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` przeznaczonego do instalacji na VPS. → [Tryb zdalny](docs/guides/REMOTE-MODE.md)
- **🧭 Inteligentniejszy automatyczny routing** — kombinacje `auto/:`, **Fusion** (panel modeli + sędzia), routing uwzględniający rodzaj zadania oraz nadpisywanie modelu / trybu / budżetu w USD dla poszczególnych żądań. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **🗜️ Modułowa kompresja** — 12 współpracujących ze sobą silników + Compression Studios: LLMLingua-2, dwupoziomowy Ultra, omniglyph, bramka wierności dla poszczególnych kroków, GCF v3.2, edytor zmiany kolejności metodą przeciągania. → [Kompresja](docs/compression/COMPRESSION_ENGINES.md)
- **🕵️ Przezroczyste odszyfrowywanie MITM (TPROXY)** — przechwytywanie narzędzi CLI, które ignorują zmienne środowiskowe serwera proxy, z urzędem certyfikacji dla poszczególnych SNI oraz instalatorem magazynu zaufanych certyfikatów. → [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 z trafień pamięci podręcznej 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 wektorów int8 + typowany zanik, a także `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/sekrety w obu kierunkach), bezpłatne wyszukiwanie internetowe DuckDuckGo ostatniej szansy oraz opcjonalna brama 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 / audio** — jedno API do multimediów: xAI Grok Imagine i wideo 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, 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ą + 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ę/opóźnienie, które ją obsłużyły; nowa strategia kombinacji `cache-optimized` oraz czynnik Auto-Combo `cacheAffinity` kierują powtórzone żądania z powrotem do połączenia przechowującego prefiks w pamięci podręcznej, 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 uruchamiany jednym kliknięciem, narzędzia wdrożeniowe przekaźników 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 + marketplace, frameworki umiejętności Omni/Agent/GitHub, integracja z repozytorium Obsidian (22 narzędzia MCP), zgodne z OpenAI interfejsy API Batch i Files, semantyczna pamięć podręczna odpowiedzi, grywalizacja z rankingami, wykrywanie agentów ACP (15 wbudowanych agentów), zaplanowany eksport logów do BigQuery, wstrzykiwanie awarii `auto/chaos`, most z botem Telegram, wbudowany menedżer wersji oraz rankingi ELO bezpłatnych dostawców LMArena. → [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)
## 🌐 357 dostawców AI — 152 oznaczonych w katalogu jako bezpłatni
> **357 zarejestrowanych dostawców** w kanonicznych kolekcjach czatu, multimediów, wyszukiwania, modeli lokalnych, agentów chmurowych i systemowych, w tym **152 z metadanymi wykrywania `hasFree: true`**. Rejestr modeli czatu obejmuje **229 dostawców / 2 554 unikatowe pary dostawca–model / 1 283 surowe identyfikatory modeli**; oddzielny katalog bezpłatnych limitów zawiera **491 wierszy dla poszczególnych modeli**, **35 odnawialnych pul** i **54 dostawców oferujących bezterminowy, odnawialny lub niewymagający klucza bezpłatny dostęp**. Są to celowo różne mianowniki; definicje i obliczenia z deduplikacją pul znajdują się w dokumentach [Informacje o dostawcach](docs/reference/PROVIDER_REFERENCE.md) i [Bezpłatne plany](docs/reference/FREE_TIERS.md).
### 🏢 Każde duże laboratorium — za pośrednictwem jednego punktu końcowego
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. 📖 [Informacje o dostawcach](docs/reference/PROVIDER_REFERENCE.md)
### 🆓 Bezpłatnie 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 Darmowy 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 1 mln tokenów/dzień
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ślna kombinacja stosu uruchamia `RTK → Caveman`. Gdy oba silniki przetwarzają ten sam ładunek narzędzi 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 kilka wystarczy?** Każde żądanie przechodzi przez potok kompresji OmniRoute **w sposób transparentny** — bez zmian po stronie klienta. Jest to teraz **stos 12 komponowalnych silników**, które działają w określonej kolejności i można je dowolnie łączyć dla każdej kombinacji routingu — na podstawie koncepcji z projektów [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 każdej kombinacji:
#
Silnik
Działanie
1
Session-Dedup
Usuwa zawartość powtarzającą się między turami (adresowaną zawartością, między turami)
2
CCR
Archiwizuje duże bloki za znacznikami pobierania, umożliwiając ich pobranie na żądanie
3
Lite
Usuwa zbędne białe znaki i adresy URL obrazów (lekka pod względem opóźnień konfiguracja bazowa)
4
RTK
Inteligentnie filtruje, deduplikuje i skraca wyniki narzędzi (z uwzględnieniem poleceń)
5
Responses Tool Output
Bezstratne w pierwszej kolejności przetwarzanie JSON oraz ograniczona kompresja diagnostyczna wyników powłoki, łatek, wyszukiwania i kompilacji (Responses API)
6
Headroom
Bezstratnie kompaktuje tablicowe dane JSON (~30%) za pomocą dołączonego kodeka GCF
7
Relevance
Ekstrakcyjnie ocenia zdania względem ostatniego zapytania użytkownika
8
Caveman
Kompresuje prozę na podstawie reguł (~65–75% na wyjściu)
9
Aggressive
Podsumowuje i stopniowo kondensuje starsze tury
10
LLMLingua-2
Semantycznie redukuje treść za pomocą ML i MobileBERT ONNX — bezpiecznie dla kodu, asynchronicznie
11
Ultra
Heurystycznie redukuje tokeny z opcjonalną warstwą małego modelu (SLM)
12
OmniGlyph
Eksperymentalne kodowanie kontekstu jako obrazu dla przetestowanego modelu Claude Fable 5 przy bezpośredniej komunikacji z Anthropic; transformatory GPT 5.6 pozostają domyślnie wyłączone 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** bez zmiany choćby jednego bajtu. **Ustawienia wstępne dostępne jednym kliknięciem** łączą silniki:
Tryb
Oszczędności
Najlepsze zastosowanie
🪶 Lite
~15%
Bezpieślna konfiguracja domyślna działająca przez cały czas
🪨 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
🔗 Stos (RTK → Caveman)
78–95%
Mieszane prompty i dzienniki narzędzi
**Rzeczywisty przykład — tryb Standard:**
> **Przed (69 tokenów):** _„Przyczyną ponownego renderowania komponentu React jest prawdopodobnie tworzenie nowej referencji do obiektu przy każdym cyklu renderowania. Gdy przekazujesz obiekt inline jako właściwość, płytkie porównanie React traktuje go za każdym razem jako inny obiekt, co wyzwala ponowne renderowanie. Zalecam użycie useMemo do zapamiętania obiektu.”_
>
> **Po (19 tokenów):** _„Nowa referencja obiektu przy każdym renderowaniu. Obiekt inline jako właściwość = nowa referencja = ponowne renderowanie. Opakuj w useMemo.”_
>
> **Ta sama odpowiedź. O 72% mniej tokenów. Zero 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 ref. w każdym cyklu (ponownie tworzony obiekt inline). Użyć `useMemo`.”_
>
> **Ta sama odpowiedź. ~70% mniej tokenów. Zachowana precyzja techniczna.** ✅
### 🎚️ Więcej niż silniki — style wyjścia, adaptacyjne pokrętło i sterowanie dla każdego żądania
Powyższe 12 silników zmniejsza to, co trafia **na wejście**. Trzy dodatkowe warstwy kształtują **jak**, **kiedy** i co trafia **na wyjście**:
- **🪄 Style wyjścia** _(sterowanie osią wyjściową)_ — wstrzykują deterministyczne, bezpieczne dla pamięci podręcznej instrukcje kształtujące odpowiedź; 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 pełną precyzję techniczną.
- **Mniej kodu** — YAGNI w stylu „leniwego starszego programisty”: najmniejsza działająca zmiana, bez niezamówionej otoczki.
- **Ponytail (leniwy starszy programista)** — wspina się po drabinie YAGNI, naprawia 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 następny 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 jednego progu tokenów typu włącz/wyłącz uruchamia najtańsze, najmniej stratne silniki tylko w zakresie koniecznym, aby **zmieścić się w oknie kontekstu modelu**. Zasady: `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 mechanizm progowy).
- **🎛️ 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 › mechanizm adaptacyjny / automatyczne wyzwalanie › ustawienie domyślne 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, ustaw jednorazową konfigurację dla żądania lub przypisz potok do kombinacji routingu — zależnie od obciążenia. Opcjonalny, działający offline **zestaw ewaluacyjny** (`npm run eval:compression`) ocenia zgodność 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 dotyczące zależności równorzędnych? [Są nieszkodliwe](docs/guides/TROUBLESHOOTING.md#npm-install-warnings-eresolve--peer--deprecated).
Panel jest dostępny pod adresem `http://localhost:20128` · API pod adresem `http://localhost:20128/v1`.
**2) Połącz DARMOWEGO dostawcę (bez rejestracji)**
Panel → **Dostawcy** → połącz **Kiro AI** (darmowy Claude, ~50 kredytów miesięcznie na konto) lub **OpenCode Free** (bez uwierzytelniania) → gotowe.
**3) Skonfiguruj narzędzie programistyczne**
```txt
Bazowy URL: http://localhost:20128/v1
Klucz API: [skopiuj z Panel → Punkty końcowe]
Model: auto (inteligentny routing bez konfiguracji — lub dowolny dostawca/model)
```
**4) Sprawdź, czy działa**
```bash
curl http://localhost:20128/v1/models -H "Authorization: Bearer YOUR_KEY"
```
Powinna pojawić się lista połączonych modeli. 🎉 To wszystko — zacznij programować, a OmniRoute automatycznie wybierze trasę i w razie potrzeby przełączy się na rozwiązanie 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ć `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.51 · Node ≥22.22.2 · Licencja MIT · omniroute.online