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

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

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

アップデート 1.102.1: このアップデートは、これらの問題に対処しています。

アップデート 1.102.2: このアップデートは、これらの問題に対処しています。

アップデート 1.102.3: このアップデートは、これらの問題に対処しています。

ダウンロード: 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やawesome-copilotコミュニティリポジトリなど、外部リンクからチャットモード、再利用可能なプロンプト、命令ファイルをインポートできるようになりました。たとえば、次のリンクはBurkeのGPT 4.1 Beast Modeのチャットモードファイルをインポートします。

VS CodeにGPT 4.1 Beast Modeを追加する

これにより、現在のワークスペースまたはユーザー設定のいずれかの宛先をプロンプトで確認し、URLからモードファイルをインポートする前に名前を確認します。

awesome-copilotにある100以上のコミュニティ貢献による命令、プロンプト、チャットモードを試してみてください。

カスタム指示の生成

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

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

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

指示によるAI応答のカスタマイズについて詳しく学ぶ。

オンデマンドで指示ファイルをロードする

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

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

条件付きで含めたい大きな指示の場合は、.instructions.mdファイルをapplyToヘッダーで定義されたグロブパターンと組み合わせて使用できます。グロブパターンがチャットのコンテキスト内の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 : チャットセッションで使用するモード。利用可能なオプション: 'ask'、'edit'、'agent'、またはカスタムモードの識別子。デフォルトは'agent'です。
  • -a --add-file : ファイルをチャットセッションのコンテキストとして追加します。
  • --maximize: チャットセッションビューを最大化します。
  • -r --reuse-window: チャットセッションに最後にアクティブだったウィンドウを使用することを強制します。
  • -n --new-window: チャットセッションに空のウィンドウを開くことを強制します。

-を最後に渡すことで、標準入力からの読み取りがサポートされます。例: ps aux | grep code | code chat -

Fetchツールが非HTTP URLをサポート

モデルが、file:// URLなどの非HTTP URLでFetchツールを呼び出したい場合があることが確認されました。これを禁止するのではなく、FetchツールがこれらのURLをサポートし、URLのファイルまたはリソースのコンテンツを返すようになりました。画像もサポートされています。

言語モデルアクセス管理の明確化

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

これをより明確にするため、アカウント名 (GitHub Copilot Chat)項目を削除し、言語モデルアクセスを管理...という新しい項目に置き換えました。この項目をクリックすると、GitHub Copilot Chatが提供する言語モデルにどの拡張機能がアクセスできるかを管理できるQuick Pickが開きます。

Screenshot that shows the language model access Quick Pick.

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

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

チャット拡張機能自体がオープンソースになったため、以前から内部で使用していたデバッグツールの一つにアクセスできるようになりました。「Show Chat Debug View」コマンドを実行すると、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開発者ガイドをご確認ください。

Elicitationsのサポート

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

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

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

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

MCPサーバー管理ビュー

拡張機能ビューの新しいMCP SERVERS - INSTALLEDビューにより、インストール済みの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はサーバーのREADMEの詳細、マニフェスト、およびそのランタイム構成を表示するMCPサーバーエディターを開きます。これにより、サーバーの機能と現在の設定の概要が提供され、サーバーが何を行うか、どのように構成されているかを簡単に理解できます。

Screenshot showing the MCP server editor with runtime configuration.

MCP SERVERS - INSTALLEDビューには、コミュニティウェブサイトに直接移動できる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 Feature構成の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設定を使用すると、ウィンドウの境界の色を制御できます。Windowsのアクセントカラーを使用するにはdefaultを、境界を無効にするには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リリースの変更ログを確認してください。

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

チャットで#copilotCodingAgentツールを呼び出すことで、ローカルの変更をバックグラウンドで続行するようにCopilotに依頼できます。

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

Screenshot showing handing off a session to Copilot coding agent

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

ステータスの追跡

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

Screenshot showing status of multiple coding agent pull requests

セッションログ

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

Screenshot showing the session log of a coding agent session.

#activePullRequestツールの機能強化

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

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

Python

Python Environments拡張機能の改善

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

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

Python拡張機能に含まれるPython Environments

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

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

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

"python.useEnvironmentsExtension": true

Python 3.13でPyREPLが無効化されました

インタラクティブターミナルでのインデントとカーソルに関する問題に対処するため、Python 3.13以降でPyREPLを無効にしました。詳細はDisable 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レイヤーに追加された場合、ビルドが失敗します。

sanity testingのためのvscode-bisect

vscode-bisectプロジェクトは、VS Codeビルドの回帰を見つけるために長い間存在してきました(git bisectgitに対して行うこと)。新しい--sanityオプションを追加しました。これにより、新しいビルドをリリースする前に必須となるsanity checkを迅速に実行できます。

注目すべき修正点

ありがとうございます

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

問題追跡

問題追跡への貢献者

プルリクエスト

vscodeへの貢献者

vscode-copilot-chatへの貢献

vscode-json-languageserviceへの貢献

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

vscode-ripgrepへの貢献

vscode-testへの貢献

language-server-protocolへの貢献者

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

ripgrep-prebuiltへの貢献