Jalankan AI Coding Assistant Lokal dengan Ollama + Continue.dev

by Marcus Chen
Jalankan AI Coding Assistant Lokal dengan Ollama + Continue.dev

Kamu lagi ngetik kode, butuh autocomplete yang ngerti konteks project-mu, tapi nggak mau bayar $10/bulan untuk Copilot — apalagi nggak nyaman kode proprietary-mu dikirim ke server orang lain. Masalah ini nyata, terutama kalau kamu kerja di project klien dengan NDA, atau sekadar mau hemat.

Solusinya: jalankan large language model langsung di laptop kamu, sambungkan ke VS Code lewat extension Continue.dev. Hasilnya? AI coding assistant yang jalan 100% offline, gratis, dan data-mu nggak kemana-mana.

Artikel ini akan tunjukkan setup end-to-end yang beneran gue pakai sehari-hari — termasuk gotcha yang bikin frustrasi waktu pertama kali nyoba.

Kenapa Ollama?

Ada beberapa cara jalankan LLM lokal: llama.cpp langsung, LM Studio, jan.ai. Tapi Ollama menang di satu hal: developer experience-nya bersih. Install, pull model, langsung expose REST API di localhost:11434. Titik.

Tidak ada GUI yang bloated. Tidak ada konfigurasi YAML yang panjang. Cukup satu binary.

Ollama juga support banyak model yang memang dioptimasi untuk coding:

  • Qwen2.5-Coder — ini yang paling gue rekomendasikan untuk hardware mid-range
  • DeepSeek-Coder-V2 — akurasi bagus, tapi lebih berat
  • CodeGemma — ringan, cocok RAM 8GB
  • Llama3.1 — general purpose, bisa juga untuk coding

Install Ollama di Linux/macOS

Satu command, selesai:

curl -fsSL https://ollama.com/install.sh | sh

Kalau kamu di macOS dan prefer Homebrew:

brew install ollama

Verifikasi:

ollama --version
# ollama version is 0.3.x

Sekarang pull model. Gue pakai qwen2.5-coder:7b karena balance antara kecepatan dan akurasi — jalan lancar di laptop 16GB RAM dengan integrated GPU:

ollama pull qwen2.5-coder:7b

Proses download sekitar 4.7GB. Sambil nunggu, lanjut baca.

Setelah selesai, test cepat lewat CLI:

ollama run qwen2.5-coder:7b "Write a Python function to flatten a nested list"

Kalau responnya muncul dan masuk akal, Ollama-mu beres.

Pastikan Ollama Jalan sebagai Service

Default-nya Ollama jalan sebagai background service setelah install. Tapi kalau tidak, jalankan manual:

# Linux (systemd)
sudo systemctl enable ollama
sudo systemctl start ollama

# Atau manual di foreground (untuk debug)
ollama serve

Test API-nya langsung:

curl http://localhost:11434/api/generate -d '{
  "model": "qwen2.5-coder:7b",
  "prompt": "Hello, are you working?",
  "stream": false
}'

Kalau dapat JSON response dengan field response, berarti API-nya hidup.

Gotcha #1: Kalau kamu di Linux dan dapat error connection refused, cek apakah Ollama bind ke interface yang benar:

export OLLAMA_HOST=0.0.0.0:11434
ollama serve

Tambahkan environment variable itu ke systemd service-mu kalau perlu akses dari container atau mesin lain di jaringan lokal.

Install dan Konfigurasi Continue.dev di VS Code

Continue.dev adalah extension VS Code open-source yang jadi "jembatan" antara editor kamu dan model Ollama. Dia support autocomplete inline, chat sidebar, dan edit kode dengan instruksi natural language.

Install dari VS Code Marketplace:

  1. Buka VS Code
  2. Ctrl+Shift+X → cari "Continue"
  3. Install extension dari Continue - Codestral, Claude, and more

Atau via command line:

code --install-extension Continue.continue

Setelah install, Continue akan buat file config di:

  • Linux/macOS: ~/.continue/config.json
  • Windows: %USERPROFILE%\.continue\config.json

Buka file itu dan replace isinya dengan config ini:

{
  "models": [
    {
      "title": "Qwen2.5 Coder 7B",
      "provider": "ollama",
      "model": "qwen2.5-coder:7b",
      "apiBase": "http://localhost:11434"
    }
  ],
  "tabAutocompleteModel": {
    "title": "Qwen2.5 Coder 7B",
    "provider": "ollama",
    "model": "qwen2.5-coder:7b",
    "apiBase": "http://localhost:11434"
  },
  "embeddingsProvider": {
    "provider": "ollama",
    "model": "nomic-embed-text",
    "apiBase": "http://localhost:11434"
  },
  "contextProviders": [
    { "name": "code" },
    { "name": "docs" },
    { "name": "diff" },
    { "name": "terminal" },
    { "name": "problems" },
    { "name": "folder" },
    { "name": "codebase" }
  ],
  "slashCommands": [
    { "name": "edit", "description": "Edit selected code" },
    { "name": "comment", "description": "Write comments for the code" },
    { "name": "share", "description": "Export the chat session" },
    { "name": "cmd", "description": "Generate a shell command" }
  ]
}

Perhatikan bagian embeddingsProvider — kamu perlu pull model embedding juga supaya fitur "codebase search" jalan:

ollama pull nomic-embed-text

Model ini kecil (~274MB) dan dipakai Continue untuk index seluruh codebase-mu secara lokal.

Cara Pakai Continue.dev Sehari-hari

Setelah setup selesai, ini workflow yang paling sering gue pakai:

1. Chat dengan konteks file

Buka sidebar Continue (Ctrl+L), ketik pertanyaan. Kamu bisa mention file atau fungsi spesifik dengan @filename.py atau highlight kode dulu baru tekan Ctrl+L.

2. Inline autocomplete

Cukup ngetik seperti biasa. Continue akan suggest completion yang muncul sebagai ghost text — tekan Tab untuk accept, Esc untuk skip. Mirip Copilot, tapi modelnya jalan di laptop kamu.

3. Edit dengan instruksi

Highlight blok kode, tekan Ctrl+I, ketik instruksi:

Refactor this to use async/await instead of callbacks

Continue akan generate diff yang bisa kamu accept atau reject.

4. Codebase-aware chat

Ketik @codebase di chat untuk tanya sesuatu yang butuh konteks seluruh project:

@codebase Where is the database connection initialized?

Ini yang paling berguna waktu kamu masuk ke codebase baru atau warisan.

Gotcha yang Perlu Kamu Tahu

Gotcha #2: Autocomplete lambat di hardware lama

Kalau laptop kamu RAM-nya 8GB atau CPU-only (tanpa GPU), qwen2.5-coder:7b mungkin terlalu berat untuk autocomplete real-time. Solusinya: pakai model yang lebih kecil khusus untuk tab autocomplete:

ollama pull qwen2.5-coder:1.5b

Lalu update bagian tabAutocompleteModel di config:

"tabAutocompleteModel": {
  "title": "Qwen2.5 Coder 1.5B (Fast)",
  "provider": "ollama",
  "model": "qwen2.5-coder:1.5b",
  "apiBase": "http://localhost:11434"
}

Strategi ini — model besar untuk chat, model kecil untuk autocomplete — adalah pattern yang banyak dipakai di setup lokal.

Gotcha #3: Continue nggak mau connect ke Ollama

Cek dulu apakah Ollama jalan:

curl http://localhost:11434/api/tags

Kalau dapat list model, Ollama oke. Kalau Continue masih error, coba restart VS Code. Kadang extension-nya butuh reload setelah konfigurasi diubah.

Gotcha #4: Codebase indexing gagal di project besar

Continue akan index semua file di workspace-mu. Kalau project-mu ada node_modules atau folder generated yang besar, indexing bisa makan waktu lama atau crash. Buat file .continueignore di root project:

node_modules/
.git/
dist/
build/
*.lock
*.log

Format-nya sama seperti .gitignore.

Benchmark Singkat: Ekspektasi yang Realistis

Gue nggak akan kasih angka palsu. Ini pengalaman nyata di MacBook Pro M1 8GB:

  • Qwen2.5-Coder 7B, chat response: 3–8 detik untuk response sedang
  • Qwen2.5-Coder 1.5B, autocomplete: ~1 detik, cukup untuk tidak mengganggu flow
  • Kualitas kode: Untuk Python, TypeScript, Go — bagus. Untuk bahasa esoterik — lumayan

Ini bukan Copilot yang response-nya instan. Tapi untuk privacy, cost, dan kontrol penuh atas model — tradeoff-nya worth it buat gue.

Kalau kamu punya GPU NVIDIA, pasang CUDA dan Ollama akan otomatis pakai GPU — kecepatan bisa 5–10x lebih cepat. Untuk memastikan performa optimal, kamu juga bisa mempertimbangkan best VPS hardening practices kalau kamu plan untuk self-host di server.

Setup Tambahan: Buat Ollama Bisa Diakses dari Docker Container

Kalau kamu development di dalam Docker container (misalnya pakai Dev Containers), kamu perlu Ollama accessible dari dalam container. Caranya:

# Di host, set Ollama listen di semua interface
export OLLAMA_HOST=0.0.0.0:11434

Lalu di config.json Continue yang ada di dalam container, ubah apiBase:

"apiBase": "http://host.docker.internal:11434"

host.docker.internal adalah hostname khusus Docker Desktop untuk akses ke host machine. Di Linux, kamu mungkin perlu pakai IP gateway Docker (172.17.0.1) atau tambahkan --add-host=host.docker.internal:host-gateway di docker run command.

Yang Gue Lakuin Selanjutnya

Setup ini sudah jalan di mesin gue selama beberapa bulan. Beberapa hal yang sedang gue eksplor sebagai next step:

  1. Coba model DeepSeek-Coder-V2:16b — butuh RAM lebih besar, tapi reviewnya bagus untuk reasoning kode yang kompleks
  2. Integrasikan dengan Neovim — Continue.dev punya plugin Neovim juga kalau kamu bukan VS Code user
  3. Self-host Open WebUI — buat interface chat yang lebih lengkap di atas Ollama, bisa dipakai dari browser tanpa buka VS Code. Untuk setup yang robust, kamu perlu memahami WordPress object cache dan caching strategy kalau kamu plan integrate dengan aplikasi web.

Kalau kamu mau coba, langkah minimalnya:

# 1. Install Ollama
curl -fsSL https://ollama.com/install.sh | sh

# 2. Pull model
ollama pull qwen2.5-coder:7b
ollama pull nomic-embed-text

# 3. Install Continue.dev di VS Code
code --install-extension Continue.continue

# 4. Edit ~/.continue/config.json dengan config di atas

Total waktu setup: 15–20 menit, sebagian besar nunggu download. Setelah itu kamu punya AI coding assistant yang nggak pernah kirim kode kamu ke mana-mana.