OpenCode 搭配 Ollama,是厭倦了把每個 coding prompt 都丟給雲端 API 的人最想要的方案。它確實能用,但也比示範影片看起來更慢、更容易出狀況。

先建立正確的預期:本機 OpenCode 很適合小型、私密、重複性的工作。除非你喜歡從頭到尾守在旁邊顧著,否則別把一團亂的多檔案遷移交給它。

安裝 Ollama

macOS:

brew install --cask ollama-app
open -a Ollama

Linux:

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

接著拉取模型:

ollama pull gemma4

確認模型已可用:

ollama list

在 OpenCode 設定中,請使用該輸出中的確切模型名稱。

設定 OpenCode

OpenCode 可以與 OpenAI 相容的提供者溝通。Ollama 在下列端點提供相容介面:

http://localhost:11434/v1

在你的 OpenCode 設定中新增 Ollama 提供者:

{
  "provider": {
    "ollama": {
      "npm": "@ai-sdk/openai-compatible",
      "options": {
        "baseURL": "http://localhost:11434/v1"
      },
      "models": {
        "gemma4:latest": {}
      }
    }
  }
}

如果 OpenCode 要求驗證,使用佔位用的 API 金鑰:

{
  "ollama": {
    "type": "api",
    "key": "ollama"
  }
}

重新啟動 OpenCode,然後從模型選擇器切換到 Ollama 模型。

建議優先嘗試的模型

Gemma 4

很好的首選。它在程式碼解說、簡單修改和小型程式碼任務上表現都不錯。相較於更大的程式碼模型,它在規格普通的機器上也能跑得起來。

Qwen3.5

在寫程式方面通常更好,尤其是能跑較大變體的時候。27B 等級的模型比小模型實用得多,但需要足夠的記憶體。

Llama 3.3

如果硬體夠力,這是一個不錯的通用模型。在較小台的筆電上就比較不實用。

效能預期

近期本機模型的討論串都把大家心照不宣的事講白了:prompt 可能有效、程式碼品質可能不錯,但一旦工具呼叫開始堆疊,整套操作還是會明顯變慢。

這是正常的。Coding agent 不是一次性的 chat 請求。它會讀取檔案、規劃、編輯、檢查輸出,然後來回循環。本機跑推論時,每個循環的延遲會更明顯、更有感。

要讓體驗好過一些:

  • 保持 context 精簡
  • 簡單編輯使用較小的模型
  • 讓模型保持暖機
  • 關閉佔用大量記憶體的應用程式
  • 長時間重構使用雲端備援

讓 Ollama 保持暖機

export OLLAMA_KEEP_ALIVE="-1"

設定完成後重新啟動 Ollama。這樣可以避免 coding session 中反覆出現冷啟動。

何時使用雲端備援

適合用本機 OpenCode 的場景:

  • 閱讀不熟悉的程式碼
  • 草擬小幅修改
  • 產生測試
  • 解釋錯誤訊息
  • 處理私密檔案

適合用雲端模型的場景:

  • 跨多檔案重構
  • 困難的除錯
  • 架構變更
  • 任何你不想逐行審查的工作

最佳做法不是只用本機,而是本機優先。

相關設定

如果你的目標是專門使用 Gemma 4,請閱讀 Gemma 4 Ollama 設定。如果你使用的是 OpenClaw 而非 OpenCode,請參考 Gemma 4 搭配 OpenClaw

使用 HAIMAKER 新增雲端備援