Visual Studio Code 1.121
フォローはこちらから: LinkedIn, X, Bluesky
リリース日: 2026年5月20日
ダウンロード: Windows: x64 Arm64 | Mac: Universal Intel silicon | Linux: deb rpm tarball Arm snap
Visual Studio Code バージョン 1.121 のリリースへようこそ。このリリースでは、組み込みの Mermaid および HTML プレビューが追加され、エージェント向けのターミナルツールの動作が合理化され、リモートマシン上でエージェントセッションを実行できるようになりました。
-
リモートエージェント: 「エージェント」ウィンドウからリモートマシン上のエージェントセッションを監視および制御します。
-
モデルの構成可能性: コミットメッセージやタイトルの生成などの軽量なタスクをどのモデルが処理するかを構成します。
-
Mermaid 図プレビュー: Markdown プレビューやノートブックで Mermaid 図を直接レンダリングします。
-
HTML ファイルプレビュー: 拡張機能をインストールすることなく、統合ブラウザーでローカル HTML ファイルをプレビューします。
-
ターミナルツールの最適化: 出力圧縮の強化とバックグラウンドターミナルのクリーンアップにより、リソースとトークンの消費を削減します。
ハッピーコーディング!
エージェント
エージェントウィンドウ (プレビュー)
前回のリリースで VS Code Stable にプレビューとして導入された、エージェント駆動型のコンパニオンウィンドウである「エージェント」ウィンドウの改善を続けています。
「エージェント」ウィンドウは、VS Code タイトルバーの エージェントで開く ボタンを含む、いくつかの方法で開くことができます。詳細な動作と使用方法については、エージェントウィンドウのドキュメントを参照してください。
皆様からのフィードバックは、エージェント機能の形成において引き続き大きな助けとなっています。すでに使用してフィードバックを寄せてくださっている皆様、ありがとうございます!引き続き GitHub でのイシューの起票や、既存のイシューの閲覧をお願いいたします。
また、「エージェント」ウィンドウにおけるより広範な拡張機能の対応(拡張機能の有効化によって何が解放されるか、さまざまな拡張機能がこの環境でどのように動作すべきかなど)についても開発を続けています。プロジェクト間でエージェントを実行するメリットを活かした新しいシナリオを考案したい場合でも、既存の拡張機能が「エージェント」ウィンドウでどのように動作するかについてフィードバックを共有したい場合でも、GitHub のイシューを通じて皆様と協力していきたいと考えています。
リモートエージェント (プレビュー)
「エージェント」ウィンドウには、SSH または dev tunnel を介して接続できる自身のリモートマシン上でエージェントセッションを実行する実験的なサポートが含まれています。詳細については、ドキュメントの リモートエージェントセッション を参照してください。

リモートへの接続
「エージェント」ウィンドウをリモートマシンに接続する方法は 2 つあります
- SSH: 既存の
~/.ssh/configエントリから選択するか、user@hostを入力します。 - Dev Tunnels: 対象のマシンで
code tunnelを実行して作成済みのトンネルから選択します。
仕組み
この機能は VS Code のリモート開発拡張機能と似ていますが、同じではありません。「エージェント」ウィンドウはリモートに接続し、VS Code CLI をダウンロードしてインストールする(SSH)か、起動した dev tunnel を介して実行中の CLI サーバーに接続します。そして、Copilot SDK 上に構築された新しいエージェントループをホストする「エージェントホスト」と呼ばれる軽量なプロセスを起動します。
注意すべき重要な点は、リモートエージェントホストが長寿命のプロセスであることです。クライアントが切断されても実行中のセッションはリモート上で実行され続けるため、リモートエージェントが作業を続けている間にノート PC を閉じることができます。
エージェントホストプロトコル
「エージェント」ウィンドウとエージェントホスト間の接続は、Agent Host Protocol (AHP) と呼ばれる新しいオープンなプロトコルです。私たちはこれを独立した仕様としてオープンに開発しています。
AHP の重要な設計原則は、複数のクライアント間で同時にエージェントセッションを調整できるようにすることです。これが ACP などの他のプロトコルと異なる点です。エージェントホストは信頼できる状態を管理し、接続されているすべてのクライアントに同期し、純粋関数(reducers)を介してすべての変更を順序付けます。
AHP はオープンなプロトコルであるため、VS Code CLI のエージェントホストに接続するクライアントを構築することも、VS Code が接続できる AHP エージェントホストを構築することも誰でも可能です。
OpenTelemetry と Grafana によるエージェントのオブザーバビリティ
Azure Managed Grafana チームとの協力により、VS Code のエージェントが送信する OpenTelemetry シグナル用の事前構築された Azure Managed Grafana ダッシュボードが利用可能になりました。VS Code の送信先を Azure Application Insights に転送する OTel コレクターに指定し、Azure Managed Grafana ダッシュボードをインポートすることで、エージェントの操作、トークンの使用状況、チャットセッション、ツール呼び出し、モデルごとの応答時間、および最初のトークンまでの時間(TTFT)を可視化できます。
エンドツーエンドのセットアップについては Grafana を使用した AI コーディングエージェントの監視 を、VS Code からのエクスポートを有効にする方法については OpenTelemetry を使用したエージェント使用状況の監視 を参照してください。

Claude エージェントの自動(Auto)許可モード (プレビュー)
設定: github.copilot.chat.claudeAgent.allowAutoPermissions
Claude エージェントが、許可プロンプトなしで実行できる 自動(Auto)モード をサポートするようになりました。独立した分類器リクエストが実行前にアクションをレビューし、要求を超えてエスカレートするもの、認識されないインフラストラクチャを対象とするもの、または Claude が読み取った悪意のあるコンテンツによって引き起こされたと思われるものをブロックします。これは、バックグラウンドでの安全性チェックを維持しながら、プロンプトによる疲労を軽減したい、長時間実行されるタスクに役立ちます。

許可モードピッカーで自動(Auto)オプションを表示するには、 github.copilot.chat.claudeAgent.allowAutoPermissions を有効にします。
注: 安全性チェックなしで完全に監視なしでの実行(「YOLO モード」)を行いたい場合は、 github.copilot.chat.claudeAgent.allowDangerouslySkipPermissions を有効にして「すべての許可をバイパスする」を表示できるようにします。
言語モデル
このリリースには、VS Code での言語モデルの構成および管理方法に関するいくつかの改善が含まれており、VS Code 内のさまざまなタスクに使用するモデルをより細かく制御できるようになります。詳細については、ドキュメントの 言語モデル を参照してください。
ユーティリティモデルの構成
設定: chat.utilityModel , chat.utilitySmallModel
VS Code は、タイトル、要約、コミットメッセージ、名前変更の提案、プロンプトの分類、インテントの検出などのチャット関連タスクのために、バックグラウンドでユーティリティモデルを使用します。デフォルトでは、これらのタスクには GitHub Copilot が提供するユーティリティモデルが使用されます。
これらのフローに、独自のキー持ち込み (BYOK) モデルを含む、利用可能な独自のモデルを使用できます
- chat.utilityModel : 一般的なユーティリティフローに使用されるモデルを上書きします。
- chat.utilitySmallModel : 高速で軽量なユーティリティフローに使用されるモデルを上書きします。この設定には、高速で安価なモデルが推奨されます。
どちらの設定も、構成されていない場合は Default が使用され、GitHub Copilot が提供するユーティリティモデルが維持されます。
BYOK 用カスタムエンドポイントプロバイダー (Insiders)
新しい BYOK プロバイダーであるカスタムエンドポイントプロバイダーの提供を開始しました。これにより、単一の構成から Chat Completions、Responses、または Messages 互換のエンドポイントを Copilot Chat にプラグインできます。これは、Chat Completions のみをサポートし、現在は非推奨としてマークされている従来の OpenAI 互換 (customoai) プロバイダーを置き換えるものです。

このプロバイダーからモデルを追加する場合、モデルがどの API ファミリーに属しているか(chat-completions、responses、または messages)を選択できます。

注: カスタムエンドポイントプロバイダーは現在プレビュー中であり、VS Code Insiders でのみ利用可能です。
統合ブラウザ
統合ブラウザーで HTML ファイルをすばやく開く
以前は、HTML ファイルをプレビューするには拡張機能をインストールする必要があり、このような一般的な操作において不要な摩擦となっていました。今後は、エクスプローラーでファイルを右クリックするか、ファイルが既に開いている場合はエディタータブを右クリックして、統合ブラウザーで開く オプションを選択することで、ローカルの HTML ファイルを簡単に開くことができます。また、HTML ファイルがアクティブなときに、エディタータイトルバーの プレビュー アイコンを選択することもできます。

チャットへの要素追加体験の向上
より豊かな機能とテーマのサポートを可能にするため、要素選択 UI を刷新しました。
要素の範囲を選択する
クリックしてドラッグすることで要素の範囲を選択できるようになり、共有のコンテナー要素をターゲットにしやすくなりました。
コンテキストメニューから要素を添付する
ページ内の任意の場所を右クリックして、要素をチャットにすばやく添付できるようになりました。

ターミナル
エージェントを認識するターミナルコマンド
コマンドラインツールには、ターミナルコマンドが人間によって起動されたのか、VS Code のエージェントフローによって起動されたのかを識別する方法がなかったため、進行状況のアニメーション、対話型プロンプト、詳細な出力フォーマットがエージェントセッションをブロックしたり、混乱させたりすることがありました。
VS Code は、エージェントが開始したターミナルコマンドに対して VSCODE_AGENT 環境変数を設定するようになりました。CLI はこの変数を確認することで、マシンが読み取り可能な出力に切り替えたり、進行状況のアニメーションを非表示にしたり、セッションをブロックするようなプロンプトをスキップしたりできます。
CI や他のエージェント向けに動作をすでに調整しているスクリプトや CLI を管理している場合は、Copilot Chat から起動されるコマンドに対しても同じパターンを使用できます。
ターミナルツールのバックグラウンド実行インジケーター
以前は、ツール呼び出しが返された後もチャットターミナルコマンドが実行され続けている場合、チャット UI ではコマンドがすでに終了したように見え、作業がまだ進行中であることを把握するのが困難でした。
ターミナルがアクティブな間、ツールの呼び出しには バックグラウンドで <command> を実行中 - 表示 と表示されるようになりました。表示 アクションを使用すると、基になるターミナルを表示してフォーカスを合わせることができます。コマンドが終了すると、ヘッダーは通常の完了状態に戻ります。
これにより、特に非同期実行や、タイムアウト後にバックグラウンド実行に昇格したコマンドにおいて、コマンドがまだバックグラウンドで実行中であることが明確になります。
バックグラウンドエージェントターミナルのクリーンアップ
以前は、複数のターミナルコマンドを伴う長時間のチャットセッションにおいて、各コマンドが終了した後にバックグラウンドターミナルが累積し、古いエントリでターミナルリストが埋め尽くされ、リソースが消費されることがありました。
VS Code は、チャットエージェントによって作成されたバックグラウンドターミナルのコマンドが完了した際、チャット UI にコマンド出力を保持したまま、それらのターミナルを自動的に破棄するようになりました。表示 でバックグラウンドターミナルを表示した場合、それは開いたままになり、引き続き検査や対話を行うことができます。
これにより、ターミナルリストがクリーンに保たれ、複数ターンのセッションにおけるリソース使用量が削減されます。
ターミナルツール出力のより広範な圧縮
設定: chat.tools.compressOutput.enabled
pytest、jest、cargo test、tsc などのコマンドやパッケージのインストールワークフローは、重要な結果を表示する前に大量の進行状況出力を生成することが多く、トークンを無駄に消費し、モデルが関連情報を見つけるのを困難にしていました。
チャットターミナルツールは、モデルに送信する前に、より多くの種類の冗長なコマンド出力を圧縮するようになりました。拡張されたカバレッジには、一般的なテストランナー、ビルドツール、リンター、Docker コマンド、パッケージマネージャーが含まれており、重複する進行状況情報やその他の価値の低い出力がより頻繁にトリミングされます。
長いターミナルの実行は、モデルにとって解釈しやすくなり、ボイラープレート(定型)出力にトークンを消費する可能性が低くなります。
機密性の高いターミナルプロンプトはターミナル内に維持
ターミナルコマンドにおけるパスワード、パスフレーズ、PIN、または検証コードのプロンプトはリスクをもたらす可能性があります。エージェントがこれらのプロンプトを自身で処理しようとすると、誤って機密情報をキャプチャしたり再現したりする可能性があります。
チャットターミナルコマンドが機密性の高いプロンプトに達すると、VS Code はそれをインターセプトするようになりました。デフォルトの許可モードでは、チャットに確認ダイアログが表示され、ターミナルにフォーカスを合わせて機密情報を直接入力できるようになります。自動承認フローでは、VS Code はコマンドをキャンセルし、モデルに再試行や機密情報の要求を行わないよう指示します。
これにより、資格情報がチャットコンテキストに入り込むのを防ぎ、エージェントが誤って機密入力を公開したり再現したりするのを防ぎます。
エディター
「クイック提案(Quick suggestions)」のデフォルト設定の変更
Copilot のインライン提案は、常に提案コントロールの選択肢と連動します。これは非常に便利で、Tab キーを 2 回押すだけで、提案と Copilot からのゴーストテキストの両方をすばやく受け入れることができます。
しかし、入力を開始すると、多くの場合、提案コントロールがポップアップし、入力された文字で始まる最初の(アルファベット順の)利用可能なグローバルシンボルが選択されてしまうことが分かりました。これは実際に意図したテキストであることはほとんどなく、Copilot がその誤ったプレフィックスを元に提案を行うため、体験にノイズが増えてしまいます。
クイック提案( editor.quickSuggestions )のデフォルト設定を変更することに決定しました。インライン補完プロバイダー(Copilot など)が利用可能な場合、エディターでの文字入力によって提案コントロールが自動的にトリガーされることはなくなりました。その他のすべてのケースでは、提案コントロールは以前と同様にポップアップします。以下の設定を構成することで、以前の動作に戻すことができます。
"editor.quickSuggestions": {
"other": "on",
"comments": "off",
"strings": "off"
}
言語
Markdown プレビューおよびノートブックでの Mermaid 図
Matt Bierner 氏の Markdown Preview Mermaid Support 拡張機能を、新しい組み込み拡張機能 Mermaid Markdown Features として VS Code に統合しました。この拡張機能は、VS Code の組み込み Markdown プレビュー、ノートブックの Markdown セル、およびチャットに Mermaid 図 のレンダリング機能を追加します。
Mermaid 図は、Markdown 内で mermaid の フェンス付きコードブロック を使用して作成できます
```mermaid
flowchart LR
Sleep[Sleep] --> Wake{Awake?}
Wake -->|No| Sleep
Wake -->|Hungry| Snack[Get treat]
Wake -->|Not in in Sun?| Move[Move to sun]
Wake -->|Human is typing| Keyboard[Sleep on keyboard]
Snack --> Sleep
Move --> Sleep
Keyboard --> Sleep
```
Markdown プレビューでの図の表示例は以下の通りです

レンダリングされた Mermaid 図はパンとズームもサポートしているため、プレビューを離れることなく、より大きな図を簡単に確認できます。また、図を右クリックしてその Mermaid ソースをコピーすることもできます。
Markdown プレビューでの YAML フロントマター
設定: markdown.preview.frontMatter
Markdown プレビューで YAML フロントマター(front matter) がどのようにレンダリングされるかを制御するオプションを追加しました。デフォルトでは、VS Code はプリアンブルを非表示にするのではなく、フロントマターをプレビューの上部に表(テーブル)として表示します。

markdown.preview.frontMatter 設定を使用して、フロントマターの表示方法を選択できます
table(デフォルト): フロントマターを表としてレンダリングします。codeBlock: フロントマターを YAML コードブロックとしてレンダリングします。hide: プレビューからフロントマターを非表示にします。
レンダリングされたフロントマターには、プレビューからこの設定をすばやく開くためのコンテキストメニューエントリもあります。
非推奨の機能と設定
今リリースの新しい非推奨機能
今後の非推奨機能
ありがとうございます
イシュートラッキングへの貢献
- @gjsjohnmurray (John Murray)
- @RedCMD (RedCMD)
- @IllusionMH (Andrii Dieiev)
- @albertosantini (Alberto Santini)
vscodeへの貢献
- @ba-work (Brock Alberry): outputMonitor: エージェントループを一時停止させる2つの偽陽性ファミリーを修正 PR #315485
- @guomaggie: スニペットハイドレーションのエラー時に最終回答テキストを返す PR #316094
- @kevin-m-kent: 繰り返しのポーリングにおけるターミナル出力の差分を試行 PR #315543
- @NikolaRHristov (Nikola Hristov): 修正: テストヘルパーで relayCreationTimeoutMs の protected 修飾子を復元 PR #316049
- @SebTardif (Sebastien Tardif): リスナーリークの修正: onDidChangeConfiguration を onDidProgressStep コールバックの外部に移動 PR #314636
- @SimonSiefke (Simon Siefke): 修正: lifeCycleMainService におけるメモリリーク PR #315891
- @thernstig (Tobias Hernstig): 修正: typescript.tsdk.desc を新しい js/ts.tsdk.path に置き換え PR #315268
- @thirteenflt (yutingsun): VSC promptD を変更 PR #316733
- @yavanosta (Dmitry Guketlev): InlineCompletionsModel の appearedInsideViewport をリアクティブにする (#_289944) PR #289946
新機能をすぐに試していただくことに感謝しています。頻繁にチェックして、新機能について学んでください。
以前の VS Code バージョンのリリースノートを読むには、code.visualstudio.com の Updates にアクセスしてください。