## 💰 ~1.62B Token / Bulan Merentas Tahap Percuma Pihak Ketiga
> **Bawa akaun penyedia anda sendiri.** Ini ialah agregat anggaran merentas tahap percuma pihak ketiga yang layak secara berasingan, bukan pemberian token daripada OmniRoute. Daftar, dapatkan kelayakan jika perlu, dan sambungkan penyedia yang boleh anda gunakan; setiap penyedia mengawal had, ketersediaan dan terma mereka sendiri.
>
> Menyusun tahap percuma secara manual amat menyusahkan — puluhan SDK, puluhan had kadar, dan tiada gambaran berapa banyak yang sebenarnya anda ada. OmniRoute menyenaraikan **467 entri tahap percuma merentas 34 kunci kolam berulang** dan mengira angka utama token daripada **17 kolam dengan bajet bulanan positif yang diterbitkan serta lima had per-model Groq**, dinyahduplikasi mengikut kolam yang dikongsi. Kuota yang hanya dibuka selepas semakan identiti serantau (kini: ModelScope) ditunjukkan secara berasingan, +~6M di sebalik pengesahan identiti serantau, dan tidak sekali-kali dijumlahkan ke dalam angka utama. Hasilnya kekal kelihatan pada papan pemuka (`/dashboard/free-tiers`).
> Ringkasan animasi bagi halaman `/dashboard/free-tiers` secara langsung. Metodologi penuh (nyahduplikasi kolam, tahap kredit, terma penyedia): **[docs/reference/FREE_TIERS.md](docs/reference/FREE_TIERS.md)**.
>
> Angka-angka ini diaudit semula setiap dua minggu berdasarkan katalog langsung dan **berubah kedua-dua arah** — penyedia menamatkan tahap percuma dan nombornya menurun; penyedia baharu masuk dan ia meningkat. Kami menerbitkan apa yang sebenarnya dikira oleh katalog, tidak pernah kes terbaik yang dibundarkan ke atas.
⭐ Beri bintang pada repo jika OMNIROUTE membantu anda menjimatkan wang dan memudahkan kerja anda.
[](https://github.com/diegosouzapw/OmniRoute)
[](https://www.star-history.com/diegosouzapw/omniroute)
[](https://olud.ai/project/diegosouzapw-omniroute.html)
### 💬 Sertai komuniti
**👋 Ikuti penyelia — dapatkan penyedia baharu, keluaran & tip terlebih dahulu:**
[](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)
**Soalan, tip penyedia, peta jalan & sokongan → [Discord](https://discord.gg/U47eFqAXCn) · [Telegram](https://t.me/omnirouteOficial) · WhatsApp [🌍 Global](https://chat.whatsapp.com/FvuCbrpZmQ6I85n2vW5QIC?s=cl&p=a&mlu=4) / [🇧🇷 Brasil](https://chat.whatsapp.com/KWgatljAjmbELQory59Oti?s=cl&p=a&mlu=4) / [Portal](https://portal.sthub.com.br/communities/groups/st-hub/channels/Omniroute-World-8kRjmK)**
## 📈 Gerbang Terus Berkembang
## 🆓 Pasang, sambungkan penyedia, kemudian halakan melalui satu titik akhir
```bash
# Selepas menyambungkan penyedia, salin kunci OmniRoute anda daripada 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` memerlukan laluan yang layak. Pemasangan baharu mungkin tidak mempunyai sasaran tanpa kunci yang layak, dan penyedia tanpa kunci mungkin menolak klien pihak ketiga. Penyedia yang ditandai `tos: avoid`, termasuk Kiro, dikecualikan daripada penghalaan automatik secara lalai; penyambungan akaun tidak mengatasi tetapan tersebut. Lihat [Panduan Peringkat Percuma](docs/getting-started/FREE-TIERS-GUIDE.md) sebelum memilih penyedia.📦 Skrip mula pantas yang boleh disalin dan ditampal untuk **Python, Node.js, PHP, dan cURL** → [`examples/quickstart/`](examples/quickstart/)
# 💥 Janji Kami
# 🤔 Mengapa OmniRoute?
## 🤝 Disokong oleh Rakan Sumber Terbuka Kami
> **Ingin menyertai sebagai Rakan Sumber Terbuka?** Ini adalah syarikat-syarikat yang menyokong sumber terbuka dan membantu OmniRoute terus bergerak — dan kami menyatakan secara terbuka ke mana setiap token yang mereka berikan kepada kami pergi. Hubungi: [diegosouza.pw@outlook.com](mailto:diegosouza.pw@outlook.com)
Kimi Moonshot AI
Terima kasih kepada Kimi (Moonshot AI), Rakan Sumber Terbuka pengasas kami, kerana menyokong projek ini! Kimi adalah makmal AI di sebalik keluarga model K2 dan K3 dengan berat terbuka — Kimi K3 menawarkan tetingkap konteks 1M-token, penglihatan asli dan pengekodan peringkat sempadan pada sebahagian kecil daripada harga model tertutup, dan berfungsi dengan baik dengan Claude Code, Codex dan setiap alat pengekodan yang disediakan oleh OmniRoute.
Apa yang disokong oleh Kimi: Kredit API Kimi menggerakkan saluran keluaran yang disahkan AI OmniRoute — peringkat pengesahan gabungan yang dikuasakan oleh Kimi K3 yang menyemak setiap permintaan tarik sebelum ia dihantar — serta pembangunan ciri harian. Sokongan Kimi kelas pertama dihantar pada kedua-dua rel: API Kimi langsung (kimi-k3) dan pelan pengekodan Kimi Code (OAuth dan kunci API). OmniRoute juga merupakan projek sumber terbuka Brazil pertama dalam program sokongan Kimi. Dapatkan kunci API Kimi dengan 15% kredit tambahan →
Cheaper Inference cheaperinference.com
Terima kasih kepada Cheaper Inference, Rakan Sumber Terbuka OmniRoute, kerana menyokong projek ini! Cheaper Inference adalah gerbang yang dinilai kos yang menjual semula 42 model sempadan — Claude, GPT-5.x, Gemini, Kimi K3, GLM, DeepSeek, Grok dan MiniMax — di sebalik satu titik akhir yang serasi dengan OpenAI, menghantar setiap permintaan kepada penyedia yang paling murah tanpa pernah mengenakan bayaran melebihi harga senarai pembuat model.
Sokongan kelas pertama dalam OmniRoute: Chat Completions, titik akhir /v1/responses asli, penglihatan, panggilan alat dan 3 model imej (grok-imagine, nano-banana-pro, nano-banana-2, boleh dicapai sebagai cheaperinference/<model>). Dapatkan kunci API →
Pautan yang ditandai aff=omniroute adalah pautan rakan kongsi. Ia membiayai projek tanpa kos tambahan kepada anda. 🎟️ Promosi Afiliasi — kupon pendaftaran percuma daripada penyedia yang tidak kami taja (klik untuk kembangkan)Bahagian ini adalah untuk kod rujukan/kupon sahaja. Perkongsian yang ditaja terdapat dalam 🤝 Disokong oleh Rakan Sumber Terbuka Kami di atas. OmniRoute tidak mempunyai penajaan atau perkongsian dengan penyedia yang disenaraikan di sini — ini adalah kupon awam yang boleh digunakan oleh sesiapa sahaja.
AgentRouter agentrouter.org
AgentRouter — pendaftaran afiliasi · $100 kredit percuma semasa pendaftaran (pelayan percuma, jangkakan kependaman yang lebih tinggi — terbaik untuk ujian, bukan pengeluaran). Sokongan kelas pertama dalam OmniRoute sejak v3.8.50: Chat Completions, format wayar yang serasi dengan Anthropic dan laluan yang serasi dengan OpenAI. Model yang tersedia termasuk claude-opus-4-8, claude-opus-5, gpt-5.6-sol dan banyak lagi. Dapatkan $100 anda →
⚠️ Pautan afiliasi — OmniRoute tidak mempunyai penajaan atau perkongsian dengan penyedia ini.
Tahu penyedia lain dengan kupon pendaftaran percuma yang murah hati yang memberi manfaat kepada pengguna OmniRoute? Buka isu dan kami akan menambahnya di sini.
## 🎯 Kombo — Ciri Utama
> **Kombo** ialah rantaian model yang OmniRoute halakan secara **automatik**. Jika kuota habis, penyedia gagal, atau kos melonjak, kombo boleh beralih kepada model sihat seterusnya yang layak. 🛡️
### ⚡ Konfigurasi sifar — hanya gunakan `auto`
Tiada kombo yang perlu dicipta. Tetapkan model anda kepada `auto` (atau variannya) dan OmniRoute membina kombo maya daripada penyedia anda yang telah disambungkan, dengan pemarkahan masa nyata:
ID Model
Perkara yang dioptimumkan
auto
🎯 Lalai seimbang (LKGP — kekal dengan penyedia terakhir anda yang berfungsi dengan baik)
auto/coding
🧑💻 Pemberat yang mengutamakan kualiti untuk penjanaan kod
auto/fast
⚡ Kependaman terendah didahulukan
auto/cheap
💰 Kos termurah bagi setiap token didahulukan
auto/subscription
🎟️ Hanya kuota langganan yang telah anda bayar — gagal secara tertutup, tanpa sandaran yang boleh dikenakan bayaran (panduan)
auto/thrifty
🪜 Kuota pelan didahulukan, kemudian satu anak tangga pada satu masa kepada pilihan berbayar termurah — kembali kepada pelan selepas ia ditetapkan semula (panduan)
auto/offline
🔋 Ruang baki kuota / had kadar terbanyak didahulukan
auto/smart
🔭 Mengutamakan kualiti + penerokaan 10% untuk menemui model yang lebih baik
auto/lkgp
📌 Kekekalan eksplisit pada penyedia terakhir yang diketahui berfungsi dengan baik
auto/chaos
🧪 Pengagihan selari kepada panel model (satu bagi setiap penyedia, 5 secara lalai), mengembalikan satu jawapan; satu panggilan huluan bagi setiap model panel, bukan penyuntikan kegagalan
##
### 🔀 Atau bina sendiri — 20 strategi penghalaan
Kesemua **20** strategi — campur & padankan bagi setiap langkah kombo:
#
Strategi
Fungsinya
1
priority
Senarai tersusun yang mengutamakan sasaran pertama — habiskan setiap satu sebelum beralih kepada yang seterusnya 🥇
2
fill-first
Gunakan sepenuhnya kuota setiap sasaran sebelum beralih
3
weighted
Pemilihan rawak berwajaran berdasarkan pemberat setiap sasaran
4
round-robin
Kitar melalui sasaran mengikut turutan
5
p2c
Pengimbangan beban rawak menggunakan kaedah kuasa dua pilihan
6
least-used
Pilih sasaran dengan beban semasa yang paling rendah
7
random
Pemilihan rawak seragam (dinyahpendua)
8
strict-random
Rawak tanpa menyahpendua pengulangan 🎲
9
cost-optimized
Minimumkan $ bagi setiap permintaan berdasarkan harga katalog masa nyata 💸
10
headroom
Pilih sasaran dengan baki kuota terbanyak
11
quota-weighted
Langkau akaun yang telah kehabisan kuota, kemudian pilih secara berkadar dengan baki kuota ÷ beban sedang diproses — perbualan sedia ada kekal disematkan ⚖️
12
reset-window
Utamakan sasaran yang tempoh kuotanya akan ditetapkan semula paling awal
13
reset-aware
Susun kedudukan berdasarkan masa penetapan semula kuota — tempoh pendek didahulukan 📊
14
context-relay
Serahkan konteks merentas sasaran untuk perbualan panjang 🧠
15
context-optimized
Pilih padanan terbaik untuk saiz konteks semasa
16
cache-optimized
Sematkan setiap awalan prom yang boleh digunakan semula kepada akaun yang sama — maksimumkan padanan cache prom 🎯
17
lkgp
Laluan Terakhir yang Diketahui Baik — menyematkan kepada penyedia terakhir yang berjaya, kemudian kembali kepada peraturan sandaran
18
auto
Pemarkahan masa nyata 16 faktor merentas setiap sambungan 🤖
19
fusion
Agihkan kepada panel model + penilai mensintesis satu jawapan 🧬
20
pipeline
Rantaikan langkah — output setiap sasaran disalurkan kepada sasaran seterusnya 🔗
Enjin Auto-Combo memberikan skor kepada setiap calon berdasarkan **16 faktor** (kesihatan, kuota, kos, kependaman, kesesuaian tugas, kualiti, ketersediaan sesi…) — lihat [`docs/routing/AUTO-COMBO.md`](docs/routing/AUTO-COMBO.md).
##
### 🧱 Daya tahan terbina dalam (3 lapisan bebas)
📖 [Enjin Auto-Combo](docs/routing/AUTO-COMBO.md) · [Panduan Daya Tahan](docs/architecture/RESILIENCE_GUIDE.md)
## 🏆 Keistimewaan OmniRoute
📊 Metodologi penuh & butiran setiap ciri berbanding 9router, OpenRouter, CLIProxyAPI & LiteLLM → [`docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md`](docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md)
## 💚 Sokong OmniRoute
OmniRoute dilesenkan di bawah MIT dan diselenggara secara terbuka. Jika ia menjimatkan masa atau wang anda, berikut ialah cara untuk membantu mengekalkannya bebas — pilih apa sahaja yang sesuai untuk anda. Penajaan tidak pernah mempengaruhi keutamaan penghalaan; ia memberikan keterlihatan, bukan kedudukan.
**🇧🇷 PIX** — serta-merta, tanpa yuran (Brazil)
Kunci (rawak): `5d865059-bc44-483a-962d-43ceb80126eb`
Salin dan tampal Pix:
```
00020101021126580014br.gov.bcb.pix01365d865059-bc44-483a-962d-43ceb80126eb5204000053039865802BR5922OMNIROUTE CONTRIBUICAO6006BRASIL62070503***630475DD
```
₿ Kripto — BTC · ETH · USDT-TRC20 · USDC-Solana (klik untuk kembangkan)
₿ BTC
Bitcoin (SegWit)
bc1qh00smz004sy85wyl28v77tenkt3ckl6eaep7fd
Ξ ETH
Ethereum (ERC20)
0x64Cf6B68A6Ff34288e89172950a2d00102337a84
₮ USDT
Tron (TRC20)
TKAF41JpuQrHbKTnsQa9svJE2T192Hvsc2
$ USDC
Solana
2emNNZzVVWQc3FQ2wk9M6qXUQmW8AKdjjL174fXR28Tu
⚠️ Hantar setiap mata wang hanya melalui rangkaian yang ditunjukkan — penghantaran melalui rangkaian yang salah boleh menyebabkan kehilangan dana.
🐛 Menemui pepijat atau ingin memberikan maklum balas? Buka [Perbincangan](https://github.com/diegosouzapw/OmniRoute/discussions).
Nota pembangun: Projek ini mungkin menjana fail .env setempat semasa npm install/postinstall untuk kemudahan pembangun. Fail ini sengaja diabaikan melalui .gitignore (lihat .gitignore) dan tidak boleh dikomit sama sekali — jika terkomit secara tidak sengaja, tukar semua rahsia yang terdedah dan alih keluar fail tersebut daripada sejarah. Lihat docs/DEVELOPER-ENVIRONMENT.md untuk panduan mengurus fail persekitaran setempat dan rahsia.
## 📡 Radar OmniRoute
Sorotan utama peringkat percuma kekal pada **~1.62B token/bulan** daripada katalog yang didokumenkan dan dinyahpendua berdasarkan kumpulan di atas. Kredit pendaftaran penyedia sementara boleh meningkatkan jumlah bulan pertama secara berasingan kepada **~2.22B**. Radar ialah lapisan tindanan katalog bertandatangan yang bersifat pilihan untuk mereka yang mahukan ketersediaan model percuma yang lebih terkini antara keluaran OmniRoute; katalog komuniti dan setiap ciri percuma sedia ada kekal percuma.
Penyokong boleh menerima katalog langsung dan peluang penyedia tambahan. Had maksimumnya yang berasingan dan boleh berubah ialah **kira-kira 3B token/bulan paling banyak**, bergantung pada ketersediaan penyedia. Had maksimum tersebut bukan jaminan: penyedia boleh mengubah kuota, kelayakan, model atau rantau pada bila-bila masa.
Radar adalah secara ikut serta dan GET sahaja. Klien OmniRoute tidak memuat naik gesaan, trafik, konfigurasi penyedia, telemetri penggunaan atau keadaan setempat bagi pengumuman yang telah ditutup. Ketahui tentang kelayakan dan katalog semasa di **[radar.omniroute.online/planos](https://radar.omniroute.online/planos)**.
## ✨ Apa Yang Baharu
> Sorotan terkini daripada **v3.8.20 → v3.8.53**. Sejarah penuh dalam [`CHANGELOG.md`](CHANGELOG.md).
- **⚖️ Penghalaan `quota-weighted`** — strategi kombo ke-20 melangkau akaun yang telah habis, kemudian memilih antara yang lain mengikut perkadaran baki kuota ÷ beban sedang berjalan, sambil mengekalkan perbualan sedia ada yang dipin. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **🧰 Mod headless** — `omniroute serve --headless` (atau `OMNIROUTE_HEADLESS=1`) menjalankan hanya enjin proksi `/v1/*`, dengan papan pemuka dan subsistem khusus papan pemuka dimatikan. → [Mod Headless](docs/guides/HEADLESS.md)
- **🔎 Penemuan model** — `/v1/models` menapis mengikut keupayaan, konteks, jenis dan teks, dan `POST /v1/models/query` mengembalikan senarai pendek deterministik dengan keterlihatan per-kunci yang sama. → [Rujukan API](docs/reference/API_REFERENCE.md)
- **🔑 Kawalan penghalaan per-kunci** — pin kunci API kepada satu model atau kombo dengan `forcedModel`, dan tambah atau buang model serta kombo sesuatu kunci secara atomik (`/api/keys/{id}/access`). → [Rujukan API](docs/reference/API_REFERENCE.md) · [OpenAPI](docs/openapi.yaml)
- **🛡️ Kawalan PII yang lebih halus** — pemilihan mengikut jenis, sehingga 20 corak penyamaran tersuai yang disahkan dan pembilang pengesanan mengikut jenis; penyamaran itu sendiri kekal pilih masuk. → [Guardrails](docs/security/GUARDRAILS.md)
- **🌍 67 bahasa** — papan pemuka, cermin dokumen dan CLI, dengan `npm run i18n:add-locale` menambah bahasa di semua tempat dalam satu arahan. → [Panduan i18n](docs/guides/I18N.md)
- **🎛️ OmniConductor** — delegasi A2A masuk ke armada ejen anda, kemahiran Conductor pada Kad Ejen, dan panel papan pemuka dengan sembang suara tekan-untuk-cakap Faro. → [Pelayan A2A](docs/frameworks/A2A-SERVER.md)
- **🛂 Kemasukan adaptif & perlindungan beban lampau** — permintaan sembang berat dimasukkan ke dalam baris gilir dan bukannya menerima 503, dengan pajakan bergulir RPM atomik bagi setiap sambungan. → [Panduan Ketahanan](docs/architecture/RESILIENCE_GUIDE.md)
- **🗂️ Susunan `/v1/models` kanonik** — satu blok bersebelahan yang dikelompokkan mengikut penyedia bagi setiap penyedia (kombo dipin dahulu), stabil merentas setiap sumber katalog. → [Rujukan API](docs/reference/API_REFERENCE.md)
- **🗜️ Pengukuhan pemampatan** — pengawal inflasi yang dihidupkan secara lalai, pek Caveman untuk DE / FR / JA + Cina (wényán), penapis RTK untuk Gradle & .NET. → [Pemampatan](docs/compression/COMPRESSION_ENGINES.md)
- **💸 Kos kadar rata yang jujur** — penyedia langganan / pelan pengekodan dipaparkan sebagai **$0** dalam analitik kos; belanjawan, kuota & penghalaan terus menganggar. → [Rujukan API](docs/reference/API_REFERENCE.md)
- **⚖️ Penghalaan Quota-Share** — bahagikan kuota akaun kongsi secara adil merentas kunci terkumpul, bersifat memelihara kerja supaya hirisan terbiar dipinjamkan. → [Panduan Ketahanan](docs/architecture/RESILIENCE_GUIDE.md)
- **🤖 Persediaan CLI/ejen satu arahan** — 15 arahan `setup-*` berdaftar; `omniroute run` melancarkan 7 CLI (Claude Code, Codex, Aider, Goose, OpenCode, Qwen Code, Gemini CLI); `omniroute configure` menyokong 11 sasaran dengan pemilih penyedia+model interaktif dan kegemaran mengikut konteks. → [Integrasi CLI](docs/guides/CLI-INTEGRATIONS.md)
- **🛰️ Mod jauh** — kendalikan OmniRoute jauh dengan token berskop (`connect` / `contexts` / `tokens`) + pembantu OAuth `antigravity` untuk pemasangan VPS. → [Mod Jauh](docs/guides/REMOTE-MODE.md)
- **🧭 Penghalaan auto lebih pintar** — kombo `auto/:`, **Fusion** (panel model + hakim), penghalaan sedar tugas, pengatasan model / mod / belanjawan USD mengikut permintaan. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **🗜️ Pemampatan boleh pasang** — 12 enjin boleh kompos + Compression Studios: LLMLingua-2, Ultra dua peringkat, omniglyph, get kesetiaan setiap langkah, GCF v3.2, editor susun semula seret. → [Pemampatan](docs/compression/COMPRESSION_ENGINES.md)
- **🕵️ Nyahsulit MITM telus (TPROXY)** — tangkap CLI yang mengabaikan pemboleh ubah persekitaran proksi, dengan CA per-SNI + pemasang stor kepercayaan. → [MITM/TPROXY](docs/security/MITM-TPROXY-DECRYPT.md)
- **💸 Telemetri kos di merata tempat** — pengepala kos/penggunaan `X-OmniRoute-*` pada setiap titik akhir, pengepala penjimatan cache-HIT, kuota perbelanjaan USD mengikut kunci. → [Rujukan API](docs/reference/API_REFERENCE.md)
- **🧠 Memori yang anda kawal** — dimatikan secara lalai, pengkuantuman vektor int8 pilih masuk + pereputan bertaip, `x-omniroute-no-memory` mengikut permintaan. → [Memori](docs/frameworks/MEMORY.md)
- **🛡️ Keselamatan** — pengawal suntikan arahan pada setiap laluan LLM (suite pasukan merah), pagar keselamatan penyamaran kelayakan pilih masuk (menyunting kunci API/rahsia yang bocor dalam kedua-dua arah), carian web DuckDuckGo percuma sebagai pilihan terakhir, dan pintu log masuk OIDC pilihan untuk papan pemuka (log masuk kata laluan sentiasa kekal tersedia). → [Guardrails](docs/security/GUARDRAILS.md)
- **🖼️ Titik akhir baharu** — `/v1/ocr` (Mistral OCR) dan `/v1/audio/translations` (gaya Whisper) melengkapkan permukaan media. → [Rujukan API](docs/reference/API_REFERENCE.md)
- **🎨 Penjanaan imej / video / audio** — satu API untuk media: xAI Grok Imagine & Novita AI video, ComfyUI, Magnific, Adobe Firefly, Segmind, dan penyedia pertuturan seperti ElevenLabs. → [Rujukan API](docs/reference/API_REFERENCE.md)
- **🌍 Penggelaran & operasi** — `basePath` proksi songsang, pengesanan automatik bahasa pelayar, penjejakan peranti mengikut kunci, kepercayaan MITM tanpa root, penyetempatan zh-TW. → [Persekitaran](docs/reference/ENVIRONMENT.md)
- **🤝 Lebih banyak penyedia & ejen** — ejen awan (Codex Cloud, Cursor, Devin, Jules), Grok Build (xAI) dengan log masuk pelayar + OAuth, kad kelas pertama Ollama, Claude Opus 5 & Sonnet 5, perkongsian rasmi Kimi (Code/Web/Moonshot), Zed, Requesty, SenseNova, Yuanbao, Agnes AI… dan **katalog 375 penyedia** yang disegarkan. → [Penyedia](docs/reference/PROVIDER_REFERENCE.md)
- **📡 Ketelusan penghalaan** — setiap respons membawa pengepala `X-OmniRoute-Decision` yang menamakan strategi/penyedia/latensi yang melayaninya, strategi kombo `cache-optimized` baharu + faktor `cacheAffinity` Auto-Combo menghalakan permintaan berulang kembali ke sambungan yang memegang awalan cache, dan titik akhir baca sahaja `/v1/auto-combo/{channel}/candidates` mendedahkan kumpulan calon langsung saluran `auto/*`. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **⚡ Prestasi & infrastruktur tempatan** — Redis tempatan satu klik, penyebar relay Cloudflare Workers / Deno Deploy, Bifrost & Mux sebagai perkhidmatan terbenam yang diselia. → [Perkhidmatan Terbenam](docs/frameworks/EMBEDDED-SERVICES.md)
- **🧩 Turut disertakan** — kerangka pemalam + marketplace, kerangka kemahiran Omni/Agent/GitHub, integrasi vault Obsidian (22 alat MCP), API Batch & Files serasi OpenAI, cache respons semantik, gamifikasi dengan papan pendahulu, penemuan ejen ACP (15 ejen terbina dalam), eksport log berjadual ke BigQuery, `auto/chaos` fan-out berbilang model selari, jambatan bot Telegram, pengurus versi dalam aplikasi dan kedudukan penyedia percuma LMArena-ELO. → [Dokumentasi](docs/README.md)
## 🤖 CLI & Agen Pengekodan yang Serasi
> Satu konfigurasi — `http://localhost:20128/v1` — dan **setiap** IDE atau CLI AI boleh dijalankan menggunakan model percuma & kos rendah.
+ turut berfungsi dengan · Agent Deck · Kiro · Command Code · Antigravity · Windsurf · AMP · sebarang alat yang serasi dengan OpenAI
📖 Persediaan khusus alat untuk kesemua 37 alat (27 CLI Kod + 10 Ejen CLI) → [`docs/reference/CLI-TOOLS.md`](docs/reference/CLI-TOOLS.md) · 🧩 Pemalam OpenCode → [`@omniroute/opencode-provider`](https://www.npmjs.com/package/@omniroute/opencode-provider)
**Lancarkan mana-mana CLI yang disokong melalui OmniRoute dengan satu perintah** — tiada fail konfigurasi ditulis,
kelayakan disuntik bagi setiap proses, Qwen/Gemini mendapat direktori utama terpencil sementara:
```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"
# Atau pilih penyedia+model secara interaktif dan tulis konfigurasi alat itu sendiri:
omniroute configure codex # juga: claude opencode qwen aider goose gemini cline continue kilo 5dive
```
Setiap perintah mematuhi konteks jauh yang aktif (`omniroute connect `), `--dry-run`
mempratonton persekitaran/argumen yang tepat tanpa melaksanakannya, dan `--api-key-env NAME` memastikan rahsia tidak
disimpan dalam sejarah shell anda. → [Integrasi CLI](docs/guides/CLI-INTEGRATIONS.md)
## 🌐 375 Penyedia AI — 153 Ditandakan Percuma dalam Katalog
> **375 penyedia berdaftar** merentas koleksi kanonik chat, media, carian, setempat, agen awan dan sistem, termasuk **153 yang membawa metadata penemuan `hasFree: true`**. Daftar model chat merangkumi **239 penyedia / 3,059 pasangan penyedia-model berbeza / 1,475 ID model mentah**; katalog bajet percuma yang berasingan mempunyai **467 baris setiap model**, **34 kolam berulang** dan **51 penyedia percuma-kekal berulang/tanpa kunci**. Ini ialah penyebut yang berbeza secara reka bentuk; definisi dan pengiraan dedup kolam terdapat dalam [Rujukan Penyedia](docs/reference/PROVIDER_REFERENCE.md) dan [Tahap Percuma](docs/reference/FREE_TIERS.md).
### 🏢 Setiap makmal utama — melalui satu titik akhir
OpenAI
Anthropic
Gemini
xAI Grok
DeepSeek
Mistral
Qwen
Meta Llama
Groq
NVIDIA
MiniMax
Cohere
Perplexity
HuggingFace
Together
Fireworks
Cloudflare
Baidu
…dan 350+ lagi — setiap ikon dipaparkan secara langsung daripada katalog penyedia papan pemuka. 📖 [Rujukan Penyedia](docs/reference/PROVIDER_REFERENCE.md)
### 🆓 Percuma Selamanya — $0, tanpa kad
OpenCode Zen DeepSeek V4, Nemotron 3 Tiada had token
Kilo Code Penghala auto, Tencent Hy3 Percuma selamanya
Requesty GPT-OSS 120B, Nemotron Percuma selamanya
SiliconFlow DeepSeek V3.2 / R1 Tahap percuma
Z.AI GLM GLM-4.7 / 4.5-Flash Percuma selamanya
Baidu ERNIE ERNIE 4.0 Percuma selamanya
Qoder AI Qwen3-Max, Kimi-K2 PERCUMA tanpa had
Pollinations GPT, Llama, Claude Tiada kunci diperlukan
Cloudflare AI 50+ model 10K neuron/hari
NVIDIA NIM GLM, MiniMax ~40 RPM percuma
Cerebras GLM 4.7, GPT-OSS Kredit $5 sekali sahaja; kad diperlukan
OpenRouter Model :free +$10 → RPM lebih tinggi
📖 Katalog penuh boleh dibaca mesin → [`docs/reference/PROVIDER_REFERENCE.md`](docs/reference/PROVIDER_REFERENCE.md)
## 🖥️ Tempat OmniRoute Berjalan — Di Mana-mana Sahaja
> Aplikasi yang sama, mesin anda, peraturan anda. Daripada pemasangan npm global hingga ke **telefon anda** melalui Termux.
Platform
Pemasangan
Sorotan
📦 npm (global)
npm install -g omniroute
Satu perintah, sebarang OS
🐳 Docker
docker run … diegosouzapw/omniroute
Berbilang seni bina AMD64 + ARM64
🖥️ Desktop (Electron)
npm run electron:build
Tetingkap natif + dulang sistem — Windows / macOS / Linux
🎩 Bar menu (OmniRouteTray)
brew install --cask zoispag/tap/omniroute-tray
Menyelia & mengemas kini pelayan secara automatik — macOS
💪 ARM
arm64 natif
Raspberry Pi, pelayan ARM, Apple Silicon
📱 Android (Termux)
pkg install nodejs && npx -y omniroute
Berjalan pada telefon anda, 24/7, tanpa root
📲 PWA
"Tambah ke Skrin Utama"
Skrin penuh, luar talian, boleh dipasang daripada pelayar
🧩 Pemalam OpenCode
@omniroute/opencode-provider
Penyepaduan OpenCode natif
🤖 VS Code Copilot Chat
pasang sambungan OmniCopilot
Setiap model OmniRoute dalam pemilih Copilot Chat natif — stabil & Insiders
### 🧩 Baharu: OmniRoute dalam Copilot Chat natif VS Code
> Tiada bar sisi baharu, tiada UI sembang baharu — setiap model yang disediakan oleh OmniRoute muncul terus dalam
> **pemilih model Copilot Chat yang telah anda gunakan**. Sejak VS Code 1.122, model penyedia berfungsi
> tanpa log masuk GitHub atau langganan Copilot — mod ejen, panggilan alat dan penglihatan, secara
> percuma.
Pasang sambungan **[OmniCopilot](https://github.com/diegosouzapw/OmniCopilot)**, halakannya
ke pelayan OmniRoute anda (lalai kepada `localhost:20128`), kemudian buka Copilot Chat → pemilih model
→ **Urus Model…** → **OmniRoute**.
Dari dalam editor: buka paparan **Sambungan**, cari **"OmniRoute"**, klik **Pasang**
— berfungsi dengan cara yang sama pada kedua-dua gedung. Kod sumber, isu dan panduan penerbitan tersedia di
[diegosouzapw/OmniCopilot](https://github.com/diegosouzapw/OmniCopilot).
📖 [Panduan VS Code Copilot Chat](docs/guides/VSCODE-COPILOT.md) — persediaan, perkara yang dipaparkan oleh pemilih, papan pemuka dalam tab, penyelesaian masalah
### 🎩 Baharu: OmniRouteTray — gerbang anda yang berada dalam bar menu
> `omniroute serve` berfungsi paling baik apabila sentiasa aktif. **[OmniRouteTray](https://github.com/zoispag/omniroute-tray)**
> mengubahnya menjadi aplikasi bar menu tetapkan-dan-lupakan untuk macOS: ia memulakan pelayan, memastikannya terus berjalan
> selepas but semula, mengemas kininya di tempat yang sama dan membolehkan anda mengakses belanjawan token semasa dengan satu klik — **tanpa
> membiarkan tetingkap terminal terbuka, tanpa perlu menjaga `npm install -g omniroute`.**
Dibina dengan [Tauri v2](https://v2.tauri.app/) (teras Rust yang sangat kecil), ia disertakan
dengan masa jalan Node 24 bertandatangan sendiri dan mengurus pemasangan OmniRoute milik aplikasi, jadi ia tidak akan berkonflik dengan
`node`/`bun` global anda. Ia **berkongsi konfigurasi dan pangkalan data `~/.omniroute/` sedia ada anda** — jadi ia ialah
OmniRoute yang sama yang telah anda jalankan, cuma kini memakai topi. 🎩
Fungsinya
Caranya
🟢 Menyelia pelayan
Melancarkan omniroute serve, menggunakan tika yang telah berjalan dan bukannya menduplikasikannya
📊 Penggunaan semasa sepintas lalu
Bar kuota penyedia, had sesi/mingguan Claude dengan kiraan detik tetapan semula, pecahan kos 30 hari
🔄 Kemas kini automatik di tempat yang sama
Pemasangan berperingkat, pertukaran atomik, pengembalian semula jika gagal — sentiasa menggunakan keluaran terbaharu
🚀 Mulakan semasa log masuk
Pelancaran pilihan semasa log masuk; dulang sahaja, tanpa ikon dok
🩺 Diagnosis & log
Diagnostik satu klik dan akses kepada log pelayan
```sh
brew install --cask zoispag/tap/omniroute-tray
```
Lebih suka memuat turun? Dapatkan .dmg terkini daripada
Keluaran. Kod sumber, isu dan dokumentasi binaan
tersedia di zoispag/omniroute-tray.
💛 Projek komuniti oleh @zoispag — bukan keluaran rasmi OmniRoute.
> Selain pelayan, OmniRoute ialah **kokpit baris perintah lengkap** dengan **80+ perintah**, serta protokol ejen terbuka supaya ejen AI boleh mengendalikannya **secara kendiri**.
### ⌨️ CLI sebenar (bukan sekadar `start`)
```bash
omniroute # sediakan get laluan + papan pemuka (port 20128)
omniroute chat # klien sembang TUI interaktif (garis condong: /model /combo /skill /memory)
omniroute setup # bestari penggunaan kali pertama berpandu
omniroute doctor # diagnosis penyedia, port, kebergantungan natif
```
### 🛰️ Mod jauh — jalankan CLI di sini, OmniRoute pada VPS
OmniRoute berada pada pelayan? Kendalikannya daripada komputer riba anda menggunakan **CLI yang sama**. Log masuk sekali
dengan token akses berskop; selepas itu, setiap perintah akan menyasarkan pelayan jauh.
```bash
omniroute connect 192.168.0.15 # kata laluan → token berskop, disimpan sebagai konteks
omniroute models # ← dijalankan pada pelayan JAUH
omniroute configure codex # ← memilih model jauh, menulis profil Codex setempat
omniroute tokens create --name ci --scope read # jana token yang lebih terhad untuk mesin lain
omniroute contexts use default # ← bertukar kembali kepada pelayan setempat
```
Token mempunyai skop `read` / `write` / `admin`; laluan yang mencetuskan proses kekal terhad kepada gelung balik sahaja.
📖 [Mod Jauh](docs/guides/REMOTE-MODE.md)
### 🤝 Sambungkan ejen — dan ia mengawal OmniRoute sendiri
Dedahkan OmniRoute melalui **MCP**, **A2A**, **REST API**, **webhooks** atau **CLI jauh** — mana-mana ejen yang berkeupayaan (atau kod anda sendiri) memperoleh akses kepada keseluruhan get laluan: penghalaan, penyedia, gabungan, cache, pemampatan, memori — secara autonomi. Titik akhir HTTP di bawah disediakan melalui `http://localhost:20128`.
Antara muka
Titik akhir / perintah
Gunakannya untuk
🧰 MCP (stdio)
omniroute --mcp
Sambungkan kepada Claude Desktop, Cursor atau mana-mana klien MCP
🌊 MCP (HTTP)
/api/mcp/stream
MCP jauh — 110 alat, 33 skop (penguatkuasaan secara ikut serta), jejak audit penuh
📡 MCP (SSE)
/api/mcp/sse
Pengangkutan MCP penstriman
🤝 A2A
/.well-known/agent.json
Ejen-ke-ejen, JSON-RPC 2.0 + SSE, 6 kemahiran
🌐 REST API
/v1/*
Serasi dengan OpenAI — sembang, pembenaman, imej, audio, OCR
🔔 Webhooks
/api/webhooks
Tolak peristiwa permintaan / kuota ke Slack, Discord, Telegram atau mana-mana URL
🛰️ CLI Jauh
omniroute connect
Kendalikan tika jauh menggunakan token akses berskop
```bash
# Berikan Claude Code set alat OmniRoute lengkap melalui MCP:
claude mcp add-server omniroute --type http --url http://localhost:20128/api/mcp/stream
```
📖 [Pelayan MCP](docs/frameworks/MCP-SERVER.md) · [Pelayan A2A](docs/frameworks/A2A-SERVER.md) · [Protokol Ejen](docs/frameworks/AGENT_PROTOCOLS_GUIDE.md)
## 🗜️ Jimat 15–95% Token — Secara Automatik
### 📖 Cara ia berfungsi — pipeline, seni bina & matematik penjimatan
Kombo bertindan lalai menjalankan `RTK → Caveman`. Apabila kedua-duanya bertindak ke atas muatan alat/konteks yang sama, penjimatan berganda:
```txt
combined = 1 − (1 − RTK) × (1 − Caveman_input)
average = 1 − (1 − 0.80) × (1 − 0.46) = 89.2%
range = 78.4 – 94.6%
```
Blok kod, URL, JSON dan data berstruktur **sentiasa dilindungi** oleh enjin pemeliharaan.
> **Mengapa guna banyak token sedangkan sedikit token sudah memadai?** Setiap permintaan melalui pipeline mampatan OmniRoute **secara telus** — tanpa perubahan pada klien. Kini ia merupakan **timbunan 12 enjin boleh kompos** yang berjalan mengikut urutan dan boleh dicampur & dipadankan mengikut kombo penghalaan — dibina atas idea daripada [RTK](https://github.com/rtk-ai/rtk), [Caveman](https://github.com/JuliusBrussee/caveman) (⭐ 90K+), [LLMLingua-2](https://github.com/microsoft/LLMLingua), dan [Troglodita](https://github.com/leninejunior/troglodita) (PT-BR).
### 🧱 Timbunan 12 enjin
Enjin berjalan mengikut urutan pipeline; setiap satu boleh dihidupkan/matikan secara bebas dan dikonfigurasikan mengikut kombo:
#
Enjin
Apa yang dilakukannya
1
Session-Dedup
Menggugurkan kandungan yang berulang merentas giliran (beralamat kandungan, merentas giliran)
2
CCR
Mengarkibkan blok besar di sebalik penanda ambil semula, diambil mengikut permintaan
3
Lite
Pemangkasan ruang putih + URL imej (asas ringan latensi)
4
RTK
Penapisan hasil alat pintar, nyahdup & pemotongan (sedar-arahan)
Pemadatan jadual tanpa kehilangan bagi tatasusunan JSON (~30%) melalui codec GCF yang divendor
7
Relevance
Pemarkahan ayat ekstraktif berbanding pertanyaan pengguna terakhir
8
Caveman
Mampatan prosa berasaskan peraturan (~65–75% pada output)
9
Aggressive
Peringkasan + penuaan progresif giliran lama
10
LLMLingua-2
Pemangkasan semantik ML melalui MobileBERT ONNX — selamat-kod, async
11
Ultra
Pemangkasan token heuristik dengan lapisan model kecil (SLM) pilihan
12
OmniGlyph
Pengekodan konteks-sebagai-imej eksperimen untuk Claude Fable 5 yang diukur pada wayar Anthropic langsung; transformer GPT 5.6 kekal gagal-tertutup sementara menunggu resit penyedia. Empat profil mampatan (agresif lalai, seimbang, selamat-pengekodan, passthrough) (paling agresif; pilih masuk)
Blok kod, URL dan data berstruktur **sentiasa dipelihara** dengan sempurna bait demi bait. **Pratetap satu klik** menggabungkan enjin-enjin:
Mod
Penjimatan
Terbaik untuk
🪶 Lite
~15%
Lalai selamat sentiasa aktif
🪨 Standard (Caveman)
~30%
Pengekodan harian
⚡ Aggressive
~50%
Sesi panjang berat alat
🔥 Ultra
~75%
Penjimatan maksimum
🧰 RTK
60–90%
Output shell/ujian/binaan/git
🔗 Stacked (RTK → Caveman)
78–95%
Prompt bercampur + log alat
**Contoh sebenar — Mod standard:**
> **Sebelum (69 token):** _"Sebab komponen React anda render semula kemungkinan besar kerana anda mencipta rujukan objek baharu pada setiap kitaran render. Apabila anda menghantar objek inline sebagai prop, perbandingan cetek React melihatnya sebagai objek berbeza setiap kali, yang mencetuskan render semula. Saya cadangkan menggunakan useMemo untuk mememoikan objek itu."_
>
> **Selepas (19 token):** _"Rujukan objek baharu setiap render. Prop objek inline = rujukan baharu = render semula. Balut dengan useMemo."_
>
> **Jawapan sama. 72% lebih sedikit token. Sifar kehilangan ketepatan.** ✅
**Contoh PT-BR — mod [Troglodita](https://github.com/leninejunior/troglodita):**
> **Sebelum (42 token):** _"Masalahnya ialah komponen ini render semula kerana rujukan objek baharu dicipta pada setiap kitaran render. Saya syorkan guna useMemo."_
>
> **Selepas (12 token):** _"Render semula: rujukan baharu setiap kitaran (objek inline dicipta semula). Guna `useMemo`."_
>
> **Jawapan sama. ~70% kurang token. Ketepatan teknikal terpelihara.** ✅
### 🎚️ Melangkaui enjin — gaya output, dail adaptif & kawalan setiap permintaan
12 enjin di atas mengecilkan apa yang **masuk**. Tiga lapisan lagi membentuk **bagaimana**, **bila**, dan apa yang **keluar**:
- **🪄 Gaya Output** _(pemanduan paksi output)_ — suntik arahan pembentuk respons yang deterministik dan selamat cache; boleh digabungkan, setiap satu pada intensiti `lite` / `full` / `ultra`. Menambah gaya ialah satu entri pendaftaran satu baris:
- **Prosa ringkas** — buang pengisi / kata sandang / bahasa berlapik; kekalkan inti teknikal tepat.
- **Kurang kod** — YAGNI "pembangun senior malas": perubahan berfungsi terkecil, tiada perancah yang tidak diminta.
- **Ponytail (pembangun senior malas)** — naiki tangga YAGNI, betulkan punca akar, diff berfungsi terkecil.
- **Saya ada ADHD (tindakan dahulu)** — tindakan seterusnya mendahului, langkah bernombor, satu langkah seterusnya yang konkrit, tiada mukadimah.
- **CJK ringkas (文言)** — gaya Cina klasik ultra-ringkas (dihadkan mengikut lokasi kepada `zh`).
- **🎯 Bajet konteks adaptif** _(dail)_ — daripada satu ambang token hidup/mati, tingkatkan enjin paling murah dan paling tidak kehilangan hanya setakat yang perlu untuk **muat dalam tetingkap konteks model**. Dasar: `reserve-output` (lalai, sedar model) · `percentage` · `absolute`. Mod: `floor` (jamin muat) · `replace-autotrigger` (pilihan eksplisit anda menang) · `off` (ambang legasi).
- **🎛️ Di mana pemampatan diputuskan** _(keutamaan, tinggi → rendah)_ — pengepala `x-omniroute-compression` setiap permintaan › penggantian kombo penghalaan › profil bernama aktif › adaptif / pencetus automatik › lalai panel › mati. Pelan yang digunakan dipantulkan semula dalam pengepala respons `X-OmniRoute-Compression: ; source=`.
Cetus automatik mengikut ambang token, hidupkan dail adaptif, sematkan profil bernama, tetapkan sekali sahaja setiap permintaan, atau tetapkan saluran paip setiap kombo penghalaan — mana-mana yang sesuai dengan beban kerja. **Harness eval** luar talian pilihan masuk (`npm run eval:compression`) menilai kesetiaan berbanding penjimatan pada korpus tersemat sebelum anda mempromosikan perubahan.
📖 [`COMPRESSION_GUIDE.md`](docs/compression/COMPRESSION_GUIDE.md) · [`RTK_COMPRESSION.md`](docs/compression/RTK_COMPRESSION.md) · [`COMPRESSION_ENGINES.md`](docs/compression/COMPRESSION_ENGINES.md)
# ⚡ Mula Pantas
**1) Pasang & jalankan**
```bash
npm install -g omniroute
omniroute
```
> 💡 Nampak `npm warn ERESOLVE` atau amaran peer-dep? [Ia tidak berbahaya](docs/guides/TROUBLESHOOTING.md#npm-install-warnings-eresolve--peer--deprecated).
> **Guna npm 11 atau lebih baharu?** npm mungkin menyekat skrip kitaran hayat pakej melainkan dibenarkan. `postinstall` OmniRoute (`node scripts/build/postinstall.mjs`) diperlukan untuk menyediakan fail masa jalan aslinya. Benarkan pakej yang dinamakan dalam amaran npm semasa memasang secara global. Untuk set pakej yang dilaporkan oleh OmniRoute 3.8.53:
>
> ```bash
> npm install -g --allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild omniroute
> ```
>
> Untuk menggunakan semula senarai kebenaran ini bagi pemasangan global akan datang, konfigurkannya sekali, kemudian pasang seperti biasa:
>
> ```bash
> npm config set allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild --location=user
> npm install -g omniroute
> ```
>
> Senarai kebergantungan boleh berubah antara keluaran; jika npm melaporkan senarai berbeza, gunakan nama pakej daripada amaran itu. Membenarkan pakej membolehkan skrip pemasangannya dijalankan.
> **Guna Gemini Web atau penyedia kuki web lain?** Pakej npm termasuk Playwright tetapi bukan binari Chromiumnya. Lihat nota [persediaan Playwright Chromium](docs/guides/TROUBLESHOOTING.md#gemini-web-and-playwright-chromium) sebelum membuat permintaan penyedia web pertama.
Papan pemuka di `http://localhost:20128` · API di `http://localhost:20128/v1`.
**2) Sambungkan penyedia yang layak menggunakan akaun anda sendiri**
Papan pemuka → **Providers** → pilih penyedia yang terma dan kuota semasanya sesuai dengan kegunaan anda → tambah kunci API-nya atau lengkapkan aliran akaunnya. Peringkat percuma mungkin memerlukan pendaftaran, kelulusan, atau kaedah pembayaran. Semak [Panduan Peringkat Percuma](docs/getting-started/FREE-TIERS-GUIDE.md); ketersediaan tanpa kunci tidak dijamin, dan penyedia bertanda `tos: avoid` dikecualikan daripada `auto` secara lalai.
**3) Halakan alat pengekodan anda**
```txt
Base URL: http://localhost:20128/v1
API Key: [copy from Dashboard → Endpoints]
Model: auto (routes among eligible connections — or choose provider/model)
```
**4) Sahkan ia berfungsi**
```bash
curl http://localhost:20128/v1/models -H "Authorization: Bearer YOUR_KEY"
```
Anda sepatutnya melihat model yang disambungkan tersenarai. 🎉 Itu sahaja — mula mengekod, dan OmniRoute menghalakan secara automatik & membuat sandaran untuk anda.
Jika klien anda tidak dapat menghantar pengepala tersuai, OmniRoute juga menyediakan alias keserasian bertoken:
```txt
OpenAI catalog: http://localhost:20128/vscode/YOUR_KEY/
OpenAI models: http://localhost:20128/vscode/YOUR_KEY/models
OpenAI chat: http://localhost:20128/vscode/YOUR_KEY/chat/completions
OpenAI responses: http://localhost:20128/vscode/YOUR_KEY/responses
Ollama chat: http://localhost:20128/vscode/YOUR_KEY/api/chat
Ollama tags: http://localhost:20128/vscode/YOUR_KEY/api/tags
```
Gunakan ini hanya untuk klien yang tidak dapat melampirkan `Authorization: Bearer ...`. Pengesahan melalui pengepala kekal sebagai mod pilihan.
## 📦 Lebih banyak kaedah pemasangan — Docker, sumber, 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` mengikuti versi stabil SemVer **yang diterbitkan** tertinggi. Ia tidak menjejaki `main` git. Tetapkan `:X.Y.Z` untuk GitOps. Lihat [Saluran Keluaran Docker](docs/guides/DOCKER_GUIDE.md#release-channels). Imej tersebut menetapkan **`OMNIROUTE_MEMORY_MB=1024`**. Itu mencukupi untuk papan pemuka dan sembang ringan. **Ejen pengekodan** (`POST /v1/responses` daripada Claude Code, Codex, Grok, …) memerlukan heap V8 yang jauh lebih besar atau proses akan mengalami `FATAL ERROR` pada sekitar 12 GiB apabila dua konteks panjang bertindih. Saizkan bekas melebihi heap (penimbal natif berada di luar V8):
| Beban kerja | Heap (`-e OMNIROUTE_MEMORY_MB`) | Bekas (`--memory`) |
| ------------------------------------ | ------------------------------- | ------------------ |
| Papan pemuka / sembang ringan | `1024` (lalai imej) | ≥2 g |
| Satu ejen pengekodan | `8192` | ≥10 g |
| Dua `/v1/responses` panjang serentak | `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
```
Jadual penuh: [Panduan Docker — RAM masa jalan](docs/guides/DOCKER_GUIDE.md#runtime-ram-for-coding-agents).
> **Saluran Docker prakeluaran:** `diegosouzapw/omniroute:next` dan
> `diegosouzapw/omniroute:next-web` mengikuti cabang `release/v*` lalai semasa.
> Tag boleh ubah ini hanya bertujuan untuk menguji pembaikan yang belum dikeluarkan dan
> **tidak disokong untuk penggunaan produksi**. Lihat
> [Saluran Keluaran Docker](docs/guides/DOCKER_GUIDE.md#release-channels).
**🥟 Bun**
`bun install` standard dan pemasangan global (`bun install -g omniroute`) disokong melalui pengesanan masa jalan Bun:
- **`bun:sqlite` terbina dalam**: OmniRoute menggunakan pemacu `bun:sqlite` terbina dalam Bun apabila dijalankan di bawah Bun, dengan kembali menggunakan `better-sqlite3` pada Node.js atau `sql.js`.
- **Pemilihan pembundel Webpack secara automatik dalam pembangunan**: Pembangunan (`bun run dev`) mengesan Bun secara automatik dan menyahdayakan Turbopack untuk menggunakan Webpack bagi mengelakkan ketidakserasian pengikatan V8 natif. Binaan produksi (`bun run build`) mengikuti `OMNIROUTE_USE_TURBOPACK` sama seperti pada Node: Turbopack secara lalai, `OMNIROUTE_USE_TURBOPACK=0` untuk membina dengan Webpack (`Dockerfile.bun` menyediakannya sebagai `--build-arg`).
- **Dockerfile Bun khusus**: `Dockerfile.bun` berbilang peringkat untuk pelaksanaan produksi Bun natif (`docker build -f Dockerfile.bun -t omniroute:bun .`).
```bash
# Pasang dan jalankan dengan Bun
bun install
bun run dev
```
**🛠️ Daripada sumber**
```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
# Menggunakan Nix flakes
nix develop
npm run dev
# Atau menggunakan devbox
devbox run npm run dev
```
📖 [Panduan Docker](docs/guides/DOCKER_GUIDE.md) — Profil Compose, HTTPS Caddy, terowong Cloudflare.
**🦭 Podman**
```bash
# 1. Sediakan direktori data yang dilekapkan melalui bind
mkdir -p data
# 2. Linux + Podman rootless tempatan sahaja (jangan sekali-kali gunakan klien Podman Machine jauh):
podman unshare chown 1000:1000 ./data
# 3. Tetapkan petunjuk masa jalan, bina imej Compose tempatan dan mulakan
echo "CONTAINER_HOST=podman" >> .env
podman compose --profile base up -d --build
```
Pada macOS atau Windows, Podman menggunakan Podman Machine jauh: langkau `podman unshare` dan
ikuti [panduan direktori data khusus topologi](contrib/podman/README.md#data-directory-permissions-by-topology).
📖 [Panduan Podman](contrib/podman/README.md) — Binaan Compose, Podman Machine dan
persediaan Quadlet Linux/systemd.
**⚡ Pemasangan lebih pantas / ringan (langkau binaan natif)**
Enjin SQLite natif (`better-sqlite3`) ialah kebergantungan **pilihan**, jadi pemasangan
global tidak akan tersekat kerana pengkompilan daripada sumber: ia menggunakan binari prabina apabila
tersedia yang sepadan dengan platform/Node anda, dan jika tidak, akan beralih secara telus kepada enjin JavaScript tulen
(`node:sqlite` pada Node 22+, jika tidak, WASM `sql.js` yang disertakan) — tiada alat binaan diperlukan.
Untuk melangkau sepenuhnya pemanasan natif selepas pemasangan (CI, tanpa paparan atau mesin perlahan):
```bash
OMNIROUTE_SKIP_POSTINSTALL=1 npm install -g omniroute # CI=1 turut melangkaunya
```
Untuk pemasangan terpantas, utamakan **pnpm** (storan beralamat kandungan + pautan keras — lihat di atas).
Untuk masa jalan tanpa papan pemuka dan tanpa paparan, gunakan profil Docker `base` (di atas) atau
[Panduan Termux](docs/guides/TERMUX_GUIDE.md). CLI dan papan pemuka web disediakan oleh
proses yang sama pada satu port, jadi buat masa ini tiada pakej CLI sahaja yang berasingan.
Strategi liputan ujian untuk lebih 56,000 pengisytiharan ujian statik merentasi lebih 7,800 fail ujian yang dijejaki
# ⭐ Penyumbang Teratas
> OmniRoute dibentuk oleh komuniti sumber terbuka yang bersemangat. Individu-individu ini telah memberikan sumbangan luar biasa yang memberi kesan langsung terhadap kualiti, kestabilan dan jangkauan projek. **Terima kasih.**
### Penyumbang luar mengikut permintaan tarik yang digabungkan
Bancian dilakukan pada 2026-10-18 15:09:09 UTC menggunakan hujung langsung release/v3.8.52656f01cb43. Bancian GitHub GraphQL berhalaman mengandungi 9,191 PR yang digabungkan: 3,834 oleh pemilik repositori, 229 oleh Dependabot, 6 oleh bot/aplikasi lain dan 5,122 PR luar daripada 835 penyumbang berbeza. “Baris diubah” ialah penambahan + pemadaman GitHub dan merangkumi fail yang dijana, fail kunci, katalog, terjemahan serta dokumentasi; angka ini mewakili kadar perubahan, bukannya LOC yang dikarang. Sebanyak 49 PR melaporkan diff GitHub melebihi 500,000 baris (contohnya #13399, penambahan satu penyedia, menyenaraikan 2,347 fail yang diubah), yang meningkatkan beberapa jumlah di atas. Kedudukan yang seri disenaraikan bersama.
### Komit yang dikaitkan oleh GitHub
Disemak semula pada 2026-10-18 14:44:45 UTC: Komit yang dikaitkan dengan GitHub seperti yang dilaporkan oleh API Penyumbang repositori untuk cabang lalai release/v3.8.52. API tersebut mengembalikan 849 identiti (429 pengguna, 2 bot, 418 tanpa nama); jadual ini tidak merangkumi penyelenggara, bot dan identiti tanpa nama serta mengekalkan kedudukan seri. Jadual ini berbeza daripada kedua-dua kedudukan PR tergabung di atas dan bancian metadata Git di bawah.
> 🙏 Ciri, pembetulan pepijat dan penambahbaikan infrastruktur oleh para penyumbang ini merupakan **bahagian teras** yang menjadikan OmniRoute andal dan kaya dengan ciri. Setiap permintaan tarik, setiap kes ujian dan setiap fail terjemahan i18n adalah penting. Sumber terbuka dibina oleh insan seperti mereka.
---
## 💖 Penaja
Setinggi-tinggi penghargaan kepada mereka yang membiayai OmniRoute daripada poket sendiri — setiap sumbangan memastikan projek ini kekal percuma, bebas dan terus berkembang.
… dan mereka yang lain yang memilih untuk kekal tanpa nama 💛Penaja GitHub awam disahkan semula pada 2026-10-18 melalui API GraphQL GitHub Sponsors: 11 tajaan awam (6 aktif, 5 terdahulu) daripada jumlah keseluruhan 14. Status isActive GitHub menentukan label aktif di atas; penyokong sekali bayar awam terdahulu terus diberikan penghargaan, manakala penaja persendirian kekal tanpa nama. Sumbangan melalui Ko-fi, Buy Me a Coffee, Liberapay, PIX dan mata wang kripto tidak disenaraikan kerana tiada rekod penaja awam.💖 Jadi penaja → — setiap dolar memastikan OmniRoute kekal percuma dan bebas.
## 👥 900+ Penyumbang
[](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)
Diaudit pada 2026-10-18 pada hujung langsung release/v3.8.52ad160ab2d1 (6,826 komit): 993 identiti Git manusia yang dinormalkan — 707 muncul sebagai pengarang komit (termasuk penyelenggara) dan 286 hanya dalam treler Co-authored-by yang jelas. Banci ini menggunakan .mailmap, membandingkan alamat e-mel tanpa mengira huruf besar atau kecil, menggabungkan alamat noreply GitHub berangka dan biasa hanya apabila kedua-duanya mengekodkan nama pengguna yang sama, mengecualikan 26 identiti bot/ejen/perkhidmatan/ruang letak, dan tidak menggabungkan alamat e-mel biasa hanya kerana nama paparan mereka sepadan. Audit 2026-08-24 menerbitkan angka 639; kaedah ini yang dijalankan semula pada asas audit tersebut, ac02c5b42f, menghasilkan 619, jadi peningkatan ini datang daripada penyumbang baharu, bukan daripada kaedah yang lebih longgar.
### Cara Menyumbang
1. Fork repositori
2. Cipta cabang daripada hujung `release/vX.Y.Z` yang **aktif** (bukan `main`) — lihat [Model Percabangan & Keluaran](docs/ops/BRANCHING_MODEL.md)
3. Cipta cabang ciri anda (`git checkout -b feat/amazing-feature`)
4. Komit perubahan anda (`git commit -m 'feat: add amazing feature'`)
5. Tolak ke cabang tersebut (`git push origin feat/amazing-feature`)
6. Buka Pull Request dengan **base = cabang `release/vX.Y.Z` tersebut**
Lihat [CONTRIBUTING.md](CONTRIBUTING.md) untuk garis panduan terperinci.
### Mengeluarkan Versi Baharu
```bash
# Cipta keluaran — npm publish berlaku secara automatik
VERSION=x.y.z
gh release create "v${VERSION}" --title "v${VERSION}" --generate-notes
```
## 📊 Bintang
## 🌍 StarMapper
## 🙏 Penghargaan
OmniRoute dibangunkan berasaskan hasil usaha gergasi terdahulu. Ia bermula sebagai cabang daripada **[9router](https://github.com/decolua/9router)** dan port TypeScript bagi projek Go **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** — dan seterusnya, setiap subsistem di bawah diilhamkan oleh projek sumber terbuka yang terlebih dahulu menerokai bidang tersebut. Setiap satunya membentuk bahagian nyata dalam OmniRoute. Inilah tanda penghargaan kami kepada mereka semua. 🙏
> ⭐ bilangan bintang disahkan melalui REST API GitHub pada 18 Oktober 2026 — berikan bintang kepada projek-projek ini. Bilangan tersebut ialah gambaran tepat pada tarikh berkenaan dan semestinya akan berubah.
### 🧬 Asal-usul & get laluan
Get laluan AI yang set data harga awamnya membekalkan penyegerakan penjejakan kos kami dan model penormalan penyedianya menjadi rujukan bagi penghalaan kami.
Sumber MIT yang disesuaikan ke dalam jambatan ChatGPT Web → Codex Responses yang disertakan, termasuk penyesuai sesi pelayar, pembingkaian respons, penggunaan dan carian web.
Corak yang diport ke dalam pemulihan strim, alias tanpa penaakulan, carian web sandaran, had tetingkap gelongsor, penyuntingan log dan aliran pelancar yang diperkukuh.
Tetapan lalai transformasi yang serasi dengan Claude Code dan tingkah laku pengepala pengebilan yang digeneralisasikan ke dalam jambatan berpacukan konfigurasi OmniRoute.
Pemetaan model Grok, penjana Statsig TypeError palsu, tetapan lalai permintaan dan peranti, serta pemproses respons NDJSON miliknya telah disesuaikan secara ketara ke dalam pelaksana Grok Web OmniRoute.
Sumber kod transitif utama di sebalik grok2api-merged; pelaksanaan model, pengepala, muatan, Statsig dan pemprosesnya dikekalkan dalam asal-usul Grok Web.
Sumber MIT asas bagi muatan Grok dan tetapan lalai peranti, penjana Statsig serta pemproses result.response yang diwarisi melalui TQZHR dan grok2api-merged.
Sumber transitif yang diiktiraf oleh grok2api-merged bagi lapisan himpunan proksinya; OmniRoute mengekalkan notis asal-usul tersebut tetapi tidak mendakwa adanya port himpunan proksi dalam pelaksana Grok Web yang dibataskan.
Pelaksanaan asal Grok Web merujuk reka bentuk huluan HTTP/pelayarnya; laluan HTTP langsungnya berasal daripada GrokProxy, maka tiada dakwaan dibuat tentang port kod yang berasingan.
Projek tular "mengapa guna banyak token apabila sedikit token sudah memadai" — falsafah bahasa manusia guanya menjadi asas mod pemampatan standard kami serta lebih 30 peraturan pembuangan pengisi/pemadatan.
Penyelidikan pemampatan gesaan (LLMLingua / LLMLingua-2) — menginspirasikan enjin llmlingua kami yang tak segerak, selamat untuk kod dan terus berfungsi sekiranya berlaku kegagalan.
Pemampatan token PT-BR — menjadi asas pek bahasa pt-BR kami: pengurangan pleonasme dan pembuangan pengisi yang ditala untuk tatabahasa Portugis Brazil.
Kemahiran pengekod YAGNI "pembangun kanan yang malas" yang tular — menginspirasikan Gaya Output less-code kami: panduan perubahan terkecil yang berfungsi untuk mengurangkan kod yang _dijana_ (saudara pada paksi output kepada prosa ringkas Caveman).
Pemampatan output peka kandungan mengikut jenis fail dengan pembatalan yang mengambil kira kegagalan — mengesahkan penghantaran mengikut jenis dan pelangkauan apabila keuntungan minimum kami tidak dicapai.
JSON berkolum Rust + pengambilan semula beralamatkan kandungan + penyahduplikasian merentas mesej — mengesahkan reka bentuk enjin headroom/ccr/session-dedup kami dan invarian mesra kestabilan cache "bentuk termampat tidak bergantung pada kedudukan".
Kit alat API Pengkompil TypeScript — menginspirasikan pembuangan komen berasaskan penghurai kami yang mengekalkan literal rentetan, templat dan ungkapan nalar.
Pemintasan/analisis MITM terhadap trafik pembantu pengekodan ↔ LLM menjadi asas kepada keperluan awal Pemeriksa Trafik. Empat modul yang diperoleh sebelum ini — penggabungan SSE, penormalan perbualan, penyamaran rahsia dan sanitasi pengepala — telah digantikan dengan pelaksanaan bilik bersih yang bebas berdasarkan piawaian protokol awam. Dua permukaan laluan terus hos (passthrough.ts dan _internal/bypass.cjs) kekal sebagai pelaksanaan dalaman OmniRoute yang dikelaskan secara berasingan; kedua-duanya tidak ditulis semula sebagai sebahagian daripada penggantian tersebut.
Penghalaan proksi telus bagi setiap proses — mengilhamkan penamatan MITM kami yang selamat ketika ranap, tamat masa melahu soket, atribusi proses /proc dan tangkapan TPROXY.
Senarai pustaka selamat secara lalai yang disusun rapi dan menjadi panduan kepada pilihan keselamatan kami (Helmet.js, DOMPurify, ssrf-req-filter, safe-regex, Google Tink).
Pemetaan semula modelnya yang mengambil kira akaun, pengesahan laluan boleh laku dan gelagat label pelan menjadi asas kepada masa jalan Antigravity OmniRoute.
Mengenal pasti permukaan kuota Grok Build; OmniRoute kemudiannya mengesahkan dan membetulkan format wayar langsung secara bebas.
## 📄 Lesen
Lesen MIT - lihat [LICENSE](LICENSE) untuk butiran.
---
**[⬆ Kembali ke atas](#-omniroute)** · Dibina dengan ❤️ untuk komuniti AI sumber terbuka.
OmniRoute v3.8.53 · Node ≥22.22.2 · Lesen MIT · omniroute.online