> Menggabungkan peringkat percuma secara manual amat menyusahkan — berpuluh-puluh SDK, berpuluh-puluh had kadar, dan anda tidak tahu jumlah sebenar yang anda miliki. OmniRoute mengkatalogkan **489 entri peringkat percuma merentasi 35 kunci himpunan berulang** dan mengira angka token utama daripada **17 himpunan dengan bajet bulanan positif yang diterbitkan serta lima had Groq bagi setiap model**, dinyahduplikasi mengikut himpunan dikongsi. Kuota yang hanya dibuka selepas semakan identiti serantau (kini: ModelScope) dipaparkan secara berasingan, +~6M di sebalik pengesahan identiti serantau, dan tidak pernah dijumlahkan ke dalam angka utama. Hasilnya sentiasa dipaparkan pada papan pemuka (`/dashboard/free-tiers`).
> Ringkasan beranimasi bagi halaman langsung `/dashboard/free-tiers`. Metodologi penuh (penyahduplikasian himpunan, peringkat kredit, terma penyedia): **[docs/reference/FREE_TIERS.md](docs/reference/FREE_TIERS.md)**.
>
> Angka ini diaudit semula setiap dua minggu berdasarkan katalog langsung dan **boleh berubah dalam kedua-dua arah** — apabila penyedia menamatkan peringkat percuma, angkanya menurun; apabila penyedia baharu ditambahkan, angkanya meningkat. Kami menerbitkan nilai yang benar-benar dikira oleh katalog, bukan senario terbaik yang dibundarkan ke atas.
⭐ Berikan bintang kepada repositori ini 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 penyelenggara — dapatkan maklumat tentang penyedia baharu, keluaran & petua 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, petua penyedia, pelan hala tuju & 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
| | v3.8.49 | **v3.8.50** | `v3.8.51+` |
| ------------------------- | :-----: | :----------------------------: | :------------------: |
| 🌐 Penyedia | 290 | **357** | lebih banyak menanti |
| 🧠 ID model sembang unik | 1185 | **1312** | — |
| 🖼️ Jambatan Modaliti | — | 🆕 penglihatan + audio + video | — |
| 📡 Katalog percuma Radar | — | 🆕 ikut serta | — |
| ⚖️ Penjadualan peka kuota | — | 🆕 Quota-Share | — |
| 📊 Telemetri kuota | — | 🆕 masa nyata | — |
**→ [Pelan Hala Tuju](ROADMAP.md) — menuju ke `v3.9.0 LTS`**
## 🆓 Berfungsi sebaik sahaja anda memasangnya — tiada kunci, tiada konfigurasi
```bash
# Pemasangan baharu, sifar kelayakan — `auto` sudah berfungsi:
curl http://localhost:20128/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"auto","messages":[{"role":"user","content":"Hello!"}]}'
```
Lebih suka backend percuma yang spesifik? Panggil `oc/…` (OpenCode Free) secara langsung. Kemudian tingkatkan kepada `auto` dan biarkan OmniRoute memilih.📦 Skrip permulaan pantas salin-tampal untuk **Python, Node.js, PHP, dan cURL** → [`examples/quickstart/`](examples/quickstart/)
# 💥 Janji
# 🤔 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 dihalakan oleh OmniRoute 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 salah satu variannya) dan OmniRoute membina kombo maya daripada penyedia yang anda sambungkan, dengan pemarkahan secara langsung:
ID Model
Perkara yang dioptimumkan
auto
🎯 Lalai seimbang (LKGP — kekal dengan penyedia baik terakhir anda)
auto/coding
🧑💻 Pemberat yang mengutamakan kualiti untuk penjanaan kod
auto/fast
⚡ Kependaman terendah didahulukan
auto/cheap
💰 Kos termurah bagi setiap token didahulukan
auto/offline
🔋 Ruang lebihan kuota / had kadar terbesar didahulukan
auto/smart
🔭 Mengutamakan kualiti + 10% penerokaan untuk menemukan model yang lebih baik
auto/lkgp
📌 Kekekalan eksplisit pada penyedia baik terakhir yang diketahui
auto/chaos
🧪 Pemberat suntikan kegagalan untuk pengujian daya tahan (kejuruteraan huru-hara)
##
### 🔀 Atau bina sendiri — 19 strategi penghalaan
Kesemua **19** strategi — campur dan padankan bagi setiap langkah kombo:
#
Strategi
Fungsinya
1
priority
Senarai tersusun dengan sasaran pertama didahulukan — habiskan setiap sasaran sebelum beralih kepada sasaran seterusnya 🥇
2
fill-first
Isi kuota setiap sasaran sepenuhnya sebelum beralih
3
weighted
Pemilihan rawak berwajaran berdasarkan pemberat setiap sasaran
4
round-robin
Bergilir-gilir melalui sasaran mengikut urutan
5
p2c
Pengimbangan beban rawak menggunakan kuasa dua pilihan
6
least-used
Pilih sasaran dengan beban semasa 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 langsung 💸
10
headroom
Pilih sasaran dengan baki kuota terbanyak
11
reset-window
Utamakan sasaran yang tetingkap kuotanya akan ditetapkan semula paling awal
12
reset-aware
Susun mengikut masa tetapan semula kuota — tetingkap pendek didahulukan 📊
13
context-relay
Serahkan konteks merentas sasaran untuk perbualan panjang 🧠
14
context-optimized
Pilih padanan terbaik untuk saiz konteks semasa
15
cache-optimized
Tambat setiap awalan prom boleh guna semula kepada akaun yang sama — maksimumkan hit cache prom 🎯
16
lkgp
Laluan Baik Terakhir yang Diketahui — menambat kepada penyedia terakhir yang berjaya, kemudian kembali kepada peraturan jika perlu
17
auto
Pemarkahan langsung berdasarkan 16 faktor merentas setiap sambungan 🤖
18
fusion
Edarkan kepada panel model + seorang pengadil mensintesis satu jawapan 🧬
19
pipeline
Rantaikan langkah — output setiap sasaran disalurkan kepada sasaran seterusnya 🔗
Enjin Auto-Combo menilai 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 Ketahanan](docs/architecture/RESILIENCE_GUIDE.md)
## 🏆 Apa yang Membezakan 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)**.
## ✨ Perkara Baharu
> Sorotan terkini daripada **v3.8.20 → v3.8.50**. Sejarah penuh dalam [`CHANGELOG.md`](CHANGELOG.md).
- **🎛️ OmniConductor** — delegasi A2A masuk kepada armada ejen anda, kemahiran Conductor pada Agent Card, dan panel papan pemuka dengan sembang suara tekan-untuk-bercakap Faro. → [Pelayan A2A](docs/frameworks/A2A-SERVER.md)
- **🛂 Kemasukan adaptif & perlindungan beban lampau** — permintaan sembang berat dimasukkan ke dalam baris gilir dan bukannya menghasilkan ralat 503, dengan pajakan bergulir RPM atomik bagi setiap sambungan. → [Panduan Ketahanan](docs/architecture/RESILIENCE_GUIDE.md)
- **🗂️ Susunan kanonik `/v1/models`** — satu blok berterusan yang dikumpulkan mengikut penyedia bagi setiap penyedia (kombo disematkan dahulu), stabil merentas setiap sumber katalog. → [Rujukan API](docs/reference/API_REFERENCE.md)
- **🗜️ Pengukuhan pemampatan** — pelindung inflasi yang diaktifkan secara lalai, pek Caveman untuk DE / FR / JA + bahasa Cina (wényán), penapis RTK untuk Gradle & .NET. → [Pemampatan](docs/compression/COMPRESSION_ENGINES.md)
- **💸 Kos kadar tetap yang telus** — penyedia langganan / pelan pengekodan memaparkan kos **$0** dalam analitik kos; anggaran belanjawan, kuota & penghalaan diteruskan. → [Rujukan API](docs/reference/API_REFERENCE.md)
- **⚖️ Penghalaan Quota-Share** — bahagikan kuota akaun bersama secara adil antara kekunci terkumpul, sambil mengekalkan penggunaan kerja agar bahagian yang melahu dipinjamkan. → [Panduan Ketahanan](docs/architecture/RESILIENCE_GUIDE.md)
- **🤖 Persediaan CLI/ejen dengan satu perintah** — 13 perintah `setup-*` berdaftar; `omniroute run` melancarkan 7 CLI (Claude Code, Codex, Aider, Goose, OpenCode, Qwen Code, Gemini CLI); `omniroute configure` menyokong 10 sasaran dengan pemilih penyedia+model interaktif dan kegemaran bagi setiap konteks. → [Integrasi CLI](docs/guides/CLI-INTEGRATIONS.md)
- **🛰️ Mod jauh** — kendalikan OmniRoute jauh menggunakan token berskop (`connect` / `contexts` / `tokens`) + pembantu OAuth `antigravity` untuk pemasangan VPS. → [Mod Jauh](docs/guides/REMOTE-MODE.md)
- **🧭 Penghalaan automatik yang lebih pintar** — kombo `auto/:`, **Fusion** (panel model + penilai), penghalaan peka tugasan, penggantian model / mod / belanjawan USD bagi setiap permintaan. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **🗜️ Pemampatan boleh pasang** — 12 enjin boleh gubah + Compression Studios: LLMLingua-2, Ultra dua peringkat, omniglyph, get kesetiaan bagi setiap langkah, GCF v3.2, editor susun semula melalui seret. → [Pemampatan](docs/compression/COMPRESSION_ENGINES.md)
- **🕵️ Penyahsulitan MITM telus (TPROXY)** — tangkap CLI yang mengabaikan pemboleh ubah persekitaran proksi, dengan CA bagi setiap SNI + pemasang stor amanah. → [MITM/TPROXY](docs/security/MITM-TPROXY-DECRYPT.md)
- **💸 Telemetri kos di mana-mana** — pengepala kos/penggunaan `X-OmniRoute-*` pada setiap titik akhir, pengepala penjimatan cache-HIT, kuota perbelanjaan USD bagi setiap kekunci. → [Rujukan API](docs/reference/API_REFERENCE.md)
- **🧠 Memori yang anda kawal** — dimatikan secara lalai, pengkuantuman vektor int8 secara ikut serta + pelunturan berjenis, `x-omniroute-no-memory` bagi setiap permintaan. → [Memori](docs/frameworks/MEMORY.md)
- **🛡️ Keselamatan** — pelindung suntikan gesaan pada setiap laluan LLM (set ujian red-team), pelindung penyamaran kelayakan secara ikut serta (menyunting kekunci API/rahsia yang bocor dalam kedua-dua arah), carian web DuckDuckGo percuma sebagai pilihan terakhir, dan get log masuk OIDC pilihan untuk papan pemuka (log masuk kata laluan sentiasa kekal tersedia). → [Pelindung](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: video xAI Grok Imagine & Novita AI, ComfyUI, Magnific, Adobe Firefly, Segmind, dan penyedia pertuturan seperti ElevenLabs. → [Rujukan API](docs/reference/API_REFERENCE.md)
- **🌍 Penggunaan & operasi** — proksi songsang `basePath`, pengesanan automatik bahasa pelayar, penjejakan peranti bagi setiap kekunci, amanah 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 pelayar + log masuk OAuth, kad kelas pertama Ollama, Claude Opus 5 & Sonnet 5, perkongsian rasmi Kimi (Code/Web/Moonshot), Zed, Requesty, SenseNova, Yuanbao, Agnes AI… dan **katalog 352 penyedia** yang diperbaharui. → [Penyedia](docs/reference/PROVIDER_REFERENCE.md)
- **📡 Ketelusan penghalaan** — setiap respons membawa pengepala `X-OmniRoute-Decision` yang menyatakan strategi/penyedia/kependaman yang mengendalikannya, strategi kombo `cache-optimized` baharu + faktor Auto-Combo `cacheAffinity` menghalakan permintaan berulang kembali kepada sambungan yang memegang awalan cache, dan titik akhir baca sahaja `/v1/auto-combo/{channel}/candidates` mendedahkan kumpulan calon langsung bagi saluran `auto/*`. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **⚡ Prestasi & infrastruktur setempat** — Redis setempat satu klik, pelaksana geganti Cloudflare Workers / Deno Deploy, Bifrost & Mux sebagai perkhidmatan terbenam yang diselia. → [Perkhidmatan Terbenam](docs/frameworks/EMBEDDED-SERVICES.md)
- **🧩 Turut disertakan** — rangka kerja pemalam + pasaran, rangka kerja kemahiran Omni/Agent/GitHub, integrasi bilik kebal Obsidian (22 alat MCP), API Batch & Files yang serasi dengan OpenAI, cache respons semantik, gamifikasi dengan papan pendahulu, penemuan ejen ACP (15 ejen terbina dalam), eksport log berjadual ke BigQuery, suntikan kerosakan `auto/chaos`, jambatan bot Telegram, pengurus versi dalam aplikasi dan kedudukan penyedia percuma LMArena-ELO. → [Dokumentasi](docs/README.md)
## 🤖 CLI & Ejen Pengekodan yang Serasi
> Satu konfigurasi — `http://localhost:20128/v1` — dan **setiap** IDE atau CLI AI boleh dijalankan menggunakan model percuma & berkos rendah.
+ turut berfungsi dengan · Agent Deck · Kiro · Command Code · Antigravity · Windsurf · AMP · sebarang alat yang serasi dengan OpenAI
📖 Persediaan bagi setiap alat untuk kesemua 36 alat (26 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
```
Setiap perintah mematuhi konteks jauh yang aktif (`omniroute connect `), `--dry-run`
memaparkan pratonton env/argumen yang tepat tanpa melaksanakannya, dan `--api-key-env NAME` menghalang rahsia daripada
direkodkan dalam sejarah shell anda. → [Integrasi CLI](docs/guides/CLI-INTEGRATIONS.md)
## 🌐 357 Penyedia AI — 152 Ditandai Percuma dalam Katalog
> **357 penyedia berdaftar** merentas koleksi kanonik sembang, media, carian, setempat, ejen awan dan sistem, termasuk **152 yang membawa metadata penemuan `hasFree: true`**. Daftar model sembang merangkumi **229 penyedia / 2,554 pasangan penyedia-model yang berbeza / 1,283 ID model mentah**; katalog belanjawan percuma yang berasingan mempunyai **491 baris setiap model**, **35 kelompok berulang** dan **54 penyedia percuma selamanya yang berulang/tanpa kunci**. Penyebut ini berbeza mengikut reka bentuk; definisi dan pengiraan dengan kelompok dinyahduplikasi tersedia dalam [Rujukan Penyedia](docs/reference/PROVIDER_REFERENCE.md) dan [Peringkat 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 330+ lagi — setiap ikon dimuatkan 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 automatik, Tencent Hy3 Percuma selamanya
Requesty GPT-OSS 120B, Nemotron Percuma selamanya
SiliconFlow DeepSeek V3.2 / R1 Peringkat 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 1J token/hari
OpenRouter Model :free +$10 → RPM lebih tinggi
📖 Katalog penuh yang 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 **pusat kawalan baris perintah yang lengkap** dengan **lebih 80 perintah**, serta protokol ejen terbuka supaya ejen AI boleh mengendalikannya **secara kendiri**.
### ⌨️ CLI sebenar (bukan sekadar `start`)
```bash
omniroute # jalankan get laluan + papan pemuka (port 20128)
omniroute chat # klien sembang TUI interaktif (garis condong: /model /combo /skill /memory)
omniroute setup # pembantu berpandu untuk penggunaan pertama
omniroute doctor # diagnosis penyedia, port, kebergantungan natif
```
### 🛰️ Mod jauh — jalankan CLI di sini, OmniRoute pada VPS
OmniRoute pada pelayan? Kendalikannya dari komputer riba anda menggunakan **CLI yang sama**. Log masuk sekali
dengan token akses berskop; setiap perintah selepas itu menyasarkan pelayan jauh.
```bash
omniroute connect 192.168.0.15 # kata laluan → token berskop, disimpan sebagai konteks
omniroute models list # ← dijalankan terhadap pelayan JAUH
omniroute configure codex # ← memilih model jauh, menulis profil Codex setempat
omniroute tokens create --name ci --scope read # cipta token dengan skop lebih sempit untuk mesin lain
omniroute contexts use default # ← kembali kepada pelayan setempat
```
Token diskopkan sebagai `read` / `write` / `admin`; laluan yang memulakan proses kekal terhad kepada gelung balik sahaja.
📖 [Mod Jauh](docs/guides/REMOTE-MODE.md)
### 🤝 Sambungkan ejen — dan ia mengawal OmniRoute itu sendiri
Dedahkan OmniRoute melalui **MCP**, **A2A**, **REST API**, **webhook** atau **CLI jauh** — mana-mana ejen yang berkeupayaan (atau kod anda sendiri) mendapat 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
Kegunaannya
🧰 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 pilihan), 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
🔔 Webhook
/api/webhooks
Hantar peristiwa permintaan / kuota kepada Slack, Discord, Telegram atau mana-mana URL
🛰️ CLI Jauh
omniroute connect
Kendalikan tika jauh dengan token akses berskop
```bash
# Berikan Claude Code set alat OmniRoute yang 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 — saluran paip, seni bina & pengiraan penjimatan
Gabungan tindanan lalai menjalankan `RTK → Caveman`. Apabila kedua-duanya memproses 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 menggunakan banyak token apabila sedikit token sudah memadai?** Setiap permintaan melalui saluran paip pemampatan OmniRoute **secara telus** — tanpa perubahan pada klien. Kini ia merupakan **tindanan 12 enjin boleh gubah** yang berjalan mengikut turutan serta boleh digabung dan dipadankan bagi setiap gabungan penghalaan — berasaskan 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).
### 🧱 Tindanan 12 enjin
Enjin berjalan mengikut turutan saluran paip; setiap satunya boleh didayakan atau dinyahdayakan serta dikonfigurasikan secara berasingan bagi setiap gabungan:
Mengarkibkan blok besar di sebalik penanda pengambilan semula, yang diambil apabila diperlukan
3
Lite
Pemangkasan ruang putih + URL imej (garis dasar kependaman rendah)
4
RTK
Penapisan pintar hasil alat, penyahduplikasian & pemangkasan (peka perintah)
5
Responses Tool Output
JSON yang mengutamakan pemampatan tanpa kehilangan + pemampatan diagnostik terbatas untuk output shell/tampalan/carian/binaan (Responses API)
6
Headroom
Pemadatan berjadual tanpa kehilangan bagi tatasusunan JSON (~30%) melalui codec GCF vendored
7
Relevance
Pemarkahan ayat secara ekstraktif berdasarkan pertanyaan pengguna terakhir
8
Caveman
Pemampatan prosa berasaskan peraturan (~65–75% pada output)
9
Aggressive
Peringkasan + penuaan progresif bagi giliran lama
10
LLMLingua-2
Pemangkasan semantik ML melalui MobileBERT ONNX — selamat untuk kod, tak segerak
11
Ultra
Pemangkasan token secara heuristik dengan peringkat model kecil (SLM) pilihan
12
OmniGlyph
Pengekodan konteks-sebagai-imej percubaan untuk Claude Fable 5 yang diukur pada sambungan terus Anthropic; transformer GPT 5.6 kekal gagal-tertutup sementara menunggu resit penyedia. Empat profil pemampatan (agresif secara lalai, seimbang, selamat untuk pengekodan, laluan terus) (paling agresif; perlu diaktifkan secara pilihan)
Blok kod, URL dan data berstruktur **sentiasa dikekalkan** dengan ketepatan bait. **Pratetap satu klik** menggabungkan enjin:
Mod
Penjimatan
Terbaik untuk
🪶 Lite
~15%
Lalai selamat yang sentiasa aktif
🪨 Standard (Caveman)
~30%
Pengekodan harian
⚡ Aggressive
~50%
Sesi panjang yang banyak menggunakan alat
🔥 Ultra
~75%
Penjimatan maksimum
🧰 RTK
60–90%
Output shell/ujian/binaan/git
🔗 Stacked (RTK → Caveman)
78–95%
Prom bercampur + log alat
**Contoh sebenar — mod Standard:**
> **Sebelum (69 token):** _"Sebab komponen React anda dipaparkan semula berkemungkinan kerana anda mencipta rujukan objek baharu pada setiap kitaran paparan. Apabila anda memberikan objek sebaris sebagai prop, perbandingan cetek React melihatnya sebagai objek yang berbeza setiap kali, lalu mencetuskan paparan semula. Saya mengesyorkan penggunaan useMemo untuk memo objek tersebut."_
>
> **Selepas (19 token):** _"Rujukan objek baharu setiap paparan. Prop objek sebaris = rujukan baharu = paparan semula. Balut dengan useMemo."_
>
> **Jawapan yang sama. 72% kurang token. Tiada kehilangan ketepatan.** ✅
**Contoh PT-BR — mod [Troglodita](https://github.com/leninejunior/troglodita):**
> **Sebelum (42 token):** _"Masalahnya ialah komponen dirender semula kerana rujukan objek baharu dicipta dalam setiap kitaran render. Saya mengesyorkan penggunaan useMemo."_
>
> **Selepas (12 token):** _"Render semula: rujukan baharu setiap kitaran (objek sebaris dicipta semula). Gunakan `useMemo`."_
>
> **Jawapan sama. ~70% kurang token. Ketepatan teknikal kekal utuh.** ✅
### 🎚️ Melangkaui enjin — gaya output, tombol adaptif & kawalan setiap permintaan
12 enjin di atas mengecilkan apa yang **masuk**. Tiga lapisan lagi membentuk **cara**, **masa**, dan perkara yang **keluar**:
- **🪄 Gaya Output** _(pengarahan paksi output)_ — menyuntik arahan pembentukan respons yang deterministik dan selamat untuk cache; boleh digabungkan, setiap satu pada keamatan `lite` / `full` / `ultra`. Penambahan gaya hanya memerlukan entri pendaftaran sebaris:
- **Prosa ringkas** — buang pengisi / kata sandang / ungkapan keraguan; kekalkan ketepatan kandungan teknikal.
- **Kurang kod** — YAGNI ala "pembangun kanan yang malas": perubahan berfungsi yang paling kecil, tanpa perancah yang tidak diminta.
- **Ponytail (pembangun kanan yang malas)** — panjat tangga YAGNI, baiki punca utama, hasilkan perbezaan berfungsi yang paling kecil.
- **Saya mempunyai ADHD (tindakan dahulu)** — mulakan dengan tindakan seterusnya, langkah bernombor, satu langkah seterusnya yang konkrit, tanpa mukadimah.
- **CJK ringkas (文言)** — gaya bahasa Cina klasik yang sangat ringkas (dihadkan kepada penempatan `zh`).
- **🎯 Bajet konteks adaptif** _(tombol)_ — berbanding satu ambang token hidup/mati, tingkatkan penggunaan enjin yang paling murah dan paling kurang kehilangan maklumat hanya setakat yang diperlukan untuk **memuatkan tetingkap konteks model**. Dasar: `reserve-output` (lalai, mengambil kira model) · `percentage` · `absolute`. Mod: `floor` (jamin muat) · `replace-autotrigger` (pilihan eksplisit anda diutamakan) · `off` (ambang legasi).
- **🎛️ Tempat pemampatan ditentukan** _(keutamaan, tinggi → rendah)_ — pengepala `x-omniroute-compression` setiap permintaan › penggantian gabungan penghalaan › profil bernama aktif › adaptif / pencetus automatik › lalai panel › mati. Pelan yang digunakan dicerminkan semula dalam pengepala respons `X-OmniRoute-Compression: ; source=`.
Gunakan pencetus automatik berdasarkan ambang token, hidupkan tombol adaptif, sematkan profil bernama, tetapkan konfigurasi sekali guna bagi setiap permintaan, atau tetapkan talian paip bagi setiap gabungan penghalaan — pilih yang paling sesuai dengan beban kerja. **Rangka kerja penilaian** luar talian yang perlu diikut serta (`npm run eval:compression`) menilai ketepatan berbanding penjimatan pada korpus yang disematkan sebelum anda melaksanakan 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
```
> 💡 Terlihat `npm warn ERESOLVE` atau amaran peer-dep? [Amaran tersebut tidak berbahaya](docs/guides/TROUBLESHOOTING.md#npm-install-warnings-eresolve--peer--deprecated).
Papan pemuka di `http://localhost:20128` · API di `http://localhost:20128/v1`.
**2) Sambungkan penyedia PERCUMA (tanpa pendaftaran)**
Papan Pemuka → **Penyedia** → sambungkan **Kiro AI** (Claude percuma, ~50 kredit/bulan bagi setiap akaun) atau **OpenCode Free** (tanpa pengesahan) → selesai.
**3) Halakan alat pengekodan anda**
```txt
URL Asas: http://localhost:20128/v1
Kunci API: [salin daripada Papan Pemuka → Titik Akhir]
Model: auto (penghalaan pintar tanpa konfigurasi — atau mana-mana penyedia/model)
```
**4) Sahkan bahawa ia berfungsi**
```bash
curl http://localhost:20128/v1/models -H "Authorization: Bearer YOUR_KEY"
```
Anda sepatutnya melihat senarai model yang disambungkan. 🎉 Selesai — mula mengekod dan OmniRoute akan menghala secara automatik serta menggunakan pilihan sandaran untuk anda.
Jika klien anda tidak dapat menghantar pengepala tersuai, OmniRoute turut menyediakan alias keserasian bertoken:
```txt
Katalog OpenAI: http://localhost:20128/vscode/YOUR_KEY/
Model OpenAI: http://localhost:20128/vscode/YOUR_KEY/models
Sembang OpenAI: http://localhost:20128/vscode/YOUR_KEY/chat/completions
Respons OpenAI: http://localhost:20128/vscode/YOUR_KEY/responses
Sembang Ollama: http://localhost:20128/vscode/YOUR_KEY/api/chat
Tag Ollama: 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 39,000 pengisytiharan ujian statik merentasi lebih 5,100 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
Dibekukan pada hujung aktif release/v3.8.50dafb4ae808, dengan penggabungan sehingga 2026-08-24 05:26:03 UTC. Banci GitHub GraphQL berhalaman mengandungi 5,911 PR yang digabungkan: 2,707 oleh pemilik repositori, 179 oleh Dependabot dan 3,025 PR luar daripada 535 penyumbang berbeza. “Baris diubah” ialah penambahan + pemadaman GitHub dan merangkumi fail yang dijana, fail kunci, katalog, terjemahan dan dokumentasi; ia merupakan kadar perubahan, bukannya LOC yang dikarang. Kedudukan seri pada batas akhir dikekalkan.
### Komit yang dikaitkan oleh GitHub
Bob.Hou 🏅 51 komit yang dikaitkan dengan GitHub · seri di kedudukan #10
Xiangzhe 🏅 51 komit yang dikaitkan dengan GitHub · seri di kedudukan #10
Disemak semula pada 2026-08-24 06:14:31 UTC: Komit yang dikaitkan dengan GitHub seperti yang dilaporkan oleh API Contributors repositori untuk cabang lalai release/v3.8.50. API mengembalikan 525 identiti (415 pengguna, 2 bot, 108 tanpa nama); jadual ini mengecualikan penyelenggara, bot dan identiti tanpa nama serta mengekalkan kedudukan seri. Jadual ini berbeza daripada kedua-dua penarafan PR tergabung di atas dan bancian metadata Git yang merangkumi 639 orang di bawah.
> 🙏 Ciri, pembetulan pepijat dan penambahbaikan infrastruktur oleh para penyumbang ini merupakan **bahagian teras** yang menjadikan OmniRoute andal dan kaya dengan ciri. Setiap pull request, setiap kes ujian dan setiap fail terjemahan i18n adalah penting. Sumber terbuka dibangunkan oleh insan seperti mereka.
---
## 💖 Penaja
Setinggi-tinggi penghargaan kepada mereka yang membiayai OmniRoute dengan wang sendiri — setiap sumbangan memastikan projek ini kekal percuma, bebas dan terus berkembang.
… dan mereka yang memilih untuk kekal tanpa nama 💛Penaja GitHub awam disahkan semula pada 2026-08-24. Status activeOnly GitHub menentukan label aktif di atas; penyokong awam sekali sahaja yang telah didedahkan sebelum ini kekal diberikan penghargaan, manakala penaja persendirian kekal tanpa nama.💖 Jadi penaja → — setiap dolar memastikan OmniRoute kekal percuma dan bebas.
## 👥 600+ Penyumbang
[](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)
Diaudit pada 2026-08-24 pada asas beku ac02c5b42f dan disemak semula pada hujung langsung release/v3.8.50dafb4ae808: 639 identiti Git manusia yang dinormalkan — 407 muncul sebagai pengarang komit (termasuk penyelenggara) dan 232 hanya dalam penutup eksplisit Co-authored-by. Banci ini menormalkan pemegang noreply GitHub, mengecualikan 26 identiti bot/ejen/perkhidmatan/ruang letak dan tidak menggabungkan alamat e-mel biasa semata-mata kerana nama paparan mereka sepadan.
### Cara Menyumbang
1. Fork repositori
2. Buat 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 berdiri di atas bahu para gergasi. 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 sejak itu, setiap subsistem di bawah diilhamkan oleh projek sumber terbuka yang terlebih dahulu mencapainya. Setiap satunya membentuk bahagian nyata OmniRoute. Inilah ucapan terima kasih kami kepada mereka semua. 🙏
> ⭐ bilangan bintang disahkan melalui REST API GitHub pada 24 Ogos 2026 — berikan projek-projek ini satu bintang. Bilangan ini ialah gambaran tepat pada tarikh tersebut dan sememangnya akan berubah.
### 🧬 Salasilah & get laluan
Gerbang AI yang set data harga awamnya membekalkan penyegerakan penjejakan kos kami dan model penormalan penyedianya menjadi rujukan untuk 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 dipindahkan ke dalam pemulihan strim, alias tanpa pemikiran, 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 dipacu konfigurasi OmniRoute.
Pemetaan model Grok, penjana Statsig TypeError palsu, tetapan lalai permintaan dan peranti, serta pemproses respons NDJSON daripadanya 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 salasilah Grok Web.
Sumber MIT asas bagi tetapan lalai muatan dan peranti Grok, penjana Statsig dan pemproses result.response yang diteruskan melalui TQZHR dan grok2api-merged.
Sumber transitif yang dikreditkan oleh grok2api-merged untuk lapisan kumpulan proksinya; OmniRoute mengekalkan notis salasilah tersebut tetapi tidak mendakwa adanya port kumpulan proksi dalam pelaksana Grok Web terhadnya.
Pelaksanaan asal Grok Web merujuk reka bentuk huluan HTTP/pelayarnya; laluan HTTP langsungnya berasal daripada GrokProxy, maka tiada tuntutan dibuat terhadap port kod bebas.
Projek tular "mengapa guna banyak token apabila sedikit token sudah memadai" — falsafah gaya bahasa manusia guanya menjadi asas kepada mod pemampatan standard kami serta lebih 30 peraturan pembuangan kata pengisi/pemadatan.
Penyelidikan pemampatan gesaan (LLMLingua / LLMLingua-2) — menginspirasikan enjin llmlingua kami yang tak segerak, selamat untuk kod dan terus beroperasi apabila gagal.
Pemampatan token PT-BR — menjadi asas kepada pek bahasa pt-BR kami: pengurangan pleonasme dan pembuangan kata pengisi yang ditala untuk tatabahasa Portugis Brazil.
Kemahiran pengekodan YAGNI "pembangun kanan malas" yang tular — menginspirasikan Gaya Output less-code kami: panduan perubahan terkecil yang berfungsi untuk mengurangkan kod yang _dijana_ (padanan pada paksi output kepada prosa ringkas Caveman).
Pemampatan output berkesedaran kandungan mengikut jenis fail dengan pembatalan yang mengambil kira kegagalan — mengesahkan penghalaan mengikut jenis dan pelangkauan apabila keuntungan minimum kami tidak dicapai.
JSON berkolum dalam Rust + pengambilan semula beralamatkan kandungan + penyahduplikasian merentas mesej — mengesahkan reka bentuk enjin headroom/ccr/session-dedup kami dan invarian cache stabil "bentuk termampat tidak bergantung pada kedudukan".
Kit alat TypeScript Compiler API — menginspirasikan pembuangan komen berasaskan penghurai kami yang mengekalkan literal rentetan, templat dan ungkapan nalar.
Pemintasan/analisis MITM terhadap trafik pembantu pengekodan ↔ LLM membantu membentuk keperluan awal Pemeriksa Trafik. Empat modul yang diperoleh sebelum ini — penggabungan SSE, penormalan perbualan, penyamaran rahsia dan pensterilan pengepala — telah digantikan dengan pelaksanaan bilik bersih bebas berdasarkan piawaian protokol awam. Dua permukaan laluan terus hos (passthrough.ts dan _internal/bypass.cjs) kekal sebagai pelaksanaan dalaman OmniRoute yang diklasifikasikan secara bebas; kedua-duanya tidak ditulis semula sebagai sebahagian daripada penggantian tersebut.
Penghalaan proksi telus bagi setiap proses — menginspirasikan penamatan MITM yang selamat ketika ranap, tamat masa melahu soket, atribusi proses /proc dan penangkapan TPROXY kami.
Senarai pustaka selamat-secara-lalai yang dikurasi dan membimbing pilihan keselamatan kami (Helmet.js, DOMPurify, ssrf-req-filter, safe-regex, Google Tink).
Pemetaan semula model berasaskan akaun, pengesahan laluan boleh laku dan tingkah laku label pelannya membantu membentuk 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.51 · Node ≥22.22.2 · Lesen MIT · omniroute.online