> Menggabungkan tingkatan gratis secara manual itu menyakitkan — puluhan SDK, puluhan batas laju, dan tidak tahu berapa banyak yang sebenarnya Anda miliki. OmniRoute mengkatalogkan **489 entri tingkatan gratis di 35 kunci kumpulan berulang** dan menghitung total token dari **17 kumpulan dengan anggaran bulanan positif yang dipublikasikan ditambah lima batas Groq per-model**, dideduplikasi berdasarkan kumpulan bersama. Kuota yang hanya terbuka setelah pemeriksaan identitas regional (saat ini: ModelScope) ditampilkan terpisah, +~6M di balik verifikasi identitas regional, dan tidak pernah dijumlahkan ke dalam total. Hasilnya tetap terlihat di dasbor (`/dashboard/free-tiers`).
> Ringkasan animasi dari halaman live `/dashboard/free-tiers`. Metodologi lengkap (deduplikasi kumpulan, tingkatan kredit, ketentuan penyedia): **[docs/reference/FREE_TIERS.md](docs/reference/FREE_TIERS.md)**.
>
> Angka-angka ini diaudit ulang setiap dua minggu terhadap katalog langsung dan **bergerak dua arah** — penyedia mengakhiri tingkatan gratis dan jumlahnya turun; yang baru muncul dan jumlahnya naik. Kami menerbitkan apa yang sebenarnya dihitung oleh katalog, bukan kasus terbaik yang dibulatkan.
⭐ Beri bintang pada repo jika OMNIROUTE membantu Anda menghemat uang dan mempermudah pekerjaan Anda.
[](https://github.com/diegosouzapw/OmniRoute)
[](https://www.star-history.com/diegosouzapw/omniroute)
[](https://olud.ai/project/diegosouzapw-omniroute.html)
### 💬 Bergabunglah dengan komunitas
**👋 Ikuti pengelola — dapatkan penyedia baru, rilis & tips pertama:**
[](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)
**Pertanyaan, tips penyedia, peta jalan & dukungan → [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
## 🆓 Berfungsi segera setelah Anda menginstalnya — tanpa kunci, tanpa konfigurasi
```bash
# Instalasi baru, tanpa kredensial — `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 gratis tertentu? Panggil `oc/…` (OpenCode Free) secara langsung. Kemudian tingkatkan ke `auto` dan biarkan OmniRoute memilih.📦 Skrip mulai cepat salin-tempel untuk **Python, Node.js, PHP, dan cURL** → [`examples/quickstart/`](examples/quickstart/)
# 💥 Janji
# 🤔 Mengapa OmniRoute?
## 🤝 Didukung oleh Teman-teman Sumber Terbuka Kami
> **Ingin bergabung sebagai Teman Sumber Terbuka?** Ini adalah perusahaan-perusahaan yang mendukung sumber terbuka dan membantu OmniRoute terus bergerak — dan kami menyatakan secara publik ke mana setiap token yang mereka berikan kepada kami. Hubungi: [diegosouza.pw@outlook.com](mailto:diegosouza.pw@outlook.com)
Kimi Moonshot AI
Terima kasih kepada Kimi (Moonshot AI), Teman Sumber Terbuka pendiri kami, karena mendukung proyek ini! Kimi adalah lab AI di balik keluarga model K2 dan K3 dengan bobot terbuka — Kimi K3 menghadirkan jendela konteks 1M-token, visi asli, dan pengkodean tingkat perbatasan dengan harga yang lebih murah dari model tertutup, dan berfungsi langsung dengan Claude Code, Codex, dan setiap alat pengkodean yang dilayani OmniRoute.
Apa yang didukung oleh dukungan Kimi: Kredit API Kimi mendukung pipeline rilis yang divalidasi AI OmniRoute — tahap validasi gabungan yang didukung oleh Kimi K3 yang meninjau setiap permintaan tarik sebelum dikirim — ditambah pengembangan fitur sehari-hari. Dukungan Kimi kelas satu dikirimkan pada kedua jalur: API Kimi langsung (kimi-k3) dan paket pengkodean Kimi Code (OAuth dan kunci API). OmniRoute juga merupakan proyek sumber terbuka Brasil pertama dalam program dukungan Kimi. Dapatkan kunci API Kimi dengan tambahan 15% kredit →
Cheaper Inference cheaperinference.com
Terima kasih kepada Cheaper Inference, Teman Sumber Terbuka OmniRoute, karena mendukung proyek ini! Cheaper Inference adalah gateway berperingkat biaya yang menjual kembali 42 model perbatasan — Claude, GPT-5.x, Gemini, Kimi K3, GLM, DeepSeek, Grok, dan MiniMax — di balik satu titik akhir yang kompatibel dengan OpenAI, merutekan setiap permintaan ke penyedia yang memenuhi syarat termurah tanpa pernah mengenakan biaya di atas harga daftar pembuat model.
Dukungan kelas satu di OmniRoute: Chat Completions, titik akhir /v1/responses asli, visi, panggilan alat, dan 3 model gambar (grok-imagine, nano-banana-pro, nano-banana-2, dapat dijangkau sebagai cheaperinference/<model>). Dapatkan kunci API →
Tautan yang ditandai aff=omniroute adalah tautan mitra. Mereka mendanai proyek tanpa biaya tambahan untuk Anda. 🎟️ Promo Afiliasi — kupon pendaftaran gratis dari penyedia yang tidak kami sponsori (klik untuk memperluas)Bagian ini hanya untuk kode rujukan/kupon. Kemitraan yang disponsori ada di 🤝 Didukung oleh Teman-teman Sumber Terbuka Kami di atas. OmniRoute tidak memiliki sponsor atau kemitraan dengan penyedia yang tercantum di sini — ini adalah kupon publik yang dapat digunakan siapa saja.
AgentRouter agentrouter.org
AgentRouter — pendaftaran afiliasi · $100 kredit gratis saat mendaftar (server gratis, harapkan latensi lebih tinggi — terbaik untuk pengujian, bukan produksi). Dukungan kelas satu di OmniRoute sejak v3.8.50: Chat Completions, format kabel yang kompatibel dengan Anthropic, dan jalur yang kompatibel dengan OpenAI. Model yang tersedia termasuk claude-opus-4-8, claude-opus-5, gpt-5.6-sol, dan lainnya. Ambil $100 Anda →
⚠️ Tautan afiliasi — OmniRoute tidak memiliki sponsor atau kemitraan dengan penyedia ini.
Tahu penyedia lain dengan kupon pendaftaran gratis yang murah hati yang menguntungkan pengguna OmniRoute? Buka masalah dan kami akan menambahkannya di sini.
## 🎯 Combo — Fitur Unggulan
> **Combo** adalah rangkaian model yang dirutekan OmniRoute secara **otomatis**. Jika kuota habis, penyedia mengalami kegagalan, atau biaya melonjak, combo dapat beralih ke model sehat berikutnya yang memenuhi syarat. 🛡️
### ⚡ Tanpa konfigurasi — cukup gunakan `auto`
Tidak perlu membuat combo. Atur model Anda ke `auto` (atau salah satu variannya), lalu OmniRoute akan membangun combo virtual dari penyedia yang terhubung dan menilainya secara langsung:
ID Model
Hal yang dioptimalkan
auto
🎯 Default seimbang (LKGP — tetap menggunakan penyedia terakhir yang berfungsi baik)
auto/coding
🧑💻 Bobot yang mengutamakan kualitas untuk pembuatan kode
auto/fast
⚡ Latensi terendah terlebih dahulu
auto/cheap
💰 Biaya per token termurah terlebih dahulu
auto/offline
🔋 Ruang sisa kuota / batas laju terbesar terlebih dahulu
auto/smart
🔭 Mengutamakan kualitas + eksplorasi 10% untuk menemukan model yang lebih baik
auto/lkgp
📌 Secara eksplisit tetap menggunakan penyedia terakhir yang diketahui berfungsi baik
auto/chaos
🧪 Bobot injeksi kegagalan untuk pengujian ketahanan (rekayasa chaos)
##
### 🔀 Atau buat sendiri — 19 strategi perutean
Seluruh **19** strategi — padu padankan untuk setiap langkah combo:
#
Strategi
Cara kerjanya
1
priority
Daftar berurutan dengan target pertama sebagai prioritas — habiskan setiap target sebelum beralih ke target berikutnya 🥇
2
fill-first
Gunakan seluruh kuota setiap target sebelum beralih ke target berikutnya
3
weighted
Pemilihan acak berbobot berdasarkan bobot setiap target
4
round-robin
Gilir target secara berurutan
5
p2c
Penyeimbangan beban acak dengan metode dua pilihan
6
least-used
Pilih target dengan beban saat ini paling rendah
7
random
Pemilihan acak seragam (tanpa duplikasi)
8
strict-random
Pemilihan acak tanpa menghapus pengulangan 🎲
9
cost-optimized
Minimalkan biaya $ per permintaan berdasarkan harga katalog langsung 💸
10
headroom
Pilih target dengan sisa kuota terbanyak
11
reset-window
Utamakan target yang jendela kuotanya akan direset paling cepat
12
reset-aware
Urutkan berdasarkan waktu reset kuota — jendela singkat terlebih dahulu 📊
13
context-relay
Teruskan konteks antar-target untuk percakapan panjang 🧠
14
context-optimized
Pilih target yang paling sesuai dengan ukuran konteks saat ini
15
cache-optimized
Sematkan setiap prefiks prompt yang dapat digunakan kembali ke akun yang sama — maksimalkan hit cache prompt 🎯
16
lkgp
Jalur Terakhir yang Diketahui Berfungsi Baik — disematkan ke penyedia terakhir yang berhasil, lalu beralih ke aturan cadangan jika diperlukan
17
auto
Penilaian langsung berdasarkan 16 faktor di seluruh koneksi 🤖
18
fusion
Distribusikan permintaan ke panel model + model penilai menyintesis satu jawaban 🧬
19
pipeline
Rangkaikan langkah-langkah — keluaran setiap target menjadi masukan bagi target berikutnya 🔗
Mesin Auto-Combo menilai setiap kandidat berdasarkan **16 faktor** (kondisi, kuota, biaya, latensi, kesesuaian tugas, kualitas, ketersediaan sesi…) — lihat [`docs/routing/AUTO-COMBO.md`](docs/routing/AUTO-COMBO.md).
##
### 🧱 Ketahanan sudah terintegrasi (3 lapisan independen)
📖 [Mesin Auto-Combo](docs/routing/AUTO-COMBO.md) · [Panduan Ketahanan](docs/architecture/RESILIENCE_GUIDE.md)
## 🏆 Apa yang Membedakan OmniRoute
📊 Metodologi lengkap & detail per fitur vs 9router, OpenRouter, CLIProxyAPI & LiteLLM → [`docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md`](docs/comparison/OMNIROUTE_VS_ALTERNATIVES.md)
## 💚 Dukung OmniRoute
OmniRoute berlisensi MIT dan dipelihara secara terbuka. Jika proyek ini menghemat waktu atau uang Anda, berikut cara untuk menjaganya tetap independen — pilih apa pun yang sesuai bagi Anda. Sponsor tidak pernah memengaruhi prioritas perutean; sponsor memberikan visibilitas, bukan peringkat.
**🇧🇷 PIX** — instan, tanpa biaya (Brasil)
Kunci (acak): `5d865059-bc44-483a-962d-43ceb80126eb`
Pix salin-tempel:
```
00020101021126580014br.gov.bcb.pix01365d865059-bc44-483a-962d-43ceb80126eb5204000053039865802BR5922OMNIROUTE CONTRIBUICAO6006BRASIL62070503***630475DD
```
₿ Kripto — BTC · ETH · USDT-TRC20 · USDC-Solana (klik untuk memperluas)
₿ BTC
Bitcoin (SegWit)
bc1qh00smz004sy85wyl28v77tenkt3ckl6eaep7fd
Ξ ETH
Ethereum (ERC20)
0x64Cf6B68A6Ff34288e89172950a2d00102337a84
₮ USDT
Tron (TRC20)
TKAF41JpuQrHbKTnsQa9svJE2T192Hvsc2
$ USDC
Solana
2emNNZzVVWQc3FQ2wk9M6qXUQmW8AKdjjL174fXR28Tu
⚠️ Kirim setiap koin hanya melalui jaringan yang ditampilkan — pengiriman melalui jaringan yang salah dapat menyebabkan dana hilang.
🐛 Menemukan bug atau memiliki masukan? Buka [Diskusi](https://github.com/diegosouzapw/OmniRoute/discussions).
Catatan pengembang: Proyek ini dapat menghasilkan file .env lokal selama npm install/postinstall untuk memudahkan pengembang. File ini sengaja diabaikan melalui .gitignore (lihat .gitignore) dan tidak boleh pernah di-commit — jika tidak sengaja di-commit, rotasi semua rahasia yang terekspos dan hapus file tersebut dari riwayat. Lihat docs/DEVELOPER-ENVIRONMENT.md untuk panduan tentang pengelolaan file lingkungan lokal dan rahasia.
## 📡 Radar OmniRoute
Sorotan utama tingkat gratis tetap **~1,62 miliar token/bulan** dari katalog yang terdokumentasi dan telah dideduplikasi berdasarkan kumpulan di atas. Kredit pendaftaran penyedia yang bersifat sementara dapat secara terpisah meningkatkan jumlah pada bulan pertama menjadi **~2,22 miliar**. Radar adalah overlay katalog bertanda tangan yang bersifat opsional bagi pengguna yang menginginkan informasi ketersediaan model gratis yang lebih mutakhir di antara rilis OmniRoute; katalog komunitas dan setiap fitur gratis yang sudah ada tetap gratis.
Pendukung dapat menerima katalog langsung dan peluang tambahan dari penyedia. Batas atasnya yang terpisah dan dapat berubah adalah **maksimal sekitar 3 miliar token/bulan**, bergantung pada ketersediaan penyedia. Batas atas tersebut bukan jaminan: penyedia dapat mengubah kuota, kelayakan, model, atau wilayah kapan saja.
Radar bersifat pilihan dan hanya menggunakan GET. Klien OmniRoute tidak mengunggah prompt, lalu lintas, konfigurasi penyedia, telemetri penggunaan, atau status lokal penutupan pengumuman. Pelajari kelayakan dan katalog terkini di **[radar.omniroute.online/planos](https://radar.omniroute.online/planos)**.
## ✨ Yang Baru
> Sorotan terbaru dari **v3.8.20 → v3.8.50**. Riwayat lengkap tersedia di [`CHANGELOG.md`](CHANGELOG.md).
- **🎛️ OmniConductor** — delegasi A2A masuk ke armada agen Anda, keterampilan Conductor pada Agent Card, dan panel dasbor dengan obrolan suara tekan-untuk-bicara Faro. → [Server A2A](docs/frameworks/A2A-SERVER.md)
- **🛂 Penerimaan adaptif & perlindungan beban berlebih** — permintaan obrolan berat masuk antrean alih-alih menghasilkan 503, dengan lease bergulir RPM atomik per koneksi. → [Panduan Ketahanan](docs/architecture/RESILIENCE_GUIDE.md)
- **🗂️ Pengurutan kanonis `/v1/models`** — satu blok berkesinambungan yang dikelompokkan berdasarkan penyedia untuk setiap penyedia (combo disematkan terlebih dahulu), stabil di seluruh sumber katalog. → [Referensi API](docs/reference/API_REFERENCE.md)
- **🗜️ Penguatan kompresi** — perlindungan inflasi aktif secara default, paket Caveman untuk DE / FR / JA + bahasa Tionghoa (wényán), filter RTK untuk Gradle & .NET. → [Kompresi](docs/compression/COMPRESSION_ENGINES.md)
- **💸 Biaya tarif tetap yang jujur** — penyedia langganan / paket coding menampilkan biaya **$0** dalam analitik biaya; anggaran, kuota & perutean tetap melakukan estimasi. → [Referensi API](docs/reference/API_REFERENCE.md)
- **⚖️ Perutean Quota-Share** — membagi kuota akun bersama secara adil di antara kunci yang dikumpulkan, bersifat hemat kerja sehingga porsi yang menganggur dapat dipinjamkan. → [Panduan Ketahanan](docs/architecture/RESILIENCE_GUIDE.md)
- **🤖 Penyiapan CLI/agen dengan satu perintah** — 13 perintah `setup-*` terdaftar; `omniroute run` meluncurkan 7 CLI (Claude Code, Codex, Aider, Goose, OpenCode, Qwen Code, Gemini CLI); `omniroute configure` mendukung 10 target dengan pemilih penyedia+model interaktif dan favorit per konteks. → [Integrasi CLI](docs/guides/CLI-INTEGRATIONS.md)
- **🛰️ Mode jarak jauh** — kendalikan OmniRoute jarak jauh dengan token bercakupan (`connect` / `contexts` / `tokens`) + pembantu OAuth `antigravity` untuk instalasi VPS. → [Mode Jarak Jauh](docs/guides/REMOTE-MODE.md)
- **🧭 Perutean otomatis yang lebih cerdas** — combo `auto/:`, **Fusion** (panel model + penilai), perutean yang mempertimbangkan tugas, penggantian model / mode / anggaran USD per permintaan. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **🗜️ Kompresi yang dapat dipasang** — 12 mesin yang dapat dikomposisikan + Compression Studios: LLMLingua-2, Ultra dua tingkat, omniglyph, gerbang fidelitas per langkah, GCF v3.2, editor pengurutan ulang dengan seret. → [Kompresi](docs/compression/COMPRESSION_ENGINES.md)
- **🕵️ Dekripsi MITM transparan (TPROXY)** — tangkap CLI yang mengabaikan variabel lingkungan proksi, dengan CA per-SNI + penginstal trust store. → [MITM/TPROXY](docs/security/MITM-TPROXY-DECRYPT.md)
- **💸 Telemetri biaya di mana saja** — header biaya/penggunaan `X-OmniRoute-*` pada setiap endpoint, header penghematan cache-HIT, kuota pengeluaran USD per kunci. → [Referensi API](docs/reference/API_REFERENCE.md)
- **🧠 Memori yang Anda kendalikan** — nonaktif secara default, kuantisasi vektor int8 opsional + peluruhan bertipe, `x-omniroute-no-memory` per permintaan. → [Memori](docs/frameworks/MEMORY.md)
- **🛡️ Keamanan** — perlindungan injeksi prompt pada setiap rute LLM (rangkaian pengujian red-team), pagar pengaman penyamaran kredensial opsional (menyunting kunci API/rahasia yang bocor di kedua arah), pencarian web DuckDuckGo gratis sebagai pilihan terakhir, dan gerbang login OIDC opsional untuk dasbor (login dengan kata sandi selalu tetap tersedia). → [Pagar Pengaman](docs/security/GUARDRAILS.md)
- **🖼️ Endpoint baru** — `/v1/ocr` (Mistral OCR) dan `/v1/audio/translations` (bergaya Whisper) melengkapi cakupan media. → [Referensi API](docs/reference/API_REFERENCE.md)
- **🎨 Pembuatan gambar / video / audio** — satu API untuk media: video xAI Grok Imagine & Novita AI, ComfyUI, Magnific, Adobe Firefly, Segmind, dan penyedia suara seperti ElevenLabs. → [Referensi API](docs/reference/API_REFERENCE.md)
- **🌍 Deployment & operasi** — `basePath` proksi balik, deteksi otomatis bahasa browser, pelacakan perangkat per kunci, kepercayaan MITM tanpa root, lokalisasi zh-TW. → [Lingkungan](docs/reference/ENVIRONMENT.md)
- **🤝 Lebih banyak penyedia & agen** — agen cloud (Codex Cloud, Cursor, Devin, Jules), Grok Build (xAI) dengan browser + login OAuth, kartu kelas utama Ollama, Claude Opus 5 & Sonnet 5, kemitraan resmi Kimi (Code/Web/Moonshot), Zed, Requesty, SenseNova, Yuanbao, Agnes AI… serta **katalog 352 penyedia** yang diperbarui. → [Penyedia](docs/reference/PROVIDER_REFERENCE.md)
- **📡 Transparansi perutean** — setiap respons membawa header `X-OmniRoute-Decision` yang menyebutkan strategi/penyedia/latensi yang melayaninya, strategi combo `cache-optimized` baru + faktor `cacheAffinity` Auto-Combo merutekan permintaan berulang kembali ke koneksi yang menyimpan prefiks dalam cache, dan endpoint hanya-baca `/v1/auto-combo/{channel}/candidates` mengekspos kumpulan kandidat langsung milik kanal `auto/*`. → [Auto-Combo](docs/routing/AUTO-COMBO.md)
- **⚡ Performa lokal & infrastruktur** — Redis lokal sekali klik, deployer relay Cloudflare Workers / Deno Deploy, Bifrost & Mux sebagai layanan tertanam yang diawasi. → [Layanan Tertanam](docs/frameworks/EMBEDDED-SERVICES.md)
- **🧩 Juga disertakan** — kerangka kerja plugin + marketplace, kerangka kerja keterampilan Omni/Agent/GitHub, integrasi vault Obsidian (22 alat MCP), API Batch & Files yang kompatibel dengan OpenAI, cache respons semantik, gamifikasi dengan papan peringkat, penemuan agen ACP (15 agen bawaan), ekspor log terjadwal ke BigQuery, injeksi kesalahan `auto/chaos`, jembatan bot Telegram, pengelola versi dalam aplikasi, dan peringkat penyedia gratis LMArena-ELO. → [Dokumentasi](docs/README.md)
## 🤖 CLI & Agen Pengodean yang Kompatibel
> Satu konfigurasi — `http://localhost:20128/v1` — dan **setiap** IDE atau CLI AI berjalan pada model gratis & berbiaya rendah.
+ juga berfungsi dengan · Agent Deck · Kiro · Command Code · Antigravity · Windsurf · AMP · alat apa pun yang kompatibel dengan OpenAI
📖 Pengaturan per alat untuk semua 36 alat (26 CLI Code + 10 CLI Agent) → [`docs/reference/CLI-TOOLS.md`](docs/reference/CLI-TOOLS.md) · 🧩 Plugin OpenCode → [`@omniroute/opencode-provider`](https://www.npmjs.com/package/@omniroute/opencode-provider)
**Luncurkan CLI yang didukung melalui OmniRoute dalam satu perintah** — tanpa file konfigurasi yang ditulis,
kredensial disuntikkan per proses, Qwen/Gemini mendapatkan lingkungan terisolasi sekali pakai:
```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"
# Or pick provider+model interactively and write the tool's own config:
omniroute configure codex # also: claude opencode qwen aider goose gemini cline continue kilo
```
Setiap perintah menghormati konteks jarak jauh aktif (`omniroute connect `), `--dry-run`
menampilkan pratinjau env/args yang tepat tanpa mengeksekusi, dan `--api-key-env NAME` menjaga rahasia
keluar dari riwayat shell Anda. → [Integrasi CLI](docs/guides/CLI-INTEGRATIONS.md)
## 🌐 357 Penyedia AI — 152 Ditandai Gratis di Katalog
> **357 penyedia terdaftar** di seluruh koleksi chat, media, pencarian, lokal, agen cloud, dan sistem kanonis, termasuk **152 yang membawa metadata penemuan `hasFree: true`**. Registri model chat mencakup **229 penyedia / 2.554 pasangan penyedia-model yang berbeda / 1.283 ID model mentah**; katalog anggaran gratis terpisah memiliki **491 baris per model**, **35 kumpulan berulang** dan **54 penyedia gratis selamanya yang berulang/tanpa kunci**. Ini adalah penyebut yang berbeda berdasarkan desain; definisi dan perhitungan yang dideduplikasi dari kumpulan tersedia di [Referensi Penyedia](docs/reference/PROVIDER_REFERENCE.md) dan [Tingkat Gratis](docs/reference/FREE_TIERS.md).
### 🏢 Setiap lab besar — melalui satu endpoint
OpenAI
Anthropic
Gemini
xAI Grok
DeepSeek
Mistral
Qwen
Meta Llama
Groq
NVIDIA
MiniMax
Cohere
Perplexity
HuggingFace
Together
Fireworks
Cloudflare
Baidu
…dan 330+ lainnya — setiap ikon diselesaikan secara langsung dari katalog penyedia di dasbor. 📖 [Referensi Penyedia](docs/reference/PROVIDER_REFERENCE.md)
### 🆓 Gratis Selamanya — $0, tanpa kartu
OpenCode Zen DeepSeek V4, Nemotron 3 Tanpa batas token
Kilo Code Auto-router, Tencent Hy3 Gratis selamanya
Requesty GPT-OSS 120B, Nemotron Gratis selamanya
SiliconFlow DeepSeek V3.2 / R1 Tingkat gratis
Z.AI GLM GLM-4.7 / 4.5-Flash Gratis selamanya
Baidu ERNIE ERNIE 4.0 Gratis selamanya
Qoder AI Qwen3-Max, Kimi-K2 GRATIS Tanpa Batas
Pollinations GPT, Llama, Claude Tidak perlu kunci
Cloudflare AI 50+ model 10K neuron/hari
NVIDIA NIM GLM, MiniMax ~40 RPM gratis
Cerebras GLM 4.7, GPT-OSS 1 juta token/hari
OpenRouter :model gratis +$10 → RPM lebih tinggi
📖 Katalog lengkap yang dapat dibaca mesin → [`docs/reference/PROVIDER_REFERENCE.md`](docs/reference/PROVIDER_REFERENCE.md)
## 🖥️ Di Mana OmniRoute Berjalan — Di Mana Saja
> Aplikasi yang sama, mesin Anda, aturan Anda. Dari instalasi npm global hingga **ponsel Anda** melalui Termux.
Platform
Instalasi
Keunggulan
📦 npm (global)
npm install -g omniroute
Satu perintah, OS apa pun
🐳 Docker
docker run … diegosouzapw/omniroute
Multiarsitektur AMD64 + ARM64
🖥️ Desktop (Electron)
npm run electron:build
Jendela native + baki sistem — Windows / macOS / Linux
🎩 Bilah menu (OmniRouteTray)
brew install --cask zoispag/tap/omniroute-tray
Mengawasi & memperbarui server secara otomatis — macOS
💪 ARM
arm64 native
Raspberry Pi, server ARM, Apple Silicon
📱 Android (Termux)
pkg install nodejs && npx -y omniroute
Berjalan di ponsel Anda, 24/7, tanpa root
📲 PWA
"Tambahkan ke Layar Utama"
Layar penuh, offline, dapat diinstal dari browser
🧩 Plugin OpenCode
@omniroute/opencode-provider
Integrasi OpenCode native
🤖 VS Code Copilot Chat
instal ekstensi OmniCopilot
Setiap model OmniRoute di pemilih native Copilot Chat — stabil & Insiders
### 🧩 Baru: OmniRoute di dalam Copilot Chat native VS Code
> Tanpa bilah sisi baru, tanpa UI obrolan baru — setiap model yang disediakan OmniRoute muncul langsung di
> **pemilih model Copilot Chat yang sudah Anda gunakan**. Sejak VS Code 1.122, model penyedia dapat digunakan
> tanpa masuk ke GitHub atau berlangganan Copilot — mode agen, pemanggilan alat, dan visi, secara
> gratis.
Instal ekstensi **[OmniCopilot](https://github.com/diegosouzapw/OmniCopilot)**, arahkan
ke server OmniRoute Anda (default ke `localhost:20128`), lalu buka Copilot Chat → pemilih model
→ **Kelola Model…** → **OmniRoute**.
Dari dalam editor: buka tampilan **Extensions**, cari **"OmniRoute"**, klik **Instal**
— berfungsi dengan cara yang sama di kedua toko. Kode sumber, masalah, dan panduan penerbitan tersedia di
[diegosouzapw/OmniCopilot](https://github.com/diegosouzapw/OmniCopilot).
📖 [Panduan VS Code Copilot Chat](docs/guides/VSCODE-COPILOT.md) — penyiapan, apa yang ditampilkan pemilih, dasbor dalam tab, pemecahan masalah
### 🎩 Baru: OmniRouteTray — gateway Anda, menetap di bilah menu
> `omniroute serve` bekerja paling baik saat selalu aktif. **[OmniRouteTray](https://github.com/zoispag/omniroute-tray)**
> mengubahnya menjadi aplikasi bilah menu macOS yang cukup diatur sekali lalu dibiarkan: aplikasi ini memulai server, menjaganya tetap aktif
> setelah dimulai ulang, memperbaruinya langsung, dan menampilkan anggaran token aktif Anda hanya dengan satu klik — **tanpa
> membiarkan jendela terminal terbuka, tanpa perlu mengawasi `npm install -g omniroute`.**
Dibangun dengan [Tauri v2](https://v2.tauri.app/) (inti Rust yang ukurannya nyaris tak berarti), aplikasi ini menyertakan
runtime Node 24 bertanda tangan miliknya sendiri dan mengelola instalasi OmniRoute milik aplikasi, sehingga tidak pernah berbenturan dengan
`node`/`bun` global Anda. Aplikasi ini **menggunakan bersama konfigurasi dan basis data `~/.omniroute/` Anda yang sudah ada** — jadi ini adalah
OmniRoute yang sama dengan yang sudah Anda jalankan, hanya saja kini memakai topi. 🎩
Fungsinya
Caranya
🟢 Mengawasi server
Menjalankan omniroute serve, mengambil alih instans yang sudah berjalan alih-alih menduplikasinya
📊 Penggunaan aktif dalam sekilas
Bilah kuota penyedia, batas sesi/mingguan Claude beserta hitung mundur pengaturan ulang, perincian biaya 30 hari
🔄 Memperbarui otomatis secara langsung
Instalasi bertahap, pertukaran atomik, pengembalian versi saat gagal — selalu menggunakan rilis terbaru
🚀 Mulai saat masuk
Peluncuran opsional saat masuk; hanya di baki, tanpa ikon dock
🩺 Diagnostik & log
Diagnostik sekali klik dan akses log server
```sh
brew install --cask zoispag/tap/omniroute-tray
```
Lebih suka mengunduh? Ambil .dmg terbaru dari
Rilis. Kode sumber, masalah, dan dokumentasi build
tersedia di zoispag/omniroute-tray.
💛 Proyek komunitas oleh @zoispag — bukan rilis resmi OmniRoute.
> Selain server, OmniRoute merupakan **pusat kendali baris perintah lengkap** dengan **80+ perintah**, ditambah protokol agen terbuka sehingga agen AI dapat mengendalikannya **secara mandiri**.
### ⌨️ CLI sungguhan (bukan sekadar `start`)
```bash
omniroute # menjalankan gateway + dasbor (port 20128)
omniroute chat # klien obrolan TUI interaktif (garis miring: /model /combo /skill /memory)
omniroute setup # panduan interaktif untuk penggunaan pertama
omniroute doctor # mendiagnosis penyedia, port, dependensi native
```
### 🛰️ Mode jarak jauh — jalankan CLI di sini, OmniRoute di VPS
Menjalankan OmniRoute di server? Kendalikan dari laptop Anda dengan **CLI yang sama**. Masuk sekali
dengan token akses bercakupan; setelah itu, setiap perintah akan menargetkan server jarak jauh.
```bash
omniroute connect 192.168.0.15 # kata sandi → token bercakupan, disimpan sebagai konteks
omniroute models list # ← berjalan pada server JARAK JAUH
omniroute configure codex # ← memilih model jarak jauh, menulis profil Codex lokal
omniroute tokens create --name ci --scope read # membuat token dengan cakupan lebih sempit untuk mesin lain
omniroute contexts use default # ← beralih kembali ke server lokal
```
Token memiliki cakupan `read` / `write` / `admin`; rute yang menjalankan proses tetap hanya dapat diakses melalui loopback.
📖 [Mode Jarak Jauh](docs/guides/REMOTE-MODE.md)
### 🤝 Hubungkan agen — dan agen tersebut mengendalikan OmniRoute itu sendiri
Ekspos OmniRoute melalui **MCP**, **A2A**, **REST API**, **webhook**, atau **CLI jarak jauh** — agen apa pun yang mampu (atau kode Anda sendiri) akan memperoleh akses untuk mengendalikan seluruh gateway: perutean, penyedia, kombo, cache, kompresi, memori — secara otonom. Endpoint HTTP di bawah ini tersedia melalui `http://localhost:20128`.
Antarmuka
Endpoint / perintah
Gunakan untuk
🧰 MCP (stdio)
omniroute --mcp
Integrasikan dengan Claude Desktop, Cursor, atau klien MCP apa pun
🌊 MCP (HTTP)
/api/mcp/stream
MCP jarak jauh — 110 alat, 33 cakupan (penegakan bersifat opsional), jejak audit lengkap
📡 MCP (SSE)
/api/mcp/sse
Transportasi MCP streaming
🤝 A2A
/.well-known/agent.json
Antaragen, JSON-RPC 2.0 + SSE, 6 keterampilan
🌐 REST API
/v1/*
Kompatibel dengan OpenAI — obrolan, embedding, gambar, audio, OCR
🔔 Webhook
/api/webhooks
Kirim peristiwa permintaan / kuota ke Slack, Discord, Telegram, atau URL apa pun
🛰️ CLI Jarak Jauh
omniroute connect
Kendalikan instans jarak jauh dengan token akses bercakupan
```bash
# Berikan seluruh perangkat OmniRoute kepada Claude Code melalui MCP:
claude mcp add-server omniroute --type http --url http://localhost:20128/api/mcp/stream
```
📖 [Server MCP](docs/frameworks/MCP-SERVER.md) · [Server A2A](docs/frameworks/A2A-SERVER.md) · [Protokol Agen](docs/frameworks/AGENT_PROTOCOLS_GUIDE.md)
## 🗜️ Hemat 15–95% Token — Secara Otomatis
### 📖 Cara kerjanya — alur, arsitektur & perhitungan penghematan
Kombinasi bertumpuk default menjalankan `RTK → Caveman`. Ketika keduanya memproses payload alat/konteks yang sama, penghematannya berlipat:
```txt
combined = 1 − (1 − RTK) × (1 − Caveman_input)
average = 1 − (1 − 0.80) × (1 − 0.46) = 89.2%
range = 78.4 – 94.6%
```
Blok kode, URL, JSON, dan data terstruktur **selalu dilindungi** oleh mesin preservasi.
> **Mengapa menggunakan banyak token jika sedikit token sudah cukup?** Setiap permintaan melewati alur kompresi OmniRoute **secara transparan** — tanpa perubahan pada klien. Kini alur ini merupakan **tumpukan 12 mesin yang dapat dikomposisikan**, yang berjalan secara berurutan dan dapat dipadupadankan untuk setiap kombinasi perutean — dikembangkan berdasarkan gagasan dari [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).
### 🧱 Tumpukan 12 mesin
Mesin berjalan sesuai urutan alur; masing-masing dapat diaktifkan atau dinonaktifkan dan dikonfigurasi secara independen untuk setiap kombinasi:
#
Mesin
Fungsinya
1
Session-Dedup
Menghapus konten yang berulang antargiliran (beralamatkan konten, lintas giliran)
2
CCR
Mengarsipkan blok besar di balik penanda pengambilan, lalu mengambilnya sesuai permintaan
3
Lite
Pemangkasan spasi putih + URL gambar (dasar berlatensi rendah)
4
RTK
Pemfilteran, deduplikasi & pemotongan hasil alat secara cerdas (peka terhadap perintah)
5
Responses Tool Output
JSON yang mengutamakan lossless + kompresi diagnostik terbatas untuk keluaran shell/patch/pencarian/build (Responses API)
6
Headroom
Pemadatan tabular lossless pada array JSON (~30%) melalui codec GCF yang disertakan langsung
7
Relevance
Penilaian kalimat secara ekstraktif berdasarkan kueri terakhir pengguna
8
Caveman
Kompresi prosa berbasis aturan (~65–75% pada keluaran)
9
Aggressive
Peringkasan + penuaan progresif pada giliran lama
10
LLMLingua-2
Pemangkasan semantik ML melalui MobileBERT ONNX — aman untuk kode, asinkron
11
Ultra
Pemangkasan token heuristik dengan tingkat model kecil (SLM) opsional
12
OmniGlyph
Pengodean eksperimental konteks sebagai gambar untuk Claude Fable 5 yang terukur pada koneksi langsung Anthropic; transformer GPT 5.6 tetap tertutup secara aman sambil menunggu tanda terima penyedia. Empat profil kompresi (agresif sebagai default, seimbang, aman untuk pengodean, passthrough) (paling agresif; harus diaktifkan secara eksplisit)
Blok kode, URL, dan data terstruktur **selalu dipertahankan** secara sempurna hingga tingkat byte. **Preset sekali klik** menggabungkan mesin-mesin tersebut:
Mode
Penghematan
Paling cocok untuk
🪶 Lite
~15%
Default aman yang selalu aktif
🪨 Standar (Caveman)
~30%
Pengodean sehari-hari
⚡ Agresif
~50%
Sesi panjang yang banyak menggunakan alat
🔥 Ultra
~75%
Penghematan maksimum
🧰 RTK
60–90%
Keluaran shell/pengujian/build/git
🔗 Bertumpuk (RTK → Caveman)
78–95%
Prompt campuran + log alat
**Contoh nyata — Mode standar:**
> **Sebelum (69 token):** _"Alasan komponen React Anda dirender ulang kemungkinan karena Anda membuat referensi objek baru pada setiap siklus render. Saat Anda meneruskan objek inline sebagai prop, perbandingan dangkal React melihatnya sebagai objek yang berbeda setiap kali, sehingga memicu render ulang. Saya menyarankan penggunaan useMemo untuk melakukan memoization pada objek tersebut."_
>
> **Sesudah (19 token):** _"Referensi objek baru setiap render. Prop objek inline = referensi baru = render ulang. Bungkus dengan useMemo."_
>
> **Jawaban sama. Token 72% lebih sedikit. Tanpa kehilangan akurasi.** ✅
**Contoh PT-BR — mode [Troglodita](https://github.com/leninejunior/troglodita):**
> **Sebelum (42 token):** _"Masalahnya adalah komponen dirender ulang karena referensi objek baru dibuat pada setiap siklus render. Saya menyarankan menggunakan useMemo."_
>
> **Sesudah (12 token):** _"Render ulang: ref baru tiap siklus (objek inline dibuat ulang). Gunakan `useMemo`."_
>
> **Jawaban sama. ~70% lebih sedikit token. Akurasi teknis tetap terjaga.** ✅
### 🎚️ Lebih dari sekadar mesin — gaya output, kontrol adaptif & kontrol per permintaan
Ke-12 mesin di atas memperkecil apa yang **masuk**. Tiga lapisan tambahan membentuk **bagaimana**, **kapan**, dan apa yang **keluar**:
- **🪄 Gaya Output** _(pengarahan sumbu output)_ — menyisipkan instruksi pembentukan respons yang deterministik dan aman untuk cache; dapat dikombinasikan, masing-masing dengan intensitas `lite` / `full` / `ultra`. Menambahkan gaya cukup dengan satu baris entri registri:
- **Prosa ringkas** — hilangkan basa-basi / artikel / ungkapan keraguan; pertahankan substansi teknis secara akurat.
- **Lebih sedikit kode** — YAGNI ala "developer senior yang malas": perubahan fungsional terkecil, tanpa scaffolding yang tidak diminta.
- **Ponytail (developer senior yang malas)** — naikkan tangga YAGNI, perbaiki akar masalah, diff fungsional terkecil.
- **Saya memiliki ADHD (tindakan lebih dulu)** — awali dengan tindakan berikutnya, langkah-langkah bernomor, satu langkah konkret berikutnya, tanpa pembukaan.
- **CJK ringkas (文言)** — gaya bahasa Tionghoa klasik yang sangat ringkas (dibatasi untuk locale `zh`).
- **🎯 Anggaran konteks adaptif** _(kontrol)_ — alih-alih satu ambang token aktif/nonaktif, tingkatkan penggunaan mesin termurah dengan kehilangan paling minim hanya sejauh yang diperlukan agar **sesuai dengan jendela konteks model**. Kebijakan: `reserve-output` (default, sadar model) · `percentage` · `absolute`. Mode: `floor` (menjamin kesesuaian) · `replace-autotrigger` (pilihan eksplisit Anda yang berlaku) · `off` (ambang lama).
- **🎛️ Tempat kompresi ditentukan** _(prioritas, tinggi → rendah)_ — header `x-omniroute-compression` per permintaan › override kombinasi routing › profil bernama yang aktif › adaptif / pemicu otomatis › default panel › nonaktif. Rencana yang diterapkan dikembalikan dalam header respons `X-OmniRoute-Compression: ; source=`.
Gunakan pemicu otomatis berdasarkan ambang token, aktifkan kontrol adaptif, sematkan profil bernama, tetapkan konfigurasi satu kali per permintaan, atau tetapkan pipeline per kombinasi routing — pilih yang paling sesuai dengan beban kerja. **Harness evaluasi** offline yang bersifat opsional (`npm run eval:compression`) menilai fidelitas dibandingkan penghematan pada korpus tetap sebelum Anda menerapkan 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)
# ⚡ Mulai Cepat
**1) Instal & jalankan**
```bash
npm install -g omniroute
omniroute
```
> 💡 Melihat `npm warn ERESOLVE` atau peringatan peer-dep? [Itu tidak berbahaya](docs/guides/TROUBLESHOOTING.md#npm-install-warnings-eresolve--peer--deprecated).
Dasbor tersedia di `http://localhost:20128` · API tersedia di `http://localhost:20128/v1`.
**2) Hubungkan penyedia GRATIS (tanpa pendaftaran)**
Dasbor → **Penyedia** → hubungkan **Kiro AI** (Claude gratis, ~50 kredit/bulan per akun) atau **OpenCode Free** (tanpa autentikasi) → selesai.
**3) Arahkan alat coding Anda**
```txt
URL Dasar: http://localhost:20128/v1
Kunci API: [salin dari Dasbor → Endpoint]
Model: auto (routing cerdas tanpa konfigurasi — atau penyedia/model apa pun)
```
**4) Verifikasi bahwa semuanya berfungsi**
```bash
curl http://localhost:20128/v1/models -H "Authorization: Bearer YOUR_KEY"
```
Anda akan melihat daftar model yang terhubung. 🎉 Selesai — mulailah coding, dan OmniRoute akan melakukan routing otomatis serta fallback untuk Anda.
Jika klien Anda tidak dapat mengirim header khusus, OmniRoute juga menyediakan alias kompatibilitas berbasis token:
```txt
Katalog OpenAI: http://localhost:20128/vscode/YOUR_KEY/
Model OpenAI: http://localhost:20128/vscode/YOUR_KEY/models
Chat OpenAI: http://localhost:20128/vscode/YOUR_KEY/chat/completions
Respons OpenAI: http://localhost:20128/vscode/YOUR_KEY/responses
Chat 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 menyertakan `Authorization: Bearer ...`. Autentikasi melalui header tetap menjadi mode yang disarankan.
## 📦 Metode instalasi lainnya — 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 telah dipublikasikan** dengan versi tertinggi. Tag ini tidak mengikuti `main` di git. Gunakan tag tetap `:X.Y.Z` untuk GitOps. Lihat [Kanal Rilis Docker](docs/guides/DOCKER_GUIDE.md#release-channels). Image tersebut menetapkan **`OMNIROUTE_MEMORY_MB=1024`**. Kapasitas ini cukup untuk dasbor dan percakapan ringan. **Agen pengodean** (`POST /v1/responses` dari Claude Code, Codex, Grok, …) memerlukan heap V8 yang jauh lebih besar; jika tidak, proses akan mengalami `FATAL ERROR` pada sekitar 12 GiB saat dua konteks panjang saling tumpang tindih. Atur kapasitas kontainer agar lebih besar daripada heap (buffer native berada di luar V8):
| Beban kerja | Heap (`-e OMNIROUTE_MEMORY_MB`) | Kontainer (`--memory`) |
| ------------------------------------ | ------------------------------- | ---------------------- |
| Dasbor / percakapan ringan | `1024` (default image) | ≥2 g |
| Satu agen pengodean | `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
```
Tabel lengkap: [Panduan Docker — RAM runtime](docs/guides/DOCKER_GUIDE.md#runtime-ram-for-coding-agents).
> **Kanal Docker prarilis:** `diegosouzapw/omniroute:next` dan
> `diegosouzapw/omniroute:next-web` mengikuti branch default `release/v*`
> saat ini. Tag yang dapat berubah ini hanya ditujukan untuk menguji perbaikan yang belum dirilis dan
> **tidak didukung untuk produksi**. Lihat
> [Kanal Rilis Docker](docs/guides/DOCKER_GUIDE.md#release-channels).
**🥟 Bun**
`bun install` standar dan instalasi global (`bun install -g omniroute`) didukung melalui deteksi runtime Bun:
- **`bun:sqlite` bawaan**: OmniRoute menggunakan driver `bun:sqlite` bawaan Bun ketika berjalan di Bun, dengan fallback ke `better-sqlite3` di Node.js atau `sql.js`.
- **Pemilihan bundler Webpack otomatis dalam pengembangan**: Mode pengembangan (`bun run dev`) secara otomatis mendeteksi Bun dan menonaktifkan Turbopack untuk menggunakan Webpack demi mencegah inkompatibilitas binding native V8. Build produksi (`bun run build`) mengikuti `OMNIROUTE_USE_TURBOPACK` persis seperti di Node: Turbopack secara default, atau `OMNIROUTE_USE_TURBOPACK=0` untuk melakukan build dengan Webpack (`Dockerfile.bun` menyediakannya sebagai `--build-arg`).
- **Dockerfile khusus Bun**: `Dockerfile.bun` multi-tahap untuk deployment produksi Bun native (`docker build -f Dockerfile.bun -t omniroute:bun .`).
```bash
# Instal dan jalankan dengan Bun
bun install
bun run dev
```
**🛠️ Dari 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 flake Nix
nix develop
npm run dev
# Atau menggunakan devbox
devbox run npm run dev
```
📖 [Panduan Docker](docs/guides/DOCKER_GUIDE.md) — Profil Compose, HTTPS Caddy, tunnel Cloudflare.
**🦭 Podman**
```bash
# 1. Siapkan direktori data yang dipasang melalui bind mount
mkdir -p data
# 2. Hanya untuk Linux + Podman rootless lokal (jangan pernah pada klien Podman Machine jarak jauh):
podman unshare chown 1000:1000 ./data
# 3. Tetapkan petunjuk runtime, build image Compose lokal, lalu mulai
echo "CONTAINER_HOST=podman" >> .env
podman compose --profile base up -d --build
```
Di macOS atau Windows, Podman menggunakan Podman Machine jarak jauh: lewati `podman unshare` dan
ikuti [panduan direktori data khusus topologi](contrib/podman/README.md#data-directory-permissions-by-topology).
📖 [Panduan Podman](contrib/podman/README.md) — Build Compose, Podman Machine, dan
penyiapan Quadlet Linux/systemd.
**⚡ Instalasi lebih cepat / ringan (lewati build native)**
Mesin SQLite native (`better-sqlite3`) adalah dependensi **opsional**, sehingga instalasi
global tidak akan pernah terhambat oleh kompilasi dari sumber: instalasi menggunakan biner siap pakai jika tersedia
untuk platform/Node Anda, dan jika tidak, akan melakukan fallback secara transparan ke mesin JavaScript murni
(`node:sqlite` pada Node 22+, atau WASM `sql.js` yang disertakan) — tanpa memerlukan alat build.
Untuk sepenuhnya melewati pemanasan native pascainstalasi (CI, tanpa antarmuka grafis, atau mesin lambat):
```bash
OMNIROUTE_SKIP_POSTINSTALL=1 npm install -g omniroute # CI=1 juga melewatinya
```
Untuk instalasi tercepat, utamakan **pnpm** (penyimpanan berbasis alamat konten + hard link — lihat di atas).
Untuk runtime tanpa dasbor dan tanpa antarmuka grafis, gunakan profil Docker `base` (di atas) atau
[panduan Termux](docs/guides/TERMUX_GUIDE.md). CLI dan dasbor web dilayani oleh
proses yang sama pada satu port, sehingga saat ini tidak ada paket khusus CLI yang terpisah.
Strategi cakupan pengujian untuk 39.000+ deklarasi pengujian statis di 5.100+ file pengujian yang dilacak
# ⭐ Kontributor Teratas
> OmniRoute dibentuk oleh komunitas open-source yang bersemangat. Individu-individu ini telah memberikan kontribusi luar biasa yang secara langsung memengaruhi kualitas, stabilitas, dan jangkauan proyek. **Terima kasih.**
### Kontributor eksternal berdasarkan permintaan tarik yang digabungkan
Dibekukan pada tip live release/v3.8.50dafb4ae808, dengan penggabungan hingga 2026-08-24 05:26:03 UTC. Sensus GitHub GraphQL yang dipaginasi berisi 5.911 PR yang digabungkan: 2.707 oleh pemilik repositori, 179 oleh Dependabot, dan **3.025 PR eksternal dari 535 kontributor berbeda**. "Baris yang Berubah" adalah penambahan + penghapusan GitHub dan mencakup file yang dihasilkan, lockfile, katalog, terjemahan, dan dokumentasi; ini adalah churn, bukan LOC yang dibuat. Ikatan pada batas tetap dipertahankan.
### Komit yang diatribusikan GitHub
Bob.Hou 🏅 51 komit yang diatribusikan GitHub · seri #10
Xiangzhe 🏅 51 komit yang diatribusikan GitHub · seri #10
Diperiksa ulang pada 2026-08-24 06:14:31 UTC: Komit yang diatribusikan GitHub dilaporkan oleh API Kontributor repositori untuk cabang default release/v3.8.50. API mengembalikan 525 identitas (415 pengguna, 2 bot, 108 anonim); tabel ini mengecualikan pemelihara, bot, dan identitas anonim serta mempertahankan seri kompetisi. Ini berbeda dari peringkat PR yang digabungkan di atas dan sensus metadata Git 639 orang di bawah.
> 🙏 Fitur, perbaikan bug, dan peningkatan infrastruktur dari para kontributor ini adalah **bagian inti** dari apa yang membuat OmniRoute andal dan kaya fitur. Setiap permintaan tarik, setiap kasus uji, dan setiap file terjemahan i18n itu penting. Sumber terbuka dibangun oleh orang-orang seperti mereka.
---
## 💖 Sponsor
Terima kasih yang tulus kepada orang-orang yang mendanai OmniRoute dari kantong mereka sendiri — setiap kontribusi menjaga proyek ini tetap gratis, independen, dan terus berkembang.
… dan pihak lain yang memilih untuk tetap anonim 💛GitHub Sponsors publik divalidasi ulang pada 2026-08-24. Status activeOnly GitHub menentukan label aktif di atas; pendukung satu kali publik yang sebelumnya diungkapkan tetap mendapatkan ucapan terima kasih, dan sponsor privat tetap anonim.💖 Jadilah sponsor → — setiap dolar menjaga OmniRoute tetap gratis dan independen.
## 👥 600+ Kontributor
[](https://github.com/diegosouzapw/OmniRoute/graphs/contributors)
Diaudit pada 2026-08-24 pada basis beku ac02c5b42f dan diperiksa ulang pada tip live release/v3.8.50dafb4ae808: 639 identitas manusia Git yang telah dinormalisasi — 407 muncul sebagai penulis commit (termasuk pengelola) dan 232 hanya dalam trailer eksplisit Co-authored-by. Sensus ini menormalisasi handle noreply GitHub, mengecualikan 26 identitas bot/agen/layanan/placeholder, dan tidak menggabungkan alamat email biasa hanya karena nama tampilannya cocok.
### Cara Berkontribusi
1. Fork repositori
2. Buat branch dari tip `release/vX.Y.Z` yang **aktif** (bukan `main`) — lihat [Model Branching & Rilis](docs/ops/BRANCHING_MODEL.md)
3. Buat branch fitur Anda (`git checkout -b feat/amazing-feature`)
4. Commit perubahan Anda (`git commit -m 'feat: add amazing feature'`)
5. Push ke branch tersebut (`git push origin feat/amazing-feature`)
6. Buka Pull Request dengan **base = branch `release/vX.Y.Z` tersebut**
Lihat [CONTRIBUTING.md](CONTRIBUTING.md) untuk panduan terperinci.
### Merilis Versi Baru
```bash
# Buat rilis — npm publish berlangsung secara otomatis
VERSION=x.y.z
gh release create "v${VERSION}" --title "v${VERSION}" --generate-notes
```
## 📊 Bintang
## 🌍 StarMapper
## 🙏 Ucapan Terima Kasih
OmniRoute berdiri di atas fondasi yang dibangun oleh para pendahulunya. Proyek ini bermula sebagai fork dari **[9router](https://github.com/decolua/9router)** dan port TypeScript dari proyek Go **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** — dan sejak saat itu, setiap subsistem di bawah ini terinspirasi oleh proyek sumber terbuka yang lebih dahulu mewujudkannya. Masing-masing membentuk bagian nyata dari OmniRoute. Inilah ungkapan terima kasih kami kepada mereka semua. 🙏
> ⭐ jumlah bintang diverifikasi melalui REST API GitHub pada 24 Agustus 2026 — berikan bintang kepada proyek-proyek ini. Jumlah tersebut merupakan cuplikan persis pada tanggal itu dan sewajarnya akan berubah.
### 🧬 Asal-usul & gateway
Gateway AI yang set data harga publiknya mendukung sinkronisasi pelacakan biaya kami dan yang model normalisasi penyedianya menjadi acuan perutean kami.
Sumber berlisensi MIT yang diadaptasi ke dalam jembatan ChatGPT Web → Codex Responses yang disertakan, termasuk adaptor sesi browser, pembingkaian respons, penggunaan, dan pencarian web.
Pola yang di-porting ke pemulihan aliran, alias tanpa penalaran, pencarian web cadangan, batas jendela bergeser, penyamaran log, dan alur peluncur yang diperkuat.
Nilai default transformasi yang kompatibel dengan Claude Code dan perilaku header penagihan yang digeneralisasi ke dalam jembatan OmniRoute berbasis konfigurasi.
Pemetaan model Grok, generator Statsig TypeError palsu, nilai default permintaan dan perangkat, serta pemroses respons NDJSON miliknya diadaptasi secara substantif ke dalam eksekutor Grok Web OmniRoute.
Sumber kode transitif utama di balik grok2api-merged; implementasi model, header, payload, Statsig, dan pemrosesnya dipertahankan dalam garis turunan Grok Web.
Sumber berlisensi MIT yang mendasari nilai default payload dan perangkat Grok, generator Statsig, serta pemroses result.response yang diteruskan melalui TQZHR dan grok2api-merged.
Sumber transitif yang dicantumkan oleh grok2api-merged untuk lapisan kumpulan proksinya; OmniRoute mempertahankan pemberitahuan garis turunan tersebut, tetapi tidak mengklaim adanya port kumpulan proksi dalam eksekutor Grok Web terbatas miliknya.
Implementasi awal Grok Web mengacu pada desain hulu HTTP/browser miliknya; jalur HTTP langsungnya berasal dari GrokProxy, sehingga tidak ada port kode independen yang diklaim.
Proyek viral "mengapa menggunakan banyak token jika sedikit token sudah cukup" — filosofi bahasa manusia guanya mendukung mode kompresi standar kami serta lebih dari 30 aturan penghilangan kata pengisi/kondensasi.
Kompresi token pt-BR — mendukung paket bahasa pt-BR kami: pengurangan pleonasme dan penghilangan kata pengisi yang disesuaikan untuk tata bahasa Portugis Brasil.
Skill pemrogram YAGNI "pengembang senior malas" yang viral — menginspirasi Gaya Output less-code kami: pengarahan menuju perubahan terkecil yang berfungsi, yang mengurangi kode yang _dihasilkan_ (padanan pada sumbu output dari prosa ringkas Caveman).
Kompresi output berbasis tipe file dan peka terhadap konten, dengan pembatalan yang mempertimbangkan kegagalan — memvalidasi pengiriman per tipe dan pelewatan saat perolehan minimum tidak tercapai.
JSON kolumnar berbasis Rust + pengambilan berbasis alamat konten + deduplikasi lintas pesan — memvalidasi desain mesin headroom/ccr/session-dedup kami dan invarian yang stabil terhadap cache bahwa "bentuk terkompresi tidak bergantung pada posisi".
Intersepsi/analisis MITM terhadap lalu lintas asisten pengodean ↔ LLM menjadi dasar persyaratan awal Traffic Inspector. Empat modul yang sebelumnya diturunkan — penggabungan SSE, normalisasi percakapan, penyamaran rahasia, dan sanitasi header — telah digantikan oleh implementasi clean-room independen berdasarkan standar protokol publik. Dua permukaan passthrough host (passthrough.ts dan _internal/bypass.cjs) tetap merupakan implementasi internal OmniRoute yang diklasifikasikan secara independen; keduanya tidak ditulis ulang sebagai bagian dari penggantian tersebut.
Perutean proksi transparan per proses — menginspirasi penghentian MITM yang aman saat terjadi crash, batas waktu idle soket, atribusi proses /proc, dan penangkapan TPROXY kami.
Mengidentifikasi permukaan kuota Grok Build; OmniRoute kemudian memverifikasi dan mengoreksi format data aktualnya secara independen.
## 📄 Lisensi
Lisensi MIT - lihat [LICENSE](LICENSE) untuk detailnya.
---
**[⬆ Kembali ke atas](#-omniroute)** · Dibuat dengan ❤️ untuk komunitas AI sumber terbuka.
OmniRoute v3.8.51 · Node ≥22.22.2 · Lisensi MIT · omniroute.online