NoirRouter — satu endpoint untuk semua model AI Anda
Gateway routing AI lokal dengan dashboard. Arahkan tool Anda ke satu endpoint kompatibel-OpenAI; NoirRouter meneruskan ke provider mana pun, berpindah otomatis saat rate-limit, dan menerjemahkan format OpenAI, Claude, Gemini, dan Responses — termasuk streaming dan tool calls.
Unduh & instal
Paket produksi resmi disimpan di halaman ini. Satu syarat di semua jalur: Node.js ≥ 22 — atau Docker yang membawa runtime-nya sendiri. Tanpa build step, tanpa rahasia wajib, tanpa konfigurasi awal.
Paket produksi — tarball npm
noir-router-0.3.0.tgz · 33,9 KB · nol dependensi
SHA-256 642785e297da34f4…b4bc53f8
npm install -g ./noir-router-0.3.0.tgz noir-router --daemon noir-router status
Dashboard terbuka di http://127.0.0.1:20129. Gateway key (nr-…) tampil di tab Settings dashboard.
Jalur lain
Docker (GHCR) — image ghcr.io/azhar0407/noir-router (:latest, :0.3.0), saat ini akses terbatas:
docker run -d --name noir-router \ -p 127.0.0.1:20129:20129 \ -v noir-router-data:/app/data \ ghcr.io/azhar0407/noir-router:latest docker logs noir-router
Docker Compose / dari sumber — docker compose up -d --build, atau tanpa Docker: ./run.sh (Windows: run.bat / npm start).
npm registry — nama paket noir-router sudah terdaftar; publikasi registry menyusul. Jalur produksi saat ini adalah tarball di halaman ini dan Docker.
$NOIR_DB bila di-set → ./data.db yang sudah ada → ~/.noir-router/data.db untuk instalasi baru (selamat dari upgrade npm/Docker).Cara kerja
Tool Anda tidak perlu tahu ada berapa provider di belakangnya. Cukup satu base URL dan satu gateway key.
Tool / klien Anda base URL : http://127.0.0.1:20129/v1 api key : nr-… (dari dashboard) model : "coding" ← nama combo, atau… "deepseek/deepseek-chat" ← rute langsung provider/model │ ▼ NoirRouter ──► coba langkah combo satu per satu │ 401/403/408/429/5xx → pindah otomatis ├──► OpenAI-compatible (OpenRouter, DeepSeek, Groq, GLM, lokal…) ├──► Anthropic (Messages API, translasi dua arah + streaming) ├──► Google Gemini (translasi dua arah + streaming) └──► CLI bridge (Claude Code / Codex / Gemini CLI resmi)
Fallback
Rantai berurutan: langkah berikutnya dicoba otomatis saat rate-limit, kuota habis, server error, atau auth error.
Round-robin
Titik awal combo berputar antar-langkah, dan banyak key per provider juga berputar dengan penghitung kegagalan.
Fusion
Panel model menjawab paralel, lalu satu judge mensintesis jawaban terbaik — meniru desain OpenRouter Fusion.
Fitur produksi
Paritas penuh dengan kekuatan gateway kelas 9Router — dengan perbaikan struktural atas kelemahannya. Peta lengkapnya ada di dokumentasi.
44 preset provider
OpenAI, OpenRouter, DeepSeek, Groq, xAI, GLM, MiniMax, Qwen, server lokal (Ollama, LM Studio, vLLM), spesialis embedding, dan lainnya — plus provider kustom bebas.
Translasi 4 format
OpenAI Chat, Anthropic Messages, Google Gemini, dan OpenAI Responses — dua arah, termasuk SSE streaming, tool calls, dan gambar.
Combo & multi-key
Strategi fallback, round-robin, fusion per combo; banyak API key per provider dengan rotasi dan failover otomatis.
Token Saver
Kompresi hasil tool ala RTK: strip ANSI, dedup baris, minifikasi JSON, truncate cerdas head/tail. Penghematan terukur per request di dashboard.
Dashboard lengkap
Kelola provider & key dengan tombol Test, editor combo, log request, statistik token per model/provider, dan hub integrasi tool.
CLI bridge berlangganan
Model langganan lewat CLI resminya sendiri (claude -p, codex exec, gemini -p, atau perintah kustom) — tanpa ekstraksi token, tanpa spoofing.
| Endpoint | Fungsi | Catatan |
|---|---|---|
| POST /v1/chat/completions | Chat (streaming & non-streaming) | Endpoint utama kompatibel-OpenAI |
| POST /v1/responses | OpenAI Responses API | Diterjemahkan ke/dari Chat Completions |
| POST /v1/embeddings | Embeddings | Routing passthrough, rotasi key & fallback yang sama |
| POST /v1/images/generations | Generasi gambar | Routing passthrough ke provider gambar |
| GET /v1/models | Daftar model & combo | Memerlukan gateway key |
Keamanan & privasi — by design
NoirRouter sengaja tidak meniru jalan pintas yang rapuh. Yang tidak ada di sini sama pentingnya dengan yang ada.
Yang dilakukan
Bind localhost secara bawaan · password dashboard opsional dengan layar login sungguhan · cookie sesi HttpOnly kedaluwarsa 24 jam · rate-limit login (5 gagal → kunci 5 menit) · header CSP / nosniff / frame-deny · gateway key ter-generate otomatis · hanya jalur resmi: API key terdokumentasi dan CLI resmi.
Yang sengaja tidak dilakukan
Tidak ada telemetri atau analytics · tidak ada ekstraksi token OAuth · tidak ada spoofing sidik jari klien · tidak ada intersepsi MITM / root CA · tidak ada komponen server tertutup — 100% kode ada di paket yang Anda unduh dan bisa diaudit dalam sekali duduk.
Riwayat rilis
Setiap versi ditandai hanya dari run uji yang sepenuhnya hijau.
Paritas persyaratan instalasi
CLI npm satu perintah dengan preflight Node ≥ 22 dan mode daemon (--daemon / status / stop), image GHCR, kontrak env .env.example (semua opsional), lokasi data terpusat ~/.noir-router. Tarball terverifikasi end-to-end: 33,9 KB, “added 1 package”. Suite e2e genap 50/50.
Auth dashboard yang benar + Docker
Layar login, cookie HttpOnly 24 jam, rate-limit login, header keamanan — 11 uji auth di dalam 40 uji hijau. Dockerfile node:22-alpine tanpa npm install, user non-root, healthcheck; terverifikasi di host Docker nyata termasuk data provider selamat dari restart container.
Paritas fitur & MVP
Audit source-level atas 9Router v0.5.104, lalu implementasi original: 44 preset, translasi 4 format, combo 3 strategi, Token Saver, CLI bridge, endpoint embeddings/images, dashboard nol dependensi di atas node:sqlite + fetch bawaan.
Siap mencoba?
Unduh paket produksinya, jalankan dua perintah, dan arahkan tool pertama Anda. Dokumentasi memandu dari instalasi sampai troubleshooting.