OpenCode 2.0 將終端機、Web 與桌面工作階段共用設為預設,並支援背景執行
OpenCode 2.0、ターミナル・Web・デスクトップでセッション共有をデフォルトに ——レビューやテストをバックグラウンドで実行
Anomaly 於2026年10月12日在官方網誌介紹 OpenCode 2.0,將終端機、Web 和桌面應用程式共用同一對話工作階段設為預設。MCP 工具預設透過 Code Mode 執行,子代理及 shell 指令亦可在背景處理,讓用戶在審查、測試或建置尚未完成時繼續其他工作。從 V1 升級時,外掛及呼叫伺服器 API 的外部程式需要改寫;V2 目前不支援 LSP。
Anomalyは2026年10月12日、オープンソースのAIコーディングエージェント「OpenCode 2.0」の主な変更点を公式ブログで紹介した。2.0では、ターミナル、Web、デスクトップアプリから同じ会話セッションを使う構成をデフォルトにした。外部ツールの呼び出しなど、複数の処理をJavaScriptにまとめて実行するCode Modeも備える。また、レビューやテストをバックグラウンドで実行し、完了を待たずに別の作業を進められる。
CLIを1.xから2.0へ更新する場合は、まず最新の1.xへ更新し、opencode upgrade --majorを実行する。デスクトップアプリはダウンロードページから入手できる。
ターミナル・Web・デスクトップアプリから同じセッションを使う
OpenCodeは、ターミナル上の対話型UIに加え、ブラウザーで使うWeb UIやデスクトップアプリからも利用できる。1.xでも、起動済みのサーバーに接続して同じセッションを使うことはできていた。2.0では利用者のコンピューター上で共通のバックグラウンドサービスを自動的に起動し、各UIがそこへ接続する構成をデフォルトにした。
CLIドキュメントによると、このサービスはコンピューターのユーザーアカウントごとに動き、会話セッション、設定、外部連携、権限、ツールの実行を管理する。このため、ターミナルからWeb UIへ切り替える場合も、同じセッションを扱える。共有サービスを使わずに専用のサーバーで動かす--standaloneや、接続先のサーバーを指定する--serverも用意されている。
MCPツールはCode Mode経由の実行がデフォルトに
Code Modeは、エージェントがJavaScriptを書き、利用可能なツールを組み合わせて実行する仕組み。1.xにも実験機能として存在したが、2.0では、外部ツールを提供するMCPサーバーのツールを呼び出す際にデフォルトで使う方式になった。
公式ブログでは、GitHubのバグ報告を取得し、Linearに課題として登録する例を示している。エージェントが一連の処理をJavaScriptで書き、OpenCodeのexecuteツールがそのコードを実行する。処理を一つのスクリプトにまとめることで、ツールを呼び出すたびにモデルへ結果を返し、次の呼び出しを判断させるやり取りを減らせるようになる。
別のツールの結果を待つ必要がない処理は、並列に実行できる。また、途中で得たデータをスクリプト内で加工し、必要な結果だけをモデルに返すこともできる。ブログは、多数のツールを接続した場合に、モデルへ渡すツールの説明などの情報量を抑えられる点も挙げている。
OpenCodeは、JavaScriptの実行に@opencode/codemodeパッケージを使う。このパッケージは、OpenCodeの接続先に設定したMCPサーバーのツールや、OpenAPIで定義されたAPIを、スクリプトから呼び出せる関数として扱う。
MCPサーバーは、利用者のコンピューター上で起動するものも、ネットワーク越しに利用するものも指定できる。サーバーごとにcodemode: falseを設定すれば、モデルが各ツールを直接呼び出す方式も選べる。
なお、スクリプトはファイルの読み書きやネットワーク通信を直接行えず、登録されたツールを通じて操作する。execute自体の利用権限に加え、スクリプトから呼び出すツールにも、それぞれの権限設定が適用される。
サブエージェントやコマンドをバックグラウンドで実行
利用者とやり取りする主エージェントは、別のエージェント(サブエージェント)に作業を任せ、完了を待たずに作業を続けられる。このバックグラウンド実行は、1.xでは実験用設定を有効にして使う機能だったが、2.0ではその設定が不要になった。
たとえば、サブエージェントがコードレビューを進める間に、主エージェントが別の編集を進められる。利用者が主エージェントとは異なるモデルを指定して、サブエージェントへ作業を依頼することもできる。
2.0ではシェルコマンドのバックグラウンド実行にも対応し、時間のかかるテストやビルドの完了を待たずに、ほかの作業を進められる。
サブエージェントやコマンドの処理に時間がかかる場合は、利用者がショートカットキーで処理をバックグラウンドへ移し、次の指示を入力できる。どちらも処理が終わると、作業を依頼したセッションに通知が届く。
APIの再設計とSDKの提供、ターミナルUIの拡張
2.0では、OpenCodeを操作するためのサーバーAPIも再設計した。エージェント自身がこのAPIを呼び出し、新しい作業用にGitのワークツリー(独立した作業ディレクトリ)を作り、現在のセッションをそこへ移せる。
OpenCodeを自作のアプリから利用するためのライブラリも提供する。@opencode/clientはOpenCodeのサーバーへ接続し、JavaScriptやTypeScriptからセッションを作成したり、プロンプトを送ったりできる。Node.jsアプリ向けの@opencode/client/serviceには、利用者のコンピューター上のOpenCodeサービスを見つけ、必要なら起動するAPIもある。
OpenCode自体をアプリに組み込んで動かす場合は、@opencode/sdkを使う。OpenCodeのサーバーをアプリ内で動かし、ネットワークを介さずにAPIを呼び出せる。
ターミナルUIを拡張するプラグインも実験段階から安定版へ移った。CLIプラグインでは、コマンドや画面の表示、通知などを追加できる。プラグインの変更はOpenCodeを再起動せずに反映できるため、セッション中でもOpenCodeにプラグインを作らせ、その場で使える。
V1からの移行では互換性に注意、LSP機能は現在非対応
移行ガイドによると、V1のプラグインと、サーバーAPIを呼び出す外部プログラムはV2向けの書き換えが必要になる。V2が対応する既存設定、エージェント定義、スキルなどは引き続き使えるが、ターミナルUIの設定は全プロジェクト共通のファイルへ集約される[1]。
またV2は現在、開発ツールと言語サーバーを連携させるLSP(Language Server Protocol)の機能に対応していない[2]。同ガイドは、LSPを使う処理を、lint(コードの静的検査)や型チェック、コンパイラーのコマンドに置き換えるよう案内している。
來源:gihyo.jp · gihyo.jp