OpenCode 2は、AIコーディングエージェントとAIモデルを切り離したオープンソースのツールです。OpenAI、Anthropic、Google、Azure、Amazon Bedrock、OpenRouter、xAI、さらにOllamaやLM Studioで動かすローカルLLMまで、同じ環境から切り替えながら開発できます。
Claude CodeはClaudeを、CodexはOpenAIモデルを軸に設計されています。OpenCodeにはその軸がありません。どのモデルを使うかを設定で決められることが、そのまま設計思想になっています。
最新版のOpenCode 2では、ターミナルのCLIに加えてデスクトップアプリとWeb UIが公式に提供されています。ただしV1からインストール方法・MCPの設定形式・プラグインAPIが変わっているため、V1向けの手順をそのままなぞると途中で止まります。
この記事では、OpenCode 2のインストールからプロバイダー接続、Build / Planの使い分け、サブエージェント、Permission、MCP、ローカルLLMまでを順に扱います。
OpenCode 2は「プロジェクトの中で作業する」AIエージェント
チャット型のAIは、貼り付けたコードについて答えるだけです。一方でOpenCode 2は、開発中のプロジェクトそのものを読み、ファイルを書き換え、コマンドを実行します。こうしたツールをAIコーディングエージェントと呼びます。
具体的には、コードの読み取り、ファイルの作成と編集、シェルコマンドの実行、バグ原因の調査、テストの実行、実装計画の作成、サブエージェントへの委譲、MCP経由での外部サービス利用までを任せられます。
OpenCodeはオープンソースで開発されており、リポジトリはGitHub(anomalyco/opencode)で公開されています。
ターミナル・デスクトップ・Web UIの3つの入り口
CLIだけのツールではありません。同じエージェントに、3つの入り口が用意されています。
ターミナルで使う場合は、プロジェクトのディレクトリで opencode を実行します。デスクトップアプリはmacOS・Windows・Linux向けに配布されています。
Web UIは次のコマンドで起動します。
opencode pair実行するとローカルURLと接続用の認証情報が表示され、ブラウザからエージェントを操作できます。
VS Code、Cursor、Zed、Windsurf、VSCodium向けの拡張や、GitHub・GitLabとの連携も提供されています。
接続できるAIプロバイダーとモデルの選び方
エージェントとモデルが分離しているという特徴は、この接続設定に表れます。
/connect でプロバイダーをつなぐ
OpenCodeを起動したら、次のコマンドでプロバイダーを追加します。
/connectプロバイダーを選び、APIキーなどの認証情報を入力します。公式ドキュメントでは、ネイティブ対応としてOpenAI、Anthropic、Google、Azure、Amazon Bedrock、OpenRouter、xAIが挙げられています。加えてGitHub Copilot、Ollama、LM Studio、vLLMも利用できます。
接続後、モデルの選択は次のコマンドから行います。
/modelsOpenCodeはmodels.devの一覧、プロバイダー統合、自分の設定ファイルの3つからモデル候補を組み立てます。そのため、同じOpenCode環境の中でモデルを切り替えながら開発できます。
モデル名には#でバリアントを付けられます。推論の強さやトークン予算を切り替える指定で、たとえば openai/gpt-5.2#high のように書きます。low high max がすべてのモデルで使えるわけではない点は、ドキュメントにも明記されています。
ChatGPT Plus / Proアカウントで認証する
OpenAIを接続する際、/connect の認証方法の選択肢にはAPIキーの手入力に加えて、ChatGPT Plus / Proアカウントでのログインが表示されます。選ぶとブラウザが開き、OpenAIアカウントで認証できます。すでにChatGPTを契約している場合は、APIキーを発行せずに始められます。
もちろん、OpenAI APIキーを直接登録する方法も選べます。
Claudeを安定して使うならAnthropic API
AnthropicのClaudeも /connect から設定します。
OpenCodeにはClaude Pro / Maxサブスクリプションを使う認証方法も用意されていますが、これはAnthropicによる正式サポートではありません。業務で継続的に使うなら、Anthropic APIキーを登録する方法のほうが確実です。
インストール方法(V1とパッケージ名が違う点に注意)
V1からインストール先のURLとパッケージ名が変わりました。ここを間違えるとV1が入ります。
インストールスクリプト
macOSとLinuxでは、次のコマンドが公式の推奨になっています。
curl -fsSL https://opencode.ai/v2/install | bashnpm / Bun
Node.js環境では次のコマンドを使います。
npm install -g @opencode/cliBunを使う場合は次のコマンドになります。
bun install -g --trust @opencode/clipnpmやYarnからのインストールにも対応しています。
Homebrew
macOSなどでHomebrewを使う場合は、V2用のtapを指定します。
brew install anomalyco/tap/opencode-v2デスクトップアプリはcaskから入れられます。
brew install --cask opencode-desktopデスクトップアプリ
公式ダウンロードページでは、macOS(Apple Silicon / Intel)向けのDMG、Windows x64向けのインストーラー、Linux向けの.debと.rpmが配布されています。
Windowsはパッケージマネージャー非対応
公式ドキュメントは、Windowsについて次のように書いています。
Windows package managers are not supported.
V1時代のChocolateyやScoopのコマンドは使えません。Windowsでは、公式サイトから配布されているスタンドアロンのCLIバイナリをダウンロードするか、npmを使います。
V1とV2の変更点まとめ
項目 | V1 | OpenCode 2 |
|---|---|---|
インストールスクリプト |
|
|
npmパッケージ |
|
|
Homebrew tap |
|
|
MCP設定の位置 |
|
|
MCPの無効化 |
|
|
ターミナルクライアント設定 | 階層化された |
|
起動からモデル選択までの最短手順
インストール後、作業したいプロジェクトへ移動します。
cd /path/to/project続いてOpenCodeを起動します。
opencode初回は /connect でプロバイダーを接続し、/models でモデルを選びます。ここまでで開発を始められます。
プロジェクト固有の前提(使っているフレームワーク、命名規則、テストの回し方など)は、AGENTS.mdなどの指示ファイルに書いておくとエージェントが参照します。
まずPlanで調べ、Buildで実装する
標準で用意されているPrimary Agentは、BuildとPlanの2つです。
Build — 標準のコーディングエージェント
Buildは通常の開発作業を担当します。ツールは既定で許可されており、環境ファイルの読み取りやワークスペース外へのアクセスだけが確認を求められます。
ログイン機能を実装してこのエラーの原因を調べて修正してこうした指示から、実際のファイル編集やコマンド実行まで進みます。
Plan — 編集せずに調べるエージェント
Planは通常のプロジェクトファイルを編集しません。コードを調査し、実装方法を検討するためのエージェントです。頼めばOpenCodeのプラン用ファイルは書きますし、シェルコマンドは引き続きPermissionの制御を受けます。
このプロジェクトにOAuth認証を追加したい。
既存コードを調査して実装方法を考えて。使い分けの理由
大きな変更をいきなりBuildに任せると、意図と違う方向に進んだまま差分が膨らみます。Planで調査させ、方針に納得してからBuildへ渡すと、やり直しのコストを差分が小さいうちに抑えられます。
サブエージェントに調査を切り出す
Primary Agentとは別に、作業を分担するSubagentを使えます。標準ではGeneralとExploreの2つが用意されています。
Generalは調査や複数ステップの作業を広いツール権限で処理します。ただし、さらに別のサブエージェントは起動できません。Exploreはコードやウェブの情報を読むだけで、ファイルは編集しません。
呼び出しは @ に続けて名前を書きます。
@explore 認証エラーがどこで処理されているか調べてサブエージェントは親エージェントとは別のコンテキストで動きます。大規模なコード調査で親のコンテキストを埋めずに済むのが、切り出す実利です。
独自エージェントを作る
自分専用のエージェントも定義できます。プロジェクト単位なら .opencode/agents/<name>.md、全プロジェクト共通なら ~/.config/opencode/agents/<name>.md に置きます。
.opencode/
└─ agents/
└─ reviewer.md中身はフロントマター付きのMarkdownです。
---
description: コードの問題点をレビューする
mode: subagent
model: anthropic/claude-sonnet-4-5#high
permissions:
- action: edit
resource: "*"
effect: deny
- action: shell
resource: "*"
effect: deny
---
現在の変更内容をレビューしてください。
バグ、セキュリティ、リグレッション、不足しているテストを確認してください。フロントマターで指定できるのは、役割を説明する description、primary / subagent / all から選ぶ mode、使用モデルを provider/model#variant 形式で書く model、権限ルールを順に並べる permissions、モデルの最大ステップ数を決める steps です。
エージェントごとにモデルを変える
エージェント単位でモデルを指定できることは、OpenCodeの特徴が実務で効く場面です。実装には高性能モデル、コード調査には高速で安いモデル、レビューには別ベンダーの高性能モデルという構成が組めます。
すべての作業を高価なモデルで回す必要はありません。レビューを実装と別ベンダーのモデルに任せると、同じモデルが自分の書いたコードを自分で承認する構図も避けられます。
Permissionでシェル操作を締める
エージェントが使える操作は、Permissionで制御します。指定できるアクションは次のとおりです。
アクション | 対象 |
|---|---|
| ファイルの読み取り・検索 |
| ファイルの編集 |
| コマンドの実行 |
| サブエージェントの起動 |
| スキルの実行 |
| ユーザーへの質問 |
| ウェブの取得・検索 |
| ワークスペース外へのアクセス |
| MCPサーバーのツール |
効果(effect)は allow、deny、ask の3つです。allow は確認なしで実行、deny は拒否、ask は実行前に確認を求めます。
{
"permissions": [
{ "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" }
]
}この例では、シェルは既定で確認を挟みつつ、git status と git diff は素通しにし、git push は拒否しています。ルールは順序を持つリストとして評価されるため、広い条件と狭い条件を書く順番が結果を変えます。
AIエージェントにシェルを渡すなら、少なくともリモートへ push する操作と、破壊的な削除コマンドは ask か deny に倒しておくべきです。
MCPサーバーを足して外部サービスにつなぐ
AIエージェントから外部ツールやサービスを呼び出すための共通仕様を、MCP(Model Context Protocol)と呼びます。OpenCode 2はこれに対応しています。GitHub、データベース、Context7、社内システムなどをOpenCodeからそのまま操作できます。
CLIから追加する
ローカルMCPサーバーは次のように追加します。
opencode mcp add everything -- npx -y @modelcontextprotocol/server-everythingリモートMCPはURLを指定します。
opencode mcp add context7 --url https://mcp.context7.com/mcpプロジェクトを横断して使いたい場合は --global を付けます。
opencode mcp add context7 --global --url https://mcp.context7.com/mcp設定ファイルはmcp.servers配下に書く
設定ファイルに直接書く場合、V2では mcp.servers の下にサーバー名を置きます。
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"servers": {
"my-server": {
"type": "local",
"command": ["npx", "-y", "example-mcp-server"]
}
}
}
}V1のようにサーバー名を mcp 直下へ置く書き方は通りません。設定だけ残して接続を止めたいときは disabled を使います。
{
"mcp": {
"servers": {
"my-server": {
"type": "local",
"disabled": true
}
}
}
}V1で使っていた enabled ではない点に注意してください。
リモートMCPのOAuth認証
リモートサーバーは既定でOAuthを使います。登録後、OpenCodeの /mcps を開いてサーバーを選ぶと、ブラウザで認可を済ませられます。
/mcpsCLIからも認証できます。
opencode mcp auth sentry認証情報を削除するコマンドも用意されています。
opencode mcp logout sentryローカルLLMを同じ環境から使う
接続先はクラウドのAPIだけではありません。手元で動かすLLMも同じように扱えます。公式にサポートされているランタイムと既定のエンドポイントは次の3つです。
ランタイム | 既定のエンドポイント |
|---|---|
Ollama |
|
LM Studio |
|
vLLM |
|
機密性の高いコードはローカルLLM、それ以外はクラウドのモデル、という使い分けが同じOpenCode環境の中で完結します。
ただし、コーディングエージェントで効いてくるのは単純なコード生成の精度だけではありません。Tool Callingの安定性、指示への追従、長いコンテキストの処理、コードベースを自分で探索する力が揃って初めて、エージェントとして使えます。ローカルLLMを選ぶときは、まずTool Callingに強いモデルかどうかを確認してください。
ウェブ検索とコードベースを組み合わせて調べる
webfetch と websearch は、Permissionの対象アクションとして用意されています。エージェントにウェブを読ませるかどうかを、設定で決められるということです。
許可しておくと、次のような調査を1回の指示で回せます。
利用しているライブラリの最新仕様を調査して、
既存コードへの影響を確認して調査専用のExploreサブエージェントでもウェブ検索は使えるため、親のコンテキストを汚さずに外部情報を集められます。
V1から変わった3つのBreaking Change
公式のMigration Guideは、意図的な変更を3つ挙げています。この3つ以外は、既存のサーバー設定フィールド、エージェント定義、コマンド定義、スキル、.opencode/ 配下のファイルがそのまま動くよう設計されています。
プラグインAPI
V2は新しいプラグインAPIを採用しました。V1向けのプラグインは、ファイルを移動したり設定名を変えたりするだけでは動きません。エントリポイント、フック、ツール、イベント、パッケージのexportをすべて移植する必要があります。
サーバーAPIとクライアント
サーバーAPIとクライアントの契約も変わりました。V2では @opencode/client パッケージを使い、エンドポイントとレスポンス型が更新されています。OpenCodeを外部アプリから操作している場合は、ここの移行が必要です。
ターミナルクライアントの設定
V1では階層化された tui.json(c) を使っていましたが、V2では ~/.config/opencode/cli.json の1ファイルに統合されました。初回起動時に自動で移行されます。ただしV2のクライアント設定はグローバルのみのため、プロジェクトごとの設定は引き継がれません。
なお、V1のスキーマでは受け付けられていたフィールドのうち、V2に対応する機能がないものは無視されます。
Claude Code・Codexとの違い
3つのツールはいずれも、コードベースを読み、ファイルを編集し、コマンドを実行できます。違いは、どのモデルを中心に設計されているかにあります。
ツール | 設計の軸 | モデルの選択 |
|---|---|---|
OpenCode 2 | モデルに依存しない共通フロントエンド | 複数プロバイダーとローカルLLMを切り替え |
Claude Code | AnthropicのClaudeとの統合 | Claudeが前提 |
Codex | OpenAIモデルとの統合 | OpenAIモデルが前提 |
Codexも現在は単純なCLIではなく、オープンソースのエージェントハーネスとして提供され、CLI、IDE、SDK、app-serverへ展開されています。AGENTS.md、MCP、Skillsを組み合わせれば、Codex側でも高度な開発環境を構築できます。
したがって、機能の多寡で優劣が決まるわけではありません。エージェントとモデルを切り離しておきたいならOpenCode、特定ベンダーのモデルに合わせ込まれた挙動を取りたいならClaude CodeやCodex、という分かれ方になります。
OpenCode 2が向いている人・向いていない人
向いているのは、複数のAIモデルを使い分けたい開発者です。実装はOpenAI、レビューはClaude、軽量な調査は高速モデル、機密性の高い処理はローカルLLM、という構成を1つの環境から扱えます。
MCPとサブエージェントを組み合わせて、自分の開発環境を組み上げたい人にも向いています。BuildとPlanの下にExploreやReviewerを置き、GitHubやContext7、社内システムのMCPを足せば、OpenCode自体がAI開発環境のハブになります。
逆に、設定を触らずすぐ使い始めたい場合は、OpenCodeの自由度は手間として表れます。プロバイダー接続、モデル選択、Permission設計を自分で決める前提のツールだからです。特定のモデルで問題なく回っているなら、Claude CodeやCodexのほうが導入は速く済みます。
まとめ
OpenCode 2の価値は、機能の数ではなくモデルを固定しない設計にあります。エージェント側の作法(Build / Plan、サブエージェント、Permission、MCP)を一度覚えれば、その上に載せるモデルは後から差し替えられます。
モデルの勢力図は数か月単位で入れ替わります。開発環境ごと特定ベンダーに預けたくないなら、OpenCode 2から試す価値があります。まずは /connect で手持ちのAPIキーを1つつなぎ、Planでコードを読ませるところから始めてみてください。