OpenCode & OpenRouter, Solusi Saat Token Claud...
OpenCode & OpenRouter, Solusi Saat Token Claude Code & Codex Habis
Ditulis oleh : Putu Adi, 17 September 2026

Saya seorang vibe coder. Tapi saya tetap memahami arsitektur aplikasi, database, alur bisnis, deployment, dan keputusan teknis yang sedang dibuat. Tetapi untuk pekerjaan coding sehari-hari, saya banyak bekerja bersama AI agent.
Dalam workflow saya sekarang, ada dua AI agent yang paling sering saya gunakan.
Claude Code biasanya menjadi programmer utama. Saya memakainya untuk implementasi fitur, refactor lintas file, debugging, perubahan arsitektur, dan pekerjaan lain yang membutuhkan pemahaman repository cukup dalam.
Sementara Codex lebih sering saya posisikan sebagai pihak kedua yang independen. Setelah Claude selesai mengerjakan sesuatu, Codex saya gunakan untuk audit, code review, QA, security review, mengecek regression, menjalankan test, dan memastikan implementasi yang akan saya merge memang sudah aman.
Jadi polanya kurang lebih seperti ini:
Saya sebagai pemilik produk dan pengambil keputusan → Claude Code sebagai implementer → Codex sebagai independent reviewer → Human QA → merge → production.
Workflow seperti ini sangat membantu saya. Masalahnya, semakin sering menggunakan AI agent, saya semakin sadar bahwa ada satu resource yang juga harus dikelola: usage limit.
Claude Code punya limit. Codex juga punya limit.
Dan kalau salah satunya habis di tengah pekerjaan, saya tidak ingin seluruh proses development ikut berhenti.
Dari situlah eksperimen ini dimulai.
Daftar isi
Awalnya cuma ingin punya AI agent cadangan
Beberapa waktu terakhir saya mulai berpikir:
“Apakah ada AI coding agent lain yang bisa saya pasang di VS Code sebagai cadangan?”
Saya tidak sedang mencari pengganti Claude Code atau Codex.
Sampai sekarang keduanya tetap menjadi agent utama saya.
Yang saya cari adalah jalur alternatif.
Kalau quota Claude habis, pekerjaan sederhana masih bisa jalan.
Kalau Codex sedang limit, setidaknya saya punya reviewer kedua.
Kalau ada pekerjaan ringan, saya juga tidak harus selalu menghabiskan resource model premium.
Sebagai vibe coder, saya merasa ini penting. Ketergantungan hanya pada satu atau dua AI provider rasanya mirip developer yang hanya punya satu tool di toolbox-nya.
Semakin banyak saya memahami berbagai agent, model, provider, permission system, dan karakter masing-masing LLM, semakin fleksibel juga cara saya bekerja.
Akhirnya saya mencoba OpenCode.
OpenCode sendiri bukan sebuah model AI. Ia adalah coding agent open-source yang bisa dijalankan dari terminal, desktop, maupun IDE, dan kita bisa menghubungkannya ke berbagai provider LLM.
Ini salah satu hal pertama yang menurut saya penting untuk dipahami:
OpenCode adalah agent harness. Model AI yang bekerja di belakangnya bisa kita ganti.
Dengan kata lain, OpenCode bisa menjadi semacam cockpit, sedangkan “mesinnya” bisa berasal dari provider yang berbeda.
Untuk eksperimen saya, providernya adalah OpenRouter.
Kenapa OpenRouter menarik?
OpenRouter pada dasarnya memberi satu pintu untuk mengakses banyak model dari berbagai provider.
Di OpenCode, setelah OpenRouter dihubungkan, saya bisa membuka /models dan memilih model mana yang ingin digunakan. OpenCode sendiri memang mendukung pemilihan model per session seperti ini.
Yang membuat saya tertarik adalah OpenRouter mempunyai cukup banyak model yang tersedia melalui endpoint gratis dengan suffix :free.
Jadi saya mulai bereksperimen.
Model pertama yang saya coba adalah North Mini Code.
Setelah itu saya mencoba model lain yang lebih kuat untuk agentic coding, yaitu Nex-N2.5-Pro, lalu menjalankannya pada reasoning level High.
Saya tidak mengujinya dengan tugas dummy.
Saya sengaja menggunakan kasus development sungguhan.
Kasus nyata yang saya jadikan benchmark
Saat eksperimen ini berlangsung, saya sedang menyelesaikan sebuah fitur pada salah satu aplikasi internal berbasis Next.js.
Nama project dan domainnya sengaja tidak saya tulis di sini. Anggap saja aplikasinya mempunyai sebuah modul finansial.
Di salah satu halaman overview, kami baru saja menyelesaikan beberapa perubahan cukup besar:
ada integrasi data finansial asli, agregasi omzet, biaya, profit, dan margin, visualisasi chart batang dan area, donut chart, tooltip interaktif, penyimpanan preference chart, keyboard accessibility, touch interaction, serta beberapa perubahan shared component dan design system.
Total perubahan yang akan direview menyentuh 22 file.
Implementasinya sudah selesai.
Human QA sudah saya lakukan.
Test suite juga sudah lolos.
Pull Request sudah dibuat.
Tahap berikutnya adalah independent review sebelum merge.
Biasanya pekerjaan semacam ini saya serahkan ke Codex.
Kebetulan saat itu quota Codex saya sedang habis.
Nah, ini situasi yang sempurna untuk pertanyaan saya sebelumnya:
“Bisakah OpenCode + model gratis menjadi reviewer cadangan saat agent utama sedang limit?”
Akhirnya eksperimen benar-benar dimulai.
Eksperimen pertama: North Mini Code
Saya membuat prompt audit yang cukup ketat.
Agent tidak saya izinkan mengedit repository.
Ia hanya boleh membaca source code, memahami data flow, memeriksa Git diff, mengecek business logic, lalu menjalankan validation secara bertahap.
Saya bahkan membagi review menjadi beberapa fase.
Phase A hanya untuk memastikan repository, branch, commit SHA, dan diff benar.
Phase B untuk static code review.
Phase C untuk deterministic validation seperti tests, typecheck, lint, verifier, dan build.
Phase D baru boleh menghasilkan verdict akhir.
Tujuannya bukan hanya menguji apakah model bisa menemukan bug.
Saya juga ingin melihat apakah model disiplin mengikuti workflow engineering.
North Mini ternyata cukup menarik.
Ia berhasil membaca repository dan mengikuti sebagian besar instruksi. Bahkan ketika ia sempat membuat dua kesimpulan keliru tentang perhitungan finansial, saya meminta model tersebut membuka kembali implementasinya dan membuktikan klaimnya dengan source code.
Ia akhirnya mengakui bahwa dua finding tersebut adalah:
RETRACTED_FALSE_POSITIVE
Buat saya ini justru menarik.
Modelnya bisa salah, tetapi ketika dipaksa kembali ke evidence, ia mampu memperbaiki reasoning-nya.
Sayangnya, ada beberapa masalah lain.
Pada bagian berikutnya ia mulai mencampur hasil targeted test dengan full test suite. Ia juga melewati phase gate dan menghasilkan final verdict sebelum saya memberikan izin untuk melanjutkan ke fase tersebut.
Artinya, untuk pekerjaan kritis, North Mini pada konfigurasi yang saya gunakan saat itu belum cukup bisa dipercaya sebagai pengganti Codex.
Tetapi bukan berarti tidak berguna.
Saya justru mulai melihat tempatnya.
Model ringan seperti itu mungkin sangat berguna untuk Git inspection, pencarian file, inventory, preliminary review, atau pekerjaan mekanis lainnya.
Kemudian saya mencoba model yang lebih kuat
Saya lalu berpikir bahwa eksperimen model gratis seharusnya dilakukan dengan cara berbeda.
Kalau tujuan saya mencari batas kemampuan maksimal sebuah model gratis, kenapa justru memulainya dari reasoning Medium?
Sejak saat itu saya memutuskan:
Untuk eksperimen model gratis pada pekerjaan substantif, gunakan reasoning tertinggi yang tersedia terlebih dahulu.
Barulah setelah mengetahui ceiling-nya, kita menentukan pekerjaan mana yang aman diturunkan ke Medium atau Low.
Saya kemudian memilih Nex-N2.5-Pro Free dan reasoning High.
Session baru dibuat dari nol agar tidak membawa bias atau reasoning dari model sebelumnya.
Hasil awalnya cukup menjanjikan.
Nex berhasil menjalankan Phase A dengan sangat disiplin.
Ia memverifikasi worktree, branch, commit SHA, origin/main, merge-base, status repository, package manifest, lockfile, dan tepat menemukan bahwa PR tersebut terdiri dari 22 file.
Ia berhenti persis ketika Phase A selesai.
Saya lalu mengirim:
CONTINUE_PHASE_B
Model mulai membaca governance repository, dokumentasi, design system, arsitektur Finance, lalu mulai menjalankan beberapa subtask untuk memahami data flow dan Core component.
Saya cukup antusias melihatnya.
Lalu tiba-tiba semuanya berhenti.
Masalah pertama yang saya kira: apakah modelnya error?
Pesan yang muncul di OpenCode adalah:
Rate limit exceeded: free-models-per-day
Di bawahnya bahkan ada pesan yang menyebut bahwa menambahkan credit dapat membuka 1.000 free model requests per day.

Awalnya saya belum benar-benar memahami maksudnya.
Apakah token model habis?
Apakah context window penuh?
Apakah saya terkena batas 20 request per menit?
Atau memang jatah gratis hariannya habis?
Ini membawa saya ke salah satu pelajaran paling penting dari eksperimen malam ini.
Prompt, request, dan token ternyata bukan hal yang sama
Sebelumnya saya terbiasa melihat AI dari sisi pengguna.
Saya mengetik satu prompt.
Agent bekerja.
Agent mengembalikan laporan.
Secara intuitif rasanya:
satu prompt = satu request.
Ternyata pada coding agent, tidak sesederhana itu.
Bayangkan saya memberi OpenCode satu instruksi:
“Review PR ini secara menyeluruh.”
Di mata saya itu satu prompt.
Tetapi di belakang layar bisa terjadi pola seperti:
model berpikir → agent membaca file → model dipanggil lagi → agent membaca file lain → model dipanggil lagi → menjalankan tool → model membaca hasil tool → berpikir lagi → memanggil subagent → dan seterusnya.
Setiap kali OpenCode menghubungi LLM melalui OpenRouter, terjadilah sebuah request.
Jadi:
1 prompt manusia bisa menghasilkan banyak request ke model.
Token berbeda lagi.
Token adalah unit teks yang diproses oleh model.
Satu request bisa hanya membawa beberapa ribu token.
Request lain mungkin membawa puluhan atau bahkan ratusan ribu token karena berisi prompt, history session, source code, hasil tool, dan konteks lainnya.
Analogi yang paling mudah bagi saya akhirnya seperti ini:
Request adalah jumlah perjalanan truk. Token adalah banyaknya muatan yang dibawa truk.
Satu truk bisa membawa sedikit barang.
Satu truk lain bisa membawa muatan sangat besar.
Tetapi dari sisi request, keduanya tetap dihitung sebagai satu perjalanan.
Saya tidak mau hanya menebak, jadi saya membuka dashboard OpenRouter
Karena ini eksperimen yang ingin saya pahami dengan benar, saya tidak mau berhenti pada asumsi.
Saya membuka dashboard OpenRouter dan masuk ke menu Activity.
Di sanalah semuanya menjadi jelas.
Dashboard menunjukkan:
52 requests
dengan total sekitar:
3,05 juta token
Breakdown modelnya:
North Mini Code: 29 requests
Nex-N2.5-Pro: 23 requests
Totalnya:
52 requests.
Dan seluruh aktivitas tersebut berasal dari OpenCode.


Ini cocok dengan dokumentasi OpenRouter saat ini.
Untuk model gratis, akun tanpa credit mempunyai limit 50 requests per hari dan 20 requests per menit.
Setelah akun mempunyai minimal $10 credit, batas free-model meningkat menjadi 1.000 requests per hari, sedangkan limit per menit tetap 20 requests per minute.
Yang lebih meyakinkan lagi, error yang menghentikan OpenCode bukan generic rate-limit error.
Pesannya secara eksplisit:
free-models-per-day
Jadi yang saya tabrak adalah batas harian, bukan batas per menit.
Ini penting, karena kalau yang habis 20 request/menit, top-up $10 tidak menyelesaikan masalah
Ini bagian yang benar-benar ingin saya buktikan sebelum mempertimbangkan membayar.
Kondisinya saat ini:
| Kondisi akun | Free requests/day | Requests/minute |
|---|---|---|
| Tanpa credit | 50 | 20 |
| Credit ≥ $10 | 1.000 | 20 |
Perhatikan kolom terakhir.
Keduanya tetap 20 request per menit.
Jadi kalau eksperimen saya tadi terhenti karena limit 20 RPM, membeli $10 credit tidak akan mengubah bottleneck tersebut.
Tetapi data akun saya sendiri menunjukkan penggunaan berada di sekitar batas 50 request, dan server mengembalikan free-models-per-day.
Artinya bottleneck yang saya alami memang:
50 requests/day → habis.
Sedangkan upgrade yang ditawarkan OpenRouter mengubah tepat limit tersebut menjadi:
1.000 requests/day.
Inilah titik ketika saya mulai berpikir:
“Oke, sekarang $10 ini mulai terlihat masuk akal.”
Apakah 20 requests per menit cukup untuk coding agent?
Saya sempat mempertanyakan ini juga.
Kalau daily limit naik menjadi 1.000 tetapi tetap dibatasi 20 request per menit, apakah coding workflow saya akan tetap sering terhambat?
Setelah memahami cara agent bekerja, saya justru tidak terlalu khawatir.
20 request per menit berarti satu request setiap sekitar tiga detik jika digunakan penuh terus-menerus.
Workflow development saya bukan workload massively parallel.
Biasanya agent bekerja secara sequential.
Ia membaca file.
Berpikir.
Membaca caller.
Berpikir lagi.
Menjalankan test.
Menunggu test selesai.
Menganalisis output.
Kemudian menentukan langkah berikutnya.
Reasoning High juga membuat satu model call sendiri bisa membutuhkan waktu beberapa detik atau lebih.
Jadi untuk satu atau beberapa agent yang bekerja normal, 20 RPM menurut saya masih cukup masuk akal.
Yang lebih cepat habis justru daily allowance-nya.
Misalnya 1.000 request digunakan selama delapan jam kerja, rata-rata hanya sekitar dua request per menit.
Masih sangat jauh dari ceiling 20 RPM.
Tentu kondisi bisa berbeda jika kita menjalankan banyak subagent secara paralel, retry loop agresif, atau banyak instance OpenCode dengan API key yang sama sekaligus.
Tetapi untuk pola kerja saya sekarang, 1.000 requests/day terasa jauh lebih relevan dibanding memperbesar RPM.
Lalu sebenarnya apa yang kita dapat kalau memasukkan $10?
Ini perlu diluruskan karena saya sendiri awalnya mengira seperti subscription.
Berdasarkan kebijakan OpenRouter saat tulisan ini dibuat, menambahkan minimal $10 credit menaikkan free-model allowance menjadi 1.000 requests/day. Credit itu bukan biaya langganan bulanan untuk menggunakan free model. Credit tetap dapat digunakan untuk model berbayar jika suatu hari kita membutuhkannya. OpenRouter juga menyatakan deposit tersebut tidak kedaluwarsa pada kebijakan saat ini.
Namun saya sengaja menulis “pada kebijakan saat ini.”
Saya tidak menganggap 1.000 free requests/day sebagai janji seumur hidup.
Daftar model gratis, capacity, maupun policy sebuah platform tentu dapat berubah.
OpenRouter sendiri menyatakan free model availability terus berkembang dan tidak dapat menjamin kondisinya akan selalu sama di masa depan.
Jadi cara saya melihatnya bukan:
“Bayar $10 dan dapat AI gratis selamanya.”
Tetapi:
“Dengan kebijakan sekarang, $10 credit membuka kapasitas eksperimen free-model yang jauh lebih usable, dan credit-nya sendiri tetap tersedia.”
Pada kurs saat saya menulis catatan ini, $10 kira-kira berada di kisaran Rp170 ribuan.
Saya sendiri belum melakukan top-up saat eksperimen ini ditulis.
Tetapi setelah melihat data usage nyata, saya merasa biaya tersebut cukup layak dipertimbangkan.
Yang sebenarnya paling menarik bukan soal gratisnya
Semakin lama saya bereksperimen, saya sadar bahwa bagian paling menarik dari OpenCode + OpenRouter bukan sekadar:
“Saya bisa pakai AI gratis.”
Yang jauh lebih penting adalah saya mempunyai pilihan.
Sebelumnya pola pikir saya kurang lebih:
Claude Code adalah coding agent.
Codex adalah reviewer.
Sekarang cara saya melihat ekosistemnya mulai berubah.
OpenCode adalah harness.
OpenRouter adalah router/marketplace model.
Di dalamnya saya bisa memilih model berbeda untuk karakter pekerjaan berbeda.
Hari ini mungkin Nex.
Besok bisa Nemotron.
Lain waktu mungkin ada coding model baru yang bahkan belum tersedia saat artikel ini ditulis.
Dan ini menurut saya salah satu skill baru yang akan semakin penting bagi developer yang bekerja bersama AI.
Kita tidak harus mencari:
“Model mana yang paling pintar?”
Pertanyaan yang lebih berguna bisa menjadi:
“Model mana yang cukup baik untuk pekerjaan ini, berapa resource yang dibutuhkan, seberapa disiplin ia mengikuti instruction, dan seberapa besar risikonya?”
Saya juga belajar bahwa model gratis tidak otomatis pantas dipercaya untuk pekerjaan kritis
Eksperimen ini juga memberi pelajaran sebaliknya.
Gratis dan powerful bukan berarti otomatis aman.
North Mini misalnya sempat menghasilkan false positive ketika membaca business logic finansial.
Setelah dipaksa melihat source code lagi, model bisa memperbaiki dirinya.
Tetapi pada fase berikutnya, ia sempat mencampur evidence dari command berbeda dan melewati phase gate yang sudah dibuat.
Kalau saat itu saya hanya membaca kalimat:
PASS
lalu langsung merge ke production, eksperimen seperti ini justru berbahaya.
Karena itu saya merasa workflow dengan AI agent tetap membutuhkan governance.
Agent harus mempunyai scope.
Harus ada permission.
Harus ada evidence.
Harus dibedakan antara static reasoning dan deterministic test.
Harus ada Human QA.
Dan khusus pekerjaan kritis, independent reviewer tetap sangat berharga.
Jadi tujuan saya menggunakan OpenCode bukan membuat Claude Code atau Codex tidak diperlukan lagi.
Justru saya ingin membuat workflow menjadi lebih resilien.
Gambaran “arsenal” yang mulai terbentuk
Setelah eksperimen ini, cara saya membayangkan workflow AI development pribadi mulai seperti ini:
- Claude Code tetap menjadi implementer utama untuk coding berat, perubahan lintas file, architecture, auth, database, dan pekerjaan dengan risiko tinggi.
- Codex tetap menjadi independent reviewer utama untuk QA, security review, final audit, dan release gate.
- OpenCode + model gratis yang kuat menjadi jalur cadangan ketika quota agent utama habis, atau untuk pekerjaan yang memang tidak membutuhkan model premium.
- Model gratis ringan bisa digunakan untuk Git inspection, repository inventory, pencarian, atau pekerjaan deterministic yang murah risikonya.
- Model gratis dengan reasoning lebih kuat bisa diuji sebagai backup reviewer, investigator, debugging agent, atau implementer sekunder.
Saya belum menganggap pembagian ini final.
Justru tujuannya adalah terus melakukan benchmark dengan pekerjaan saya sehari-hari.
Saya ingin mengukur bukan hanya apakah jawabannya bagus, tetapi juga request consumption, latency, false-positive rate, instruction discipline, kemampuan menggunakan tools, dan kualitas final report.
Kenapa saya merasa eksperimen ini worth it?
Karena sebagai vibe coder, pekerjaan saya semakin erat dengan model-model AI.
Dulu toolbox developer berisi editor, Git, browser devtools, database client, server, framework, dan command line.
Sekarang ada layer baru:
AI coding agent.
Model.
Reasoning level.
Provider.
Context window.
Permission system.
Tool calling.
Request limit.
Token consumption.
Agent orchestration.
Menurut saya memahami semua ini pelan-pelan akan menjadi keunggulan tersendiri.
Bukan berarti kita harus menggunakan 20 model sekaligus.
Justru sebaliknya.
Dengan memahami karakter masing-masing, kita bisa tahu kapan memakai tool yang tepat.
Pelajaran utama saya untuk sesama vibe coder
Kalau saya harus merangkum eksperimen ini menjadi beberapa hal yang ingin saya ingat sendiri dan mungkin berguna untuk vibe coder lain di Indonesia, ini poinnya:
- Jangan bergantung hanya pada satu AI coding agent. Bahkan model terbaik tetap mempunyai quota, outage, dan limit.
- OpenCode bukan model. Ia adalah agent harness yang memungkinkan kita menggunakan berbagai model/provider. OpenRouter adalah salah satu cara memberi OpenCode akses ke banyak model.
- Prompt, request, dan token adalah hal berbeda. Satu prompt manusia dapat memicu banyak request model. Satu request dapat membawa sedikit atau sangat banyak token.
- Agentic coding dapat mengonsumsi request jauh lebih cepat daripada chat biasa. Eksperimen saya hanya dalam satu malam menghasilkan 52 requests dan sekitar 3 juta token.
- Kalau OpenRouter menampilkan
free-models-per-day, itu berbeda dengan limit 20 RPM. Dalam kasus saya, dashboard dan error sama-sama menunjukkan bahwa yang tercapai adalah daily free-request allowance. - Pada kebijakan OpenRouter saat artikel ini ditulis, free account mendapat 50 requests/day dan 20 RPM. Dengan minimal $10 credit, free-model allowance menjadi 1.000 requests/day sementara RPM tetap 20.
- Jangan langsung percaya verdict AI. Minta evidence. Bedakan finding, observation, test result, dan asumsi. Model gratis maupun premium tetap dapat salah.
- Untuk pekerjaan berisiko tinggi, pakai model terkuat yang tersedia dan pertahankan independent review. Model gratis lebih cocok diposisikan sesuai kemampuan yang sudah kita buktikan sendiri, bukan berdasarkan hype.
- Lihat dashboard usage. Jangan menebak-nebak biaya atau limit. OpenRouter Activity memang menyediakan breakdown per request, model, app, token, dan penggunaan lainnya.
- Bangun pengalaman sendiri. Benchmark model menggunakan repository dan problem nyata jauh lebih berguna daripada sekadar melihat leaderboard.
Jadi, apakah saya akan membeli $10 credit OpenRouter?
Saat tulisan ini dibuat, belum.
Tetapi eksperimen ini berhasil menjawab pertanyaan utama saya.
Sebelumnya saya belum tahu apakah OpenCode dan OpenRouter benar-benar berguna dalam workflow saya.
Sekarang saya tahu jawabannya:
Ya, ada gunanya.
Saya juga sekarang tahu bottleneck free tier yang saya alami bukan 20 request per menit, tetapi batas 50 request per hari.
Dan karena $10 credit saat ini meningkatkan limit yang memang saya tabrak dari 50 menjadi 1.000 request per hari, menurut saya itu worth it untuk dipertimbangkan.
Bukan karena saya berharap mengganti Claude Code atau Codex dengan model gratis.
Tetapi karena dengan biaya yang relatif kecil, saya bisa mempunyai jalur cadangan yang jauh lebih fleksibel, sekaligus laboratorium untuk mencoba berbagai model AI coding.
Kalau suatu hari Claude Code sedang habis quota, saya tidak harus berhenti.
Kalau Codex sedang limit, saya masih punya opsi lain untuk melakukan preliminary review.
Kalau muncul model open/free baru yang menarik, saya sudah punya infrastrukturnya untuk langsung mencoba.
Bagi saya, value terbesar ada di sana.
Bukan mencari satu AI yang bisa melakukan semuanya, tetapi mempunyai cukup banyak “jurus” untuk tetap bisa bergerak ketika kondisi berubah.
Dan mungkin itulah salah satu kemampuan baru yang perlu dimiliki vibe coder sekarang.
Salam Berkarya!
Putu Adi.



