VS Codeのエージェントモードを拡張するには、を試してください!

2025年6月 (バージョン 1.102)

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

ダウンロード: Windows: x64 Arm64 | Mac: Universal Intel silicon | Linux: deb rpm tarball Arm snap


Visual Studio Code 2025年6月版へようこそ。今回のバージョンには、皆さまに気に入っていただける多くの更新が含まれています。主なハイライトは次のとおりです。

  • チャット

    • オープンソース化されたGitHub Copilot Chat拡張機能を探索し、貢献できます (ブログ投稿を読む)。
    • プロジェクトの慣習を反映したカスタム指示を生成 (詳細を表示)。
    • カスタムモードを使用して、計画や調査などのタスクに合わせてチャットを調整 (詳細を表示)。
    • 選択したターミナルコマンドを自動承認 (詳細を表示)。
    • 以前のチャットリクエストを編集して再送信 (詳細を表示)。
  • MCP

    • VS CodeでのMCPサポートが一般提供開始 (詳細を表示)。
    • MCPビューとギャラリーを使用してMCPサーバーを簡単にインストールおよび管理 (詳細を表示)。
    • プロファイルと設定同期におけるMCPサーバーのファーストクラスリソース化 (詳細を表示)。
  • エディターエクスペリエンス

    • Copilot コーディングエージェントにタスクを委任し、バックグラウンドで処理させる (詳細を表示)。
    • ミドルクリックでエディターをスクロール (詳細を表示)。

これらのリリースノートをオンラインで読むには、code.visualstudio.com更新ページにアクセスしてください。Insiders: 新機能をいち早く試したいですか?毎晩のInsidersビルドをダウンロードして、利用可能になり次第、最新の更新を試すことができます。

チャット

Copilot Chatがオープンソース化

GitHub Copilot Chat拡張機能をオープンソース化したことをお知らせします!ソースコードは現在、MITライセンスの下でmicrosoft/vscode-copilot-chatで利用可能です。

これは、透明性とコミュニティとの協業への私たちのコミットメントにおける重要なマイルストーンとなります。拡張機能をオープンソース化することで、コミュニティは以下のことを可能になります。

  • VS CodeにおけるAI駆動型チャットエクスペリエンスの開発に直接貢献する
  • チャットモード、カスタム指示、AI統合の実装を理解する
  • 私たちの作業を基盤として、さらに優れたAI開発者ツールを作成する
  • AI支援型コーディングの未来を形作ることに参加する

リポジトリを探索して、エージェントモードインラインチャットMCP統合などの機能がどのように実装されているかを確認できます。コミュニティからの貢献、フィードバック、コラボレーションを歓迎します。

このマイルストーンとオープンソースAIエディターツールのより広範なビジョンについて詳しく知るには、詳細なブログ投稿「オープンソースAIエディター - 最初のマイルストーン」をお読みください。

チャットモードの改善

前回のマイルストーンでは、カスタムチャットモードをプレビューしました。組み込みのチャットモードである「Ask」、「Edit」、「Agent」に加えて、特定の指示と、リクエストへの返信時にLLMに従わせたいツールのセットを持つ独自のチャットモードを定義できます。

今回のマイルストーンでは、この分野でいくつかの改善とバグ修正を行いました。

言語モデルの構成

多くの要望に応え、チャットモードで使用する言語モデルを指定できるようになりました。chatmode.mdファイルにmodelメタデータプロパティを追加し、モデル識別子を指定してください (モデル情報についてはIntelliSenseが提供されます)。

Screenshot that shows the IntelliSense for the model metadata property in chat mode file.

編集サポートの改善

チャットモードプロンプト、および指示ファイルのエディターが、すべてのサポートされているメタデータプロパティの補完、検証、ホバーをサポートするようになりました。

Screenshot that shows the hover information for tools.

Screenshot that shows the model diagnostics when a model is not available for a specific chat mode.

チャットビューのギアメニュー

チャットビューのツールバーにあるチャットの構成アクションを使用すると、カスタムモードだけでなく、再利用可能な指示、プロンプト、ツールセットを管理できます。

Screenshot that shows the Configure Chat menu in the Chat view.

モードを選択すると、現在インストールされているすべてのカスタムモードが表示され、モードを開いたり、新規作成したり、削除したりできます。

gistのような外部リンクからチャットモードファイルをインポートできるようになりました。たとえば、次のリンクはBurkeのGPT 4.1 Beast Modeのチャットモードファイルをインポートします。

GPT 4.1 Beast Mode (VS Code)

これにより、保存先フォルダーとモード名の入力を求められ、リンク内のURLからモードファイルがインポートされます。同様のメカニズムは、プロンプトファイルと指示ファイルでも利用できます。

カスタム指示の生成

プロジェクトのカスタム指示を設定すると、コーディング標準やプロジェクトの慣習に関するコンテキストを提供することで、AIの提案を大幅に改善できます。しかし、ゼロから効果的な指示を作成するのは難しい場合があります。

今回のマイルストーンでは、ワークスペースのカスタム指示をブートストラップするのに役立つチャット: 指示を生成コマンドを導入します。このコマンドをコマンドパレットまたはチャットビューの構成メニューから実行すると、エージェントモードがコードベースを分析し、プロジェクトの構造、テクノロジー、パターンを反映したカスタマイズされた指示を生成します。

このコマンドは、.githubフォルダーにcopilot-instructions.mdファイルを作成するか、既存の指示ファイルへの改善を提案します。その後、生成された指示を確認し、チームの特定のニーズに合わせてカスタマイズできます。

指示によるAI応答のカスタマイズについて詳しくはこちら。

指示ファイルのオンデマンド読み込み

指示ファイルは、コーディングプラクティスやプロジェクト要件を記述するために使用できます。指示は、チャットリクエストのコンテキストとして手動または自動で含めることができます。

さまざまなメカニズムがサポートされています。詳細については、ドキュメントのカスタム指示セクションを参照してください。

条件付きで含めたい大規模な指示については、applyToヘッダーで定義されたグロブパターンと組み合わせて.instructions.mdファイルを使用できます。グロブパターンがチャットのコンテキスト内の1つ以上のファイルに一致すると、ファイルは自動的に追加されます。

今回のリリースで新たに、大規模言語モデルが指示をオンデマンドで読み込めるようになりました。各リクエストには、すべての指示ファイルのリストと、グロブパターンおよび説明が提供されます。この例では、LLMはコンテキストに明示的に追加されたTypeScriptファイルの指示を持っていません。そのため、TypeScriptファイルを作成する前にコードスタイルルールを探します。

Screenshot showing loading instruction files on demand.

以前のリクエストを編集 (実験的)

以前のリクエストをクリックして、テキストコンテンツ、添付コンテキスト、モード、モデルを変更できるようになりました。この変更を送信すると、それ以降のリクエストはすべて削除され、行われた編集は元に戻され、新しいリクエストがチャットで送信されます。

リクエスト編集のさまざまなエントリポイントは段階的に展開され、これにより優先的な編集および元に戻すフローに関するフィードバックを収集するのに役立ちます。ただし、ユーザーは実験的なchat.editRequests設定で優先モードを設定できます。

  • chat.editRequests.inline: リクエストにホバーしてテキストを選択すると、リクエストとインラインで編集を開始します。
  • chat.editRequests.hover: リクエストにホバーすると、リクエストとインラインで編集を開始するボタンが付いたツールバーが表示されます。
  • chat.editRequests.input: リクエストにホバーするとツールバーが表示され、チャットの下部にある入力ボックスで編集を開始します。

ターミナルの自動承認 (実験的)

エージェントモードに、ターミナルでのコマンドを自動承認するメカニズムが追加されました。デフォルトを使用したデモはこちらです。

現在、許可リストと拒否リストの2つの設定があります。許可リストは、一致すると明示的な承認なしにコマンドを実行できるコマンドのプレフィックスまたは正規表現のリストです。たとえば、次の設定では、npm run testで始まる任意のコマンド、および厳密にgit statusまたはgit logが実行可能になります。

"github.copilot.chat.agent.terminal.allowList": {
  "npm run test": true,
  "/^git (status|log)$/": true
}

これらの設定は、設定スコープ間でマージされるため、ユーザー承認済みコマンドのセットと、ワークスペース固有の承認済みコマンドを持つことができます。

連結されたコマンドについては、シェルに基づいてこれらのケースを検出し、すべてのサブコマンドが承認されることを要求します。したがって、foo && barの場合、foobarの両方が許可されていることを確認し、その時点で初めて承認なしで実行されます。また、echo $(pwd)のようなインラインコマンドも検出しようとします。この場合、echo $(pwd)pwdの両方をチェックします。

拒否リストは許可リストと同じ形式ですが、許可リストを上書きし、承認を強制します。今のところ、これは主に許可リストに広範なエントリがあり、それが含む可能性のある特定のコマンドをブロックしたい場合に役立ちます。たとえば、次の設定では、npm run dangerで始まる場合を除き、npm runで始まるすべてのコマンドが許可されます。

"github.copilot.chat.agent.terminal.allowList": {
  "npm run": true
},
"github.copilot.chat.agent.terminal.denyList": {
  "npm run danger": true
}

ワークスペース信頼からプロンプトインジェクションに対する保護が得られるため、この機能をセキュリティに関して実装する際に採用した哲学は、許可リストには少数の無害なコマンドを含め、拒否リストには万が一すり抜けてしまう可能性のある特に危険なコマンドを含めるというものです。許可リストは、デフォルトがどうあるべきかをまだ検討中であるため、デフォルトでは空ですが、私たちが考えているのは次のとおりです。

  • 許可リスト: echo, cd, ls, cat, pwd, Write-Host, Set-Location, Get-ChildItem, Get-Content, Get-Location
  • 拒否リスト: rm, rmdir, del, kill, curl, wget, eval, chmod, chown, Remove-Item

この機能に追加したい主な2つの要素は、リストに新しいコマンドをより簡単に追加するためのUIエントリポイント (#253268) と、LLMがコマンドの安全性を評価できるようにするオプトインオプション (#253267) です。また、これらの設定のgithub.copilot.プレフィックスを削除し (#253314)、次のリリースでプレビュー設定になる前にそれらを統合する予定です (#253472)。

ターミナルコマンドの簡素化

エージェントモードは、念のためcdステートメントを含むコマンドを実行したがる場合があります。現在、現在の作業ディレクトリと一致する場合にこれを検出し、実行されるコマンドを簡素化します。

Screenshot of the terminal, asking to run  only runs  when the current working directory already matches.

タスクとターミナルに対するエージェントの認識

エージェントモードは、どのバックグラウンドターミナルを作成したか、どのタスクがアクティブに実行されているかを理解するようになりました。エージェントは新しいGetTaskOutputツールを使用してタスク出力を読み取ることができ、これにより重複タスクの実行を防ぎ、ワークスペースコンテキストを改善します。

Screenshot of VS Code window showing two build tasks running in the terminal panel. The left terminal displays several errors. The chat agent replies to describe status of my build tasks with a summary of each task's output.

チャットビューの最大化

セカンダリサイドバーを最大化してエディター領域全体に広げ、プライマリサイドバーとパネル領域を非表示にできるようになりました。VS Codeはこの状態を再起動後も記憶し、エディターやビューを開いたときにチャットビューを復元します。

閉じるボタンの横にある新しいアイコンを使用するか、コマンドパレットから新しいコマンドworkbench.action.toggleMaximizedAuxiliaryBarを使用して、最大化状態の切り替えができます。

エージェントモードのバッジインジケーター

ウィンドウがフォーカスされておらず、エージェントが続行するためにユーザー確認が必要な場合、ドックのアプリケーションアイコンの上にバッジが表示されるようになりました。バッジは、それをトリガーした関連ウィンドウがフォーカスを受け取るとすぐに消えます。

Screenshot of the VS Code dock icon showing an agent confirmation as a badge.

chat.notifyWindowOnConfirmation設定で、このバッジを有効または無効にできます。

コマンドラインからチャットを開始

VS Code CLIに新しいサブコマンドchatが追加され、現在の作業ディレクトリで指定されたプロンプトを使用してチャットセッションを開始できるようになりました。

基本的な構文はcode chat [options] [prompt]で、オプションは次のいずれかです。

  • -m --mode <mode>: チャットセッションで使用するモード。「ask」、「edit」、「agent」、またはカスタムモードの識別子が利用可能です。デフォルトは「agent」です。
  • -a --add-file <path>: チャットセッションにファイルをコンテキストとして追加します。
  • --maximize: チャットセッションビューを最大化します。
  • -r --reuse-window: チャットセッションに最後にアクティブだったウィンドウの使用を強制します。
  • -n --new-window: チャットセッションのために空のウィンドウを開くことを強制します。

標準入力からの読み取りがサポートされており、最後に-を渡すことで利用できます (例: ps aux | grep code | code chat <prompt> -)。

フェッチツールが非HTTP URLをサポート

時折、モデルがfile:// URLなどの非HTTP URLでフェッチツールを呼び出そうとすることが確認されました。これを不許可にする代わりに、フェッチツールはこれらのURLをサポートし、そのURLにあるファイルまたはリソースのコンテンツを返すようになりました。画像もサポートされています。

言語モデルのアクセス管理がより明確に

拡張機能によって提供される言語モデルへの拡張機能アクセス管理に関するUXを再設計しました。以前は、アカウントメニューにAccountName (GitHub Copilot Chat)という項目が表示されていましたが、これはGitHub Copilot Chatが使用しているアカウントとは無関係でした。むしろ、Copilot Chatによって提供される言語モデルにどの拡張機能がアクセスできるかを管理するためのものでした。

これをより明確にするため、AccountName (GitHub Copilot Chat)の項目を削除し、言語モデルのアクセスを管理...という新しい項目に置き換えました。この項目はクイックピックを開き、GitHub Copilot Chatによって提供される言語モデルにどの拡張機能がアクセスできるかを管理できます。

Screenshot that shows the language model access Quick Pick.

これにより、より明確になったと考えています... とはいえ、将来のリリースでは、言語モデルのよりきめ細やかなアクセス制御 (たとえば、拡張機能によって提供されるすべてのモデルではなく、特定のモデルのみを許可するなど) を検討する予定ですので、ご期待ください。

チャットリクエストの読み取り

チャット拡張機能自体がオープンソースになったため、私たちが内部でしばらく使用してきたデバッグツールの一つにアクセスできるようになりました。Copilot Chatが行ったすべてのリクエストの詳細を簡単に確認するには、「チャットデバッグビューを表示」コマンドを実行します。これにより、各リクエストのエントリを持つツリービューが表示されます。モデルに送信された完全なプロンプト、有効になったツール、応答、その他の主要な詳細を確認できます。リクエストログは右クリック > 「名前を付けてエクスポート...」で保存できます。

このビューには、ツール呼び出し単独のエントリと、Simple Browserで開くprompt-tsxデバッグビューも含まれています。

🚨 注意: このログは問題のトラブルシューティングに非常に役立ち、エージェントの動作に関する問題を報告する際に共有していただけると幸いです。ただし、このログにはファイルの内容やターミナル出力などの個人情報が含まれている場合があります。他者と共有する前に、内容を慎重に確認してください。

編集ツールの改善

このリリースには、GPT-4モデルおよびSonnetモデルで使用される編集ツールの予測可能性と信頼性に関するいくつかの変更が含まれています。今回のリリースではより信頼性の高い編集動作が見られるはずであり、今後のリリースでもこれらのツールを改善し続けます。

MCP

VS CodeでのMCPサポートが一般提供開始

この数か月間、VS CodeでのMCPサポートの拡張に取り組んでおり、仕様のMCP機能の全範囲をサポートしています。このリリースから、VS CodeでのMCPサポートが一般提供されるようになりました!

さらに、組織はGitHub Copilotポリシーを使用してMCPサーバーの可用性を制御できるようになりました。GitHub CopilotドキュメントのエンタープライズでのCopilotのポリシーと機能の管理について詳しくはこちら。

厳選されたリストから人気のあるMCPサーバーをいくつかインストールして開始できます。VS CodeでMCPサーバーを使用する方法と、それらを使用してエージェントモードを拡張する方法について詳しくはこちら。

Screenshot that shows the MCP Servers page.

独自のMCPサーバーを構築したい場合は、VS CodeのMCP機能を活用する方法について、MCP開発者ガイドで詳細を確認してください。

エリティケーションのサポート

最新のMCP仕様では、MCPサーバーがMCPクライアントから入力を要求する方法としてエリティケーションのサポートが追加されました。VS Codeの最新バージョンはこの仕様を採用し、エリティケーションのサポートを含んでいます。

MCPサーバーの検出とインストール

拡張機能ビューの新しいMCPサーバーセクションには、厳選されたリストからの人気のあるMCPサーバーに直接リンクするウェルカムコンテンツが含まれています。ウェブサイトにアクセスして利用可能なMCPサーバーを探索し、任意のMCPサーバーでインストールを選択してください。これにより、VS Codeが自動的に起動し、サーバーのREADMEとマニフェスト情報を表示するMCPサーバーエディターが開きます。サーバーの詳細を確認し、インストールを選択して、そのサーバーをVS Codeインスタンスに追加できます。

インストールされると、MCPサーバーは自動的に拡張機能ビューのMCPサーバー - インストール済みセクションに表示され、そのツールはチャットビューのツールクイックピックで利用可能になります。これにより、MCPサーバーが正しく動作していることを簡単に確認し、その機能にすぐにアクセスできます。

MCPサーバー管理ビュー

拡張機能ビューの新しいMCPサーバー - インストール済みビューを使用すると、インストールされているMCPサーバーを簡単に監視、構成、制御できます。

Screenshot showing the MCP Servers management view with installed servers.

このビューには、インストールされているMCPサーバーが一覧表示され、コンテキストメニューを通じていくつかの管理アクションを提供します。

Screenshot showing the context menu actions for an MCP server.

  • サーバーの起動 / サーバーの停止 / サーバーの再起動: サーバーの実行状態を制御します。
  • アカウントの切断: サーバーからアカウントアクセスを削除します。
  • 出力の表示: トラブルシューティングのためにサーバーの出力ログを表示します。
  • 構成の表示: サーバーのランタイム構成を開きます。
  • モデルアクセスの構成: サーバーがアクセスできる言語モデルを管理します。
  • サンプリングリクエストの表示: デバッグのためにサンプリングリクエストを表示します。
  • リソースの参照: サーバーが提供するリソースを探索します。
  • アンインストール: VS Codeインスタンスからサーバーを削除します。

インストール済みのMCPサーバーを選択すると、VS CodeはMCPサーバーエディターを開き、サーバーのREADME詳細、マニフェスト、およびそのランタイム構成を表示します。これにより、サーバーの機能と現在の設定の概要が提供され、サーバーが何をするものか、どのように構成されているかを簡単に理解できます。

Screenshot showing the MCP server editor with runtime configuration.

MCPサーバー - インストール済みビューには、コミュニティウェブサイトに直接移動できるMCPサーバーを参照...アクションも用意されており、VS Code内から常にサーバーを探索できます。

Screenshot that shows the Browse MCP Servers action in the MCP Servers view.

MCPサーバーのファーストクラスリソース化

MCPサーバーは、ユーザータスクやその他のプロファイル固有の構成と同様に、VS Codeでファーストクラスのリソースとして扱われるようになりました。これは、以前のMCPサーバーがユーザー設定に保存されていたアプローチからの重要なアーキテクチャ上の改善を意味します。この変更により、MCPサーバーの管理がより堅牢になり、一般的なVS Code設定とMCPサーバー構成の間の関心の分離が向上します。MCPサーバーをインストールまたは構成すると、メインの設定ファイルが整理されて集中できるように、適切なプロファイル固有の場所に自動的に保存されます。

  • 専用ストレージ: MCPサーバーは、ユーザー設定ファイルを散らかすのではなく、各プロファイル内の専用のmcp.jsonファイルに保存されるようになりました。
  • プロファイル固有: 各VS Codeプロファイルは独自のMCPサーバーセットを維持するため、異なるワークフローやプロジェクトに対して異なるサーバー構成を持つことができます。
  • 設定同期統合: MCPサーバーは、設定同期を通じてデバイス間でシームレスに同期され、同期される内容をきめ細かく制御できます。

MCP移行のサポート

MCPサーバーがファーストクラスのリソースとなり、その構成に関連する変更があったため、VS Codeは以前のMCPサーバー構成形式からアップグレードするユーザーに対して包括的な移行サポートを提供します。

  • 自動検出: settings.json内の既存のMCPサーバーは自動的に検出され、新しいプロファイル固有のmcp.json形式に移行されます。
  • リアルタイム移行: ユーザー設定にMCPサーバーを追加すると、VS Codeは変更を説明する便利な通知とともに、すぐにそれらを移行します。
  • クロスプラットフォームサポート: 移行は、ローカル、リモート、WSL、Codespaces環境を含むすべての開発シナリオでシームレスに機能します。

この移行により、既存のMCPサーバー構成は手動での介入なしに引き続き機能し、新しいアーキテクチャの強化された管理機能も提供されます。

MCP構成のDev Containerサポート

Dev Container構成ファイルdevcontainer.jsonとDev Container機能構成ファイルdevcontainer-feature.jsonは、パスcustomizations.vscode.mcpでMCPサーバー構成をサポートします。Dev Containerが作成されると、収集されたMCPサーバー構成はリモートのMCP構成ファイルmcp.jsonに書き込まれます。

Playwright MCPサーバーを構成するdevcontainer.jsonの例

{
  "image": "mcr.microsoft.com/devcontainers/typescript-node:latest",

  "customizations": {
    "vscode": {
      "mcp": {
        "servers": {
          "playwright": {
            "command": "npx",
            "args": ["@playwright/mcp@latest"]
          }
        }
      }
    }
  }
}

MCPリソースにアクセスするコマンド

MCPサーバーの操作をより簡単にアクセスできるように、MCP構成ファイルを管理およびアクセスするのに役立つコマンドを追加しました。

  • MCP: ユーザー構成を開く - ユーザーレベルのmcp.jsonファイルへの直接アクセス
  • MCP: リモートユーザー構成を開く - リモートユーザーレベルのmcp.jsonファイルへの直接アクセス

これらのコマンドにより、MCP構成ファイルにすばやくアクセスでき、サーバー構成を直接表示および管理できます。

MCP認証のクイック管理

MCPギアメニューとクイックピックからアカウントのサインアウトまたは切断ができるようになりました。

  • MCPビューのギアメニュー: MCPビューのギアメニューに表示される[アカウントを切断]アクションのスクリーンショット。

  • MCPエディターのギアメニュー: MCPエディターのギアメニューに表示される[アカウントを切断]アクションのスクリーンショット。

  • MCPクイックピック: MCPクイックピックメニューに表示される[アカウントを切断]アクションのスクリーンショット。

切断アクションは、アカウントが他のMCPサーバーまたは拡張機能によって使用されている場合に表示され、サインアウトは、アカウントがMCPサーバーのみによって使用されている場合に表示されます。サインアウトアクションはアカウントをVS Codeから完全に削除しますが、切断はMCPサーバーからアカウントへのアクセスのみを削除します。

アクセシビリティ

エディター内からすべての編集を保持

以前は、すべての編集を承諾するにはチャットビューにフォーカスがある必要がありました。現在では、エディターにフォーカスがある状態で、すべての編集を保持コマンド (⌥⌘Y (Windows, Linux Ctrl+Alt+Y)) を実行できます。

ユーザーアクション要求時のサウンド

チャットがユーザーアクションを必要とするときを示すアクセシビリティ信号を微調整し、デフォルト値をautoに設定しました。これにより、スクリーンリーダーユーザーはこの信号を聞くことができます。この動作はaccessibility.signals.chatUserActionRequired設定で構成できます。

チャットでレンダリングエラーが発生したときのアラート

以前は、チャットのレンダリングエラーが発生してもスクリーンリーダーユーザーには通知されませんでした。現在では、ユーザーはこの情報をアラートで受け取り、キーボードでフォーカスすることもできます。

コード編集

ミドルクリックでスクロール

設定: editor.scrollOnMiddleClick

ミドルマウスボタン (スクロールホイール) をクリックまたは長押しして移動するだけで、エディターをスクロールできます。

有効化されると、カーソルがパンアイコンに変わり、マウスを上下に動かすとその方向にエディターがスムーズにスクロールします。スクロール速度は、最初のクリックポイントからマウスをどのくらい動かすかによって決まります。ミドルマウスボタンを離すか、再度クリックするとスクロールが停止し、標準のカーソルに戻ります。

既知の競合

この機能を有効にすると、ミドルマウスボタンに紐付けられた他のアクションと干渉する可能性があります。たとえば、列選択 (editor.columnSelection) が有効になっている場合、ミドルマウスボタンを長押しするとテキストが選択されます。同様に、Linuxでは、選択クリップボード (editor.selectionClipboard) がミドルマウスボタンをクリックするとクリップボードの内容を貼り付けます。

これらの競合を避けるため、一度に有効にする設定はいずれか1つのみにしてください。

コード補完のスヌーズ

新しいスヌーズ機能を使用すると、インライン候補と次の編集候補 (NES) を一時的に停止できます。これは、候補による邪魔なしに集中したい場合に役立ちます。

候補をスヌーズするには、ステータスバーのCopilotダッシュボードを選択するか、コマンドパレットからインライン候補をスヌーズコマンドを実行し、ドロップダウンメニューから期間を選択します。スヌーズ期間中は、インライン候補やNESは表示されません。

Screenshot showing the Copilot dashboard with the snooze button at the bottom.

コマンドに目的の期間を引数として渡すことで、特定の期間、候補をすばやくスヌーズするためのカスタムキーバインドを割り当てることもできます。例:

{
  "key": "...",
  "command": "editor.action.inlineSuggest.snooze",
  "args": 10
}

エディター体験

Windowsのアクセントカラー

設定: window.border

Windows版VS Codeは、Windowsの設定で有効になっている場合、「タイトルバーとウィンドウの境界線にアクセントカラーを表示」としてアクセントカラーをウィンドウフレームの境界線として使用することをサポートするようになりました。

Screenshot of the VS Code window with a red accent color border.

新しいwindow.border設定により、ウィンドウ境界線の色を制御できます。defaultを使用するとWindowsのアクセントカラーが使用され、offで境界線が無効になり、特定の色の値を指定するとカスタムカラーが使用されます。

注意: 境界線は、関連するWindows設定が有効になっている場合にのみ表示されます。まだワークスペースごとに設定することはできませんが、そのサポートに取り組んでいます。

設定検索候補 (プレビュー)

設定: workbench.settings.showAISearchToggle

今回のマイルストーンでは、設定エディターのスパークルトグルを変更し、AIと非AIの検索結果を切り替えるトグルとして機能するようにしました。AI設定の検索結果は、文字列の一致に基づく結果ではなく、意味的に類似した結果です。たとえば、「テキストサイズを大きくする」と検索すると、editor.fontSizeがAI設定の検索結果として表示されます。

このトグルは、AIの結果が利用可能な場合にのみ有効になります。AI設定検索で期待する設定が見つからなかった場合のフィードバックを歓迎します。次回のイテレーションでは、この設定をデフォルトで有効にする予定です。

タスク

実行中のすべてのタスクを再実行

新しいTasks: Rerun All Running Tasksコマンドを使用して、現在実行中のすべてのタスクをすばやく再実行できるようになりました。これは、複数の同時タスクを伴うワークフローに役立ち、個別に停止して再実行することなく、すべてを一度に再起動できます。

タスクの再起動で更新されたtasks.jsonを再読み込み

タスクの再起動コマンドは、再起動する前にtasks.jsonを再読み込みするようになり、最近の変更が確実に反映されるようになりました。以前は、タスクを再起動してもタスク構成の変更が反映されず、混乱や古いタスクの動作につながる可能性がありました。

ターミナル

ターミナル提案 (プレビュー)

ターミナル提案機能に大幅な改善を加えました。

選択モード

新しい設定terminal.integrated.suggest.selectionModeは、デフォルトではTabキー (Enterキーではない) が候補を受け入れることを理解するのに役立ちます。候補がどのように選択され、受け入れられるかを制御するために、partialalwaysneverモードから選択できます。

デフォルト値はpartialで、これはナビゲーションが発生するまでTabキーが候補を受け入れることを意味します。

Screenshot showing the first terminal suggestion can be accepted with Tab.

詳細はこちら

ターミナル提案コントロールのステータスバーにある詳細はこちらアクション (kb(workbench.action.terminal.suggestLearnMore)) が、最初の10回、またはコントロールが表示されてから10秒間強調表示されるようになりました。これにより、提案コントロールの設定方法、無効化方法、および関連情報の確認方法を発見するのに役立ちます。

Screenshot showing the Learn More action appears in the terminal suggest control status bar.

複数コマンドのサポート

ターミナル提案は、複数コマンド行をサポートするようになりました。;&&、その他のシェル演算子でコマンドをリンクし、行内のすべてのコマンドの候補を受け取ることができます。

Screenshot showing the VS Code terminal showing a multi-command line with git commit and git push, and the terminal suggest widget displaying suggestions for pull, push, and other git commands.

提案の詳細コントロールでシンボリックリンクの実パスが表示されるようになり、シンボリックリンクファイルとフォルダーに固有のアイコンが追加され、他の候補と区別しやすくなりました。

Screenshot showing the terminal suggest shows the symlink's path -> real path.

ソートの改善

最も関連性の高い候補を最初に表示するように、さまざまな点でソートを改善しました。たとえば、mainmasterを他のブランチよりも優先します。

Screenshot showing the terminal suggest boosts main and master compared to other branch suggestions.

Git Bashの改善

Git Bashのフォルダーとファイルのパス補完が適切にサポートされるようになりました。さらに、組み込みコマンドをソースとして取得し、候補として表示します。

Screenshot showing a Git Bash terminal with suggestions for builtin functions like cat, cp, and curl.

拡張機能への貢献

GitHubプルリクエスト

プルリクエストやイシューの作業、作成、管理を可能にするGitHub Pull Requests拡張機能は、さらに進歩しました。

GitHub Pull Requests拡張機能とCopilot コーディングエージェントとの間に深い統合が実現され、VS Codeから直接コーディングエージェントのセッションを開始、表示、管理できるようになりました。

これらの機能を使用するには、ワークスペースがCopilot コーディングエージェントが有効になっているリポジトリを開いている必要があります。

リリースのすべての詳細については、拡張機能の0.114.0バージョンの変更履歴を確認してください。

ステータストラッキング

「Copilot on my behalf」クエリでコーディングエージェントのプルリクエストのステータスを通知し、目立つように表示する改善を行いました。数字バッジが新しいコーディングエージェントの変更を示すようになりました。

Screenshot showing status of multiple coding agent pull requests

セッションログ

コーディングエージェントセッションのセッションログをVS Codeで直接確認できるようになりました。これにより、コード変更やツール使用を含む、コーディングエージェントによって実行されたアクションの履歴を見ることができます。

Screenshot showing the session log of a coding agent session.

#activePullRequestツールの強化

#activePullRequestツールは、プルリクエストに関する情報 (タイトル、説明、チャットで使用するステータスなど) を返します。さらに、コーディングエージェントのセッション情報を取得するためにも使用できるようになりました。

このツールは、コーディングエージェントエクスペリエンスを通じて作成されたプルリクエストを開くと、チャットに自動的にアタッチされるため、コンテキストを維持し、必要に応じてプルリクエストの作業を続けることができます。

コーディングエージェントセッションを開始 (プレビュー)

チャットで#copilotCodingAgentツールを呼び出すことで、ローカル変更の残りをコーディングエージェントに委任します。

このツールは、保留中の変更をリモートブランチに自動的にプッシュし、そのブランチからユーザーの指示とともにコーディングエージェントセッションを開始します。

Screenshot showing handing off a session to the coding agent.

実験的: githubPullRequests.codingAgent.uiIntegration設定で、より深いUI統合を有効にできます。有効にすると、コーディングエージェントが有効になっているリポジトリのチャットビューに新しいコーディングエージェントに委任ボタンが表示されます。

Python

Python Environments拡張機能の改善

Python Environments拡張機能は、今回のリリースでいくつかの改善が加えられました。

  • Poetryバージョン2.0.0以降のターミナルアクティベーションサポートを改善しました。
  • クイック作成環境作成オプションを使用して、同じワークスペース内で一意の名前を持つ複数の仮想環境を設定できるようになりました。
  • 生成された.venvフォルダーは、デフォルトでGitによって無視されるようになりました。
  • 環境の削除プロセスを改善しました。

Python拡張機能の一部として含まれるPython Environments

Python拡張機能のオプションの依存関係として、Python Environments拡張機能の展開を開始しています。これは、Python DebuggerやPylance拡張機能と同様に、Python Environments拡張機能がPython拡張機能とともに自動的にインストールされるようになる可能性があることを意味します。この段階的な展開により、一般提供前に早期のフィードバックを収集し、信頼性を確保できます。

Python Environments拡張機能には、これまでに導入したすべてのコア機能が含まれています。これには、クイック作成を使用したワンクリック環境設定、自動ターミナルアクティベーション ("python-envs.terminal.autoActivationType"設定経由)、およびすべてのサポートされている環境およびパッケージ管理用UIが含まれます。

展開中にPython Environments拡張機能を使用するには、拡張機能がインストールされていることを確認し、VS Codeのsettings.jsonファイルに以下を追加してください。

"python.useEnvironmentsExtension": true

Python 3.13向けのPyREPLを無効化

インタラクティブターミナルでのインデントとカーソルの問題を解決するため、Python 3.13以降のPyREPLを無効にしました。詳細については、PyREPL for >= 3.13を無効にするを参照してください。

Pylance MCPツール (実験的)

Pylance拡張機能には、Pylanceのドキュメント、インポート分析、環境管理などへのアクセスを提供する、いくつかの実験的なMCPツールが含まれるようになりました。これらのツールは現在、Pylanceのプレリリースバージョンで利用可能であり、開発の初期段階にあります。新しい機能を提供する一方で、今日直接呼び出すのは難しい場合があることを認識しています。今後のアップデートでこれらのツールをより使いやすく、より価値のあるものにするために積極的に取り組んでいます。pylance-releaseリポジトリでのフィードバックを歓迎します。私たちは引き続きエクスペリエンスを改善していきます。

GitHub認証

GitHubサインインフローの刷新

今回のイテレーションでは、GitHubサインインフローを、vscode://プロトコルURLを使用するフローではなく、ループバックURLフローをデフォルトとすることで刷新しました。この変更は、サインインフローの信頼性を向上させ、カスタムURLスキームをサポートしないプラットフォームを含むすべてのプラットフォームで機能することを保証するためです。

GitHubでサインインすると、https://:PORT/のようなループバックURLにリダイレクトされるようになりました。これにより、カスタムURLスキームに依存することなく、サインインフローが正常に完了します。ただし、ループバックURLに到達すると、VS Codeに戻るためにvscode:// URLにリダイレクトされますが、サインインフローが正常に完了するためにこれが解決される必要はありません。

言い換えれば、私たちは両方の良い点を手に入れます。すべてのプラットフォームで機能する信頼性の高いサインインフローと、vscode:// URLスキームを使用するVS Codeへの戻りです。

この作業と並行して、このランディングページも刷新しました。今後のイテレーションでは、この新しいデザインを他のサインインエクスペリエンスにも適用する予定です。

Screenshot showing the redesigned authentication landing page.

拡張機能の作成

vscode.openFolderコマンド使用時にファイルを開くことを許可

vscode.openFolderコマンドを呼び出す拡張機能は、オプションとしてfilesToOpen?: UriComponents[]を渡して、開くワークスペースウィンドウで開くファイルを選択できるようになりました。

vscode.commands.executeCommand('vscode.openFolder', <folder uri>, { filesToOpen: [ /* files to open */]});

提案されたAPI

エンジニアリング

esbuildを使用したCSSミニファイ

VS Codeは長い間、JavaScriptソースのバンドルとミニファイにesbuildを使用してきました。今回、CSSファイルのバンドルとミニファイにもesbuildを使用するようになりました。

tsconfig.jsonを使用した厳密なレイヤーチェック

ソースコードがターゲット環境ルールに準拠していることを確認するために、複数のtsconfig.jsonファイルを使用するようになりました。CIはnpm run valid-layers-checkを実行し、たとえばnodeランタイムにのみ存在する型がbrowserレイヤーに追加された場合、ビルドは失敗します。

動作確認のためのvscode-bisect

vscode-bisectプロジェクトは長年にわたり存在し、VS Codeビルドの回帰を見つけるのに役立っています (git bisectgitに対して行うことと同様)。新しいビルドをリリースする前に必須となる動作確認を迅速に行えるように、新しい--sanityオプションを追加しました。

注目すべき修正点

ありがとうございます

最後に、VS Codeの貢献者の皆様に心からの感謝を申し上げます。

問題追跡

問題追跡への貢献者

プルリクエスト

vscodeへの貢献者

vscode-copilot-chatへの貢献

vscode-json-languageserviceへの貢献

vscode-pull-request-githubへの貢献者

vscode-ripgrepへの貢献

vscode-testへの貢献

language-server-protocolへの貢献者

monaco-editorへのコントリビューション

ripgrep-prebuiltへの貢献