クラウドAPIに毎回コーディングプロンプトを送るのに疲れた人が求めるのが、OpenCodeとOllamaの組み合わせです。確かに動きますが、デモで見るより遅く、不安定になりがちです。

正しい認識を持っておきましょう。ローカルの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は以下のエンドポイントでOpenAI互換APIを公開しています:

http://localhost:11434/v1

OpenCodeの設定にOllamaプロバイダーを追加します:

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

OpenCodeが認証を求めてきた場合は、プレースホルダーのキーを使用します:

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

OpenCodeを再起動し、モデルピッカーからOllamaモデルに切り替えます。

まず試すべきモデル

Gemma 4

最初の選択肢としておすすめです。コードの説明、簡単な編集、小規模なコーディングタスクをこなします。より大きなコーディングモデルと比べて、低スペックなマシンでも動作します。

Qwen3.5

コード生成ではこちらの方が優れていることが多く、特に大きなバリアントを動かせる場合は差が出ます。27Bクラスのモデルは小さなモデルよりも実用的ですが、それなりのメモリが必要です。

Llama 3.3

ハードウェアに余裕があれば優れた汎用モデルです。小型のラップトップでは扱いにくい場合があります。

パフォーマンスの期待値

最近のローカルモデル関連のスレッドを見ると、誰もが同じ本音を認め始めています。プロンプトは通るし、コードの品質も悪くない。それでもツール呼び出しが積み重なると、全体として遅く感じる。

これは想定内の動作です。コーディングエージェントは単一のチャットリクエストではありません。ファイルを読み、計画を立て、編集し、出力を確認し、ループします。ローカル推論では、ループのたびに遅延が体感できるようになります。

許容範囲にするためのコツ:

  • コンテキストを小さく抑える
  • 簡単な編集には小さなモデルを使う
  • モデルをメモリに常駐させておく
  • メモリを大量に使うアプリを閉じる
  • 大規模なリファクタリングにはクラウドフォールバックを使う

Ollamaをメモリに常駐させる

export OLLAMA_KEEP_ALIVE="-1"

設定後にOllamaを再起動してください。これにより、コーディングセッション中のコールドスタートの繰り返しを回避できます。

クラウドフォールバックを使うべき場面

ローカルのOpenCodeが向いている作業:

  • 見慣れないコードの読解
  • 小さな変更の下書き
  • テストの生成
  • エラーの説明
  • プライベートなファイルの操作

クラウドモデルが向いている作業:

  • 複数ファイルにまたがるリファクタリング
  • 難しいデバッグ
  • アーキテクチャの変更
  • 1行ずつレビューしたくないもの

ベストな構成はローカル専用ではなく、ローカルファーストです。

関連するセットアップ

特にGemma 4が目的の場合は、Gemma 4 Ollamaセットアップを参照してください。OpenCodeではなくOpenClawを使っている場合は、Gemma 4とOpenClawをご覧ください。

HAIMAKERでクラウドフォールバックを追加する