## 💰 ~1.62B Token / Bulan Merentas Peringkat Percuma Pihak Ketiga
> **Gunakan akaun penyedia anda sendiri.** Ini ialah anggaran agregat merentas peringkat percuma pihak ketiga yang layak secara berasingan, bukannya pemberian token daripada OmniRoute. Daftar, dapatkan kelayakan jika diperlukan dan sambungkan penyedia yang boleh anda gunakan; setiap penyedia mengawal had, ketersediaan dan terma mereka sendiri.
>
> Menggabungkan peringkat percuma secara manual memang menyusahkan — berpuluh-puluh SDK, berpuluh-puluh had kadar dan tiada gambaran tentang jumlah sebenar yang anda miliki. OmniRoute mengkatalogkan **489 entri peringkat percuma merentas 35 kunci kumpulan berulang** dan mengira angka utama token daripada **17 kumpulan dengan belanjawan bulanan positif yang diterbitkan serta lima had Groq bagi setiap model**, dinyahduplikasi mengikut kumpulan dikongsi. Kuota yang hanya tersedia selepas semakan identiti serantau (kini: ModelScope) dipaparkan secara berasingan, +~6M di sebalik pengesahan identiti serantau, dan tidak pernah dijumlahkan ke dalam angka utama. Hasilnya kekal kelihatan pada papan pemuka (`/dashboard/free-tiers`).
> Ringkasan beranimasi bagi halaman langsung `/dashboard/free-tiers`. Metodologi penuh (penyahduplikasian kumpulan, 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 yang 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 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)**
## 📈 Gateway Terus Berkembang
## 🆓 Pasang, sambungkan penyedia, kemudian halakan melalui satu titik akhir
```bash
# Selepas menyambungkan penyedia, salin kunci OmniRoute anda daripada Papan Pemuka → Titik Akhir:
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 OpenCode Free dan Kiro, dikecualikan daripada penghalaan automatik secara lalai; menyambungkan 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 — Produk Unggulan
> **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 akan membina kombo maya daripada penyedia yang anda sambungkan, dengan pemarkahan secara langsung:
ID Model
Perkara yang dioptimumkan
auto
🎯 Lalai seimbang (LKGP — kekal menggunakan penyedia terakhir anda yang berfungsi dengan baik)
auto/coding
🧑💻 Pemberat yang mengutamakan kualiti untuk penjanaan kod
auto/fast
⚡ Kependaman terendah diutamakan
auto/cheap
💰 Kos termurah bagi setiap token diutamakan
auto/offline
🔋 Ruang lebihan kuota / had kadar terbesar diutamakan
auto/smart
🔭 Mengutamakan kualiti + penerokaan 10% untuk menemukan model yang lebih baik
auto/lkgp
📌 Kekekalan eksplisit pada penyedia terakhir yang diketahui berfungsi dengan baik
auto/chaos
🧪 Penyebaran selari kepada panel model (satu bagi setiap penyedia, 5 secara lalai), mengembalikan satu jawapan; satu panggilan huluan bagi setiap model panel, bukan suntikan kegagalan
##
### 🔀 Atau bina sendiri — 19 strategi penghalaan
Kesemua **19** strategi — gabung dan padankan bagi setiap langkah kombo:
#
Strategi
Fungsinya
1
priority
Senarai tertib sasaran pertama — habiskan setiap satu sebelum beralih kepada sasaran seterusnya 🥇
2
fill-first
Gunakan sepenuhnya kuota setiap sasaran sebelum beralih
3
weighted
Pemilihan rawak berpemberat berdasarkan pemberat setiap sasaran
4
round-robin
Kitar sasaran mengikut turutan
5
p2c
Pengimbangan beban rawak berasaskan dua pilihan
6
least-used
Pilih sasaran dengan beban semasa paling rendah
7
random
Pemilihan rawak seragam (pendua dialih keluar)
8
strict-random
Pemilihan rawak tanpa mengalih keluar pengulangan pendua 🎲
9
cost-optimized
Minimumkan $ bagi setiap permintaan berdasarkan harga katalog langsung 💸
10
headroom
Pilih sasaran dengan baki kuota paling banyak
11
reset-window
Utamakan sasaran yang tetingkap kuotanya akan ditetapkan semula paling awal
12
reset-aware
Susun kedudukan berdasarkan masa penetapan semula kuota — tetingkap pendek diutamakan 📊
13
context-relay
Alihkan konteks merentas sasaran untuk perbualan panjang 🧠
14
context-optimized
Pilih padanan terbaik untuk saiz konteks semasa
15
cache-optimized
Tambat setiap awalan gesaan yang boleh digunakan semula kepada akaun yang sama — maksimumkan padanan cache gesaan 🎯
16
lkgp
Laluan Terakhir yang Diketahui Berfungsi dengan Baik — menambat kepada penyedia terakhir yang berjaya, kemudian kembali kepada peraturan jika perlu
17
auto
Pemarkahan langsung 16 faktor merentas setiap sambungan 🤖
18
fusion
Sebarkan kepada panel model + 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).
##
### 🧱 Ketahanan terbina dalam (3 lapisan bebas)
📖 [Enjin Auto-Combo](docs/routing/AUTO-COMBO.md) · [Panduan Ketahanan](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.50**. Sejarah penuh dalam [`CHANGELOG.md`](CHANGELOG.md).
- **🎛️ OmniConductor** — delegasi A2A masuk kepada kumpulan ejen anda, kemahiran Conductor pada Kad Ejen, 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 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 pengembangan didayakan 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 rata yang telus** — penyedia langganan / pelan pengekodan memaparkan kos **$0** dalam analitik kos; anggaran bajet, kuota & penghalaan diteruskan. → [Rujukan API](docs/reference/API_REFERENCE.md)
- **⚖️ Penghalaan Perkongsian Kuota** — bahagikan kuota akaun dikongsi secara adil merentas kekunci terkumpul, dengan pengekalan kerja supaya 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. → [Penyepaduan 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 automatik yang lebih pintar** — kombo `auto/:`, **Fusion** (panel model + pengadil), penghalaan sedar tugas, penggantian model / mod / bajet 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 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 kepercayaan. → [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 ikut serta + pereputan berjenis, `x-omniroute-no-memory` bagi setiap permintaan. → [Memori](docs/frameworks/MEMORY.md)
- **🛡️ Keselamatan** — pelindung suntikan gesaan pada setiap laluan LLM (suite pasukan merah), pagar keselamatan penyamaran kelayakan ikut serta (menyunting kekunci API/rahsia yang terbocor 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). → [Pagar Keselamatan](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)
- **🌍 Pelaksanaan & operasi** — `basePath` proksi songsang, pengesanan automatik bahasa pelayar, penjejakan peranti bagi setiap kekunci, 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 pelayar + log masuk OAuth, kad kelas pertama Ollama, Claude Opus 5 & Sonnet 5, kerjasama rasmi Kimi (Code/Web/Moonshot), Zed, Requesty, SenseNova, Yuanbao, Agnes AI… serta **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 melayaninya, strategi kombo `cache-optimized` baharu + faktor Auto-Combo `cacheAffinity` menghalakan permintaan berulang kembali ke sambungan yang menyimpan awalan dalam 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, penyepaduan bilik kebal Obsidian (22 alat MCP), API Batch & Files yang serasi dengan OpenAI, cache respons semantik, penggamifikasian dengan papan pendahulu, penemuan ejen ACP (15 ejen terbina dalam), eksport log berjadual ke BigQuery, pengembangan berbilang model selari `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)
## 🌐 372 Penyedia AI — 154 Ditandai Percuma dalam Katalog
> **372 penyedia berdaftar** merentas koleksi kanonik sembang, media, carian, setempat, ejen awan dan sistem, termasuk **154 yang membawa metadata penemuan `hasFree: true`**. Daftar model sembang merangkumi **237 penyedia / 3,009 pasangan penyedia-model yang berbeza / 1,443 ID model mentah**; katalog bajet percuma yang berasingan mempunyai **491 baris bagi setiap model**, **35 kumpulan berulang** dan **54 penyedia percuma selama-lamanya yang berulang/tanpa kunci**. Penyebut ini berbeza secara sengaja; takrif dan pengiraan selepas penyahduplikasian kumpulan 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 Selama-lamanya — $0, tanpa kad
OpenCode Zen DeepSeek V4, Nemotron 3 Tiada had token
Kilo Code Penghala automatik, Tencent Hy3 Percuma selama-lamanya
### 🧩 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 bertindan lalai menjalankan `RTK → Caveman`. Apabila kedua-duanya bertindak pada 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 pengekalan.
> **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 dijalankan mengikut turutan serta boleh digabung dan dipadankan bagi setiap gabungan penghalaan — dibina 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 dijalankan mengikut turutan saluran paip; setiap satunya boleh diaktifkan atau dinyahaktifkan serta dikonfigurasikan secara bebas bagi setiap gabungan:
Mengarkibkan blok besar di sebalik penanda pengambilan, yang diambil apabila diperlukan
3
Lite
Pemangkasan ruang putih + URL imej (garis dasar kependaman rendah)
4
RTK
Penapisan pintar hasil alat, penyahduplikasian & pemangkasan (peka arahan)
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 yang dibundel
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 secara percubaan untuk Claude Fable 5 yang diukur melalui sambungan terus Anthropic; pengubah 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)
Blok kod, URL dan data berstruktur **sentiasa dikekalkan** dengan ketepatan bait. **Pratetap satu klik** menggabungkan enjin:
Mod
Penjimatan
Paling sesuai 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 menghantar objek sebaris sebagai prop, perbandingan cetek React melihatnya sebagai objek yang berbeza setiap kali, lalu mencetuskan paparan semula. Saya mengesyorkan agar anda menggunakan 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 pemaparan. 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** _(kawalan paksi output)_ — menyuntik arahan pembentukan respons yang deterministik dan selamat untuk cache; boleh digabungkan, setiap satu pada keamatan `lite` / `full` / `ultra`. Menambah gaya hanya memerlukan satu baris entri registri:
- **Prosa ringkas** — buang pengisi / kata sandang / keraguan; kekalkan kandungan teknikal dengan tepat.
- **Kurang kod** — YAGNI ala "pembangun kanan yang santai": perubahan berfungsi paling kecil, tanpa perancah yang tidak diminta.
- **Ekor kuda (pembangun kanan yang santai)** — naiki tangga YAGNI, baiki punca utama, diff berfungsi paling kecil.
- **Saya mempunyai ADHD (tindakan dahulu)** — dahulukan tindakan seterusnya, nomborkan langkah, satu langkah seterusnya yang konkrit, tanpa mukadimah.
- **CJK ringkas (文言)** — gaya bahasa Cina klasik yang amat ringkas (dihadkan mengikut lokal kepada `zh`).
- **🎯 Belanjawan konteks adaptif** _(tombol)_ — berbanding satu ambang token hidup/mati, tingkatkan penggunaan enjin paling murah dan paling kurang kehilangan hanya setakat yang diperlukan agar **muat dalam tetingkap konteks model**. Dasar: `reserve-output` (lalai, sedar model) · `percentage` · `absolute`. Mod: `floor` (jamin muat) · `replace-autotrigger` (pilihan nyata anda diutamakan) · `off` (ambang legasi).
- **🎛️ Tempat pemampatan ditentukan** _(keutamaan, tinggi → rendah)_ — pengepala `x-omniroute-compression` setiap permintaan › pengatas gabungan penghalaan › profil bernama aktif › adaptif / pencetus automatik › lalai panel › mati. Pelan yang digunakan dipantulkan kembali dalam pengepala respons `X-OmniRoute-Compression: ; source=`.
Gunakan pencetus automatik berdasarkan ambang token, hidupkan tombol adaptif, tetapkan profil bernama, buat tetapan sekali guna bagi setiap permintaan, atau tetapkan saluran paip untuk setiap gabungan penghalaan — mana-mana yang sesuai dengan beban kerja. **Abah penilaian** luar talian yang memerlukan pilihan masuk (`npm run eval:compression`) menilai kesetiaan berbanding penjimatan pada korpus yang ditetapkan 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
```
> 💡 Terlihat `npm warn ERESOLVE` atau amaran peer-dep? [Amaran tersebut tidak berbahaya](docs/guides/TROUBLESHOOTING.md#npm-install-warnings-eresolve--peer--deprecated).
> **Menggunakan npm 11 atau lebih baharu?** npm mungkin menyekat skrip kitar hayat pakej melainkan skrip tersebut dibenarkan. `postinstall` OmniRoute (`node scripts/build/postinstall.mjs`) diperlukan untuk menyediakan fail masa jalan natifnya. Benarkan pakej yang dinamakan dalam amaran npm semasa memasang secara global. Untuk set pakej yang dilaporkan oleh OmniRoute 3.8.51:
>
> ```bash
> npm install -g --allow-scripts=omniroute,keytar,onnxruntime-node,@parcel/watcher,@swc/core,protobufjs,esbuild omniroute
> ```
>
> Untuk menggunakan semula senarai dibenarkan ini bagi pemasangan global akan datang, konfigurasikannya 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 yang berbeza, gunakan nama pakej daripada amaran tersebut. Membenarkan pakej membolehkan skrip pemasangannya dijalankan.
> **Menggunakan Gemini Web atau penyedia kuki web lain?** Pakej npm menyertakan
> Playwright tetapi bukan binari Chromiumnya. Lihat nota
> [persediaan Playwright Chromium](docs/guides/TROUBLESHOOTING.md#gemini-web-and-playwright-chromium)
> sebelum membuat permintaan pertama kepada penyedia web.
Papan pemuka di `http://localhost:20128` · API di `http://localhost:20128/v1`.
**2) Sambungkan penyedia yang layak menggunakan akaun anda sendiri**
Papan Pemuka → **Penyedia** → pilih penyedia yang syarat dan kuota semasanya sesuai dengan kes penggunaan anda → tambahkan kunci API 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 yang ditandai `tos: avoid` dikecualikan daripada `auto` secara lalai.
**3) Halakan alat pengekodan anda**
```txt
URL Asas: http://localhost:20128/v1
Kunci API: [salin daripada Papan Pemuka → Titik Akhir]
Model: auto (menghala antara sambungan yang layak — atau pilih penyedia/model)
```
**4) Sahkan ia berfungsi**
```bash
curl http://localhost:20128/v1/models -H "Authorization: Bearer YOUR_KEY"
```
Anda sepatutnya melihat model yang disambungkan disenaraikan. 🎉 Itu sahaja — mula mengekod, dan OmniRoute akan menghala secara automatik serta menggunakan 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.52 · Node ≥22.22.2 · Lesen MIT · omniroute.online