AI時代の道具帖
OpenCode
ターミナルやデスクトップで動くオープンソースのコーディングエージェント。手元の Mac mini で動かすローカルLLM(Qwen など)にも、クラウドの月額制サービス「OpenCode Go」にもつないで使える。
- 種別
- オープンソースのコーディングエージェント(CLI / Desktop / Web)
- 接続先
- ローカルLLM(Ollama / LM Studio / vLLM 等)・各種クラウドAPI・OpenCode Go(任意)
- 自分の主な用途
- Mac mini のローカルLLM接続と、OpenCode Go 経由でのモデル試行・記事や固定ページの作業
道具を知る
OpenCode が何で、どこにつなげて、どう動くか
概要
OpenCode は、ターミナル(TUI / CLI)、デスクトップアプリ、Web インターフェースで利用できるオープンソースのコーディングエージェントです。特定の1社のモデルに縛られず、手元のマシンで動かしているローカルLLM(Ollama や LM Studio など)から、主要クラウド各社の API、さらに公式の月額制サブスクリプション「OpenCode Go」まで、接続先(プロバイダ)を切り替えて同じ操作感で扱えるのが特徴です。(2026-11-11 公式ドキュメント確認)
OpenCode 本体と「OpenCode Go」の関係
名前が似ているため混同しやすいですが、「エージェント本体」と「モデルを提供するサービス」は別物です。手元のローカルLLMや既存の API キーだけで使うなら、OpenCode Go の契約は必要ありません。
opencode)や非対話実行(opencode run)で動くOpenCode Go の対象モデル一覧やプランごとの料金・利用上限(5時間・週・月単位の枠)は随時更新されるため、固定の数値はここには持たず、最新の OpenCode Go 公式ドキュメント ↗ を参照する運用にしています。
できること
手元のローカルLLM(Qwen など)につないで動かすローカル接続
- 仕組み(公式仕様):Ollama(
http://127.0.0.1:11434)、LM Studio(http://127.0.0.1:1234)、vLLM(http://127.0.0.1:8000)の既定アドレスにあるモデルを自動検出し、/modelsやopencode.jsoncから選択できる - 別ホスト・OpenAI互換サーバー:
opencode.jsoncのprovidersにbaseURLを指定することで、LAN 内の別マシンや任意の OpenAI 互換エンドポイントにも接続できる - 注意点:自動検出された vLLM のモデルは、ツール呼び出しが初期設定で無効です。手元マシンのメモリ負荷も見ながら、作業に合う接続先を選びます。
クラウドモデルや OpenCode Go を切り替えて使うプロバイダ切替
- 接続手順(公式仕様):TUI 上で
/connectを実行してプロバイダ(OpenCode Go や各社 API 等)を選び、認証情報を設定したあと、/modelsでモデルを切り替える - 1回ごとのモデル指定:既定の設定を書き換えずに、
opencode run --model provider/model "指示文"で実行単位のモデルを指定できる - 注意点:期間限定の無料モデルやプレビュー版は提供終了・名称変更が起きやすい。実行前に現在有効なモデル識別子を
/modelsや公式ドキュメントで確かめる
調査・計画(Plan)と実装(Build)を分けて進める作業範囲の制御
- 組み込みエージェント(公式仕様):通常のプロジェクトファイルを書き換えずに調査・設計を行う
planと、ファイル編集・コマンド実行を行うbuildが標準で用意されている - 権限ルール(
permissions):read、edit、shell、external_directoryなどの操作ごとにallow/ask/denyをopencode.jsoncで細かく指定できる(既定では*.envの読み取り時に確認を求める) - 確かめ方:作業コピー(Git worktree)を分けて実行させ、完了後に
git statusとgit diff、Pull Request の差分を人間が自分の目で確認してから取り込む
主な機能
/connect と /modelsプロバイダの接続と、セッションごとの利用モデルの切り替えAGENTS.md によるプロジェクト指示リポジトリ固有のルール・手順・禁止事項を読み込ませる(OpenCode V2 は AGENTS.md を参照)permissions ルール制御ファイル編集・シェル実行・外部ディレクトリ参照の許可/確認/拒否を定義opencode run(非対話実行)対話画面を開かず、モデルと指示書を渡して1回分の作業を実行する CLI モード使ってわかったこと
手元の環境と公開済みの試行からわかった、使い分けと注意点
私の使い方
実際に試していること(公開済みの記録・運用範囲)
モデル一覧をのぞくのも楽しみです。以前は Muse Spark が期間限定で無料になったり、開発元を伏せた Space Bunny Free が試験公開されたりしました。Muse Spark の記録 ↗ / Space Bunny Free の記録 ↗
AGENTS.md と作業指示書を渡し、専用ブランチ上で下調べ・原稿やテンプレートの編集・ドラフト PR 提出までを任せる使いこなしのコツ
- 手元の Mac mini のメモリ負荷を見て、ローカルLLM(Qwen など)とクラウド(OpenCode Go 等)を無理なく使い分ける
- 作業を始める前に「触ってよいディレクトリ(worktree)」「変更してよいファイル」「本番反映やマージは人間が行うこと」を
AGENTS.mdと指示文の両方で明示する - エージェントの「完了しました」という報告だけで判断せず、
git diffと GitHub 上の PR head SHA・差分を人間が確かめてからマージする
実践と失敗
ローカルLLMと自律エージェントの同時展開でメモリ負荷が重くなるつまずき
自前の Mac mini でローカルLLMを動かしながら自律型エージェント(Hermes Agent の仮想DAO実験)を同時に展開しようとした際、ローカルLLM単体での起動・疎通は確認できたものの、継続して複数工程を回すにはメモリ負荷が大きすぎました。そこで外部モデル提供サービスである OpenCode Go 経由のモデルに切り替えることで、手元マシンの負荷を抑えて実験を継続できました(試行録「Hermes Agentで仮想DAOを動かしたい(1)」より)。
「OpenCode Go」を単体の無料モデル名だと誤認した訂正の記録
仮想DAOの実験では、OpenCode Go 経由で当時提供されていた無料モデルを試しました。道具帖一覧で「無料モデルの OpenCode Go」と書いていた箇所は、公式ドキュメントを確認し、クラウドのAIモデルを使える月額制サービスと説明する表記に直しました。
次に試すこと
- Mac mini 上のローカルLLM(Qwen 系モデルなど)で実用的に回る軽作業の範囲と、クラウドモデルへ切り替える基準の整理
permissionsとAGENTS.mdを使った、安全な自律作業(下調べ〜ドラフト PR 作成)の定型化
公式ノウハウ・ベストプラクティス
Local Models & Providers(ローカルLLMとプロバイダ設定)
【公式仕様の要点】 OpenCode はローカルの既定アドレスで稼働している Ollama(127.0.0.1:11434)、LM Studio(127.0.0.1:1234)、vLLM(127.0.0.1:8000)のモデルを自動検出します。別のホスト・ポートや OpenAI 互換サーバーを使う場合は、opencode.jsonc の providers で設定し、API キーが必要な場合は設定ファイルに直書きせず {env: ENV_VAR} で環境変数を参照させます。
{
"$schema": "https://opencode.ai/config.json",
"model": "ollama/qwen3:8b"
}
出典:Models — Local(OpenCode Docs) ↗ / Providers — Ollama(OpenCode Docs) ↗
Permissions & Agents(権限ルールと Plan / Build の分離)
【設定例】 OpenCode V2 の permissions は上から順に評価され、最後に一致したルールが優先(The last matching rule wins)されます。広い ask や deny を先に置き、安全な読み取りコマンド(git status * や git diff *)だけを後から allow で許可し、git push * や秘密ファイル(*.env)を制限する設定例が公式ドキュメントにあります。また、既定ではワークスペース外のパス(external_directory)も許可されるため、プロジェクト外へのアクセス前に確認を求めたい場合は明示的にルールを追加します。
{
"$schema": "https://opencode.ai/config.json",
"permissions": [
{ "action": "external_directory", "resource": "*", "effect": "ask" },
{ "action": "shell", "resource": "*", "effect": "ask" },
{ "action": "shell", "resource": "git status *", "effect": "allow" },
{ "action": "shell", "resource": "git diff *", "effect": "allow" },
{ "action": "shell", "resource": "git push *", "effect": "deny" }
]
}
Project Instructions(AGENTS.md によるルール共有)
【公式仕様の要点】 OpenCode V2 はグローバル設定(~/.config/opencode/AGENTS.md)とプロジェクト内の AGENTS.md を自動で読み込んで結合します(V2 では AGENTS.md のみを認識し、CLAUDE.md への自動フォールバックは行いません)。別ファイルの手順書や規約を追加で読ませたい場合は、opencode.jsonc の instructions 配列で指定します。
この道具で作ったもの
試行録
公式サイト・関連リンク
- OpenCode ↗opencode.ai
- OpenCode Docs ↗opencode.ai/docs
- OpenCode Go Docs ↗opencode.ai/docs/console/go
- OpenCode Models & Local LLM ↗opencode.ai/docs/models
関連する道具
OpenCode / OpenCode Docs
ローカルLLM(Ollama / LM Studio / vLLM)からクラウドモデルまで接続できるオープンソースのコーディングエージェント。導入手順や最新のモデル対応状況は公式ドキュメントで確認できます。
使い方を忘れたら、このページを開く。気づいたことは随時ここに足していく。