← Kembali ke Blog

Jalanin Code Reviewer LLM Lokal dengan Ollama dan Continue.dev

Kebanyakan tool code review ngirim diff kamu ke server orang lain. Buat side project, itu nggak masalah. Buat codebase klien, monorepo internal, atau apa pun yang di bawah NDA, ini bukan opsi. Solusinya: jalanin model-nya sendiri.

Ollama membungkus llama.cpp dan kasih kamu satu binary yang bisa narik, jalanin, dan serve model GGUF lewat HTTP API lokal di port 11434. Continue adalah ekstensi VS Code dan JetBrains yang ngomong ke endpoint OpenAI-compatible mana pun, termasuk Ollama. Gabungan keduanya kasih kamu code reviewer yang jalan di laptop, tanpa telemetry dan tanpa subscription.

Panduan ini nuntun setup yang beneran jalan: install Ollama, pilih model yang cocok di laptop developer, sambungin ke Continue, dan jalanin review di diff beneran.

Prerequisites

  • macOS, Linux, atau Windows (WSL2 direkomendasikan di Windows)
  • Sekitar 8 GB RAM kosong untuk model 7B, 16 GB untuk 14B
  • Sekitar 6 GB disk kosong untuk bobot model
  • VS Code 1.85+
  • Opsional tapi direkomendasikan: Apple Silicon Mac atau mesin dengan GPU diskrit

Langkah 1: Install Ollama

# macOS
brew install ollama

# Linux (one-liner dari ollama.com)
curl -fsSL https://ollama.com/install.sh | sh

# Windows: download installer dari ollama.com/download

Jalanin server-nya. Di macOS aplikasinya yang urus; di Linux jalanin sebagai service systemd atau di terminal terpisah:

ollama serve

Verifikasi nyala:

curl http://localhost:11434/api/version
# {"version":"0.5.x"}

Langkah 2: Pilih model

Nggak semua model jago code review. Kamu butuh yang dilatih di kode, dengan context window cukup gede buat muat diff plus file di sekitarnya. Tiga opsi solid di pertengahan 2026:

Model Size RAM Kenapa pilih ini
qwen2.5-coder:7b 4.7 GB ~8 GB Paling worth it untuk task coding
qwen2.5-coder:14b 9.0 GB ~16 GB Jauh lebih jago nangkep bug logika
deepseek-coder-v2:16b 8.9 GB ~16 GB Kuat di reasoning multi-file

Tarik yang sesuai hardware:

ollama pull qwen2.5-coder:7b

Pull pertama download beberapa gigabyte. Pull berikutnya untuk tag lain cepet karena base layer-nya dipakai ulang.

Cek dulu model-nya sebelum nyentuh editor:

ollama run qwen2.5-coder:7b "Review this Python: def add(a,b): return a-b"

Kamu bakal dapat respons yang nandain bug-nya, jelasin masalah sign, dan kasih saran fix. Kalau yang keluar nggak nyambung, file model-nya korup. Pull ulang.

Langkah 3: Konfigurasi Continue di VS Code

Install ekstensi Continue dari marketplace VS Code. Setelah install, buka file config lewat command palette:

Continue: Open config.json

Ini bikin ~/.continue/config.json. Ganti isinya dengan:

{
  "models": [
    {
      "title": "Qwen Coder 7B (lokal)",
      "provider": "ollama",
      "model": "qwen2.5-coder:7b",
      "systemMessage": "Kamu adalah senior engineer yang lagi code review. Jadi spesifik. Kutip nomor baris. Jangan mengulang kode. Skip nitpick. Tandai masalah beneran: bug, security hole, edge case yang kelewat, dan nama yang membingungkan."
    }
  ],
  "tabAutocompleteModel": {
    "title": "Qwen Coder 7B (lokal)",
    "provider": "ollama",
    "model": "qwen2.5-coder:7b"
  }
}

Restart VS Code. Buka panel Continue dari sidebar kiri (ikon chat bubble). Qwen Coder 7B (lokal) harus muncul di dropdown model.

Langkah 4: Review diff beneran

Shortcut Cmd+L (macOS) atau Ctrl+L (Linux/Windows) buka chat dengan selection saat ini sebagai konteks. Seleksi fungsi, tekan shortcut, dan tanya:

Cari bug dan security issue di fungsi ini.

Untuk review full file atau full diff, paste diff-nya langsung ke chat. Model ini punya context window 32K, cukup untuk kebanyakan PR.

Untuk review yang repeatable di branch, jalanin ini dari root repo:

git diff main...HEAD > /tmp/changes.diff

Lalu di chat Continue:

Review diff di /tmp/changes.diff. List 5 masalah teratas dengan path file dan nomor baris.

Kamu juga bisa tambahin sebagai slash command level project. Bikin .continue/rules/review.md:

# Code review

Pas diminta review kode:
1. Baca seluruh diff sebelum komen.
2. Kelompokkan temuan berdasarkan severity: bug, security, performance, style.
3. Kutip file dan baris untuk setiap temuan.
4. Kalau kodenya udah bener, bilang aja. Jangan bikin-bikin masalah.

Langkah 5: Jadikan bagian pre-commit (opsional)

Kalau kamu mau review di setiap commit, arahkan Continue ke server Ollama dari shell script dan stream responsnya. Versi minimal:

#!/usr/bin/env bash
set -euo pipefail

DIFF=$(git diff --cached)
[ -z "$DIFF" ] && exit 0

PAYLOAD=$(jq -n --arg d "$DIFF" '{
  model: "qwen2.5-coder:7b",
  prompt: "Review diff yang di-stage ini. Tandai bug dan security issue. Pakai bahasa yang ringkas.

($d)",
  stream: false
}')

RESPONSE=$(curl -s http://localhost:11434/api/generate -d "$PAYLOAD")
echo "$RESPONSE" | jq -r .response

Simpan sebagai scripts/pre-commit-review.sh, chmod +x, dan tambahin ke hook pre-commit. Review-nya print ke terminal sebelum tiap commit. Exit non-zero untuk temuan serius dan kamu punya CI gate yang jalan di laptop.

Tuning performa

Default Ollama cukup untuk satu user. Dua knob yang penting:

Panjang konteks. Default-nya 2048 token, terlalu pendek untuk kebanyakan diff. Set per-model lewat Modelfile:

FROM qwen2.5-coder:7b
PARAMETER num_ctx 16384
PARAMETER temperature 0.2

Build:

ollama create qwen-coder-review -f Modelfile

Lalu arahkan Continue ke qwen-coder-review alih-alih qwen2.5-coder:7b. Temperature rendah bikin review lebih deterministik dan kecil kemungkinan bikin-bikin masalah.

Keep-alive. Ollama unload model dari memori 5 menit setelah request terakhir. Prompt berikutnya bayar biaya reload, 5-15 detik. Pin untuk durasi sesi review:

{
  "models": [
    {
      "title": "Qwen Coder 7B (lokal)",
      "provider": "ollama",
      "model": "qwen2.5-coder:7b",
      "ollama": {
        "keepAlive": "-1"
      }
    }
  ]
}

-1 artinya model tetap loaded sampai Ollama restart. Di mesin 16 GB dengan model 7B, biayanya sekitar 5 GB RAM, biasanya masih oke.

Kapan ini bukan tool yang tepat

Model lokal 7B bukan model frontier. Dia kelewat banyak hal. Pake dia untuk first pass, tetap minta manusia ngecek apa pun yang nyentuh auth, payment, atau data migration. Untuk model 14B di mesin yang kuat, gap-nya menyempit. Untuk review lebih dalam di monorepo besar, jalanin agent loop pake hermes-agent atau claude-code yang diarahkan ke repo yang sama.

Kalau kamu butuh model yang lebih kuat dari yang muat di laptop, config file yang sama nerima hosted provider. Ganti provider: ollama jadi provider: anthropic dan tambahin API key. Kode integrasinya nggak berubah.

Mau lanjut ke mana

  • Coba qwen2.5-coder:14b kalau kamu punya 16 GB RAM. Lonjakan kualitas review-nya kerasa.
  • Sambungin server Ollama yang sama ke hermes-agent atau claude-code agent loop untuk refactor otomatis.
  • Tambahin file .continue/rules/ untuk tiap project dengan heuristik review spesifik project.
  • Kalau tim kamu pake JetBrains, config yang sama jalan; Continue support kedua editor.

Butuh Bantuan Implementasi?

Saya membantu tim mendesain dan membangun infrastruktur cloud scalable, pipeline DevOps, dan sistem production-grade.

Konsultasi Gratis