Iman Suherman — Building solutions. Delivering impact.

Artikel

Biar Ollama benar-benar ngoding dengan OpenCode

Model chat hanya menyarankan teks. Coding agent butuh model yang bisa tool-calling, context window besar, dan konfigurasi provider OpenCode yang tepat. Ini alur setup lengkapnya.

8 menit baca
AI lokalOpenCodeOllama

Kalau Anda sudah install Ollama di Mac, membuka OpenCode, lalu AI-nya hanya menyarankan teks—bukan mengedit file atau menjalankan perintah—itu bukan karena kurang satu tombol “mode coding”. Penyebab umum: model chat kecil, context window sempit (~3–4k token), dan kebutuhan coding agent yang berbeda.

Chat vs coding agent

Ollama sendiri adalah runtime model. Di chat UI ia menjawab pertanyaan. OpenCode berbeda: ia adalah agent yang harus membaca repo, mengusulkan edit, menulis file, dan menjalankan perintah shell. Itu membutuhkan model yang mampu tool use, plus context cukup untuk menampung system prompt, isi file, dan hasil tool dalam satu sesi.

  • Model chat (misalnya Qwen 3.x / 7–9B kecil): bagus untuk tanya-jawab dan saran singkat.
  • Model coding (misalnya qwen2.5-coder atau qwen3-coder): lebih baik untuk edit terstruktur dan mengikuti skema tool agent.
  • Context ~3.6k: cukup untuk jawaban pendek; tidak cukup untuk “baca file-file ini lalu ubah proyek”.
  • Context 32k–64k+: ruang untuk instruksi agent + beberapa source file + output tool.

Alur end-to-end

  1. 01Ollama berjalan lokal di :11434 (loopback).
  2. 02Pull model coding dan naikkan num_ctx (Modelfile atau OLLAMA_CONTEXT_LENGTH).
  3. 03OpenCode berbicara ke API OpenAI-compatible Ollama di http://127.0.0.1:11434/v1.
  4. 04Anda memilih provider/model di OpenCode dan memintanya mengubah kode di folder proyek.
  5. 05Agent membaca file → merencanakan → memanggil tool (edit / shell) → memverifikasi.

1. Install komponennya

  1. Install Ollama dari https://ollama.com dan pastikan sudah berjalan.
  2. Install OpenCode (installer curl atau paket npm global).
  3. Pintasan opsional: ollama launch opencode — Ollama bisa menyambungkan model ke OpenCode untuk Anda.
# Install OpenCode
curl -fsSL https://opencode.ai/install | bash

# Or:
# npm install -g opencode-ai

# Quick path with Ollama's helper
ollama launch opencode

2. Pull model coding (bukan hanya model chat)

Di Mac tipikal, mulai dengan varian coder yang masih muat di memori. Lebih besar biasanya lebih pintar; lebih kecil lebih cepat. Utamakan model yang menyebut tools / coding di library Ollama.

# Examples — pick one that fits your RAM
ollama pull qwen2.5-coder:7b
# or
ollama pull qwen3-coder:30b   # needs more memory

# Confirm the model is local
ollama list
ollama show qwen2.5-coder:7b

3. Naikkan context (perbaikan untuk ~3.6k)

OpenCode berbicara ke Ollama lewat endpoint OpenAI-compatible. Jalur itu tidak mengizinkan client mengatur num_ctx per request, jadi Anda harus menanam window lebih besar ke model (atau mengatur default server).

Opsi A — Modelfile khusus (disarankan)

cat > Modelfile <<'EOF'
FROM qwen2.5-coder:7b
PARAMETER num_ctx 65536
EOF

ollama create qwen-coder-64k -f Modelfile
ollama show qwen-coder-64k

Jika 64k terlalu berat untuk mesin Anda, coba 32768 dulu. Tetap pada atau di bawah maksimum terlatih model yang ditampilkan ollama show.

Opsi B — default server

# Example for a dedicated ollama serve process
OLLAMA_CONTEXT_LENGTH=65536 ollama serve

# Interactive one-off (then /save a named model)
ollama run qwen2.5-coder:7b
# >>> /set parameter num_ctx 65536
# >>> /save qwen-coder-64k

4. Konfigurasi OpenCode

Buat atau edit ~/.config/opencode/opencode.json (global) atau opencode.json di root proyek. OpenCode tidak otomatis menemukan setiap model Ollama — cantumkan model yang ingin dipakai secara eksplisit.

{
  "$schema": "https://opencode.ai/config.json",
  "model": "ollama/qwen-coder-64k",
  "provider": {
    "ollama": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Ollama (local)",
      "options": {
        "baseURL": "http://127.0.0.1:11434/v1"
      },
      "models": {
        "qwen-coder-64k": {
          "name": "Qwen Coder 64k"
        },
        "qwen2.5-coder:7b": {
          "name": "Qwen2.5 Coder 7B"
        }
      }
    }
  }
}
  • baseURL harus menyertakan /v1 saat memakai @ai-sdk/openai-compatible.
  • Tidak perlu API key untuk Ollama lokal.
  • Format model default adalah provider/model-id, misalnya ollama/qwen-coder-64k.

5. Jalankan dan verifikasi

cd ~/path/to/your-project
opencode

# Or with Ollama's launcher
ollama launch opencode

# Smoke test: ask the agent to create a real file
opencode run "Create todo.md with three checklist items" --model ollama/qwen-coder-64k

Sukses berarti ada perubahan file di disk dan perintah shell di transkrip agent — bukan hanya blok kode markdown di chat. Jika yang muncul hanya cuplikan saran, ganti model, naikkan context, dan pastikan /v1 ada di baseURL.

Cek realitas hardware

  • 8–16 GB unified memory: utamakan coder 7B + context 16k–32k dulu.
  • 24 GB+: varian coder 14B / 30B dan 64k lebih realistis.
  • num_ctx terlalu besar bisa menghabiskan memori dan terasa lebih lambat daripada window lebih kecil yang stabil.

Checklist troubleshooting

  1. Model masih chat umum kecil → pull model *-coder* (atau yang jelas tool-capable).
  2. Context ~3–4k → buat Modelfile dengan num_ctx 32768 atau 65536.
  3. baseURL tanpa /v1 → OpenCode mungkin memanggil endpoint yang salah.
  4. Model tidak tercantum di opencode.json → tidak muncul di picker.
  5. Ollama tidak jalan → curl http://127.0.0.1:11434/api/tags harus berhasil.

Tautan terkait

Intinya: OpenCode tidak otomatis “jadi coder”. Arahkan ke model Ollama yang mampu coding, beri context cukup, dan sambungkan endpoint OpenAI-compatible /v1. Baru setelah itu agent bisa mengedit proyek, bukan hanya menyarankan teks.

← Semua artikel

Biar Ollama benar-benar ngoding dengan OpenCode · suherman.net