中級 11 分エージェント

OpenCode + Ollama:あなたの環境にコードエージェントを提供します。 terminal

端的な回答

OpenCode と Ollama は競合するものではありません。OpenCode はターミナルで動作するコーディングエージェントで、Ollama はローカルでモデルを提供するエンジンです。両者を接続するには、OpenCode をインストールして opencode.json に http://localhost:11434/v1 を接続先とするプロバイダーを設定するか、ollama launch opencode を実行してください。Ollama のドキュメントで要求されているとおり、コンテキスト長を少なくとも 64,000 トークンに設定してください。

このガイドでは、macOS、Linux、WindowsでのOpenCodeのインストール、公式の方法と手動の方法によるOllamaへの接続、実際のマシンのメモリに収まるコーディング用モデルの選び方を紹介します。また、コンテキストの設定という最大の落とし穴と、多くの人が実際よりも厳しいと思い込んでいる権限設定について説明します。OpenCodeとCline、Aiderの比較も行います。

著者 Mohamed Meguedmi·更新 2026-09-29·Windows・macOS・Linuxでテスト済み

#OllamaとOpenCode:それぞれの役割

OpenCodeはターミナルで動作するオープンソースのコードエージェントで、プロジェクトを読み、ファイルを変更し、コマンドを実行します。OpenCode自体はモデルを提供しません。一方、Ollamaはモデルをマシンにダウンロードして実行し、ローカルAPIを公開します。両者は補完関係にあり、OpenCodeがOllamaにリクエストを送り、Ollamaがローカルモデルで応答します。したがって「OpenCodeかOllamaか」という問題ではなく、両方を使います。

ローカルで動かす利点は、思想的なものではありません。コーディングエージェントは、ディレクトリ構成、設定ファイル、業務ロジックなど、すべてを見ることになります。ローカルモデルを使えば、このコンテキストはマシン内にとどまり、トークン単位の課金もネットワークへの依存もありません。その代わり、能力には限界があります。数百億パラメータ規模のローカルモデルは、ホストされている最大規模のモデルには及ばず、長いタスクの実行も遅くなります。

i
OpenCodeには有料サービスもありますが、利用は任意です
OpenCodeのドキュメントでは、OpenCode Zen(チームがテストしたモデルのリスト)とOpenCode Go(ホストされているオープンモデルを利用するサブスクリプション)を、任意で利用できるプロバイダーとして紹介しています。これらは、Ollamaを介して100 %ローカルで利用することとは関係ありません。

#前提条件:マシン、ターミナル、Ollama

ローカルコパイロットキット

このガイドでモデルの導入まで、キットでエディタ内でコードを書くコパイロットの導入まで進められます。

  • 永久に利用できるオンラインスペース
  • PDF + ファイル
  • 生涯アップデート
Ollama が稼働中
設定を始める前に、モデルが応答することを確認してください。まず ollama list を実行し、次にコード用モデルを指定して ollama run を実行します。これが動作すれば、残るのは OpenCode の設定だけです。
現代的なターミナル
OpenCodeのドキュメントでは、WezTerm、Alacritty、Ghostty、Kittyが紹介されています。Windowsでは、より高いパフォーマンスと完全な互換性を得るために、WSLの使用を推奨しています。
コンテキスト用のメモリ
エージェントはファイルを読み取り、履歴を蓄積します。Ollamaによると、OpenCodeには少なくとも64,000トークンのコンテキスト長が必要で、その分、モデルの重みを保持するためのメモリに加えて、さらにメモリが必要になります。
Gitリポジトリ
必須ではありませんが推奨されます:git diff または git restore により、失敗したセッションを適切に取り消すことができます。

#OpenCodeをインストールしてOllamaに接続する

OpenCodeは、スクリプトまたはパッケージマネージャーでインストールできます。ドキュメントには、公式スクリプト、npm、bun、pnpm、yarn、Homebrew、Arch、Chocolatey、Scoop、Mise、Dockerが挙げられています。macOSとLinuxでHomebrewを使う場合は、更新頻度の低い標準のformulaよりも、公式tapを使うことが推奨されています。

スクリプトによるインストール(macOS、Linux)
curl -fsSL https://opencode.ai/install | bash
npmによるインストール(すべてのプラットフォーム)
npm install -g opencode-ai
Homebrew、公式 tap
brew install anomalyco/tap/opencode
Windows、ChocolateyまたはScoop
choco install opencode
scoop install opencode

#手早い方法:ollama launch opencode

Ollama は、選択したモデルで OpenCode を起動できます。ollama launch opencode コマンドは、~/.config/opencode/opencode.json ファイルを上書きせずに、コマンドラインで設定を渡して OpenCode を起動します。既存の OpenCode 設定は引き続き適用されます。--config オプションを使用すると、Ollama は対話セッションを開くことなく OpenCode を設定できます。opencode.json のみで定義されたモデルは、ollama launch のセレクタに表示されません。

OllamaのモデルでOpenCodeを起動する
ollama launch opencode

#手動での設定:Ollamaをプロバイダーとして登録

自分で設定を管理したい場合は、グローバルのopencode.json(~/.config/opencode/opencode.json)またはプロジェクトのルートにあるopencode.jsonにプロバイダーを追加してください。OllamaのOpenAI互換エンドポイントは http://localhost:11434/v1 です。modelsの下にある各キーは、ollama listで表示されるモデル名と完全に一致している必要があります。

opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "ollama": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "Ollama",
      "options": { "baseURL": "http://localhost:11434/v1" },
      "models": {
        "qwen3-coder:30b": { "name": "Qwen3-Coder 30B" },
        "devstral-small-2:24b": { "name": "Devstral Small 2" }
      }
    }
  }
}

OpenCodeを再起動してください。モデル選択欄に、Ollamaプロバイダーの設定で定義したモデルが表示されます。

#最大の落とし穴:コンテキスト長

初めて試す際に失敗することが多いのは、コンテキストが短すぎるためです。エージェントがタスクの冒頭を忘れ、ファイルの読み取りを繰り返したり、一貫性のない変更を行ったりします。Ollamaのコンテキスト長は一律ではありません。ドキュメントでは、VRAMが24GB未満なら4kトークン、24〜48GBなら32kトークン、48GB以上なら256kトークンとされています。また、エージェントやコーディングツールなど、大きなコンテキストを必要とするタスクでは、少なくとも64,000トークンに設定する必要があると明記されています。

Ollama のデフォルトのコンテキストサイズ(VRAMに応じて)および実施すべきアクション
利用可能なVRAMデフォルトのコンテキストOpenCode向け
24GB未満4,000トークン64000以上に設定する
24から48GB32,000トークン64000以上に設定する
48 GB 以上256,000トークン十分です;メモリの使用状況を確認してください

値を変更する方法は2つあります。Ollamaアプリでは、設定のスライダーでコンテキスト長を設定します。コマンドラインでは、サーバー起動時に変数OLLAMA_CONTEXT_LENGTHが適用されます。コンテキストを長くすると、メモリ消費量も増えます。モデルの処理が一部でもCPU側に回ると非常に遅くなるため、ollama psでモデル全体がGPUに収まっていることを確認してください。

サーバー起動時のコンテキストサイズ:64,000トークン
OLLAMA_CONTEXT_LENGTH=64000 ollama serve

#コードエージェント用のローカルモデルはどれですか?

エージェントは、読み取り、書き込み、実行のためのツールを確実に呼び出せる必要があります。Ollamaのライブラリで「tools」対応と表示されているモデルを選んでください。以下は、ollama.comでタグとサイズを確認した候補モデルです。

コーディングエージェントに適したツール利用対応モデル(Ollamaライブラリ、2026年9月)
モデルTagダウンロードサイズ注記
Qwen3-Coder 30Bqwen3-coder:30b19 GB公称ネイティブコンテキストは256K;ツール利用に対応
Devstral Small 2devstral-small-2:24b15 GB公表されているコンテキスト長は384K。ツールと画像に対応
Qwen3.5qwen3.5:9b, 27b, 35bサイズに応じてモデルサイズごとのツール利用・画像認識・推論機能
gpt-ossgpt-oss:20b, 120bサイズに応じてツールと推論

これらはファイルのサイズです。コンテキストキャッシュの分も加える必要があり、そのサイズは要求する64,000トークンに応じて大きくなります。15 GBのモデル(Devstral Small 2)は、メモリ24 GBのマシンで最も導入しやすい選択肢です。19 GBのモデル(Qwen3-Coder 30B)には、より多くの余裕が必要です。より低スペックのマシンでは、小さなモデルでも単純で対象を絞ったタスクを実行できますが、複数のファイルにまたがるリファクタリングでは、より早く対応しきれなくなります。

!
7Bの「Qwen3-Coder」は、Ollamaのライブラリに存在しません
そこではQwen3-Coderは30Bと480Bのみ提供されています。ツールを使える小型モデルが必要なら、Qwen3.5のような汎用モデルファミリーの小さいサイズを選び、扱うタスクは短めに抑えてください。

#実際のワークフロー:ルートとそのテストを追加する

具体例:小規模なExpress APIにGET /healthルートを追加し、そのルートをテストで検証する。OpenCodeのドキュメントでは、まず/initを実行することを推奨しています。/initはプロジェクトを分析し、ルートディレクトリにAGENTS.mdファイルを作成します。このファイルをgitにコミットすることで、エージェントがプロジェクトの構造を理解しやすくなります。

  1. 01
    プロジェクトを開く
    リポジトリのルートに移動してopencodeを起動し、初回は続けて/initを実行してください。画面下部で、選択されているモデルがOllamaのモデルであることを確認してください。
  2. 02
    Plan モードに切り替える
    TabキーでPlanモードとBuildモードを切り替えられます。Planモードでは変更操作が無効になり、エージェントはどのように進めるかを提案するだけです。何かを変更する前に、まずエージェントに計画を提示してもらってください。
  3. 03
    タスクを説明する
    ジュニア開発者に説明するように、背景情報を伝えてください:「src/server.jsにstatus okを返すGET /healthルートを追加し、その後test/health.test.jsにテストを追加してください。」@を使うと、プロジェクト内のファイルを検索できます。
  4. 04
    Buildモードに切り替える
    計画に納得できたら、もう一度Tabキーを押して、変更を適用するよう依頼してください。
  5. 05
    実行し、改善を繰り返す
    エージェントはnpm testを実行し、出力を読み取って修正できます。この「実行・観察・修正」のループが、エージェント型AIの中核です。
  6. 06
    確認およびコミット
    コミットする前にgit diffをもう一度確認してください。セッション中の作業が意図から外れてしまった場合は、git restoreでファイルを以前の状態に戻せます。

ローカルモデルでは、各ステップがホストされたモデルより遅くなり、曖昧な指示は言い換えが必要になることもあります。得られる利点は、自分で管理できることです。コードとコンテキストは自分のマシンに残り、ハードウェアに応じて、モデル、量子化、コンテキスト長を選べます。

#権限:エージェントがユーザーに確認を求めずに行えること

エージェントはユーザーの承認なしには何も変更しない、という考えが広く見られます。しかし、デフォルトの動作はそうではありません。OpenCodeのドキュメントによると、設定を行わない場合、ほとんどの権限はallow、つまり確認なしで実行する設定になっています。external_directoryやdoom_loopなど、一部だけがaskに設定されています。.envファイルの読み取りはデフォルトで拒否されますが、.env.exampleは例外です。

信頼性がやや低いローカルモデルを操作するエージェントでは、設定をより厳しくするのが慎重な対応です。opencode.jsonにはpermissionセクションを設定でき、各アクションにallow、ask、denyのいずれかを指定できます。全体に適用するルールとして、*をaskに設定することもできます。

すべての操作で確認を求める
{
  "$schema": "https://opencode.ai/config.json",
  "permission": { "*": "ask" }
}
→
重要なリポジトリで作業セッションを始める前に
エージェントを起動する前に、変更をコミットするか一時退避してください。モデルを信頼できるようになるまでは、ルール * の設定を ask にしておき、提案されたシェルコマンドをよく確認してください。--auto オプションは、明示的に拒否されていないものをすべて自動承認するため、使い捨てのリポジトリでのみ使用してください。

#OpenCode、Cline、Aider:どれが適しているか?

Ollama に接続される 3 つのコードエージェント
ツール形式強みこのような場合におすすめ
OpenCodeターミナルインターフェース。アプリケーションやIDE拡張にも対応エディタに依存せず、複数のプロバイダーに対応、PlanモードとBuildモードを搭載普段からターミナルを使う、またはリモートサーバーで作業する場合
ClineVS Code拡張機能エディタで表示される差分ワークフローがVS Code中心の場合
AiderコマンドラインGitとの密接な連携、自動コミットコンテキストに追加するファイルを細かく制御したい場合

3つともOllamaのAPIを使用しています。普段の使い方に近い2つを試すには1時間かかりますが、比較記事を読むよりも役に立ちます。エージェントではなくインラインの自動補完を求める場合は、Tabbyをご覧ください。

#トラブルシューティング

モデルが表示されません
opencode.json内の名前がollama listに表示される名前と一致していません。タグも含めて、正確な名前をコピーしてください。ollama launchを使う場合、opencode.json内でのみ定義されているモデルは、そのモデル選択欄に表示されません。
エージェントが直前に読んだ内容を忘れてしまう
コンテキストが短すぎます:64,000トークン(OLLAMA_CONTEXT_LENGTH)に設定し、ollama ps で確認してください。
接続が拒否されました
Ollamaサーバーが起動していないか、デフォルトのポート11434で待ち受けていません。ollama listを試し、次にbaseURLに指定したURLを確認してください。
ツール呼び出しの失敗
このモデルはツールをうまく扱えません。Ollamaのライブラリで「tools」と表示されているモデルを選んでください。
応答が非常に遅い
モデルおよびコンテキストが VRAM を超過し、一部がプロセッサ上で実行されます。コンテキストのサイズ、モデルのサイズ、または量子化を減らしてください。
OpenCodeとOllamaに関するよくある質問
OpenCodeをOllamaと組み合わせて使うにはどうすればよいですか?+
OpenCodeをインストールしてからollama launch opencodeを実行するか、opencode.jsonにopenai-compatible型のプロバイダーを追加し、baseURLを http://localhost:11434/v1 に設定して使用するモデルを指定してください。Ollamaのコンテキストを少なくとも64,000トークンに設定してください。そうしないと、エージェントはすぐにタスクの流れを見失います。最後にollama psでモデルがGPUに収まっていることを確認してください。
OpenCodeとOllamaの違いは?+
OpenCodeはターミナル内で動作するコーディングエージェントで、プロジェクトを読み取り、変更します。Ollamaは、マシン上で言語モデルを実行し、APIを提供するエンジンです。両者は補完関係にあり、OpenCodeはOllamaが提供するモデルにリクエストを送ります。
OpenCodeはWindows上でOllamaと連携して動作しますか?+
はい。OpenCodeのドキュメントではChocolatey、Scoop、npm、Dockerによる導入方法を案内し、より良いパフォーマンスを得るためにWSLを推奨しています。OllamaはWindows上でネイティブに動作し、localhost:11434でAPIを提供します。Windowsネイティブ環境では、同じbaseURLを使えます。WSLを使う場合は、その環境のOpenCodeからOllamaサーバーにアクセスできることを確認し、不確かな場合はWSL内にOllamaをインストールしてください。
Ollama でOpenCode用にどのようなコンテキストを設定すべきですか?+
Ollama のドキュメントによると、OpenCode は少なくとも 64,000 トークンのコンテキストを必要とします。Ollama のデフォルト値は、VRAM が 24 GB 未満の場合の 4,000 トークンから、48 GB 以上の場合の 256,000 トークンまで変わります。アプリケーションまたは OLLAMA_CONTEXT_LENGTH 変数で値を設定し、使用中のメモリを ollama ps で確認してください。
OpenCodeは確認を求めずにファイルを変更しますか?+
はい、デフォルトではほとんどの操作で確認を求めません。ドキュメントによると、大半の権限はallowに設定されています。各操作の前に通知を受けるには、opencode.jsonのpermissionセクションに、*をaskに設定する全体ルールを追加し、各セッションの前に作業内容をコミットしてください。
OpenCodeで使うローカルモデルはどれを選べばよいですか?+
Ollamaのライブラリで「tools」機能が表示されているモデルを選んでください。24GB以上のメモリを搭載したマシンでは、Qwen3-Coder 30B(19GB)とDevstral Small 2 24B(15GB)が最初に試す候補になります。性能やメモリ容量がより限られたマシンでは、Qwen3.5の小さいサイズのモデルを短いタスクで試してください。

#さらに詳しく

このガイドは役に立ちましたか?

ご意見、誤りのご指摘、補足はありますか?ぜひお知らせください。皆さんにとってより良いガイドにするために役立ちます。