Programming

9Router: Panduan Lengkap Gateway AI Lokal Anti Rate Limit

M
MUGHU
24 menit baca
9Router: Panduan Lengkap Gateway AI Lokal Anti Rate Limit
Daftar isi

9Router adalah gateway AI lokal yang menyatukan puluhan provider model ke dalam satu endpoint OpenAI-compatible di localhost:20128, lengkap dengan smart fallback 3-tier, kompresi token, dan rotasi multi-akun. Artikel ini membahas tips praktis menggunakan 9Router—mulai instalasi lokal dan VPS, strategi combo per jenis tugas, penghematan token, sampai pengamanan kredensial—biar sesi coding kamu nggak pernah mati gara-gara kena rate limit, dan tagihan API tetap waras.

Kalau kamu sering kerja bareng Cursor, Claude Code, Codex, atau Cline, kamu pasti kenal momen menyebalkan itu: lagi enak-enaknya nulis kode jam 2 pagi, tiba-tiba muncul "rate limit exceeded". Provider habis, sesi terputus, dan kamu harus ganti model manual. 9Router lahir buat menambal lubang itu. Di bawah ini saya rangkum pengalaman dan praktik terbaik memakainya secara optimal.

Apa Itu 9Router dan Kenapa Banyak Developer Pakai ?

9Router adalah smart gateway yang duduk di antara tool coding kamu (Cursor, Claude Code, Codex, Cline, Copilot, OpenCode) dan 60+ provider AI. Semua tool cukup menunjuk ke satu endpoint lokal, lalu 9Router yang mengatur provider mana yang dipakai, kapan harus pindah, dan bagaimana request dilog.

Bayangkan 9Router seperti payment gateway, tapi untuk AI. Kalau payment gateway menyatukan banyak metode bayar di satu titik, 9Router menyatukan banyak provider model di satu endpoint. Tool kamu nggak perlu tahu di belakang layar ada Claude, GLM, atau Kiro—dia cukup ngobrol ke http://localhost:20128/v1.

Tiga hal yang bikin 9Router menonjol:

  • Endpoint OpenAI-compatible tunggal. Satu URL melayani chat/LLM, embedding, TTS, STT, image, video, sampai web search. Tool apa pun yang mendukung custom OpenAI endpoint bisa nyambung.

  • Smart 3-tier fallback. Ini fitur andalannya. Saat tier 1 kena limit, traffic otomatis pindah ke tier 2, lalu tier 3. Zero downtime, tanpa intervensi manual.

  • Hemat token bawaan. Fitur RTK Token Saver dan Caveman Mode memangkas token masuk dan keluar. Klaimnya, RTK menghemat 20–40% token input, dan Caveman bisa sampai 65% di sisi output.

Proyeknya open-source (lisensi MIT), ditulis dengan Node.js, Next.js, React, Tailwind, dan LowDB. Karena jalan 100% di mesin kamu, semua data dan API key tetap lokal.

Konsep Dasar yang Perlu Kamu Pahami Dulu

Sebelum masuk ke tips, kunci tiga istilah ini supaya sisanya gampang:

  • Provider — sumber model AI. Ada tiga kategori: login OAuth (Claude Code, Codex, Copilot, Cursor), API key (OpenAI, Anthropic, DeepSeek, GLM, MiniMax, Groq), dan gratis (Kiro, iFlow, Qwen, OpenCode Free, OpenRouter, NVIDIA NIM).

  • Combo — urutan prioritas provider. Ini "jalur routing" yang menentukan fallback. Combo adalah jantung 9Router.

  • Endpoint & API Key — base URL lokal plus kunci yang kamu buat sendiri, supaya tool nggak bisa akses router tanpa izin.

Prasyarat Sebelum Mulai

Buat instalasi lokal, yang kamu butuhkan minim:

  • Node.js versi 18 ke atas (paket npm 9router butuh >=18.0.0).

  • Akses terminal atau PowerShell.

  • Minimal satu akun provider—boleh yang gratis dulu seperti Kiro atau OpenCode Free.

  • Browser buat membuka dashboard.

Buat instalasi VPS, tambahkan:

  • Akun VPS aktif (mis. IDCloudHost, atau VPS mana pun yang bisa pasang Docker).

  • IP publik VPS dan akses SSH (Terminal atau PuTTY).

  • Pemahaman dasar firewall (UFW) karena kamu bakal buka port 20128.

Kenapa Node 18+ penting? Banyak dependensi modern (termasuk Next.js yang dipakai 9Router) menargetkan fitur runtime baru. Versi lama bakal gagal build atau error saat start, dan itu menyita waktu debugging yang sebenarnya nggak perlu.

Step 1: Install 9Router Server Lokal

Cara paling cepat lewat npm. Cek dulu Node-nya:

BASH
node -v
npm -v

Expected output (versi boleh beda, yang penting Node ≥ 18):

TEXT
v20.11.1
10.2.4

Kalau dua-duanya keluar angka versi, lanjut. Kalau belum, install Node.js dulu dari situs resminya.

Install 9Router global, lalu jalankan:

BASH
npm install -g 9router
9router

Expected output kira-kira begini:

TEXT
✓ 9Router installed globally
> Server: localhost:20128
> Dashboard: localhost:20128/dashboard
> Ready to route ✓

Dashboard biasanya kebuka otomatis. Password default-nya 123456. Segera ganti setelah login pertama—ini bukan opsional kalau kamu peduli keamanan.

Kenapa lokal dulu? Karena paling simpel dan paling aman: endpoint cuma bisa diakses dari mesin yang sama, nggak perlu buka port, nggak perlu server hidup 24 jam. Cocok buat satu laptop, satu developer.

Menjalankan dari Source (Opsional)

Kalau mau ngulik kodenya atau pakai versi terbaru dari repo:

BASH
git clone https://github.com/decolua/9router.git
cd 9router
cp .env.example .env
npm install
PORT=20128 NEXT_PUBLIC_BASE_URL=http://localhost:20128 npm run dev

Untuk mode produksi:

BASH
npm run build
PORT=20128 HOSTNAME=0.0.0.0 NEXT_PUBLIC_BASE_URL=http://localhost:20128 npm run start

Catatan: di mode produksi atau VPS, jangan biarkan nilai default. Set JWT_SECRET, INITIAL_PASSWORD, DATA_DIR, dan API_KEY_SECRET sendiri. Ini bedanya setup main-main sama setup yang siap dipakai serius.

Step 2: Tambahkan Provider

Masuk ke menu Providers di dashboard. Ada tiga kategori tadi—OAuth, API key, dan gratis.

Cara paling cepat mulai: pakai yang sudah bawaan. OpenCode Free biasanya sudah siap begitu install. Tinggal klik Add, lalu Test. Kalau indikatornya hijau, model itu siap dipakai.

Mau nambah Kiro (gratis, kasih akses Claude Sonnet 4.5, GLM, MiniMax)? Begini alurnya:

  1. Klik Add Provider → pilih Kiro.

  2. Sign up/sign in (bisa via Google, GitHub, atau AWS Builder ID).

  3. Balik ke 9Router, klik Add Connection → pilih metode (mis. Free AWS account).

  4. Cocokkan kode verifikasi yang muncul. Ini langkah keamanan—pastikan kode di 9Router sama persis dengan yang ditampilkan saat otorisasi. Kalau beda, jangan di-confirm. Salin kode yang benar dulu, baru confirm.

  5. Setelah connect, klik Test connection untuk memvalidasi.

Buat provider API key (OpenAI, Anthropic, GLM, dll.):

  • Klik Add Provider → pilih provider → masukkan API Key.

  • Klik Check untuk memastikan key valid.

  • Klik Save.

Penting: Tanpa minimal satu provider, 9Router nggak bisa memproses request AI sama sekali. Provider adalah bahan bakarnya.

Tips dari pengalaman: rapikan nama tiap koneksi (mis. "Kiro-Google", "Kiro-GitHub"). Saat kamu punya banyak akun, nama yang jelas menyelamatkan kamu dari kebingungan pas debugging. Dan kalau ada model yang statusnya invalid model ID, hapus saja—model itu mungkin sudah nggak ada di provider, dan menyimpannya cuma bikin pusing.

Step 3: Buat Combo

Combo menentukan urutan prioritas. Inilah yang bikin fallback otomatis bekerja.

Di dashboard: Combos → Create Combo. Kasih nama, lalu tambahkan model sesuai urutan prioritas. Contoh combo 3-tier klasik:

TEXT
1. cc/claude-opus-4-7      (subscription — tier 1)
2. glm/glm-5.1             ($0.60/1M — tier 2, murah)
3. kr/claude-sonnet-4.5    (Kiro, gratis — tier 3)

Logikanya: semua request ditangani tier 1 sampai limitnya habis. Begitu habis, otomatis turun ke tier 2, lalu tier 3. Kamu nggak perlu lagi /model ganti-ganti manual.

Ada juga opsi round-robin. Kalau diaktifkan, request dibagi rata: request 1 ke model A, request 2 ke model B, request 3 ke model C, lalu balik lagi. Cocok buat distribusi beban, kurang cocok kalau kamu butuh konsistensi gaya jawaban.

Catatan jujur soal fallback: model berbeda punya gaya dan kualitas penalaran berbeda. Untuk refactor besar, migrasi, atau pekerjaan yang sensitif konsistensi, lebih baik kunci satu model dan pindah manual saja. Fallback hebat buat ketersediaan, tapi bisa bikin output nggak seragam.

Tip Combo Paling Berdampak: Satu Combo per Jenis Tugas

Kesalahan paling umum: bikin satu combo "default" lalu pakai buat semua hal—dari rename variabel sampai refactor sistem autentikasi. Itu seperti pakai obeng buat semua pekerjaan tukang.

Bikin beberapa combo sesuai kompleksitas tugas:

Combo

Kapan Dipakai

Urutan Prioritas

Estimasi Biaya/Bulan

quick-edits

Rename, format, komentar, boilerplate, CRUD dasar

kr/claude-sonnet-4.5oc/autoglm/glm-5.1

$0–$2

daily-coding

Fitur menengah, unit test, debug umum, endpoint API

cc/claude-sonnet-4-6glm/glm-5.1kr/claude-sonnet-4.5

$20 + $3–5

heavy-refactor

Refactor arsitektur, algoritma kompleks, optimasi performa

cc/claude-opus-4-7ds/deepseek-v3kr/claude-sonnet-4.5

$20 + $5–10

security-critical

Auth, enkripsi, payment, validasi input, RLS policy, skrip deploy

cc/claude-opus-4-7api/claude-sonnet-4-6 (TANPA gratis)

$20–30

learning

Belajar framework, eksperimen, prototyping non-produksi

kr/claude-sonnet-4.5oc/autovx/gemini-2.5-pro

$0

Aturan praktisnya:

  • Kalau salah di tugas ini bisa bikin celah keamanan atau kehilangan data → pakai security-critical.

  • Kalau kompleks tapi nggak sensitif keamanan → heavy-refactor.

  • Sisanya → daily-coding atau quick-edits.

Kenapa security-critical sengaja tanpa fallback gratis? Karena kode keamanan nggak boleh dihasilkan model gratis yang lebih rawan berhalusinasi pola keamanan. Kalau model premium habis, biarkan 9Router return error dan kamu tulis manual. Itu jauh lebih baik daripada kode auth tidak aman yang kelihatannya benar tapi rapuh secara struktur. Data lapangan menyebut 8 dari 9 aplikasi hasil vibe coding yang diaudit punya Edge Functions tanpa autentikasi—biasanya buah dari budaya "accept all" tanpa review.

Biasakan switch combo sebelum mulai tugas, bukan di tengah. Jadikan ritual: "Oke, mau refactor auth—pindah ke security-critical dulu."

Step 4: Buat API Key Endpoint

Supaya tool nggak bisa akses router sembarangan, buat kunci sendiri.

Masuk Endpoint → Create Key. Kasih nama (mis. sandbox), salin, dan simpan di tempat aman. Base URL yang bakal kamu pakai:

TEXT
http://localhost:20128/v1

Kenapa langkah ini penting? Tanpa API key, siapa pun yang bisa menjangkau port itu bisa memakai router kamu—termasuk membakar kuota dan tagihanmu. Key adalah pembatas akses paling dasar.

Step 5: Sambungkan ke Tool Coding

9Router menyediakan menu CLI Tools dengan panduan per tool. Pola umumnya selalu sama:

TEXT
Base URL : http://localhost:20128/v1
API Key  : (key dari dashboard)
Model    : (nama combo atau model)

Codex CLI

Lewat environment variable:

BASH
export OPENAI_BASE_URL="http://localhost:20128"
export OPENAI_API_KEY="your-9router-api-key"

codex "buatkan fungsi JavaScript untuk menghitung rata-rata array"

Atau lewat menu CLI Tools → OpenAI Codex CLI di dashboard: pilih model/combo, klik Apply. Konfigurasi Codex langsung diarahkan ke 9Router.

Cline / Continue / RooCode

Pilih OpenAI Compatible, lalu isi:

TEXT
Base URL : http://localhost:20128/v1
API Key  : your-9router-api-key
Model    : cc/claude-opus-4-7   (atau nama combo kamu, mis. wpgan-ai)

Claude Code

Lewat menu CLI Tools → Claude Code. Yang menarik: kamu bisa memetakan tiga slot model Claude ke combo/model berbeda. Misalnya:

  • Claude Opus → combo 9router

  • Claude Sonnet → model Kimi 2.6

  • Claude Haiku → model GLM-5.1

Klik Apply. Claude Code tetap merasa pakai Opus/Sonnet/Haiku, padahal router yang menentukan request masuk ke combo/model mana.

Prefix nama model mengikuti provider: cc/, cx/, gh/, glm/, minimax/, kr/, vertex/, dan seterusnya.

Step 6: Tes Request dan Pantau Usage

Coba prompt sederhana dari tool kamu, lalu buka menu Usage di dashboard. Kalau request masuk dan nggak ada baris merah, berarti sukses—dan kamu bisa lihat provider mana yang menangani.

Expected output di Usage: ada entri request baru, token terhitung, dan provider aktif (mis. "Kiro") tanpa status error.

Buat verifikasi cepat via curl:

BASH
curl http://localhost:20128/v1/chat/completions \
  -H "Authorization: Bearer your-9router-api-key" \
  -H "Content-Type: application/json" \
  -d '{"model":"9router","messages":[{"role":"user","content":"halo"}]}'

Kalau dapat respons JSON berisi choices, koneksi beres.

Tips Hemat Token: RTK + Disiplin Konteks

Combo menentukan model mana yang dipakai. Disiplin token menentukan seberapa efisien kamu memakainya.

RTK Token Saver (Otomatis)

RTK mengompres output tool yang sering membengkak sebelum dikirim ke model:

Filter

Yang Dilakukan

Penghematan

git-diff

Bersihkan noise whitespace, padatkan

40–60%

git-status

Format ringkas

30–40%

grep

Deduplikasi baris serupa

40–50%

find/ls/tree

Pangkas listing panjang

30–40%

dedup-log

Buang entri log berulang

50–70%

RTK aktif secara default dan bekerja tanpa konfigurasi: dia mengintip 1KB pertama tool_result, mendeteksi filter yang cocok, lalu mengompres. Buat log kritis atau isi file utuh, tes dulu supaya yakin kualitas jawaban nggak turun.

Disiplin Konteks (Bagian Manusianya)

RTK menangani output mesin. Tapi kamu yang mengontrol ukuran prompt. Ini yang dampaknya paling besar:

  • Kirim hanya file relevan. Bukan "ini seluruh project, perbaiki bug login", tapi "ini AuthService.php, method login balikin 401 padahal kredensial benar".

  • Satu tugas per prompt. Tiga tugas sekaligus = AI mengerjakan semua setengah-setengah.

  • Sertakan pesan error persis. SQLSTATE[23000]: Integrity constraint violation jauh lebih berguna daripada "aplikasi saya rusak".

  • Buang kode yang nggak relevan. Tempel method yang bermasalah, bukan controller 300 baris.

Gabungan RTK + disiplin konteks bisa memangkas token 40–60%, dan sering kali kualitas malah naik karena AI nggak terdistraksi noise.

Tips Lanjutan: Rotasi Multi-Akun

Kiro mendukung tiga metode autentikasi berbeda: AWS Builder ID, Google, dan GitHub. Tiap metode = akun terpisah dengan kuota sendiri. 9Router bisa merotasi antar akun otomatis.

Combo "maximum-free" bisa terlihat seperti ini:

TEXT
1. kr/claude-sonnet-4.5   (Kiro akun 1 — AWS)
2. kr/claude-sonnet-4.5   (Kiro akun 2 — Google)
3. kr/claude-sonnet-4.5   (Kiro akun 3 — GitHub)
4. oc/auto                (OpenCode Free)
5. vx/gemini-2.5-pro      (Vertex free credits)

Strategi fill-first (pakai satu akun sampai habis, baru pindah) lebih mudah dilacak dan direkomendasikan untuk kebanyakan orang.

Soal etika—biar jujur: memakai tiga metode auth resmi yang memang ditawarkan provider itu wajar, ibarat punya rekening di tiga bank berbeda. Yang masuk kategori penyalahgunaan adalah bikin 10 akun Gmail palsu, pakai bot pembuat akun otomatis, atau menghindari banned. Aturannya: satu identitas asli per platform = sah; akun palsu = abuse.

Tips Keamanan: Hardening Setup 9Router

"Lokal" bukan berarti otomatis aman. API key disimpan plaintext di file konfigurasi JSON. Kalau bocor, semua provider ikut bocor.

Kredensial:

BASH
chmod 600 ~/.9router/config.json
echo ".9router/" >> ~/.gitignore
  • Jangan pernah commit konfigurasi 9Router ke Git. API key di history repo itu permanen.

  • Aktifkan enkripsi disk (FileVault/BitLocker) supaya data aman kalau laptop hilang.

Jaringan (khusus VPS):

Secara default di lokal, 9Router bind ke localhost—aman. Di VPS, dia bisa terekspos:

  • Bind ke localhost: 9router --host 127.0.0.1

  • Atau batasi firewall: sudo ufw allow from YOUR_IP to any port 20128

  • Akses remote sebaiknya lewat SSH tunnel, bukan port terbuka ke internet:

BASH
ssh -L 20128:localhost:20128 user@your-vps

Peringatan keamanan: jangan biarkan port 20128 terbuka ke internet publik tanpa autentikasi. Siapa pun yang tahu IP dan port bisa memakai router kamu sebagai proxy gratis, dan tagihannya jadi tanggunganmu. Selalu pasang firewall, ganti password default, dan set JWT_SECRET serta API_KEY_SECRET yang kuat sebelum mengekspos ke jaringan.

Audit:

  • Cek dashboard minimal seminggu sekali. Lonjakan token tanpa kamu coding = indikasi kebocoran.

  • Rotasi API key tiap 3 bulan, atau segera saat ada anomali.

  • Pasang spending cap di sisi provider (OpenAI/Anthropic) sebagai proteksi ganda.

Instalasi di VPS dengan Docker (Always-On)

Kalau kamu butuh akses lintas device atau router yang hidup terus meski laptop mati, VPS lebih masuk akal.

Pastikan Docker terpasang:

BASH
docker --version

Kalau belum:

BASH
curl -fsSL https://get.docker.com | sh

Jalankan 9Router. Berikut langkahnya secara berurutan:

BASH
docker run -d \
  --name 9router \
  -p 20128:20128 \
  -v "$HOME/.9router:/app/data" \
  -e DATA_DIR=/app/data \
  -e JWT_SECRET="ganti-dengan-secret-random-panjang" \
  -e INITIAL_PASSWORD="password-dashboard-kamu" \
  decolua/9router:latest

Pastikan kamu mengganti ganti-dengan-secret-random-panjang dan password-dashboard-kamu dengan nilai milikmu sendiri. Password ini wajib diingat karena dipakai login dashboard.

Cek container, buka firewall, dan set auto-start:

BASH
docker logs -f 9router
ufw allow 20128
docker update --restart unless-stopped 9router

Akses dashboard di http://IP_SERVER:20128. Buat akses lewat domain, pasang reverse proxy Nginx.

Bagi pengguna IDCloudHost, ada jalur lebih singkat: deploy langsung lewat App Catalog, pilih aplikasi 9Router, tentukan spesifikasi (CPU/RAM/Storage), klik Deploy. Setelah status VM Running, kamu dapat IP publik, URL dashboard, API endpoint, dan password awal lewat SSH.

Mulai lokal dulu, baru VPS. Verifikasi provider, combo, log, dan nama model di lokal. Setelah yakin jalan, baru putuskan apakah deployment server sepadan. Lokal untuk workflow personal, VPS untuk always-on dan multi-device.

Error Umum dan Cara Mengatasinya

Gejala

Penyebab Umum

Solusi

Dashboard nggak bisa diakses

Service belum jalan / port ketutup

Pastikan service running, cek firewall, buka port 20128

API nggak merespons

Provider belum ditambahkan / key invalid

Tambah minimal 1 provider, cek ulang API key, pastikan provider nggak limit

Error saat request

Service bermasalah / endpoint salah

Cek log: journalctl -u 9router (atau docker logs -f 9router)

Model nggak muncul / combo nggak kebaca

Combo belum disimpan / Model ID salah

Pastikan combo tersimpan, cek urutan provider, samakan Model ID dengan combo

Integrasi gagal di tool

Base URL/key salah

Pastikan base URL benar, key valid, tool mendukung OpenAI Compatible API

invalid model ID

Model sudah nggak ada di provider

Hapus model itu, pakai yang berstatus hijau saja

Kiro 401

OAuth token kedaluwarsa

Re-auth di dashboard

Tips troubleshooting: kalau model gratis nggak muncul di pilihan tool, balik ke menu Providers dan pastikan provider-nya benar-benar connect serta modelnya sudah kebaca. Banyak masalah "model hilang" sebenarnya cuma provider yang belum tersambung sempurna.

Risiko dan Batasan yang Perlu Kamu Tahu

Biar seimbang, ini hal-hal yang sering nggak diceritakan tutorial lain:

  • Free tier bisa berubah kapan saja. iFlow dan Qwen sudah menghentikan free tier-nya. Jangan bergantung 100% ke satu provider gratis—selalu sediakan 2–3 alternatif dan satu tier murah ($0.20–0.60/1M) sebagai jaring pengaman.

  • Risiko ban Gemini CLI. Memakai Gemini CLI lewat tool non-CLI berisiko terdeteksi dan akun Google diblokir. Lebih aman pakai Vertex AI yang memang API resmi.

  • Fallback memengaruhi konsistensi. Sudah disebut di atas—untuk pekerjaan sensitif, kunci satu model.

  • 9Router mengatur routing, bukan ToS upstream. Tanggung jawab kepatuhan terhadap syarat layanan provider tetap di kamu, terutama saat memakai subscription pribadi, token OAuth, atau kuota gratis dengan tool otomatis.

Studi Kasus Singkat: Dari Sering Mati Total ke Coding Nonstop

Latar belakang. Seorang developer freelance memakai Claude Code (subscription) plus beberapa API key terpisah di Cline dan Codex. Tiap tool punya endpoint, key, dan model sendiri.

Masalah. Sesi sering putus saat kuota subscription habis. Pindah provider manual makan waktu, dan kuota subscription yang nggak terpakai hangus tiap bulan. Tagihan API juga sulit dipantau karena tersebar.

Pendekatan. Pasang 9Router lokal, satukan semua provider di satu endpoint, lalu rancang lima combo per jenis tugas dan satu combo maximum-free dengan tiga akun Kiro.

Implementasi. Subscription ditaruh di tier 1, GLM murah di tier 2, Kiro gratis di tier 3. RTK dibiarkan aktif, dan prompt dirapikan jadi satu tugas per request.

Hasil (estimasi wajar berdasarkan klaim fitur).

  • Token input turun 40–60% berkat kombinasi RTK + disiplin konteks.

  • Sesi coding praktis tanpa interupsi karena fallback otomatis.

  • Biaya bulanan turun signifikan karena tugas rutin diarahkan ke tier gratis, premium hanya untuk pekerjaan kompleks dan keamanan.

Pelajaran utama. 9Router menyelesaikan masalah ketersediaan, tapi kualitas, biaya, dan keamanan tetap tanggung jawab kamu. Combo per tugas dan review setiap output adalah yang membedakan "pakai AI" dari "pakai AI secara strategis".

Perbandingan: Pasang Lokal vs VPS

Kriteria

Lokal (npm)

VPS (Docker)

Kesulitan setup

Sangat mudah (2 perintah)

Menengah (Docker + firewall)

Keamanan default

Tinggi (cuma localhost)

Perlu hardening manual

Akses lintas device

Tidak

Ya

Always-on

Tidak (ikut laptop)

Ya (24/7)

Cocok untuk

Satu developer, workflow personal

Tim, akses remote, automation

Biaya tambahan

$0

Sewa VPS bulanan

Rekomendasi per skenario:

  • Solo developer, satu mesin → lokal. Paling simpel dan aman.

  • Tim atau butuh akses dari beberapa perangkat → VPS, dengan firewall dan reverse proxy.

  • Butuh router hidup terus untuk automation/bot → VPS Docker dengan --restart unless-stopped.

Kelebihan dan Kekurangan 9Router

Kelebihan:

  • Satu endpoint OpenAI-compatible untuk banyak provider dan banyak tool.

  • Smart 3-tier fallback yang benar-benar menghilangkan interupsi rate limit.

  • Hemat token bawaan (RTK 20–40%, Caveman sampai 65%) tanpa ganti tool.

  • Open-source (MIT), jalan lokal, kontrol penuh atas data.

  • Dukungan luas: 60+ provider, 10+ CLI tool, plus embedding, TTS, STT, image, video, web search.

Kekurangan:

  • Setup awal butuh pemahaman provider, combo, dan key—ada kurva belajar.

  • Fallback bisa bikin output nggak konsisten antar model.

  • Kredensial plaintext di JSON menuntut disiplin keamanan.

  • Bergantung pada kebijakan provider yang bisa berubah (free tier hilang, risiko ban).

  • Buat yang cuma pakai satu model dan satu tool, manfaatnya minim.

Cocok buat Kamu atau Mending Skip?

Cocok untuk:

  • Pengguna berat AI coding yang memang sudah bolak-balik antar provider.

  • Yang punya kombinasi subscription + tier gratis/murah dan mau satu kebijakan fallback terpusat.

  • Tim yang ingin menyatukan akses model di satu titik.

Sebaiknya lewat kalau:

  • Kamu hanya pakai satu model dengan satu tool—9Router jadi lapisan yang nggak perlu.

  • Kamu nggak nyaman mengelola keamanan kredensial dan firewall (khususnya di VPS).

  • Pekerjaanmu menuntut konsistensi output ketat dan kamu nggak mau ribet mengunci model.

Verdict Sementara

9Router mengubah akses model yang tercecer menjadi satu lapisan routing lokal yang bisa dikonfigurasi. Buat developer yang sering kena rate limit dan menjuggle banyak provider, nilainya jelas: zero downtime, hemat token, dan kontrol terpusat—semuanya gratis dan open-source.

Tapi alat ini memindahkan tanggung jawab, bukan menghapusnya. Combo per tugas, review tiap output, dan hardening keamanan adalah harga yang harus kamu bayar supaya "AI selalu tersedia" berubah jadi "AI selalu tersedia, berkualitas, hemat, dan aman".

Caveman Mode: Hemat Token Output yang Sering Disalahpahami

RTK menjaga sisi input, tapi yang sering bikin tagihan membengkak justru output—model yang doyan ngejelasin panjang lebar padahal kamu cuma butuh kodenya. Di sinilah Caveman Mode main. Cara kerjanya sederhana: dia menyuntik instruksi gaya ke system prompt supaya model menjawab ringkas, padat, tanpa basa-basi. Klaim penghematannya sampai 65% di sisi output, dan angka itu masuk akal kalau kamu lihat berapa banyak token terbuang buat kalimat pembuka macam "Tentu, saya akan membantu Anda dengan senang hati."

Tapi jangan asal aktifkan ke semua combo. Caveman bagus banget buat tugas eksekusi: generate fungsi, fix bug, tulis query, bikin boilerplate. Kamu cuma mau hasilnya, bukan ceramahnya. Sebaliknya, buat tugas yang butuh penjelasan—debugging rumit yang perlu alasan, review arsitektur, atau saat kamu lagi belajar konsep baru—matikan dulu. Jawaban yang terlalu dipangkas malah bikin kamu bolak-balik nanya, dan itu justru boros token.

Aturan praktis yang saya pakai: Caveman ON di combo quick-edits dan daily-coding, OFF di combo learning dan saat ngulik masalah yang belum jelas akar masalahnya. Kombinasi RTK (input) plus Caveman (output) di tugas rutin itu titik manisnya—dua-duanya kerja diam-diam, dan kamu baru sadar hematnya pas buka tagihan akhir bulan.

Catatan jujur: kompresi apa pun punya trade-off. Sesekali Caveman bikin model lupa konteks gaya jawaban yang kamu mau. Kalau kamu butuh format spesifik (misal jawaban harus pakai tabel atau langkah bernomor), tulis eksplisit di prompt. Instruksi langsung selalu menang melawan kompresi otomatis.

Manfaatkan Endpoint Multi-Modal, Bukan Cuma Chat

Banyak orang pasang 9Router cuma buat ngerouting chat LLM, lalu berhenti di situ. Padahal endpoint yang sama melayani embedding, TTS, STT, image, video, sampai web search—semuanya lewat satu base URL dan satu API key. Ini sering kelewat, dan sayang banget.

Contoh nyata: kamu lagi bikin fitur pencarian semantik di aplikasi. Daripada daftar API key OpenAI terpisah cuma buat embedding, arahkan saja ke 9Router:

BASH
curl http://localhost:20128/v1/embeddings \
  -H "Authorization: Bearer your-9router-api-key" \
  -H "Content-Type: application/json" \
  -d '{"model":"text-embedding-3-small","input":"kalimat yang mau di-embed"}'

Logikanya sama dengan chat: kamu bisa bikin combo khusus embedding dengan fallback antar provider, jadi kalau satu provider embedding limit, yang lain ambil alih. Pola yang sama berlaku buat transkripsi audio (STT) atau text-to-speech kalau aplikasimu butuh. Intinya, satu endpoint untuk semua kebutuhan AI di satu proyek—itu yang bikin maintenance jauh lebih waras dibanding nyebar lima key di lima tempat berbeda.

Buat web search, beberapa provider menyediakannya sebagai model tersendiri. Cek menu Providers untuk lihat mana yang mendukung, lalu masukkan ke combo terpisah. Jangan campur model search ke combo coding—beda tujuan, beda karakter jawaban, dan mencampurnya cuma bikin routing kacau.

Menyambungkan Cursor dan Copilot

Pola koneksinya identik dengan tool lain, tapi ada beberapa detail yang sering bikin orang stuck.

Cursor. Buka Settings → Models, matikan model bawaan, lalu tambah custom OpenAI key:

TEXT
Base URL : http://localhost:20128/v1
API Key  : your-9router-api-key
Model    : cc/claude-opus-4-7   (atau nama combo kamu)

Satu hal penting di Cursor: setelah ganti base URL, klik tombol verifikasi koneksinya. Cursor kadang cache model lama, jadi kalau model baru nggak muncul, restart aplikasinya. Itu 90% solusi keluhan "model nggak kebaca di Cursor".

Copilot. Untuk Copilot lewat provider OAuth, alurnya beda—kamu connect akun GitHub Copilot langsung dari menu Providers, bukan nempel API key. Setelah terhubung, model Copilot muncul dengan prefix gh/ dan bisa kamu masukkan ke combo seperti provider lain. Ini berguna kalau kamu sudah bayar Copilot dan mau "menumpang" kuotanya ke tier fallback.

Pola umumnya: tool apa pun yang punya opsi OpenAI Compatible atau Custom Endpoint pasti bisa nyambung. Kalau tool-nya nggak punya opsi itu, dia nggak akan jalan dengan 9Router—dan itu batasan tool-nya, bukan 9Router-nya.

Workflow Harian yang Bikin 9Router Benar-Benar Berasa

Pasang 9Router cuma separuh cerita. Yang bikin alat ini worth it adalah kebiasaan harian. Berikut ritme kerja yang saya pakai sehari-hari, dan ini yang membedakan setup yang cuma "terpasang" dengan setup yang benar-benar produktif.

Pagi—tentukan combo sebelum buka editor. Sebelum nulis baris pertama, tanya ke diri sendiri: hari ini ngapain? Refactor besar? Pindah ke heavy-refactor. Garap fitur kecil dan bug rutin? daily-coding. Ritual lima detik ini mencegah kamu nggak sengaja bakar Opus buat rename variabel.

Saat coding—satu tugas, satu prompt. Godaan terbesar adalah numpuk: "perbaiki bug ini, sekalian tambah validasi, terus rapikan format." Pecah. Tiga prompt terpisah hampir selalu menghasilkan kode lebih baik daripada satu prompt gado-gado, dan token yang terpakai justru lebih sedikit karena tiap jawaban fokus.

Saat ganti konteks tugas—ganti combo dulu. Mau pegang kode auth? Berhenti sebentar, pindah ke security-critical. Ini bukan ribet, ini disiplin yang melindungi kamu dari kode keamanan hasil model gratis.

Sore—cek Usage lima menit. Buka dashboard, lihat provider mana yang paling banyak dipakai dan berapa token kepakai. Pola ini lama-lama bikin kamu paham combo mana yang kelebihan beban dan perlu disetel ulang.

Kebiasaan ini kelihatan sepele, tapi efeknya numpuk. Bedanya orang yang bilang "9Router biasa aja" sama yang bilang "ini ngubah cara saya kerja" hampir selalu ada di disiplin harian ini, bukan di fiturnya.

Reverse Proxy Nginx untuk Akses lewat Domain (VPS)

Kalau kamu deploy di VPS dan mau akses lewat domain (misal ai.domainku.com) alih-alih IP:20128, pasang reverse proxy Nginx. Ini juga jalan paling rapi untuk menaruh HTTPS di depan 9Router.

Konfigurasi minimalnya seperti ini:

NGINX
server {
    listen 80;
    server_name ai.domainku.com;

    location / {
        proxy_pass http://127.0.0.1:20128;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Setelah itu, amankan dengan sertifikat gratis dari Let's Encrypt:

BASH
sudo certbot --nginx -d ai.domainku.com

Yang penting dipahami: begitu Nginx jadi pintu depan, 9Router-nya sendiri tetap bind ke 127.0.0.1, bukan 0.0.0.0. Jadi satu-satunya jalan masuk ke router adalah lewat Nginx, dan port 20128 nggak perlu lagi dibuka ke publik. Tutup port itu di firewall:

BASH
sudo ufw delete allow 20128
sudo ufw allow 'Nginx Full'

Peringatan keamanan: menaruh reverse proxy bukan pengganti autentikasi. API key endpoint tetap wajib aktif, dan password dashboard tetap harus kuat. Reverse proxy mengatur lalu lintas dan enkripsi, bukan siapa yang boleh masuk. Pastikan JWT_SECRET dan API_KEY_SECRET sudah diisi nilai acak yang panjang sebelum domain kamu bisa diakses dari luar.

Membaca Dashboard Usage Seperti Orang yang Paham Biaya

Menu Usage bukan cuma buat mastiin request masuk. Kalau kamu baca dengan benar, dia jadi alat kontrol biaya paling jujur yang kamu punya.

Tiga angka yang harus rutin kamu lihat:

  • Token per provider. Ini nunjukin combo mana yang benar-benar nge-fallback ke tier mahal. Kalau tier 1 (subscription) ludes tiap minggu pertama bulan, itu sinyal kamu kebanyakan ngebebani tugas berat ke combo yang salah.

  • Rasio request gratis vs berbayar. Targetnya jelas: tugas rutin harus mayoritas jatuh ke tier gratis atau murah. Kalau yang berbayar dominan padahal kerjaanmu kebanyakan ringan, berarti combo quick-edits-mu belum dipakai disiplin.

  • Lonjakan tak terduga. Token naik padahal kamu lagi nggak ngoding? Itu bukan misteri—itu indikasi kebocoran key atau ada tool yang nge-loop request di latar belakang. Segera rotasi key dan cek tool mana yang nyambung.

Biasakan baca tren mingguan, bukan harian. Satu hari sibuk wajar bikin token melonjak; yang perlu dikhawatirkan adalah pola naik terus tanpa alasan jelas. Dipadukan dengan spending cap di sisi provider, kebiasaan baca Usage ini bikin kamu nggak akan pernah kaget lihat tagihan.

Pertanyaan yang Sering Muncul

Apakah 9Router bikin request jadi lebih lambat? Ada overhead, tapi tipis—router cuma meneruskan request dan sesekali mengompres. Latensi yang kamu rasakan hampir seluruhnya datang dari provider tujuan, bukan dari 9Router. Kalau terasa lambat, biang keroknya biasanya model tier fallback yang memang lebih pelan, bukan routernya.

Bisa jalan tanpa internet? Tidak. 9Router cuma gateway; model aslinya tetap di cloud provider. Yang lokal adalah routing, log, dan kredensialmu—bukan model itu sendiri.

Aman dipakai buat kerjaan kantor? Selama kebijakan tempat kerjamu mengizinkan data dikirim ke provider AI yang bersangkutan, ya. 9Router nggak menyimpan isi percakapan ke server pihak ketiga—semua tetap di mesinmu. Tapi isi request tetap dikirim ke provider tujuan, jadi aturan kerahasiaan data perusahaan tetap berlaku seperti biasa.

Kalau provider gratisnya tiba-tiba hilang gimana? Combo-mu otomatis lanjut ke tier berikutnya. Inilah kenapa tiap combo penting punya minimal satu tier murah berbayar sebagai jaring pengaman—supaya hilangnya satu provider gratis nggak bikin sesimu mati total.

Perlu update 9Router secara rutin? Sebaiknya iya, terutama karena provider sering ganti nama model dan kebijakan. Untuk instalasi npm cukup npm update -g 9router, dan untuk Docker tarik image terbaru lalu jalankan ulang container. Sebelum update di setup produksi, backup dulu folder ~/.9router supaya konfigurasi dan koneksimu aman kalau ada perubahan format.


Referensi

BuildWithAngga. (2026). 5 Tips Pakai 9Router agar Hasil AI Lebih Maksimal dan Aman untuk Vibe Coding.

Mainlokal. (2026). Apa Itu 9Router? Panduan Lengkap dan Cara Pakainya.

YouTube. (2026). Cara Setup 9Router Local di Windows untuk Codex dan Claude Code.

IDCloudHost. (2026). Cara Install dan Menggunakan 9Router di Cloud VPS IDCloudHost.

Knightli. (2026). 9Router Tutorial: Connect Claude Code, Codex, and Cursor to One AI Router.

WPGan. (2026). Cara Install 9Router di VPS dan Menggunakannya.

9Router. (2026). 9Router: Free AI Router dengan Smart Fallback untuk Claude, Codex, dan Lainnya.

YouTube. (2026). Koding 24 Jam Anti Rate Limit: Hemat Token AI 65% dengan Quick Setup 9Router.

Komentar (0)

Belum ada komentar. Jadilah yang pertama berbagi pendapat!

Tinggalkan komentar