Tracks
OpenCodeはタスクを実行するために設計されています。AIモデルをリポジトリ、ターミナル、開発ツールに接続するオープンソースのエージェントです。バグ修正を依頼すると、関連ファイルの特定、計画の作成、コード編集、テストの実行、エラーへの対応まで行えます。オートコンプリートだけではこれはできません。
その広い役割が注目を集めました。執筆時点で、アクティブなOpenCodeのリポジトリは約189,000個のGitHubスターを獲得していました。スター数はコード品質の証拠とは言えませんが、プロジェクトへの関心の高さは示しています。
現実はもう少し複雑です。OpenCodeはモデルを選べますが、その選択を管理するのはユーザーです。2026年1月のプロバイダー方針変更は、その選択肢がどれほど急に変わり得るかを示しました。OpenCodeの仕組みと位置付けとあわせて触れます。
先に名前に関する注意をひとつ。OpenCodeを検索すると、アーカイブ済みでGo製の opencode-ai/opencodeリポジトリが見つかるかもしれません。あのプロジェクトは2025年9月で保守が止まりました。本稿では、Serverless Stack (SST) フレームワークの開発チームによる現行のgithub.com/anomalyco/opencodeに焦点を当てます。
OpenCodeとは?
OpenCodeはMITライセンス下で公開されたオープンソースのAIコーディングエージェントです。モデル非依存で、特定のプロバイダーに縛られません。ユーザーはソースコードを閲覧・改変でき、セルフホストも可能です。ソフトウェア自体は無料で、モデルの課金は別(機能の項で説明)です。

OpenCodeは大規模言語モデル(LLM)ではありません。選択したモデルがプロンプトを読み、応答を生成します。OpenCodeは、そのモデルの周りにファイルツール、シェルアクセス、セッション履歴、許可ルール、インターフェースを提供します。この区別は、モデルを変えてもツール全体を変える必要がない点で有用だと感じます。
開発元は旧SSTのAnomalyで、主にTypeScriptとBunで動作します。

アーカイブ済みと現行のOpenCodeリポジトリの比較。画像:著者
OpenCodeは特定のモデル系に紐づきません。Models.devレジストリ経由で、Anthropic、OpenAI、Google、DeepSeek、Groq、そしてOllama経由のローカルモデルなど、75以上のプロバイダーに接続できます。既存のサブスクリプションアカウントを接続できる場合もあり、詳細は機能の項で触れます。

OpenCodeのターミナルセッション。ファイル変更の表示。画像:著者
OpenCodeはターミナルから始まりましたが、現在はターミナルUI(TUI)、macOS/Windows/Linux向けのベータ版デスクトップアプリ、VS Codeなどのエディタ拡張として提供されています。執筆時点の最新安定版はv1.18.8です。
OpenCodeが作られた理由
前述のとおり、OpenCodeは複数プロバイダーのモデルをサポートします。これは、モデルの品質や価格が変動し、特定プロバイダーに縛られたツールではユーザーの選択肢が狭まるためです。
ドキュメントでは、OpenCodeはどのプロバイダーにも結合されていないと明記しています。先述のModels.devレジストリが、OpenCodeが利用するモデルの詳細と価格を提供します。
この選択は課金以上の側面に影響します。モデルごとにコンテキスト上限、ツール呼び出し形式、入力タイプが異なります。OpenCodeはそれらの差異に対して単一のインターフェースを提供します。開発者は同じプロジェクト内でモデルを切り替えても、セッションを別のコーディングツールに移す必要がありません。
また、チームはユーザーが検証できるターミナルファーストのツールを好みます。プロジェクトの指示はAGENTS.mdというプレーンなファイルに記述されます。OpenCodeがこのファイルをどのように作成・利用するかは後述します。
公式プロジェクトは3つの設計選択を挙げています。1つ目は前述のプロバイダー対応。2つ目は主要な操作をターミナルに保つこと。3つ目はクライアントとサーバーの分離です。次でその分割を説明します。
2026年1月、Anthropicは非公式チャネルを通じた一般向けClaudeサブスクリプションのサードパーティツール利用をブロックしました。これを受け、OpenCodeは他のサブスクリプション手段を追加し、自前のゲートウェイを用いました。引き続き他プロバイダー経由での接続は可能でした。
この出来事は、OpenCodeでプロバイダー選択が重視される理由を物語っています。では、ユーザーがその選択で何をするのか、次は実際のセッションを見ていきます。
OpenCodeの仕組み
OpenCodeはクライアントとローカルサーバーとして動作します。TUI、デスクトップアプリ、IDE拡張、SDKはすべてHTTPでそのサーバーと通信します。同じサーバーはopencode attach <url>によるリモート接続や、 opencode serveによるヘッドレス利用にも対応します。
セッション内では、エージェントが関連ファイルを読み、必要に応じて計画を作成し、コードを編集し、コマンドを実行します。Language Server Protocol(LSP)連携により、コンパイラやリンターの診断結果がモデルに返され、型や構文エラーに応答できます。
例えば、タスクはglob や grepでファイルを特定することから始まるかもしれません。エージェントはreadで中身を確認し、editで特定行を変更します。その後bashでテストやビルドを実行できます。出力は次のモデルリクエストの一部になります。
BuildとPlanの分離は、権限スイッチと考えるのがわかりやすいでしょう。Buildはデフォルトで、読み取り・書き込み・コマンド実行が可能です。Planは、ファイル編集やbashコマンドの実行前に確認を求めます。Tabで切り替えます。
権限チェックはツール呼び出し時に適用されます。プロジェクト単位で、あるツールを許可・ブロック・毎回確認に設定できます。コマンドパターンごとにルールを変えることも可能です。例えば、日常的なテストは許可し、それ以外のシェルコマンドは確認を求める、といった運用です。
セッションはOpenCodeのデータディレクトリ配下にローカル保存されます。OpenCodeは長い会話を自動で圧縮します。/undoと /redo でGitベースのファイルスナップショットを移動できます。
OpenCodeの主な機能
OpenCodeは主機能を、モデルアクセス、プロジェクトコンテキスト、タスク実行、ローカル利用に分けて説明しています。以下では、各グループがコーディングセッション中に何を変えるかを解説します。
マルチモデル対応
前述のとおり、OpenCodeはModels.dev経由でプロバイダー一覧を取得します。実運用では、ホスティングサービス、クラウドプラットフォーム、OpenAI互換エンドポイントに接続可能です。GitHub CopilotやChatGPT Plus/Proのログインは、別のAPIキー管理の代替になります。
プロバイダー選択は、すべてのモデルが同じ挙動をすることを意味しません。ツール利用、コンテキスト上限、応答時間、価格は、選択したモデルとプロバイダーに依存します。ホスト型モデルへの呼び出しでは、必要なコードコンテキストも各プロバイダーのデータ規約のもとに送信されます。
OpenCodeはモデルアクセスのために、任意で2つの方法も提供しています。OpenCode Zenは厳選モデル向けの従量制ゲートウェイ、OpenCode Goは選定されたオープンウェイトモデル向けのサブスクリプション(月初月$5、その後$10/月)です。自前のAPIキーを使い続けることも可能です。価格は変動する場合があります。
厄介なのはここです。無料ツールでも、プロバイダーからの請求が発生し得ます。
リポジトリコンテキストの活用
/init を実行すると、OpenCodeはプロジェクトの構造や規約の概要を AGENTS.md として生成します。チームはこのファイルをコミットし、セッション開始時の共通指示にできます。
このファイルにはテストコマンド、フォルダ名、命名規則、プロジェクトの注意点を含められます。グローバルなAGENTS.mdには複数プロジェクトで使う指示を、プロジェクト固有のファイルには特定リポジトリ向けのルールを記述します。
前述のLSPチェックは編集後に実行されます。リポジトリコンテキストにはファイル参照も含まれ、 @ 記号で選択したファイルをプロンプトに取り込めます。
コーディングタスクの実行
前述のBuild/Planエージェントに加え、OpenCodeにはマルチステップ検索、コードベース走査、外部ドキュメント参照のためのサブエージェントがあります。カスタムエージェントには独自のモデル、プロンプト、ツール権限を設定できます。
各サブエージェントは子セッションで動作するため、そのメッセージはメインセッションを同じようには埋めません。カスタムエージェントを読み取り専用にしたり、低コストなモデルを割り当てたり、特定タスク向けの指示を与えたりできます。
Model Context Protocol(MCP)サーバーは外部サービスを追加します。これはopencode.jsonで定義され、前述の許可チェックは追加されたツールにも適用されます。
ローカルファースト開発(とその限界)
「ローカルファースト」という言葉には注釈が必要です。これは「何も外に出ない」という約束と受け取るべきではありません。プロバイダーの項で述べたように、OpenCodeはOllamaに接続できます。その構成では、コードとプロンプトはローカル基盤に留まります。ホスト型モデル、/share、OpenCode Zenはデータをローカル外へ送信します。
ローカル利用はモデルに依存します。小規模モデルは無効なツール呼び出しを返したり、ファイル間の関係を見落としたりする場合があります。ローカルサーバーには選択モデルを載せる十分なメモリと、各リクエストに送るファイルのための十分なコンテキスト領域も必要です。
権限システムはワークフローの安全装置であり、セキュリティサンドボックスではありません。ネットワーク越しのサーバーモードではOPENCODE_SERVER_PASSWORD を使用し、localhostにバインドすべきです。過去に認証なしの露出問題は修正されましたが、サーバーモードを認証なしで公開するべきではありません。
OpenCodeのアーキテクチャ
前述のとおり、OpenCodeはクライアントをローカルサーバーから分離しています。この分割は設定と保存状態に影響します。APIはサーバーを利用する別の方法を提供します。
TUIのみを使う予定であれば、APIの詳細は飛ばして構いません。最後の設定の段落が利用する部分です。
TypeScriptとBunのサーバーはモデルプロバイダーとやり取りし、ツールを実行します。状態管理も担います。OpenAPI 3.1仕様から公式の@opencode-ai/sdkが生成されます。スクリプトやカスタムクライアントはこのドキュメント化されたAPIを利用できます。
APIはセッション、メッセージ、ファイル、プロバイダー、ツール、エージェント、設定を含みます。これはOpenCode自身のクライアントが使うのと同じサーバーです。スクリプトはTUIを操作しようとせずに、セッションの作成やメッセージ送信ができます。

1つのサーバーに接続するOpenCodeクライアント。画像:著者
先に挙げたインターフェース、すなわちTUI、デスクトップアプリ、IDE拡張、opencode webはクライアントとして動作します。いずれも同一のサーバープロセスと通信します。別デバイスからそのプロセスを通じて既存セッションに接続できます。
opencode serve は通常のTUIなしでサーバーを起動します。 opencode webはブラウザクライアントを追加します。どちらのコマンドも、他デバイスから到達可能な場合は認証が必要です。
設定はプロジェクトレベルのopencode.json または opencode.jsoncにあり、グローバルのフォールバックは ~/.config/opencode/opencode.jsonです。モデル、権限、MCPサーバー、カスタムエージェントを制御します。ワークフローの項で述べたように、セッション履歴やツールログは、ユーザーが共有しない限りローカルファイルに留まります。
一般的なOpenCodeのワークフロー
OpenCodeの同じ構成要素は、いくつかの一般的なソフトウェア作業に使えます。以下の例では、それぞれにおいて人のレビューが依然として重要な箇所を示します。
新機能の実装
前述のPlanからBuildへのプロセスを用いて、開発者は機能を要求し、編集前に提案ステップをレビューできます。Tab を押すと、コード変更とテストのためにBuildモードへ移行します。
計画はファイル変更前に見直せます。範囲の調整、変更すべきでないファイルの指定、テスト要件の追加などにこのレビューを使うとよいでしょう。
既存コードのリファクタリング
同じPlanからBuildの流れはリファクタリングにも有効です。Planモードで依存関係や呼び出し箇所を特定し、Buildモードで編集を適用します。結果が誤っていれば、 /undoで以前のスナップショットを復元できます。テスト合格は公開インターフェースがすべて不変だったことの保証にはならないため、差分のレビューは必要です。
アプリケーションのデバッグ
デバッグでは、OpenCodeはスタックトレースと、言語サーバーの型情報を組み合わせられます。変更案を提示し、エラーの再現手順を繰り返し、結果を確認できます。明確な再現手順がなければ、ビルド成功や既存テストの合格を確認するだけに留まる場合もあります。
テストの作成
前述のとおり、Buildモードはファイル編集とコマンド実行が可能です。テスト作成では、テストを生成し、結果を読み取り、再度変更を加えられます。テストスイートが充実しているほどフィードバックは増えますが、時間はかかります。
テストの質は人のレビューが依然として必要です。生成されたテストが、実装の写しに終始し、ユーザーが依存する振る舞いの検証になっていないことがあります。
大規模コードベースの理解
リポジトリの項で説明したように、/initはプロジェクトノートを作成します。その後は「ここでの認証はどうなっている?」のような質問で検索を導けます。 @general サブエージェントはリポジトリの複数箇所を検索できます。
特定の質問の方が、「リポジトリ全体を説明して」といった依頼より明確な結果になりがちです。 @によるファイル参照で、さらに検索対象を絞れます。
OpenCodeと他のAIコーディングエージェントの比較
これらのツールはライセンス、モデル対応、インターフェース、課金方式が異なります。特定ツールをデフォルトの選択と見なすのではなく、これらの観点で比較します。
OpenCodeとClaude Code
詳細はOpenCodeとClaude Codeの比較記事をご覧ください。Claude Codeはプロプライエタリで、Anthropicのモデルとアカウントシステムを利用します。OpenCodeはMITライセンスで、ユーザーにプロバイダー選択を求めます。ソースコードと設定へのアクセスも提供します。履歴の項で述べたように、一般向けClaudeサブスクリプションはOpenCode経由では使えなくなったため、Claudeの利用にはAnthropicのメータードAPIキーが必要です。
どちらもファイルの読み取り、変更、コマンド実行、MCPサーバーの使用が可能です。主な違いはモデルアクセスです。Claude Codeは上記のAnthropic構成にとどまり、OpenCodeは他プロバイダーやローカルエンドポイントに接続できます。
OpenCodeとCursor
CursorはVS CodeベースのIDEで、CLIやクラウドエージェントも提供します。主なワークフローは、提案、ファイル変更、エージェントの動作をエディタ内に収めます。OpenCodeは前述のとおり、ターミナル、デスクトップ、エディタの各インターフェースを使います。Cursorは有料サブスクリプション。OpenCodeのソフトウェアは無料ですが、トークンはモデルプロバイダーに支払う場合があります。主な違いは作業インターフェース、モデル選択、課金方法です。
Cursorは開発者のタイプ入力に対するインライン補完も備えます。OpenCodeはエージェントへのタスク指向に焦点を当てており、この形式の補完を置き換えるものではありません。用途に応じて両者を使い分ける開発者もいるでしょう。
OpenCodeとCline
Clineのコアは、オープンソースのBYOK(自前キー持ち込み)エージェントで、VS CodeとCLIインターフェースを持ちます。JetBrainsクライアントもありますが、執筆時点ではオープンソースではありません。ClineとOpenCodeはいずれもMCPをサポートし、承認ルールを設定できます。Clineはエディタのサイドバーにコントロールを配置し、OpenCodeはエディタと独立して動かせるターミナルセッションを使います。選択は主に、どこで変更をレビュー・承認したいかによります。
ClineはApache 2.0ライセンス、OpenCodeは前述のMITライセンスです。いずれもソースの閲覧・変更が可能ですが、インターフェースやプロジェクトファイルは異なります。
AiderやCodex CLIもターミナルベースのコーディングエージェントです。OpenCodeは同一プロジェクト内でターミナル、デスクトップ、IDEの利用をカバーし、複数プロバイダーのモデルをサポートします。
OpenCodeのインストールとはじめ方
公式のインストールスクリプトは多くのUnix系システムで動作します。コマンドラインツールのインストール方法のひとつを提供します。
このコマンドはOpenCodeのバイナリをダウンロードし、ユーザー環境に追加します。アップデートをシステムの他の部分と併せて管理するなら、パッケージマネージャーの方が適しているかもしれません。
curl -fsSL https://opencode.ai/install | bash
パッケージマネージャーの選択肢には、npm i -g opencode-ai@latest、brew install anomalyco/tap/opencode(macOSとLinux)、scoop install opencode または choco install opencode (Windows)があります。デスクトップアプリはmacOS、Windows、Linux向けに提供されています。Windowsでは、一部のファイルシステムやシェル機能がWSLの方が良好に動作するため、OpenCodeのドキュメントはWSLを推奨しています。
インストールにはモデルアクセスは含まれません。初回セッションでは、マルチモデルの項で触れたいずれかのアクセス方法が必要です。
インストール後の初回フローは短いです。プロバイダー接続と初期プロジェクト設定を行います。
- プロジェクトディレクトリ内で
opencodeを実行してTUIを起動します。 -
/connectを実行してモデルプロバイダーを追加します。直接のAPIキー、CopilotまたはChatGPTのログイン、OpenCode ZenまたはGoの接続などです。 -
/initを実行して前述のAGENTS.mdファイルを作成し、チームで共有すべき指示であればコミットします。 -
Tabで、上記のPlanモードとBuildモードを切り替えます。
以上が初期設定の流れです。プロバイダーと設定の詳細はOpenCodeのドキュメントをご参照ください。
OpenCodeは誰に向いているか?
OpenCodeが適するかは、好みのインターフェース、モデル構成、コントロールの度合いに依存します。上記の機能に基づくと、次のユーザーやチームに向いている可能性があります。
適している可能性がある人:
- 特定のモデルプロバイダーにロックインされず、コストや性能で切り替えたい開発者
- 規制やプライバシー要件が強く、コードをローカル基盤に留める必要があるチーム
- CLIワークフローや設定ファイルに慣れたターミナルファーストの開発者
- ツール自体を検証・フォーク・拡張したいオープンソースの貢献者
- 固定サブスクリプションではなく、トークン従量課金を好む開発者
適さない可能性がある人:
- セットアップがほとんど不要なマネージド製品を望む人
- 自律エージェントではなく、主にインラインのオートコンプリートを求める開発者
- Claudeのみを使う予定で、メータードAPIではなくサブスクリプション課金を好む人
- ターミナル操作を一切したくない人(ただしデスクトップアプリで多少緩和されます)
これらはワークフローの違いであり、コード品質の優劣ではありません。モデルや権限を細かく制御できる分、セットアップも増えます。
OpenCodeの今後
ロードマップは陳腐化が早いので、このセクションは削ろうかとも思いました。それでも、出荷済みの変更は開発の方向性を示します。
OpenCodeは最初の1年で800以上のバージョンをリリースしました。最近のリリースではデスクトップのタブや実験的なバックグラウンドエージェントが追加されました。リリース数は活発さを示しますが、安定性や将来機能の約束と受け取るべきではありません。
先述のZenとGoは、BYOKに加えて支払い手段を増やしました。MCP対応やサブエージェントも引き続き活発な領域です。同様の変化は他のコーディングツールでも進行中です。
次の機能やリリース日を確約する公開ロードマップはありません。将来のリリースに関する主張は不確実です。
まとめ
冒頭の「エージェントとモデルの分離」こそが要点です。プロバイダーの一覧は変わり、価格は動き、アクセス規約は変化し、サブスクリプションは消えることもありますが、モデルを変更してもOpenCode自体はそのまま使い続けられます。ただし、その分、セットアップや権限、課金の管理は必要になります。
私の見解はシンプルです。どれだけのコントロールを自分で管理したいかで選んでください。すべての開発者やチームに当てはまる単一の選択肢はありません。
関連リソースとして、Claude CodeチュートリアルとAI-Assisted Coding for Developersコースがあります。
FAQs
OpenCodeは本当に無料で使えますか?
前述のとおり、MITライセンスのソフトウェア自体は無料です。費用は選んだモデル経路に依存します。すなわち、プロバイダーのトークン、ZenまたはGo、もしくはローカルモデルに使うハードウェアです。
OpenCode内でClaudeモデルは使えますか?
はい、標準のAnthropic APIキーで利用できます。前述のとおり、個人向けのClaude ProおよびMaxサブスクリプションはOpenCode経由でルーティングできないため、その利用はAnthropicのAPI料金で課金されます。
OpenCodeはインターネット接続なしでも動作しますか?
はい。ローカルモデルの項で説明したように、OpenCodeはOllamaや他のOpenAI互換エンドポイント経由で接続できます。小さなローカルモデルは、大きなホスト型モデルよりツール呼び出しの誤りが増える場合があります。
アーカイブ済みのopencode-ai/opencodeリポジトリは同じプロジェクトですか?
いいえ。冒頭で述べたとおり、Goベースのあのプロジェクトは2025年9月にアーカイブされました。もう一つの見分け方は設定形式です。旧コマンドや.ymlファイルを使うガイドは現行プロジェクトには当てはまりません。
OpenCodeはソースコードのプライバシーをどう扱いますか?
ローカル利用の項で述べたとおり、ホスト型モデルへのリクエストはマシン外に送信されます。OpenCode自体がコードを保持することはありません。もう一つの例外は/shareコマンドで、これはユーザーが共有を解除するまでセッションを公開リンクにアップロードします。