コンテンツにスキップ

2025 年 7 月 (バージョン 1.103)

リリース日: 2025 年 8 月 7 日


Visual Studio Code の 2025 年 7 月リリースへようこそ。今月も多くの改善をお届けします。主なハイライトは次のとおりです。

MCP チャット 生産性
刷新したツールピッカー体験
さらに表示
VS Code で GPT‑5 を利用
さらに表示
Git worktree で複数ブランチを同時チェックアウト
さらに表示
1 回のエージェント要求で 128 個超のツールを可能に
さらに表示
チャットのチェックポイントで良好な状態へ戻す
さらに表示
専用ビューでコーディングエージェントセッションを管理
さらに表示


これらのリリースノートをオンラインで読みたい場合は、code.visualstudio.comUpdates をご覧ください。

Insiders: 新機能をいち早く試したいですか?
Nightly Insiders ビルドをダウンロードして、利用可能になり次第最新の更新をお試しください。
Download Insiders

チャット

GPT 5 の提供状況

本日より、GPT‑5 はすべての有料 GitHub Copilot プランに順次ロールアウトされます。GPT‑5 は OpenAI のこれまでで最も高性能なモデルで、推論・コーディング・チャットの各分野で新たな進歩をもたらします。GPT‑5 の提供状況の詳細は GitHub Changelog を参照してください。

Chat ビューを開き、モデルピッカーから GPT‑5 を選択すると、VS Code でチャット会話に利用できます。

VS Code での言語モデルの使い方 もご覧ください。

チャットのチェックポイント

設定: setting(chat.checkpoints.enabled)

チャット会話の異なる状態を復元できるチェックポイントを導入しました。編集を簡単に元に戻し、会話の特定の時点に戻れます。チャットセッションで複数ファイルが変更された場合に特に有用です。

チェックポイントを選択すると、その時点までのワークスペースの変更とチャット履歴を VS Code が復元します。チェックポイント復元後にやり直すこともできます。

チェックポイントは既定で有効で、setting(chat.checkpoints.enabled) で制御できます。

ツールピッカーの改善

今イテレーションではツールピッカーを全面刷新し、すべてのツールを表示する新コンポーネント Quick Tree を採用しました。

クイックツリーによる新しいツールピッカー。ノードの折りたたみ/展開が可能。

主な機能:

  • 展開 / 折りたたみ
  • 設定オプションをタイトルバーへ移動
  • スティッキースクロール
  • アイコン表示

ぜひご意見をお寄せください。

ツールのグループ化 (実験的)

設定: setting(github.copilot.chat.virtualTools.threshold)

1 回のチャット要求で利用できるツールの最大数は現在 128 です。以前は、ツール数の多い MCP サーバーを導入するとすぐにこの上限に達し、続行するにはいくつかのツールの選択を解除する必要がありました。

このリリースでは、ツール数が上限を超えた際に有効になる実験的なツール呼び出しモードを追加しました。ツールは自動的にグループ化され、モデルはツールグループを有効化して呼び出せるようになります。

この挙動 (しきい値を含む) は setting(github.copilot.chat.virtualTools.threshold) で設定できます。

ターミナル自動承認の改善

設定: setting(chat.tools.terminal.autoApprove)

先月導入したターミナル自動承認の設定を、今月は大幅に改善しました。詳細はドキュメントの ターミナル自動承認 を参照してください。

  • allowListdenyList の 2 つの設定を setting(chat.tools.terminal.autoApprove) に統合しました。旧設定を使用している場合は新設定への移行を促す警告が表示されます。
  • 正規表現マッチャーがフラグに対応しました。たとえば PowerShell では大文字/小文字を区別しないことが多いため、i フラグが有用です:
    "chat.tools.terminal.autoApprove": {
      // 大文字/小文字に関係なく、あらゆる `Remove-Item` コマンドを拒否
      "/^Remove-Item\\b/i": false
    }
    
  • サブコマンドのマッチング方法に関する混乱がありましたが、設定の説明に詳細を追加し、コマンドライン全体に対するマッチングもサポートしました。
    "chat.tools.terminal.autoApprove": {
      // PowerShell スクリプトらしき参照を含むあらゆる「コマンドライン」を拒否
      "/\\.ps1\\b/i": { "approve": false, "matchCommandLine": true }
    }
    
  • 自動承認の判断根拠を Terminal の出力チャネルに記録するようになりました。将来的に UI での表示も予定 しています。
  • 当面は、ユーザー設定またはリモート設定でのみ自動承認を許可します。今後のリリースでワークスペース設定でも利用可能にする予定です。

タスクリストで進捗を追跡 (実験的)

設定: setting(chat.todoListTool.enabled)

エージェントモードの利点は、高レベルのタスクを与えるだけで実装まで行えることです。しかし、作業計画を立てて細かなタスクへと分割していくと、個々のタスクの進捗を追うのが大変になることがあります。

そこで今月は、チャットにタスク/ToDo リスト機能を導入しました。完了済みと保留中のタスクが一目で分かります。タスクリストは常に Chat ビュー上部に表示され、進捗を把握できます。エージェントの進行に合わせてタスクリストは更新されます。

高レベルのタスクをエージェントに与え、ToDo リストで進捗を追跡するよう依頼してみてください。

この機能はまだ実験段階で、setting(chat.todoListTool.enabled) を有効にすると利用できます。

モデル管理体験の改善

今イテレーションでは、言語モデルへのアクセスを担うチャットプロバイダー API を刷新しました。ユーザーはモデルピッカーに表示するモデルを選択できるようになり、よりパーソナライズされた集中しやすい体験になります。

Copilot や OpenRouter などのプロバイダーのモデルを表示するモデルピッカーのスクリーンショット

今後数か月でこの新 API を安定化する予定です。フィードバックをお待ちしています。API の安定化により、拡張機能が独自のモデルプロバイダーを実装でき、BYOK (Bring Your Own Key) の選択肢もさらに広がります。

Azure DevOps リポジトリのリモートインデックス対応

#codebase ツール が、Azure DevOps のリポジトリにリンクされたワークスペース向けのリモートインデックスに対応しました。初期化なしで、関連スニペットをほぼ即時に検索できます。数万ファイル規模の大規模リポジトリでも機能します。以前は GitHub にリンクされたリポジトリのみで動作していました。

Git で Azure DevOps にリンクされたワークスペースでは自動的にリモートインデックスが使われます。Azure DevOps リポジトリへアクセスする Microsoft アカウントで VS Code にサインインしていることを確認してください。

この機能はサービス側で段階的にロールアウト中のため、当初は組織によっては利用できない場合があります。状況が良好であれば、できるだけ多くの組織で Azure DevOps のリモートインデックスを有効化する予定です。

ターミナル実行・タスクツールの信頼性と性能改善

ターミナル内でコマンドやタスクを実行するツールを、Copilot 拡張からコアの microsoft/vscode リポジトリ に移管しました。これにより、低レベルでリッチな API にアクセスでき、ターミナルがハングする問題の多くを修正できました。拡張 API の制約 (特に Chat ビュー内のカスタム UI が必要な変更) から解放され、将来の機能実装もしやすくなります。

チャット使用時のシェル統合未有効の警告

エージェントモードがシェル統合なしでもターミナルでコマンドを実行できるよう努めていますが、その場合ターミナルは事実上ブラックボックスになるため体験は劣化します。発生しうる問題としては、終了コードの取得不可や、コマンド待ちとプロンプト待ちの区別が付かないために出力がエージェントへ正しく報告されない、などが挙げられます。

run in terminal ツール使用時に シェル統合 が検出されない場合は、これを示しドキュメントへのリンクを提示するメッセージを表示します。

「コマンド検出を改善するためシェル統合を有効にしてください」と表示するメッセージのスクリーンショット。

タスクとターミナルの出力ポーリング

エージェントは、出力ポーリングを使ってタスクやバックグラウンドターミナルの完了を待つようになりました。プロセスが 20 秒を超える場合、引き続き待機するか、先へ進むかを確認します。最大 2 分間監視し、進行状況の要約や、まだ実行中である旨を報告します。これにより、チャットで長時間実行やエラーが起きやすいコマンドを扱う際の信頼性が向上します。

タスク認識の改善

これまではエージェントはアクティブなタスクのみ監視できましたが、失敗または完了したタスクを含む、アクティブ・完了の両方のタスク出力を追跡・分析できるようになりました。これにより、トラブルシューティングが容易になり、タスク実行履歴の把握がより包括的になります。

ユーザー作成ターミナルの認識

エージェントはワークスペース内のユーザー作成ターミナルをすべて把握するようになりました。これにより、最近のコマンドやターミナル出力を追跡でき、ターミナル支援やトラブルシューティングの文脈が向上します。

ターミナルのインラインチャットの改善

ターミナルのインラインチャットが、サブシェル (例: PowerShell や zsh から Python / Node を起動) 内で作業している場合でも、アクティブなシェルをより適切に検出するようになりました。この動的なシェル検出により、現在のシェルに合った、より関連性の高いコマンド提案が可能になります。

Node 向けの提案を示すターミナルインラインチャットのスクリーンショット。

テストランナーツールの改善

テストランナーツールを作り直しました。チャット内に進捗をインライン表示できるようになり、多数のバグを修正しました。

過去の要求を編集

設定: setting(chat.editRequests)

前イテレーションで、過去の要求を編集できる機能を有効化し、複数の導線を展開しました。今イテレーションでは、インライン編集を既定の動作にしました。要求のバブルをクリックすると編集を開始できます。添付の変更、モードやモデルの切り替え、テキストを修正して再送信が可能です。

ツールバーのホバーからの編集を好む場合は、setting(chat.editRequests) で編集方法を制御できます。

最大化でチャットを開く

設定: setting(workbench.secondarySideBar.defaultVisibility)

セカンダリサイドバーの既定の表示状態に、最大化して開く 2 つのオプションを追加しました。

  • maximizedInWorkspace: 新しいワークスペースを開くときに Chat ビューを最大化で開く
  • maximized: 空ウィンドウも含め、常に Chat ビューを最大化で開く

最大化された Chat ビューのスクリーンショット。

チャット実行中の終了確認

エージェントセッションがファイルを変更中または要求に応答中のワークスペースを誤って閉じてしまうのを防ぐため、チャットの応答が実行中に VS Code を終了またはウィンドウを閉じようとするとダイアログを表示します。

チャット実行中に終了を確認するダイアログのスクリーンショット。

ユーザー操作の OS 通知

設定: setting(chat.notifyWindowOnConfirmation)

チャットセッション内でユーザーの確認が必要な場合、OS のネイティブ通知でトーストを表示するようになりました。setting(chat.notifyWindowOnConfirmation) で有効化できます。

チャットエージェントの確認トーストのスクリーンショット。

将来的には、より多くの情報表示やトーストから直接承認できるよう改善する予定です。現時点では、トーストを選択すると確認が発生したウィンドウにフォーカスします。

チャットの数式サポート (プレビュー)

設定: setting(chat.math.enabled)

チャットの応答で数式のレンダリングを初期対応しました。

チャット応答でインライン/ブロック数式を表示するスクリーンショット。

この機能は KaTeX で動作し、インライン/ブロックの両方の数式をサポートします。インライン数式は $...$、ブロック数式は $$...$$ で囲みます。

数式レンダリングは setting(chat.math.enabled) で有効化できます。現在は既定で無効ですが、今後のテストを経て有効化する予定です。

プロジェクトのスキャフォールディングへの Context7 統合 (実験的)

設定: setting(github.copilot.chat.newWorkspace.useContext7)

チャットで #new によるプロジェクトのスキャフォールディングを行う際、Context7 MCP サーバーをインストール済みであれば、最新のドキュメントと API を Context7 から利用できるようになりました。

MCP

サーバーの自動起動と信頼

設定: setting(chat.mcp.autostart:newAndOutdated)

これまでは MCP サーバー設定の追加や更新後、Chat ビューに青い「更新」アイコンが表示され、手動でツール一覧の更新が必要でした。今月は MCP サーバーの自動起動を設定できるようになり、手動再起動が不要になりました。

setting(chat.mcp.autostart:newAndOutdated) で挙動を制御できます。アイコンのツールチップからも設定変更でき、起動対象のサーバーを確認できます。

自動起動の設定を行える更新アイコンのホバーのスクリーンショット。

サーバーの更新や変更後、最初の起動時にサーバーの信頼を求めるダイアログを表示します。特に自動起動を有効にしている場合、望ましくないコマンドの実行を避けるためにも信頼の付与は重要です。

VS Code での MCP サーバーの使い方は ドキュメント を参照してください。

リモート MCP サーバー向けクライアント資格情報フロー

リモート MCP サーバーが認証をサポートする理想的な方法は、Dynamic Client Registration (DCR) に対応した認証プロバイダーを使うことです。これによりクライアント (VS Code) がプロバイダーに自身を登録し、シームレスな認証フローが可能になります。

ただし、すべての認証プロバイダーが DCR に対応しているわけではありません。そこで、クライアント ID と (任意で) クライアントシークレットを指定して認証フローを進められるクライアント資格情報フローを導入しました。流れは次のとおりです。

  • 手順 1: VS Code が DCR を使用できないことを検出し、クライアント資格情報フローを実行するかを確認します。

    DCR はサポートされないが手動でクライアント資格情報を提供できることを示すモーダルのスクリーンショット。

    重要: この時点で、認証プロバイダーのサイトにアクセスし、アプリケーション登録を手動で作成します。モーダルに記載のリダイレクト URI を登録します。

  • 手順 2: 認証プロバイダーのポータルからクライアント ID (と必要に応じてクライアントシークレット) を取得します。入力ボックスにクライアント ID を入力して kbstyle(Enter) を押下します。

    MCP サーバーのクライアント ID の入力ボックス。

  • 手順 3: クライアントシークレットがある場合は続けて入力し、kbstyle(Enter) を押下します (ない場合は空のまま)。

    MCP サーバーの任意のクライアントシークレットの入力ボックス。

    その後、通常の認証フローに遷移し、使用中の MCP サーバーを認証します。

アカウントメニューの動的認証プロバイダー削除

リモート MCP 認証の追加以降、コマンドパレットには Authentication: Remove Dynamic Authentication Providers コマンドがあり、クライアント資格情報 (クライアント ID と必要に応じてクライアントシークレット) と、そのプロバイダーに関連付けられたアカウント情報を削除できます。

このコマンドをアカウントメニューにも表示しました。MCP サーバーアカウント内にあります。

アカウントメニュー内の MCP サーバーアカウントに表示される管理オプションのスクリーンショット。

MCP サーバーアカウントがまだない場合は、メニューのルートに表示されます。

アカウントメニュールートに表示される管理オプションのスクリーンショット。

VS Code は最新の MCP 仕様 2025-06-18 を完全サポートし、ツール結果の resource_link と構造化出力に対応しました。

アクセシビリティ

チャットの促しをアクセシブルに

エージェントがユーザー入力を促す (プロセスの待機継続など) 際、プロンプトがスクリーンリーダーで利用できるようになりました。プロンプトの出現を通知し、キーボードで移動でき、アクセシブルビューでメッセージを確認できます。

チャット編集時にファイルを開く挙動を制御

新しい設定 setting(accessibility.openChatEditedFiles) により、エージェントがチャットでファイルを編集する際に自動でエディターへ開くかを選択できるようになりました。どのファイルをエディターに表示するかをより細かく制御できます。

全編集/前回編集の表示コマンド

エディター全体で View All EditsView Previous Edits コマンドが利用可能になりました。エージェントによる変更を簡単に確認できます。setting(accessibility.openChatEditedFiles) を無効にしている場合にも、各ファイルを開かずに編集を追跡するのに役立ちます。

プライマリ/セカンダリサイドバーの表示/非表示が変更された際、ARIA のアナウンスで通知するようになりました。これにより、スクリーンリーダー利用者もサイドバーの可視性の変化を把握できます。

Playwright によるアクセシビリティテスト

エディターの自動アクセシビリティテストを Playwright で追加しました。Visual Studio Code がアクセシビリティ標準とベストプラクティスに継続的に準拠していることを検証し、すべてのユーザーにより良い体験を提供します。

エディター体験

設定検索のサジェスト

設定エディターの検索ボックスのスパークルで示される AI 検索結果のトグルを、すべてのユーザーに展開しました。AI 検索の結果が読み込まれ利用可能になるとトグルが有効になります。トグルを押すと AI / 非 AI の検索結果を切り替えます。

AI 設定検索結果は文字列の一致ではなく、意味的な類似性に基づきます。たとえば「文字サイズを大きくする」と検索すると、editor.fontSize が AI 設定検索結果に表示されます。

「increase text size」で editor.fontSize を示す設定エディターの AI 結果のスクリーンショット。

エディタータブのコンテキストメニュー

エディタータブのコンテキストメニューを整理し、分割と移動に関連するオプションをサブメニューにまとめました。

“Split and Move” サブメニューのスクリーンショット。

AI 統計 (プレビュー)

設定: setting(editor.aiStats.enabled:true)

基本的な AI 統計を表示する実験的機能を追加しました。既定では無効で、setting(editor.aiStats.enabled:true) で有効化できます。

プロジェクトごとに、AI によって挿入された文字の割合と手入力の割合を表示します。加えて、その日の間に受け入れたインライン/次の編集候補の数も追跡します。

ステータスバーの AI 統計ホバー情報のスクリーンショット。

ノートブック

ノートブックのインラインチャットにエージェントツール

設定: setting(inlineChat.notebookAgent:true)

ノートブックのインラインチャットコントロールが、セルの実行やカーネルへのパッケージインストールなどの追加機能を可能にする、ノートブックエージェントツール一式を利用できるようになりました。

ノートブックでエージェントツールを有効にするには、新しい実験的設定 setting(inlineChat.notebookAgent:true) を有効にします。現在はインラインチャット v2 の設定 setting(inlineChat.enableV2:true) も有効にする必要があります。

uv で作成した仮想環境に依存関係をインストール

uv で作成した仮想環境で Jupyter Notebook を実行する際に、必要な依存関係のインストールをサポートしました。

ソース管理

Git worktree サポート

設定: setting(git.detectWorktrees)

長年の 要望 に応え、Git worktree をサポートしました。Worktree により、複数のブランチを同時にチェックアウトでき、コンテキストを切り替えずに変更のテストや並行作業が容易になります。

Git リポジトリを含むフォルダーやワークスペースを開くと、worktree を自動検出し、ソース管理のリポジトリビューに表示します。コマンドパレットやリポジトリビューから、worktree の表示・作成・削除・新規/現在のウィンドウでのオープンが可能です。setting(git.detectWorktrees) の切り替えで無効化できます。

ソース管理ビューで worktree を作成するコマンドのスクリーンショット。

ソース管理ビューで worktree を開く/削除するコマンドのスクリーンショット。

リポジトリビュー

ソース管理のリポジトリビューには、現在のフォルダー/ワークスペースで検出されたすべてのソース管理プロバイダーが表示されます。今月は、リポジトリ・サブモジュール・worktree を視覚的に区別できるようレンダリングを更新し、親子関係も表示するようにしました。

2 つのリポジトリと、そのうち 1 つに関連する worktree を示すリポジトリビューのスクリーンショット。

ターミナル

ターミナルのサジェストでドキュメントを表示

言語サーバー (LSP) によるターミナルのサジェストに、エディター同様のインラインドキュメントが表示されるようになりました。まずは Python REPL から、入力中のコマンドに関する説明や使用例が得られます。

ターミナルで LSP のサジェストを有効にするには、次の設定が必要です。

  • setting(python.terminal.shellIntegration.enabled:true)
  • setting(python.analysis.supportAllPythonDocuments:true)

音声ディクテーション

ターミナルで自然言語入力がサポートされたこと (Gemini や Claude の拡張を含む) を受け、ターミナルでの音声ディクテーションを再導入しました。Terminal: Start Dictation in Terminal / Terminal: Stop Dictation in Terminal コマンドで開始/停止できます。

シェル統合の診断を改善

シェル統合 は、統合ターミナルの多くの機能 (例: スティッキースクロールクイック修正エージェントモード によるターミナル内部の把握) の基盤です。

今リリースでは、ターミナルをホバーして Show Details を選択したときの診断が改善されました。検出したシェルの種類と現在の作業ディレクトリが表示されます。

pwsh などのシェル種別と現在の作業ディレクトリを示す詳細ホバーのスクリーンショット。

これらのリッチ機能が期待通りに動作しない場合、最初に確認する場所の 1 つです。

言語

Python

Python 3.13 以降のシェル統合サポート

Python 3.13 以降でシェル統合をサポートしました。有効化すると互換性のため PyREPL は自動的に無効化されます。PyREPL を使い続けたい場合はシェル統合を無効にできます。

設定エディターでの Python シェル統合設定のスクリーンショット。

Python Environments 拡張の改善

Python Environments 拡張機能 は、安定版ユーザーへの段階的ロールアウトの一環として、バグ修正と改善を継続しています。ロールアウト期間中にこの拡張を利用するには、拡張をインストールし、VS Code の settings.json"python.useEnvironmentsExtension": true を追加してください。

TypeScript 5.9

VS Code には TypeScript 5.9.2 が同梱されます。このメジャーアップデートには、import defer のサポート などの言語改善に加え、多くの DOM API のドキュメント改善 などのツール改善が含まれます。

詳細は TypeScript 5.9 のリリースブログ をご覧ください。

JavaScript / TypeScript の展開可能なホバー

JavaScript / TypeScript のシンボルにホバーすると、VS Code はそのシンボルの最も有用な IntelliSense の型情報を表示しようとします。型は非常に複雑になり得るため、有用な詳細を十分に示しつつ情報過多にならないバランスは難題でした。用途によって求める詳細度も変わります。

そこで今イテレーションでは、ホバーの表示をより細かく制御できる新しい UI を追加しました。ホバー時に左側の小さな + アイコンを選ぶと、インターフェイスや複合型を構成要素へ展開できます。例えばインターフェイスのプロパティをホバー内で直接確認できます。

ホバーは複数回展開でき、前回の展開から再帰的に型を展開します。展開しすぎた場合は - アイコンで 1 段階戻せます。すべての型が展開可能というわけではなく、展開の上限もあります。期待通りに動作しないケースがあれば お知らせください

拡張機能への貢献

GitHub Pull Requests

GitHub Pull Requests 拡張の進捗がさらにありました。プルリクエストや課題の作成・管理・作業が可能です。

拡張のリリースに含まれる変更点は、0.116.0 の変更ログ を参照してください。

プルリクエストヘッダーの整理

プルリクエスト詳細のヘッダーにあるボタンバーを簡素化しました。コピー系の操作は、PR リンクの右クリックコンテキストメニューに移しました。

簡素化された PR ヘッダーのスクリーンショット。

チャットにコーディングエージェントの PR を表示

設定: setting(githubPullRequests.codingAgent.uiIntegration)

#copilotCodingAgentDelegate to coding agent アクションでコーディングエージェントセッションを開始すると、プルリクエストが Chat ビュー内のカードとして表示されます。

Chat ビュー内のコーディングエージェント PR カードのスクリーンショット。

リポジトリがエージェントに対応している場合、Chat ビューに新しい Delegate to coding agent ボタンを表示するには、setting(githubPullRequests.codingAgent.uiIntegration) を有効にします。

チャットセッション (実験的)

コーディングエージェントのチャット

前イテレーションの Copilot コーディングエージェント統合 を基に、専用のチャットエディターからコーディングエージェントセッションを管理できるようになりました。進捗の確認、追加入力の提供、応答の確認を 1 つのエディターで行えます。

  • VS Code から #copilotCodingAgent ツールまたは UI 操作 でコーディングエージェントセッションを開始。

  • 連携したチャットエディターでコーディングエージェントの進捗を追跡。

    Coding Agent の進捗を示すスクリーンショット。

  • チャットから直接フォローアップを指示。

    チャットからフォローアップを指示するスクリーンショット。

チャットセッションビュー

設定: setting(chat.agentSessionsViewLocation)

実験的機能を試すには setting(chat.agentSessionsViewLocation) を設定します。

  • view に設定すると、VS Code のサイドバーに新しい Chat Sessions ビューが表示されます。ローカルのチャットセッションやコーディングエージェントセッションを管理・操作できます。

    Coding Agent Sessions ビューのスクリーンショット。

  • showChatsMenu に設定すると、ローカルのチャット履歴と並んでコーディングエージェントのチャットセッションが表示されます。

    Coding Agent Sessions のクイックピックのスクリーンショット。

この統合には最新の GitHub Pull Request 拡張と、Copilot コーディングエージェントに対応したリポジトリが必要です。詳細は VS Code でコーディングエージェントを使う方法 を参照してください。

テーマ: Sharp Solarized ( vscode.dev でプレビュー)

拡張機能の作成

ターミナルのアクティベーションイベント

拡張機能向けに 2 つの新しいアクティベーションイベントを追加しました。

  • onTerminal: いずれかのターミナルが開かれたときに発火します。
  • onTerminalShellIntegration: ターミナルでリッチなシェル統合が有効化されたときに発火します。

特定のシェルを対象にするには shellType を指定できます。例えば、onTerminalShellIntegration:bash は Bash ターミナルでシェル統合が有効化されたときに発火します。

提案 API

チャット応答にカスタム WebView をレンダリング

Chat Output Renderer API により、拡張機能はチャット応答をテキストや画像の範囲を超えて拡張できます。webview を使って、チャット出力に任意の HTML を描画できます。例として、カスタム可視化・インラインプレビュー・インタラクティブなコントロールなどが挙げられます。

Chat Output Renderer の拡張サンプル では、この API を使ってチャット応答に Mermaid 図 を描画する方法を示しています。以下はサンプルの実行例です。

チャット応答に表示された Mermaid 図のスクリーンショット。

重要なのは VS Code が Mermaid 図をレンダリングできることではなく、このレンダリングが拡張機能だけで提供できる点です。これにより、チャット内のカスタム出力を反復的に改善できます。

最初の図の変更版を生成するようチャットへ依頼するスクリーンショット。

API の仕組みは次のとおりです。

  1. レスポンスの一部としてカスタムデータを返せる言語モデルツールを登録します。データの識別には MIME タイプを使います。
  2. その MIME タイプ用のチャット出力レンダラーを登録します。
  3. 言語モデルがツールを呼び出したら、チャット出力レンダラーで WebView に描画します。

API の一連の流れは、拡張サンプル を参照してください。

この API は非常に強力で、新しいチャット体験を実現できる可能性があります。ぜひ試してフィードバックをお寄せください。

チャットセッションプロバイダー API

新しい Chat Session Provider API の提案により、拡張機能は VS Code のネイティブチャット UI に自身のチャットバックエンドを統合できます。これを使うと、新しいチャットセッションを開き、その履歴を投入し、新しいユーザー入力に応答できます。

この API はまだ初期段階で変更の可能性があります。ただし、すでに新しい GitHub コーディングエージェントセッションフロー を駆動しており、GitHub からチャットを読み込み、GitHub が完全に制御するエージェントと会話できます。

タスク実行ターミナル

拡張機能の作者は、実行中のタスクに関連付けられたターミナルへ taskExecution.terminal プロパティでアクセスできるようになりました。これにより、特定のタスクに紐づくターミナルの特定や、プログラムからの操作が容易になります。

SecretStorage keys() API

SecretStorage に拡張機能が保存したキーの一覧を取得したい場合、新しい提案 API keys() で取得できます。

export async function activate(context: ExtensionContext) {
    await context.secrets.store('mySecret', 'superSecretValue');
    await context.secrets.store('mySecret2', 'superSecretValue2');
    const keys = await context.secrets.keys();
    console.log('All secret keys:', keys); // returns ['mySecret', 'mySecret2']
}

注意: この変更は Secret Storage の代替実装を提供するプラットフォームの変更に依存します。特に https://vscode.dev は新 API を採用済みで、https://github.dev も間もなく採用予定です。未対応の環境では、この API は例外をスローします。

エンジニアリング

packages.microsoft.com のキー更新

packages.microsoft.com の署名キーを更新しました。これにより、新しいディストリビューションの Linux ユーザーは VS Code のインストール時にキー関連の警告やエラーが表示されなくなるはずです。Debian 系ディストリビューションは自動で新しいキーを受け取りますが、その他のディストリビューションでは旧キーの削除と 新キーの取り込み が必要な場合があります。

Electron 37 への更新

今月は Electron 37 の更新を Stable リリースのユーザーへ昇格展開します。この更新には Chromium 138.0.7204.100 と Node.js 22.17.0 が含まれます。Insiders ビルドでセルフホストし、早期のフィードバックを提供してくださった皆さまに感謝します。

注目すべき修正

  • vscode#252384 - VS Code のフォーカスが外れると Agent Mode が一時停止する

謝辞

最後になりましたが、VS Code のコントリビューターの皆さまに心より 感謝 いたします。

課題トラッキング

課題トラッキングへの貢献:

プルリクエスト

vscode への貢献:

vscode-codicons への貢献:

vscode-copilot-chat への貢献:

vscode-eslint への貢献:

vscode-js-debug への貢献:

  • @pilaoda (pilaoda)
    • ウォッチパネルのカスタム文字列表現を修正 #2252 PR #2253
    • すべての変数がスコープに定義されるまで Local Variables パネルの toString が機能しない問題を修正 #2254 PR #2255

vscode-json-languageservice への貢献:

vscode-vsce への貢献:

debug-adapter-protocol への貢献:

language-server-protocol への貢献:

python-environment-tools への貢献: