エージェント型開発を探求する -

2026年1月 (バージョン 1.109)

リリース日: 2026年2月4日

アップデート 1.109.1: このアップデートでは、セキュリティ上の問題に対処しています。

アップデート 1.109.2: このアップデートでは、チャットに関する問題に対処しています。

アップデート 1.109.3: このアップデートでは、これらの問題に対処し、いくつかの注目すべき機能が導入されました。

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

アップデート 1.109.5: このアップデートでは、これらの問題に対処し、バックグラウンドエージェントを改善するための以下の機能が追加されました。

  • プロンプトファイル、フック、スキルを含むスラッシュコマンドのサポート
  • バックグラウンドエージェントセッションの名前を変更する機能
  • すべてのユーザーがKittyキーボードサポートを利用可能になりました

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


Visual Studio Codeの2026年1月リリースへようこそ。今回のリリースでは、VS Codeをマルチエージェント開発の拠点にするための進化をさらに進めています。

  • チャットUX - ストリーミングの高速化、推論結果の向上、エディターのインラインチャットの刷新により、チャットがより快適で軽快になりました。

  • エージェントセッション管理 - ローカル、バックグラウンド、クラウドにまたがってエージェントにタスクを委任し、必要な時に介入することが容易になりました。

  • エージェントのカスタマイズ - エージェントのオーケストレーションを使用して独自のワークフローを構築し、エージェントスキルや組織全体のカスタマイズで一貫した結果を得られます。

  • エージェントの拡張性 - Claudeエージェントのサポートと新しいAnthropicモデル機能により知識を再利用し、MCPアプリによるリッチなチャットインタラクションを楽しめます。

  • エージェントの最適化 - Copilot Memoryによるエージェントの賢い動作と、外部インデックス作成による高速なコード検索を実現しました。

  • エージェントのセキュリティと信頼性 - サンドボックス化された端末コマンド実行と効果的な自動承認ルールにより、安心して運用できます。

  • ワークベンチと生産性 - 新しい統合ブラウザーにより、エディターを離れることなくアプリをテストできます。

  • ターミナルの強化 - ターミナルエクスペリエンスをよりスムーズで信頼性の高いものにするためのユーザビリティの向上。

  • コーディングとエディター - 日々のコーディングをスムーズにするためのインパクトのある改善。

  • 拡張機能とAPI - 拡張機能作成者がよりリッチなエクスペリエンスを構築するための新しい機能。

ハッピーコーディング!

VS Code 1.109 リリースのハイライト動画をご覧いただき、これらの機能の詳細をご確認ください!



これらのリリースノートをオンラインで読みたい場合は、code.visualstudio.comアップデートにアクセスしてください。

Insiders: 新機能をいち早く試したいですか?
毎晩のInsidersビルドをダウンロードして、最新のアップデートが利用可能になり次第試すことができます。
Insiders をダウンロード


今後のイベント

エージェントセッションデー

2月19日開催のエージェントセッションデーに参加して、最新のアップデートのライブデモをご覧ください!VS Codeがいかにして、オープン性、拡張性、開発者の選択という中核的価値を維持しつつ、統合されたエージェントUXへと進化したかをご紹介します。

Visual of the Agent Session Day event.

チャットUX

より速いレスポンス、より明確な推論、そして摩擦の少なさ。今回のリリースでは、進行状況をリアルタイムで表示するストリーミングの改善、邪魔にならないように刷新されたインラインチャット、モデルの思考をより可視化することで、AIが作業している間もフロー状態を維持できるようにしました。

メッセージのステアリングとキューイング (実験的機能)

設定: chat.requestQueuing.enabled VS Codeで開く VS Code Insidersで開く , chat.requestQueuing.defaultAction VS Codeで開く VS Code Insidersで開く

アップデート 1.109.3: 長いタスクに取り組んでいる際、現在のタスクが完了する前に次のタスクを思いついたり、エージェントが間違った方向に進んでいることに気付いたりすることがよくあります。以前はレスポンスが完了するまで待つか、完全にキャンセルする必要がありました。これからは、リクエストの実行中にフォローアップメッセージを送信できるようになりました。

Screenshot showing the Send button dropdown with options to Add to Queue, Steer with Message, and Stop and Send.

リクエストの実行中、送信ボタンが3つのオプションを持つドロップダウンに変化します。

  • キューに追加: メッセージが待機し、現在のレスポンスが完了した後に自動的に送信されます。
  • メッセージでステアリング: 現在のツール実行が終了した後にリクエストを中断し、新しいメッセージを直ちに処理するよう信号を送ります。エージェントが間違った方向に進んでいるときにリダイレクトするために使用してください。
  • 停止して送信: 現在のリクエストを完全にキャンセルし、新しいメッセージを直ちに送信します。

複数の保留中のメッセージがある場合、ドラッグ&ドロップで処理順序を変更できます。

送信ボタンのデフォルトアクションを steer (デフォルト) または queue に設定するには、 chat.requestQueuing.defaultAction VS Codeで開く VS Code Insidersで開く を使用してください。

ドキュメントでメッセージのステアリングとキューイングの詳細をご覧ください。

Anthropicモデルが思考トークンを表示するように

設定: chat.thinking.style VS Codeで開く VS Code Insidersで開く , chat.agent.thinking.collapsedTools VS Codeで開く VS Code Insidersで開く , chat.agent.thinking.terminalTools VS Codeで開く VS Code Insidersで開く , chat.tools.autoExpandFailures VS Codeで開く VS Code Insidersで開く

多くの方がVS CodeでAnthropicのClaudeモデルを使用しています。これらのモデルは現在、思考トークンをサポートしており、モデルの推論プロセスをより可視化できるようになりました。

今回のリリースでは、チャットUXを強化し、思考トークンをより効果的に表示するようにしました。より多くの情報で、ノイズを減らします!

  • 詳細な思考スタイルまたはコンパクトな思考スタイルを選択して、好みに合わせることができます ( chat.thinking.style VS Codeで開く VS Code Insidersで開く )。

  • モデルの思考プロセスがツール呼び出しやレスポンスと交互に表示されるようになります ( chat.agent.thinking.terminalTools VS Codeで開く VS Code Insidersで開く )。

  • 失敗したツール呼び出しは自動的に展開され、より多くのコンテキストを表示します ( chat.tools.autoExpandFailures VS Codeで開く VS Code Insidersで開く )。

  • スクロール可能な思考コンテンツやシマーアニメーションなど、モデルのアクティビティを追いやすくするためのさまざまな視覚的強化。

チャットレスポンス内のMermaidダイアグラム

チャットのレスポンスで、renderMermaidDiagramツールを使用してインタラクティブなMermaidダイアグラムをレンダリングできるようになりました。これにより、フローチャートやシーケンス図などの視覚化ツールを使って、モデルが複雑な概念を視覚的に分解できるようになります。ダイアグラムはインタラクティブなので、パンやズームで詳細を確認したり、フルサイズのエディターで開いてより見やすくしたりすることができます。

以下のコントロールを使用してMermaidダイアグラムを操作できます

  • パンとズーム - Alt/Option キーを押しながらマウスホイールを使用してズームするか、トラックパッドでピンチズームします。Alt/Option キーを押しながらドラッグしてダイアグラムをパンします。
  • クリックでズーム - Alt/Option キーを押しながらクリックしてズームインします。Shift キーを追加するとズームアウトします。
  • エディターで開く - ボタンを使用して、大規模なダイアグラムをより見やすくするためにフルサイズのエディターで開きます。
  • ソースをコピー - ダイアグラムを右クリックしてCopy diagram sourceを選択し、Mermaidソースコードをコピーします。

Screenshot showing a mermaid diagram in a chat response.

質問ツール (実験的機能)

設定: chat.askQuestions.enabled VS Codeで開く VS Code Insidersで開く

不明瞭な点がある場合に勝手に推測する代わりに、エージェントはaskQuestionsツールを使用してチャット中に明確化のための質問をできるようになりました。単一/複数選択オプション、自由入力テキスト、推奨回答をチャット内で直接提示し、迅速な意思決定をサポートします。

Screenshot showing the Ask Questions tool question carousel with theme type options.

Up キーと Down キーを使用して回答間をナビゲートするか、対応する回答番号を入力します(Escape キーで残りの質問をスキップできます)。

Planエージェントも刷新し、askQuestionsツールを活用して、実装計画がユーザーの期待と一致するようにしました。

エージェントを計画する

組み込みのPlanエージェントを使用すると、コーディングを開始する前に構造化された実装計画を作成できます。これにより、AIがタスクの要件を理解し、期待に応える高品質なコードを作成できるようになります。

  • Planエージェントは、より高品質な実装計画を作成する構造化された4フェーズの反復ワークフローに従うようになりました。

    1. 検出 (Discovery) - コードベースを自律的に探索し、関連ファイルを探してプロジェクト構造を理解します。
    2. 調整 (Alignment) - 計画を確定する前に明確化のための質問をして一時停止し、曖昧さを早期に排除します。
    3. 設計 (Design) - 明確な手順、ファイル場所、コードスニペットを含む包括的な実装計画をドラフトします。
    4. 洗練 (Refinement) - 検証基準を追加し、計画中に決定された事項を文書化します。
  • チャットで /plan に続けてタスクの説明を入力することで、Planエージェントを呼び出せます。これは、実装に切り替える前に複雑なタスクを計画するための迅速なエントリーポイントとなります。

コンテキストウィンドウの詳細

モデルがコンテキストウィンドウをどのように使用しているかを追跡するために、チャット入力エリアにコンテキストウィンドウインジケーターが表示されるようになりました。インジケーターにカーソルを合わせると、カテゴリ別のトークン使用量の内訳が表示されます。

Screenshot showing the context window control and the hover message showing a breakdown per category.

インラインチャットUXの刷新 (プレビュー)

設定: inlineChat.affordance VS Codeで開く VS Code Insidersで開く , inlineChat.renderMode VS Codeで開く VS Code Insidersで開く

インラインチャットのエクスペリエンスを継続的に刷新しており、2つのプレビュー機能を提供しています。

  • テキストを選択したときにインラインチャットをより簡単にトリガーできる工夫 ( inlineChat.affordance VS Codeで開く VS Code Insidersで開く )
  • 軽量で使いやすいコンテキストレンダリング ( inlineChat.renderMode VS Codeで開く VS Code Insidersで開く )

モデルピッカー内のモデル説明

モデルピッカーでモデルにマウスホバーしたりキーボードでフォーカスしたりすると、詳細をひと目で確認できるようになりました。

Screenshot showing the language model picker with a hover flyout describing the currently selected model, Claude Opus.

ターミナルコマンド出力

よりリッチなコマンドの詳細

実行されているコマンドを明確にするため、ターミナルツールは以下の詳細を表示します。

  • インラインのNode、Python、Rubyの構文ハイライト

    Screenshot showing inline Python calls presenting just the Python code to make it easier to review.

  • 作業ディレクトリ

    Screenshot showing the directory the command will run in, called out in the title after "within".

  • コマンドの意図の説明

    Screenshot showing the goal of the command when hovering, explaining the why instead of just the what.

出力のストリーミング

コマンドの実行に時間がかかる場合、ターミナル出力が自動的に展開され、何が起きているかを即座に把握できるようになりました。素早いコマンドは折りたたまれたままとなり、視覚的なノイズを軽減します。

インタラクティブな入力

埋め込みターミナルは完全にインタラクティブになりました。ターミナルにフォーカスして直接入力できるため、コマンドで確認が求められる場合やユーザー入力が必要な場合に便利です。カーソルが表示されるようになり、ターミナルが入力可能かどうかが明確になりました。

非表示のターミナルをすべて削除

ターミナルパネルの非表示のターミナル (Hidden Terminals) 項目に、非表示のすべてのターミナルを一括でクリアするための削除アイコンが含まれました。

Screenshot showing delete icon on Hidden terminals entry in the tabs list.

新しいテーマについてのご意見をお聞かせください (実験的機能)

私たちは、焦点を高め、影や透明感を使用することでUIに高揚感と軽快さをもたらすための、新しい実験的な VS Code Light および VS Code Dark テーマを開発しています。これらのテーマは現在開発中です。

何がうまく機能していて、どこを改善できるかについて、vscodeリポジトリでフィードバックをお寄せください。

VS Code Dark (実験的機能):

Screenshot showing the new experimental VS Code Dark theme.

VS Code Light (実験的機能):

Screenshot showing the new experimental VS Code Light theme.

編集モードが非表示になりました (実験的機能)

設定: chat.editMode.hidden VS Codeで開く VS Code Insidersで開く

チャットのエージェントドロップダウンから編集モードがデフォルトで非表示になりました。エージェントを使用することで編集モードの機能の上位セットが提供され、コード編集タスクにおいてより優れた結果が得られます。

組織がエージェントモードを無効にしている場合、編集モードはエージェントドロップダウンに表示されたままになります。 chat.editMode.hidden VS Codeで開く VS Code Insidersで開く 設定を無効にすることで、手動で編集モードを復元することも可能です。

エージェントセッション管理

焦点を失うことなく委任、監視、切り替えを行います。ローカル、バックグラウンド、クラウド環境にまたがる複数のエージェントセッションを、単一の統合ビューから並行して実行できるようになりました。セッション間をジャンプし、進捗をひと目で確認し、エージェントが独立して作業している間も自身の生産性を維持できます。

エージェントタイプ間の切り替えと委任

VS Codeでは、さまざまな環境(VS Code内のローカル、バックグラウンド、クラウド、または他のエージェントプロバイダー)でエージェントセッションを開始できます。チャット入力エリアに新しいセッションタイプピッカーを導入し、これらの異なるエージェントタイプ間の切り替えを容易にしました。

ピッカーには主に2つの目的があります

  • 開始したいエージェントセッションのタイプを選択する
  • 進行中のセッションを異なるエージェントタイプに引き渡す(例:タスクをローカルで計画し、クラウドで実装する)

Screenshot showing continuing a session in a different environment using the session type picker.

ヒント: 新しいローカルチャットセッションを作成するための workbench.action.chat.newLocalChat コマンドを追加しました。このコマンドをキーボードショートカットにバインドして、さらに迅速にアクセスできるようにしましょう。

エージェントセッションの追跡

複数のエージェントを操作している場合、特に異なる環境にまたがって複数の並行セッションがある場合は、アクティブなエージェントセッションを追跡することが不可欠です。

エージェントセッションビュー

このタスクを容易にするために、VS Codeのエージェントセッションビューをさらに改善しました。

  • サイドバイサイド表示時のセッションリストのサイズ変更
  • 複数セッションを選択して一括操作を実行
  • セッションのナビゲーションとフィルター適用を改善するための優れたスタックビュー

エージェントステータスインジケーター

設定: chat.agentsControl.enabled VS Codeで開く VS Code Insidersで開く , chat.agentsControl.clickBehavior VS Codeで開く VS Code Insidersで開く

複数のアクティブなセッションがある状況では、どのセッションが注意を必要としているかを素早く確認することが重要です。VS Codeコマンドセンターにエージェントステータスインジケーター ( chat.agentsControl.enabled VS Codeで開く VS Code Insidersで開く ) を追加し、エージェントセッションの更新情報を可視化しました。

インジケーターには、実行中、未読、注意が必要なセッションなど、さまざまなステータス情報が表示されます。インジケーターを選択して、セッションリストを素早く開いてフィルターできます。

Screenshot showing agent status indicator with attention needed count.

また、コマンドセンターのチャットボタンを更新し、クリック時の動作を設定できるようにしました ( chat.agentsControl.clickBehavior VS Codeで開く VS Code Insidersで開く )。デフォルトでは、サイドバー、最大化、または非表示の各チャットビュー状態を順番に切り替えるようになっています。

サブエージェント

設定: chat.customAgentInSubagent.enabled VS Codeで開く VS Code Insidersで開く

エージェントはサブエージェントを使用してサブタスクを実行し、複雑なタスクを小さなパーツに分解できます。サブエージェントの優れた点は、独自の専用コンテキストウィンドウで動作し、メインエージェントのコンテキストウィンドウを消費しないことです。

サブエージェントは並行して実行できるようになり、独立したタスクに分割できるタスクの処理を大幅に高速化できます。

Screenshot showing two active subagents in chat with an active spinner next to them.

異なるサブエージェントが行っていることを可視化するため、チャットの会話で、実行中のタスク、サブエージェントに使用されているカスタムエージェント、現在使用されているツールなどの詳細を表示します。サブエージェント情報を展開すると、最初に与えられた完全なプロンプトや返された結果など、行っていることの詳細をすべて確認できます。

検索サブエージェント (実験的機能)

設定: github.copilot.chat.searchSubagent.enabled VS Codeで開く VS Code Insidersで開く

コードベースの検索は、通常、複数回の反復を伴う可能性があり、すぐにコンテキストウィンドウの制限に達してしまう作業です。独立したエージェントループで実行される検索サブエージェントのサポートを追加しました。これにより、検索を反復的に絞り込み、複数のクエリを試し、ワークスペースの異なる部分を探索できるようになります。

これは、単一の検索では不十分な複雑なクエリの検索結果の質を向上させます。また、メインエージェントのコンテキストウィンドウを保持し、検索サブエージェントが仕事をしている間もメインエージェントが作業を継続できるようにします。

クラウド エージェント

新しいクラウドエージェントセッションを開始するとき、セッションを設定するためのオプションが増えました。異なるモデルを選択したり、独自のカスタムエージェントを使用したり、利用可能なパートナーエージェントから選択したりできます。

  • クラウドエージェントのモデル選択

    Screenshot showing cloud agent model selection picker in chat input.

  • サードパーティ製コーディングエージェント (プレビュー)

    GitHub Copilotサブスクリプションの一部としてClaudeやCodexなどのサードパーティ製コーディングエージェントを設定している場合、VS Codeはクラウドエージェントタイプを選択した後にこれらのオプションを表示します。

    Screenshot showing cloud coding agent selection picker in chat input.

    サードパーティ製コーディングエージェントの利用可能性と有効化については、GitHubの変更履歴で詳しく説明されています。

  • クラウドエージェント用のカスタムエージェント

    ターゲットのGitHubリポジトリのデフォルトブランチで利用可能なカスタムエージェントから選択できます。

    Screenshot showing custom agent selection picker in chat input.

  • マルチルートワークスペースと空のワークスペースの改善

    マルチルートワークスペースウィンドウまたは空のワークスペースウィンドウにいる場合、クラウドエージェントに使用するフォルダーを選択できるようになりました。

    Screenshot showing multi-root support in chat input.

  • チェックアウトが常に表示されるように

    エージェントセッションのチェックアウト (Checkout) オプションは、GitHub Pull Requests拡張機能がインストールされていない場合でも表示されるようになりました。このアクションを選択すると、必要に応じてGitHub Pull Requestsがインストールされ、その後チェックアウトを実行するために引き渡されます。

バックグラウンドエージェント

ローカルおよびクラウドエージェントに合わせて、バックグラウンドエージェントにいくつかの改善を加えました。

  • バックグラウンドエージェント用のカスタムエージェント

    Screenshot showing custom agent selection picker in background chat input.

  • コンテキストとして画像を添付

    Screenshot showing image support in background chat input.

  • マルチルートワークスペースの改善

    マルチルートワークスペースにいる場合、バックグラウンドエージェントで使用するフォルダーを選択できるようになりました。

    Screenshot showing multi-root support in background chat input.

  • 各ターンの終了時に自動コミット

    バックグラウンドエージェントのループを更新し、各ターンの終了時に変更をGitの作業ツリーにコミットするようにしました。これにより、バックグラウンドセッションのKeep/Undoアクションを削除し、変更されたファイルが作業セットにどのように表示されるかを簡素化できました。

  • バックグラウンドエージェント用の/スラッシュコマンド

    アップデート 1.109.5: プロンプトファイルフック、およびスキルが、チャット内のスラッシュコマンドとしてバックグラウンドエージェントで利用可能になりました。

  • バックグラウンドエージェントセッションの名前変更

    アップデート 1.109.5: バックグラウンドエージェントセッションの名前を変更して、より簡単に追跡できるようになりました。

    Screenshot showing support for renaming background agent sessions

エージェントセッションのウェルカムページ (実験的機能)

設定: workbench.startupEditor VS Codeで開く VS Code Insidersで開く

最後になりますが、新しいウェルカムページを実験しており、それを素晴らしいものにするためにあなたの助けが必要です。複数のエージェントが並行して動作している場合、最近のセッションを追跡することが重要になります。新しいウェルカムページは、エージェントセッションを前面に表示します。

Screenshot showing the Agent Sessions Welcome Page with recent sessions, quick actions, and an embedded chat widget.

workbench.startupEditor VS Codeで開く VS Code Insidersで開く agentSessionsWelcomePage に設定して、ウェルカムページをスタートアップエディターとして有効にします。感想をお寄せいただき、vscodeリポジトリでフィードバックを送ってください!

エージェントのカスタマイズ

AIがコードベースとどのように連携するかを形成し、チーム全体で共有します。エージェントスキルにより、ドメイン専門知識を再利用可能なワークフローにパッケージ化し、組織全体の指示で一貫性を確保し、新しいコントロールでエージェントがいつどのように呼び出されるかを細かく制御できます。

エージェントフック (プレビュー)

設定: chat.hooks.enabled VS Codeで開く VS Code Insidersで開く

アップデート 1.109.3: フックを使用すると、エージェントセッション中の重要なライフサイクルポイントでカスタムシェルコマンドを実行できます。エージェントの動作をガイドする命令やカスタムプロンプトとは異なり、フックはコードを決定論的かつ確実に実行します。セキュリティポリシーの強制、コード品質チェックの自動化、監査証跡の作成、プロジェクト固有のコンテキストの注入などに使用してください。

VS Codeは、ツール呼び出しをインターセプトするための PreToolUsePostToolUse、セッションライフサイクル用の SessionStartStop、ネストされたエージェントの使用を追跡するための SubagentStartSubagentStop など、セッション中の特定のポイントで発生する8つのフックイベントをサポートしています。

Screenshot showing hook configuration Quick Pick.

VS CodeはClaude CodeやCopilot CLIと同じフック形式を使用しているため、ツール間で既存のフック設定を再利用できます。

始めるには、チャットで /hooks スラッシュコマンドを使用して新しいフックを設定するか、フックファイルを自分で作成します。例えば、ファイル編集のたびにリンターを実行する PreToolUse フックを作成したり、危険なターミナルコマンドが実行される前にブロックしたりできます。

ドキュメントでエージェントフックの詳細をご覧ください。

スキルをスラッシュコマンドとして使用

エージェントスキルが、プロンプトファイルとともに、チャットのスラッシュコマンドとして利用可能になりました。チャット入力で / を入力すると利用可能なすべてのスキルとプロンプトが表示され、スキルを選択してすぐに呼び出すことができます。コマンドの後に /webapp-testing for the login page/github-actions-debugging PR #42 のように、追加のコンテキストを加えることができます。

デフォルトでは、すべてのスキルが / メニューに表示されます。各スキルファイル内の user-invocable および disable-model-invocation フロントマタープロパティを使用して、各スキルへのアクセス方法を制御できます。

  • user-invocable: false に設定すると、モデルには自動的に読み込ませつつ、メニューからスキルを非表示にできます。
  • disable-model-invocation: true に設定すると、メニューにスキルを表示しつつ、モデルが独自に読み込むのを防ぐことができます。

ドキュメントでスキルをスラッシュコマンドとして使用する方法の詳細をご覧ください。

/init でAIのためのワークスペースをセットアップ

copilot-instructions.mdAGENTS.md のような常時有効なカスタム命令を使用することで、AIがプロジェクトのコーディング規則に従うようにできます。

コードベースに基づいた初期の命令セットでプロジェクトを準備するには、チャットで /init スラッシュコマンドを使用して、ワークスペースの命令を生成または更新できるようになりました。

/init を実行すると、エージェントはワークスペース内の既存のAI規則(copilot-instructions.mdAGENTS.md など)を検出し、プロジェクト構造やコーディングパターンを分析して、プロジェクトに合わせた包括的なワークスペース命令を生成します。/init コマンドは寄稿されたプロンプトファイルとして実装されているため、元のプロンプトを変更することで動作をカスタマイズできます。

エージェントスキルが一般利用可能に

設定: chat.useAgentSkills VS Codeで開く VS Code Insidersで開く , chat.agentSkillsLocations VS Codeで開く VS Code Insidersで開く

エージェントスキルが一般的に利用可能になり、デフォルトで有効になりました。スキルは、AIが高品質な出力を生成するのを支援するために、専門的な能力、ドメイン知識、洗練されたワークフローを提供します。各スキルフォルダーには、テスト戦略、API設計、パフォーマンス最適化などの特定のドメインに対するテスト済みの命令が含まれています。

プロンプトファイル、命令、またはカスタムエージェントを管理するのと同じ方法で、VS Codeでスキルを管理できるようになりました。Chat: Configure Skills コマンドを使用して利用可能なすべてのスキルを表示するか、Chat: New Skill File を使用してワークスペースやユーザーホームに新しいスキルを作成してください。

Screenshot showing the configure skills option in the Chat view.

デフォルトでは、VS Codeはワークスペースの .github/skills および .claude/skills フォルダー、またはユーザーホームの ~/.copilot/skills~/.claude/skills フォルダーでスキル定義を探します。VS Codeがスキルを探すべき場所を chat.agentSkillsLocations VS Codeで開く VS Code Insidersで開く 設定を使用して指定できます。

拡張機能の作成者は、拡張機能にスキルを含め、package.jsonchatSkills 貢献ポイントを使用して登録することで、拡張機能と共にスキルをパッケージ化して配布することもできます。

{
  "contributes": {
    "chatSkills": [
      {
        "path": "./skills/my-skill"
      }
    ]
  }
}

pathSKILL.md ファイルを含むディレクトリを指す必要があり、SKILL.md フロントマターの name フィールドは親ディレクトリ名と一致する必要があります。例えば、パスが ./skills/my-skill の場合、ディレクトリには name: my-skill をフロントマターに含む SKILL.md が必要です。必要なフォルダー構造については、エージェントスキルのドキュメントをご覧ください。

組織全体の指示

設定: github.copilot.chat.organizationInstructions.enabled VS Codeで開く VS Code Insidersで開く

以前、VS Codeはすでに組織レベルのカスタムエージェントのサポートを追加していました。今回のリリースでは、組織レベルのカスタム指示もサポートします。GitHub組織がCopilotのカスタム指示を設定している場合、それらはチャットセッションに自動的に適用され、チーム全体で一貫したガイドラインが確保されます。

この機能はデフォルトで有効になっています。 github.copilot.chat.organizationInstructions.enabled VS Codeで開く VS Code Insidersで開く false に設定することで、組織の指示を無効にできます。

ドキュメントでカスタム指示の詳細をご覧ください。

カスタムエージェントファイルの場所

設定: chat.agentFilesLocations VS Codeで開く VS Code Insidersで開く

プロンプトファイル、指示、スキルなどの他のカスタマイズファイルと同様に、VS Codeがカスタムエージェント定義 (.agent.md) を探す場所を設定できるようになりました。

デフォルトでは、VS Codeはワークスペースの .github/agents フォルダーでエージェントファイルを探します。新しい chat.agentFilesLocations VS Codeで開く VS Code Insidersで開く 設定を使用すると、検索対象のディレクトリを追加できるため、プロジェクト間でエージェントを整理して共有したり、ワークスペース外の中央の場所に保持したりすることが容易になります。

{
  "chat.agentFilesLocations": {
    "~/.vscode/agents": true,
    "shared/team-agents": true
  }
}

カスタムエージェントの呼び出し方法を制御

設定: chat.customAgentInSubagent.enabled VS Codeで開く VS Code Insidersで開く

カスタムエージェントは、フロントマターヘッダーで追加の属性をサポートするようになり、エージェントの呼び出し方法をより細かく制御できるようになりました。これは、エージェントのオーケストレーションを設定して複雑なタスクを確実に処理するために特に役立ちます。

  • user-invocable: チャット内のエージェントドロップダウンからエージェントを選択できるかどうかを制御します。false に設定すると、プログラム的に、またはサブエージェントとしてのみアクセス可能なエージェントを作成できます。

  • disable-model-invocation: 有効にした場合、他のエージェントがサブエージェントとして呼び出すことを防止します。ユーザーが明示的にトリガーするエージェントに対して便利です。

  • agents: 現在のエージェントが呼び出せるサブエージェントを制限します。指定した場合、エージェントはリストされたエージェントにのみタスクを引き渡すことができます。サブエージェントの呼び出しを有効にするには agent ツールを使用してください。

サブエージェントとしてのカスタムエージェントの使用は、現在も設定によって制御されています。 chat.customAgentInSubagent.enabled VS Codeで開く VS Code Insidersで開く を有効にして、サブエージェントとしてカスタムエージェントを有効にします。

---
name: my-internal-agent
user-invocable: false
---

This agent can only be invoked as a subagent

次の例は、Modify サブエージェントと Search サブエージェントのみを呼び出せるエージェントを示しています。

---
name: Foo
tools: ['agent']
agents: ['Modify', 'Search']
---

This agent can only use the Modify and Search subagents.

カスタムエージェントのマルチモデルサポート

カスタムエージェントは、フロントマターヘッダーで複数のモデルを指定できるようになりました。リスト内の最初の利用可能なモデルが使用され、優先モデルが利用できない場合のフォールバックオプションを提供します。

---
name: my-agent
model: ['Claude Sonnet 4.5 (copilot)', 'GPT-5 (copilot)']
---

This agent prefers Claude Sonnet 4.5 but falls back to GPT-5 if unavailable.

チャットのカスタマイズの診断

チャットのカスタマイズファイルは、ユーザープロファイル、ワークスペース、拡張機能、GitHub組織など、さまざまな場所から読み込まれます。カスタムエージェント、プロンプト、指示、またはスキルの問題をトラブルシューティングする際、どのファイルが現在読み込まれており、読み込み中にエラーが発生したかどうかを判断するのが難しい場合があります。

新しい診断ビューは、現在読み込まれているすべてのカスタムエージェント、プロンプトファイル、指示ファイル、スキルを表示することで、チャットのカスタマイズ問題をトラブルシューティングするのに役立ちます。アクセスするには、チャットビューで右クリックし、Diagnostics を選択します。これにより、有効なすべてのカスタマイズファイル、読み込みステータス、読み込み中に発生したエラーをリストするMarkdownドキュメントが開きます。

Screenshot showing the Chat Customization Diagnostics view with loaded agents, prompts, instructions, and skills.

言語モデルエディタ

VS Codeの言語モデルエディターは、チャットで使用される言語モデルを管理および設定するための集中インターフェースを提供します。今回のイテレーションでは、このエクスペリエンスをさらに強化しました。

  • プロバイダーごとに複数の設定: 同じモデルプロバイダーに対して複数の設定を作成し、それぞれ異なるAPIキーを持たせることができます。これは、個人用アカウントと仕事用アカウントを分離したり、プロジェクトごとに異なるAPIキーを使用したりするのに便利です。例えば、個人用APIキーを持つGeminiの設定と、チームのAPIキーを持つ別のGemini設定を持つことができます。

    Screenshot showing multiple Gemini groups with different configurations.

  • Azureプロバイダーからのモデル設定: Azureモデルを設定する際、VS Codeは chatLanguageModels.json 設定ファイルを開き、スニペットテンプレートを挿入します。このスニペットには、モデルID、名前、エンドポイントURL、トークン制限などの必要なプロパティが含まれています。追加したいモデルごとに値を入力できます。

  • プロバイダーグループの管理: 設定アクションを選択して既存のプロバイダーグループを設定し、APIキーを更新できます。削除アクションを使用して、プロバイダーグループ全体を削除することもできます。

  • その他のUI改善: モデルの表示切り替えのためのキーボードアクセス、コンテキストメニューアクション、一括操作のための複数選択など、いくつかのユーザビリティの向上。

  • 言語モデル設定ファイル: モデル設定は、専用の chatLanguageModels.json ファイルに保存されるようになりました。言語モデルエディターの右上隅にあるファイルアイコンを選択して、このファイルを直接開きます。これにより、モデル設定の確認、編集、共有が容易になります。

    Screenshot showing the file icon in the Language Models editor to open the configuration file.

  • モデルプロバイダー設定UI: モデルプロバイダーは設定スキーマを宣言でき、VS Codeはユーザーが設定を入力するためのUIを提供します。この新しい提案APIの詳細については、チャットモデルプロバイダーの設定を参照してください。GitHub Copilot Chat拡張機能からの既存のモデル設定は自動的に移行されます。

言語モデルの設定

設定: github.copilot.chat.implementAgent.model VS Codeで開く VS Code Insidersで開く , inlineChat.defaultModel VS Codeで開く VS Code Insidersで開く

  • 計画実装用のデフォルトモデル (実験的機能)

    Planエージェントの実装ステップに使用するデフォルト言語モデルを設定できるようになりました ( github.copilot.chat.implementAgent.model VS Codeで開く VS Code Insidersで開く )。設定を空のままにすると、デフォルトモデルが使用されます。モデルの値は、Model Name (vendor) 形式の修飾モデル名にする必要があります(例:GPT-5 (copilot)Claude Sonnet 4.5 (copilot))。

    Screenshot showing the Settings editor with the github.copilot.chat.implementAgent.model setting.

  • インラインチャット用のデフォルトモデル

    デフォルトでは、エディターのインラインチャットは、選択されたプロバイダーのデフォルトモデルを使用します。これにより、拡張機能はインラインチャットのシナリオに特化したモデルを提供できます。

    別のモデルを使用したい場合は、 inlineChat.defaultModel VS Codeで開く VS Code Insidersで開く 設定で設定できます。この設定を使用すると、インラインチャット用の一貫したデフォルト言語モデルを選択できるため、毎回手動で選択することなく、好みのモデルを自動的に使用できます。

    Screenshot showing the Settings editor with the inlineChat.defaultModel setting and a dropdown list of available language models.

  • エージェント引き渡し用の言語モデルを指定

    エージェントの引き渡しは、オプションの model パラメーターをサポートするようになり、引き渡し実行時に使用する言語モデルを指定できるようになりました。これにより、.agent.md ファイルから直接、特定のエージェントワークフローに使用するモデルを制御できます。

    モデルの値は、Model Name (vendor) 形式の修飾モデル名にする必要があります(例:GPT-5 (copilot)Claude Sonnet 4.5 (copilot))。

    Screenshot showing an agent handoff configuration in an agent file with the model parameter specified.

エージェントカスタマイズスキル (実験的機能)

設定: chat.agentCustomizationSkill.enabled VS Codeで開く VS Code Insidersで開く

新しい agent-customization スキルは、AIコーディング体験をカスタマイズする方法をエージェントが学習するためのものです。カスタムエージェント、手順、プロンプト、スキルの作成について質問すると、エージェントはこのスキルを自動的に読み込み、正確なガイダンスを提供します。

このスキルでカバーされる内容は以下の通りです

  • カスタムエージェント - ツール、モデル、動作のフロントマター設定を含む .agent.md ファイルの作成
  • カスタム手順 - コンテキスト固有のガイダンスのための applyTo パターンを含む .instructions.md ファイルの作成
  • プロンプトファイル - 一般的なタスクのための再利用可能な .prompt.md テンプレートの構築
  • スキル - SKILL.md ファイルへのドメイン知識のパッケージ化
  • ワークスペースの手順 - copilot-instructions.md および AGENTS.md でプロジェクト全体の規約を設定

エージェントの拡張性

今回のリリースでは、Claude Agentのサポートが追加されました。これにより、AnthropicのAgent SDKを直接活用できるようになったほか、チャット内でインタラクティブな視覚化をレンダリングするMCPアプリ、さらにはエージェントの機能を拡張する新しいプロバイダー機能が提供されます。

Claudeとの互換性

VS CodeとClaudeの両方を使用している場合、個別の設定ファイルを管理する必要はもうありません。VS CodeはClaudeの設定ファイルを直接読み取れるようになったため、エージェント、スキル、手順、フックを重複させることなく両方のツールで共有できます。

VS Codeは以下のClaudeファイルパスを検出します

  • 手順: ワークスペースルートの CLAUDE.md.claude/CLAUDE.md、および ~/.claude/CLAUDE.md。VS Codeは .claude/rules フォルダー内の手順ファイルも読み取ります。詳細は カスタム手順 を参照してください。
  • エージェント: .claude/agents フォルダー内の .md ファイル(Claudeのサブエージェント形式に従います)。詳細は カスタムエージェントのファイル場所 を参照してください。
  • スキル: .claude/skills および ~/.claude/skills フォルダー内のスキル定義。詳細は エージェントスキル を参照してください。
  • フック: .claude/settings.json および ~/.claude/settings.json 内のフック設定。詳細は エージェントフック を参照してください。

この互換性は手順、エージェント、スキル、フック全体に広がるため、複数のAIツールを使用しているチームは単一の設定ファイルセットを共有できます。

エージェントオーケストレーション

エージェントオーケストレーションは、複数の専門エージェントが連携して共通の目標を達成する複雑なAIワークフローを構築するための強力なパターンです。すべてを単一のエージェントに任せるのではなく、計画、実装、コードレビュー、調査といった特定の役割に最適化された専用エージェントにタスクを分散させます。

このアプローチにはいくつかの主な利点があります

  • コンテキスト効率: 各サブエージェントは専用のコンテキストウィンドウ内で動作するため、コンテキストオーバーフローを防ぎます
  • 専門化: タスクに応じて最適化された異なるモデルを各エージェントで使用できます
  • 並列実行: 独立したタスクは複数のサブエージェント間で並列に実行できます

複数の専門エージェントが連携してタスクを完了するオーケストレーションシステムを示す図。 画像出典 https://github.com/ShepAlderson/copilot-orchestra (作成者: @ShepAlderson)

VS Codeには、カスタムエージェントサブエージェント、そしてエージェントの呼び出し方法に対する詳細な制御を備えた、エージェントオーケストレーションフローをセットアップするためのすべての構成要素が揃っています。

コミュニティでは、すぐに使用したりニーズに合わせて調整したりできる優れたエージェントオーケストレーションシステムの例が多数作成されています。

  • Copilot Orchestra - 計画、実装、コードレビューの各サブエージェントを完全な開発サイクルを通じて編成する「Conductor(指揮者)」を備えたマルチエージェントシステム

  • GitHub Copilot Atlas - 計画担当の「Prometheus」、調査担当の「Oracle」、実装担当の「Sisyphus」、迅速なコードベース発見のための「Explorer」といった専門エージェントを擁する拡張オーケストレーションシステム

Claude Agent (プレビュー)

今回のリリースでは、Claude Agentのサポートをプレビュー版として導入します。これにより、GitHub Copilotサブスクリプションに含まれるClaudeモデルを使用して、Claude Agent SDKにタスクを委任できるようになります。

Screenshot showing Claude agent next to Local, Background & Cloud in the session target picker.

この統合にはAnthropicの公式Claude Agentハーネスが使用されており、他のClaude Agent実装と同じプロンプト、ツール、全体的なアーキテクチャを共有しています。Claude Agent SDKの詳細については、Anthropicのドキュメントをご覧ください。

この統合は現在活発に開発中であり、今後数ヶ月でさらなる機能と改善を追加する予定です。その間、VS CodeでClaude Agentをどのように使用しているか、次にどのような機能を見たいかについて、ぜひフィードバックをお寄せください。GitHubからお気軽にご意見をお聞かせください!

Anthropicモデル

設定: github.copilot.chat.anthropic.thinking.budgetTokens VS Codeで開く VS Code Insidersで開く , github.copilot.chat.anthropic.toolSearchTool.enabled VS Codeで開く VS Code Insidersで開く , github.copilot.chat.anthropic.contextEditing.enabled VS Codeで開く VS Code Insidersで開く

VS CodeにおけるAnthropicモデルのサポートにいくつかの改善を行いました。

  • インターリーブ思考(Thinking)を備えたMessages API: Anthropicモデルは、インターリーブ思考のサポートを含む Messages API を使用するようになりました。これにより、Claudeはツール呼び出しの合間に推論を行うことができ、複雑で段階的なタスクにおいて、より思慮深くコンテキストを考慮した応答を提供します。思考の予算(トークン数)は github.copilot.chat.anthropic.thinking.budgetTokens VS Codeで開く VS Code Insidersで開く 設定で調整するか、`0` に設定して拡張思考を完全に無効にできます。

  • ツール検索ツール: ツール検索ツール を有効にしました。これにより、利用可能な膨大なツールの中から、Claudeがタスクに最も関連性の高いツールを発見・選択しやすくなります。この機能は github.copilot.chat.anthropic.toolSearchTool.enabled VS Codeで開く VS Code Insidersで開く 設定で切り替えることができます。

  • コンテキスト編集(実験的): より長い会話を効率的に管理するための コンテキスト編集 のサポートを追加しました。この機能は過去のターンからのツール結果や思考トークンをクリアし、要約を先延ばしにしてチャットセッション内のコンテキストをより長く維持するのに役立ちます。 github.copilot.chat.anthropic.contextEditing.enabled VS Codeで開く VS Code Insidersで開く 設定を有効にしてお試しください。

MCPアプリのサポート

このリリースではVS Codeに MCPアプリ のサポートを追加しました。MCPアプリを使用すると、サーバーはクライアント上でリッチでインタラクティブなUIを表示できます。

アプリはサーバーから返されると自動的に表示されます。MCPサーバー開発者の方は、以下を確認してMCPアプリの詳細を学習できます。

Screenshot showing an interactive flame graph visualization rendered by an MCP App.

MCPパッケージ用のカスタムレジストリベースURLのサポート

VS CodeはMCPサーバーマニフェストファイルの registryBaseUrl プロパティをサポートするようになりました。これにより、組織は社内のAzure DevOpsフィードやカスタムPyPIリポジトリなど、プライベートまたは代替のパッケージレジストリからMCPサーバーを展開できます。

エージェントの最適化

より賢いコンテキスト、より速い検索、より良い結果を。Copilot Memoryにより、エージェントはセッション間で重要な情報を記憶します。外部インデックス機能は、GitHub以外のワークスペースにも高速なセマンティック検索をもたらします。また、エージェントが必要に応じて(許可を得た上で)ワークスペース外のファイルを読み取ることも可能になりました。

Copilot Memory (プレビュー)

設定: github.copilot.chat.copilotMemory.enabled VS Codeで開く VS Code Insidersで開く

AIに対して繰り返し同じコンテキストを提供していることに気付いた場合、Copilot Memory を使用して重要な情報を保存し、セッション間で呼び出すことができます。

新しいメモリツールにより、チャットはCopilot Memoryに直接アクセスして更新できるようになりました。これにより、エージェントは保存されたメモリから関連するコンテキストを取得し、作業中に新しい学習内容を保存できます。 github.copilot.chat.copilotMemory.enabled VS Codeで開く VS Code Insidersで開く を `true` に設定して、メモリツールを有効にしてください。

メモリツールは、情報の特定の断片をメモリとして保存すべきタイミング(「疑問がある場合は常に確認の質問をする」など)と、その応答を知らせるために関連するメモリを取得すべきタイミングを認識します。

Screenshot showing the memory tool in chat with a list of stored memories and a request to always ask clarifying questions when in doubt.

すべてのメモリの表示と管理は、GitHubのCopilot設定から行えます。

GitHub以外のワークスペースのための外部インデックス(プレビュー)

設定: github.copilot.chat.advanced.workspace.codeSearchExternalIngest.enabled VS Codeで開く VS Code Insidersで開く

GitHubでホストされていないワークスペースでも、エージェント使用時にコード検索を高速化するためにリモートインデックス作成ができるようになりました。GitHub以外のワークスペースで #codebase を使用すると、VS Codeがコードベースのインデックスを作成し、迅速なセマンティック検索を可能にします。これにより、GitHubホスト型リポジトリと同等の強力なコード検索機能が提供されます。

インデックスは最初のリクエスト時に構築され、リポジトリのサイズやネットワーク接続によっては数分かかる場合があります。それ以降のリクエストは、キャッシュされたインデックスを使用するため非常に高速になります。インデックスは、ファイルを変更して保存するたびに自動的に更新されます。

今後数週間かけて、外部インデックス作成機能を段階的に展開します。GitHubでホストされているワークスペースはすでにリモートインデックス作成をサポートしており、最初のリクエスト時にインデックスを構築するための負荷の高い呼び出しは必要ありません。

ワークスペース外のファイルの読み取り

エージェントは、あなたの許可を得ることで、現在のワークスペース外のファイルを読み取り、ディレクトリを一覧表示できるようになりました。以前はアクセスが自動的に拒否されていましたが、これからはエージェントが外部のファイルやフォルダーへのアクセスを必要とする際、VS Codeがリクエストを許可するか拒否するかを尋ねるプロンプトを表示します。

また、同じフォルダーの下での将来の読み取りに対して繰り返しプロンプトが表示されないよう、セッション全体でアクセスを許可することもできます。

Screenshot showing a prompt asking the user to allow or deny access to read files outside the workspace.

パフォーマンスの向上

今回のイテレーションでは、数多くのパフォーマンス改善を行いました。

  • 大規模なチャット: 長いチャット会話の読み込みとスクロールがスムーズになりました。また、会話の永続化方法を最適化し、全体的な信頼性を向上させました。

  • 並列依存タスク: エージェントを介してタスクを実行する際、依存タスクが逐次処理ではなく並列処理されるようになりました。これにより、独立した複数のビルドステップを持つプロジェクトのビルド時間を大幅に短縮できます。違いを確認するには、当社の microsoft/vscode リポジトリ をご覧ください!

エージェントのセキュリティと信頼

自信を持ってエージェントコマンドを実行しましょう。新しいターミナルサンドボックスはエージェント実行コマンドのファイルおよびネットワークアクセスを制限し、自動承認ルールは安全な操作の確認をスキップします。また、プレゼンテーションが改善され、何がなぜ実行されているかが正確に表示されるため、常にあなたが管理権限を保持します。

ターミナルサンドボックス(実験的)

設定: chat.tools.terminal.sandbox.enabled VS Codeで開く VS Code Insidersで開く , chat.tools.terminal.sandbox.linuxFileSystem VS Codeで開く VS Code Insidersで開く , chat.tools.terminal.sandbox.macFileSystem VS Codeで開く VS Code Insidersで開く , chat.tools.terminal.sandbox.network VS Codeで開く VS Code Insidersで開く

エージェントはあなたのユーザーアカウントと同じ権限を持っています。エージェントが実行するターミナルコマンドに関連するリスクを軽減するために、実験的なターミナルサンドボックス機能を導入しました。ターミナルサンドボックスは、ファイルシステムへのアクセスをワークスペースフォルダーのみに制限し、ネットワークアクセスも信頼できるドメインのみに制限できます。

: ターミナルサンドボックスは現在macOSとLinuxでのみサポートされています。Windowsではサンドボックス設定は影響しません。

ターミナルサンドボックスを有効にするには、 chat.tools.terminal.sandbox.enabled VS Codeで開く VS Code Insidersで開く 設定を `true` にします。

サンドボックスが有効な場合

  • コマンドはデフォルトでカレントワーキングディレクトリに対する読み取りおよび書き込みアクセス権を持ちます
  • 制御された環境内で動作するため、コマンドは標準の確認ダイアログなしで実行されます
  • ネットワークアクセスはデフォルトですべてのドメインに対してブロックされます

ターミナルサンドボックスの設定方法については、ドキュメントをご覧ください。

ターミナルツールライフサイクルの改善

不適切なバックグラウンドターミナルの動作に関する問題を解決するため、今回のリリースでいくつかの変更が行われました。

  • ターミナルツール呼び出しを手動でバックグラウンドにプッシュできるようになり、エージェントは他の作業を続行できるようになりました。

    Screenshot showing the button with the play icon that allows the agent to continue with that command running in the background.

  • ターミナルツール呼び出しが行われる際、エージェントが新しい timeout プロパティを埋めることが必須となりました(0はタイムアウトなしを意味します)。これにより、予期しない事態が発生した際にエージェントに制御を戻すためのエスケープが確保されます。

  • 新しい awaitTerminal ツールにより、エージェントはバックグラウンドターミナルの完了を待機できるようになりました。これも timeout プロパティを必要とします。モデルがこのツールを活用すれば、バックグラウンドコマンドの終了を待つために以前使用されていた echo "successful"sleep n の呼び出しを防ぐことが期待されます。

  • 新しい killTerminal ツールにより、エージェントはバックグラウンドターミナルを強制終了して後片付けができるようになりました。これは、サーバーコマンドの停止など、エージェントが遠回りな方法でプロセスを強制終了していた状況を防ぐことを目的としています。

  • カレントワーキングディレクトリの扱いに変更がありました。アクティブな非バックグラウンドターミナルは常に現在のワーキングディレクトリを保持しますが、バックグラウンドターミナルは常にワークスペースディレクトリで開始されます。

ターミナルの自動承認

設定: chat.tools.terminal.enableAutoApprove VS Codeで開く VS Code Insidersで開く この設定は組織レベルで管理されています。変更するには管理者に連絡してください。

ターミナルの自動承認が有効な場合、以下のコマンドはデフォルトで自動承認されるようになりました( chat.tools.terminal.enableAutoApprove VS Codeで開く VS Code Insidersで開く この設定は組織レベルで管理されています。変更するには管理者に連絡してください。

  • Set-Location
  • dir
  • od
  • xxd - フラグおよび単一の入力ファイル
  • docker - すべての安全なサブコマンド
  • npm, yarn, pnpm - すべての安全なサブコマンド

ターミナルの強化

よりスムーズで高性能なターミナルを実現しました。チャット内のターミナルコマンドには、構文の強調表示やワーキングディレクトリなど、よりリッチな詳細情報が表示されるようになりました。Kittyキーボードプロトコルのサポートによりターミナルアプリでのキー操作が改善され、新しいオプションでスティッキースクロールのカスタマイズや制限付きワークスペースでのターミナル使用が可能になりました。

スティッキースクロールからの選択的除外

設定: terminal.integrated.stickyScroll.ignoredCommands VS Codeで開く VS Code Insidersで開く

以前は clear コマンドなど、不要な場面でもコマンドがスティッキースクロールに表示されていました。今回のリリースから、どのコマンドを無視するかをカスタマイズできるようになり、copilotclaudecodexgemini などの一般的なエージェントCLI(通常バッファで実行されるもの)がすでに含まれています。

winptyサポートの削除

node-pty からwinptyのサポートが削除されました。これにより、Windows 10バージョン1809(2018年秋)より前のWindowsバージョンではターミナルが機能しなくなります。ConPTY はターミナルのための最新メカニズムであるため、新しいバージョンのWindows 10へのアップグレード、あるいはWindows 11への移行を推奨します。"terminal.integrated.windowsUseConptyDll": true を設定することでターミナルが機能する場合がありますが、これは現在実験的なものであることに注意してください。

制限付きワークスペースでのターミナル起動を許可

設定: terminal.integrated.allowInUntrustedWorkspace VS Codeで開く VS Code Insidersで開く

ワークスペースの信頼が与えられていない場合、.env ファイルを通じて変数を設定するなど、シェルがコードを実行する攻撃からユーザーを保護するためにターミナルの起動がブロックされます。セキュリティ意識の高いユーザーはこれを防ぐようにシェルを設定することが多いため、制限付きワークスペースでもターミナルの起動を許可する新しいオプトイン設定を追加しました。

新しいVT機能

設定: terminal.integrated.enableKittyKeyboardProtocol VS Codeで開く VS Code Insidersで開く

Kittyキーボードプロトコル が実装され、今回のリリースで安定版に展開されます。この機能は、従来のキー入力エンコード方法における多くの制限を修正することを目的としています。

  • AltやCtrlだけでなく、より多くの修飾キーや複数の修飾キーの組み合わせをエンコード可能
  • キーの押下および解放イベントと、リピート入力(キーを押し続ける)の両方を処理可能
  • Escapeキーなど、通常 ESC (`\x1b`) シーケンスを送信し、すべてのエスケープシーケンスの開始となるようなキー入力を区別可能

これにはターミナルで実行されるプログラム側がプロトコルをサポートし、実行時に有効化をリクエストする必要があります。すぐに実感できる大きな利点は、/terminalSetup のようなコマンドを実行しなくても、一部のエージェントCLIでshift+enterが機能するようになることです。

設定: terminal.integrated.enableWin32InputMode VS Codeで開く VS Code Insidersで開く (実験的)

上記と同様に、win32入力モード の実験的バージョンもあります。これはWindowsとConPTYバックエンド向けにチューニングされています。今回のリリースではオフのままですが、問題があればお知らせください。

その他

コーディングとエディター

小さな改善が積み重なり、利便性が向上しました。ダブルクリックで括弧や文字列の中身を選択。括弧一致色のカスタマイズ。特定ファイルへのスニペットのスコープ指定。TypeScriptシバン(shebang)の適切な検出。これらの集中した改善により、日々の編集作業が少しスムーズになります。

括弧一致のフォアグラウンドカラー

新しい editorBracketMatch.foreground カラーテーマトークンを使用して、一致する括弧の文字色をカスタマイズできるようになりました。以前は背景色(editorBracketMatch.background)と境界線色(editorBracketMatch.border)しかカスタマイズできませんでした。新しいカラートークンにより、実際の括弧文字の色を変更して、一致する括弧をより明確に際立たせることができます。

設定のデフォルトは null であり、括弧は通常のテキスト色を継承します。settings.jsonworkbench.colorCustomizations 配下で構成してください。

{
  "workbench.colorCustomizations": {
    "editorBracketMatch.foreground": "#ff0000"
  }
}

ダブルクリックによる括弧および文字列の中身の選択

開始括弧のすぐ後ろ、または終了括弧のすぐ前をダブルクリックすることで、内部のコンテンツをすべて選択できるようになりました。これは文字列でも機能します。開始引用符のすぐ後ろ、または終了引用符のすぐ前をダブルクリックして文字列の中身を選択できます。これにより、手動でカーソルを配置することなく、括弧や文字列内のコンテンツを選択、コピー、置換する迅速な方法が提供されます。

TypeScriptの命名提案

TypeScriptの命名提案は、既存の宣言を上書き入力する際にも機能するようになりました。以下の動画では、ユーザーが名前変更のリファクタリング機能を使用する代わりに、新しい識別子名を入力することで let index = 0;let chunkIndex = 0; に変更しています。次の編集提案では、Shift+Tab を使用して indexchunkIndex に名前変更することを提案します。

: この機能は現在TypeScriptでのみ利用可能です。

ゴーストテキストの視認性の向上

インライン提案(ゴーストテキスト)は、3文字未満の連続した非空白文字の短い提案を表示する際、点線の下線を表示するようになりました。この視覚的インジケーターにより、エディター上の実際のコードとゴーストテキストを区別しやすくなります。これは、提案が ) のように一文字で、既存のコードと混同しやすい場合に特に便利です。

Screenshot showing ghost text with a dotted underline for short suggestions.

スニペットのファイルパターン

include および exclude globパターン を使用して、スニペットが表示されるファイルを制御できるようになりました。これを使用してスニペットを特定のファイルやプロジェクトコンテキストに制限し、無関係なファイルに表示されないようにすることができます。

例えば、Travis CI設定ファイルにのみ表示されるスニペットを作成する場合:

{
  "Travis CI node_js": {
    "include": ".travis.yml",
    "prefix": "node",
    "body": ["language: node_js", "node_js:", "  - $1"],
    "description": "Node.js configuration for Travis CI"
  }
}

パターンにパス区切り文字が含まれている場合は絶対ファイルパスと一致し、含まれていない場合はファイル名のみと一致します。includeexclude の両方で、単一パターンまたはパターンの配列を使用できます。exclude を使用すると、スニペットの言語スコープと一致する場合でも、特定のファイルでスニペットが表示されないようにできます。

シバン(shebang)による言語検出の向上

VS Codeのシバンによる言語検出サポートが向上しました。特に、追加のフラグを持つ /usr/bin/env を使用するファイルにおいて顕著です。#!/usr/bin/env -S deno -A のようなシバンを持つファイルが、正しくTypeScriptとして検出されるようになりました。これにより、.ts ファイル拡張子がなくても、DenoやBunなどのランタイムを使用したTypeScriptで記述されたスクリプトに対してより良い言語サポートが提供されます。

ワークベンチと生産性

ウィンドウを切り替えることなくテスト、デバッグ、出荷が行えます。新しい統合ブラウザーにより、DevToolsや認証サポートを備えたlocalhostサイトをVS Code内で直接プレビューおよび検査できるようになりました。

統合ブラウザー(プレビュー)

設定: workbench.browser.openLocalhostLinks VS Codeで開く VS Code Insidersで開く , simpleBrowser.useIntegratedBrowser VS Codeで開く VS Code Insidersで開く , livePreview.useIntegratedBrowser VS Codeで開く VS Code Insidersで開く

VS Codeは以前から、開発中のlocalhostサイトなどを開くためのシンプルなブラウザー(Simple Browser)を搭載してきましたが、iframeに依存していたため、Webサイト認証ができない、GoogleやGitHub、Stack Overflowといった一般的なサイトが開けないなど、いくつかの制限がありました。

今回のリリースでは、VS Codeデスクトップ版向けにこれらの制限を克服する新しい統合ブラウザーを導入します。これにより、通常のブラウザーと同じように、Webサイトへのサインインやあらゆるページの閲覧が可能になります。

ハイライト

  • 永続データストレージ(構成可能なスコープ:グローバル、ワークスペース、またはインメモリ/一時的)
  • 要素をチャットに追加: 要素を選択し、エージェントに助けを求めるために送信
  • フル機能のDevTools
  • キーボードショートカット
  • ページ内検索

その他多数...

試用するには、Browser: Open Integrated Browser コマンドを実行します。統合ブラウザーをより広く使用したい場合は、 workbench.browser.openLocalhostLinks VS Codeで開く VS Code Insidersで開く を有効にして、localhostリンクを新しいブラウザーで直接開くようにします(上記参照)。

また、 simpleBrowser.useIntegratedBrowser VS Codeで開く VS Code Insidersで開く 設定を使用してSimple Browserを置き換えるか、 livePreview.useIntegratedBrowser VS Codeで開く VS Code Insidersで開く 設定を使用してLive Preview拡張機能から使用するように構成できます。

ワークスペースを開いた時のエディターの復元

設定: workbench.editor.restoreEditors VS Codeで開く VS Code Insidersで開く

以前は、VS Codeはワークスペースを再開するたびに開いているすべてのエディターを復元していました。新しい workbench.editor.restoreEditors VS Codeで開く VS Code Insidersで開く 設定を使用すると、ワークスペースを開く際にエディターを復元するかどうかを制御できます。この設定を無効にすると、VS Codeは前回のセッションのタブを再開するのではなく、クリーンなエディター領域で開始します。

: 変更が保存されていない(ダーティな)エディターは、データ損失を防ぐため、この設定に関係なく常に復元されます。

高度な設定

設定: workbench.settings.alwaysShowAdvancedSettings VS Codeで開く VS Code Insidersで開く

毎回 @tag:advanced フィルターを適用しなくても、設定エディターで常に高度な設定が表示されるようにVS Codeを構成できるようになりました。 workbench.settings.alwaysShowAdvancedSettings VS Codeで開く VS Code Insidersで開く 設定を有効にすると、高度な設定がデフォルトで表示されるようになります。

ドラッグアンドドロップによるプロファイルのインポート

.code-profile ファイルをVS Codeウィンドウにドラッグアンドドロップすることで、設定プロファイルをインポートできるようになりました。これは .code-workspace ファイルをドラッグアンドドロップするのと同様の体験を提供し、プロファイルの共有と適用を容易にします。

出力チャンネルフィルターの改善

出力パネルのフィルターがネガティブパターンと複数のフィルターをサポートしました。! を使用して特定の行を除外します(例:!debug で "debug" を含むすべての行を非表示)。また、コンマを使用して複数のパターンを組み合わせることで、より正確なフィルタリングが可能です。

ソースによる問題(Problems)のフィルタリング

問題パネルで、診断のソースまたはオーナーによるフィルタリングが可能になりました。これは、ビルドエラーなどの特定の種類の問題に焦点を当て、スペルチェッカーやリンターなどの他のソースからの診断を一時的に隠したい場合に便利です。例えば、フィルターボックスに source:ts と入力してTypeScriptの診断のみを表示したり、!source:cSpell を使用してスペルチェッカーの警告をすべて非表示にしたりできます。

拡張機能エディターが構成のデフォルトを表示

拡張機能エディターの機能貢献(Feature Contributions)タブに、拡張機能によって提供される構成のデフォルトが表示されるようになりました。これにより、言語固有のエディター構成など、拡張機能がどのようなデフォルト設定を提供しているかを簡単に確認できます。

Gitワークツリーにファイルを追加(実験的)

設定: git.worktreeIncludeFiles VS Codeで開く VS Code Insidersで開く

バックグラウンドエージェントを使用する際、変更を分離するためにGitワークツリーが作成されます。新しい git.worktreeIncludeFiles VS Codeで開く VS Code Insidersで開く 設定を使用すると、ワークツリー作成後にワークツリーフォルダーにコピーされる追加のファイルやglobパターンを指定できます。これは、プロジェクトがGitで無視(git ignored)されており、Gitリポジトリに含まれないファイル(例:ローカル設定ファイルやビルド成果物)に依存している場合に便利です。

SCMビューの「すべて折りたたむ」アクション

ソース管理(Source Control)ビューの変更セクションでファイルをツリーとして表示する際、ルートノードのコンテキストメニューから すべて折りたたむ アクションを実行し、展開されたすべてのディレクトリ構造を一度に折りたたむことができるようになり、大規模な変更セットをナビゲートしやすくなりました。

Git: 削除コマンド

新しい Git: Delete コマンドにより、現在開いているファイルに対してコマンドパレットから直接 git rm を実行できます。これにより、ワーキングディレクトリとGitインデックスの両方からファイルが削除され、エディターが閉じられます。git rm はコミットされていない変更がない、コミット済みのファイルに対してのみ成功するため、通常のファイル削除よりも安全な代替手段となります。

ブレイムエディター装飾のホバーを無効化

設定: git.blame.editorDecoration.hoverEnabled VS Codeで開く VS Code Insidersで開く

エディター内のインラインGitブレイム装飾にマウスを移動した際に表示されるホバーポップアップを無効化できるようになりました。 git.blame.editorDecoration.hoverEnabled VS Codeで開く VS Code Insidersで開く を `false` に設定すると、インラインのブレイム注釈を表示したまま、ホバーポップアップが表示されないようにできます。ポップアップが邪魔だと感じるが、ブレイム情報は一目で確認したい場合に便利です。

自動タスクのデフォルト無効化

設定: task.allowAutomaticTasks VS Codeで開く VS Code Insidersで開く

セキュリティを向上させ、ワークスペースを開く際に tasks.json で定義されたタスクが意図せず実行されるのを防ぐため、 task.allowAutomaticTasks VS Codeで開く VS Code Insidersで開く 設定はデフォルトで `on` ではなく `off` となりました。

以前の動作に戻すには、ユーザー設定で task.allowAutomaticTasks VS Codeで開く VS Code Insidersで開く を `on` に設定してください。

アクセシビリティの改善

アクセシビリティビューでの動的なチャット応答ストリーミングと思考の表示

アクセシビリティビューでは、AIモデルが生成するチャット応答コンテンツが動的にストリーミングされるようになりました。スクリーンリーダーユーザーは、手動で更新や再開を行わなくても、応答をリアルタイムで追跡できます。これには思考(Thinking)のコンテンツも含まれ、スクリーンリーダーの体験が視覚的な表示と一致するようになります。

アクセシビリティビューのカーソル位置の安定性

アクセシビリティビューでコンテンツが更新される(チャット応答のストリーミング中やターミナル使用中など)際、カーソル位置が安定するようになりました。これにより、スクリーンリーダーによるナビゲーションを中断させるフォーカスの変化が防止され、新しいコンテンツが追加されている間も自分のペースで読み進めることができます。

新しいチャットセッションのアラート(ARIA alert)

新しいチャットセッションが作成されると、スクリーンリーダーユーザーには新しいチャットコンテキストを通知するARIAアラートが送信されるようになりました。

アクセシビリティビューでのツール呼び出し情報の改善

アクセシビリティビュー内のツール呼び出しにはより完全な情報が含まれるようになり、スクリーンリーダーユーザーがAIエージェントによってどのようなアクションが実行されているかを理解しやすくなりました。

カーソル位置通知コマンド

スクリーンリーダーユーザーは、Ctrl/Cmd+Alt+Shift+G を使用して、現在の行と列の位置を素早く確認できるようになりました。

エンタープライズ向けの改善

VS Codeのエンタープライズ機能 について、ドキュメントで詳細を学ぶことができます。

GitHub組織ポリシーの適用強化

今回のリリースには、GitHub組織ポリシー適用の信頼性の向上が含まれています。複数のアカウントがサインインしている場合、ポリシーは優先されるGitHub Copilotアカウントに基づいて正しく適用されるようになりました。さらに、組織ポリシーは起動時にネットワークが一時的に利用できない場合でも一貫して適用されるようになり、接続状態に関係なく管理された制限が確実に機能するようになりました。

拡張機能とAPI

拡張機能作成者のための新しい構成要素。完成したクイック入力ボタンAPIにより、入力の配置やトグル状態をより詳細に制御できるようになりました。提案APIによりチャットモデルプロバイダーが構成スキーマを宣言可能になり、新しいチャットリソースプロバイダーにより、拡張機能が動的なプロンプト、エージェント、スキルを寄与できるようになりました。

GitHub Pull Requests

プルリクエストやIssueの作業、作成、管理を可能にするGitHub Pull Requests拡張機能で、さらなる進展がありました。

拡張機能の 0.128.0リリース向け変更ログ を確認して、リリース内容の詳細を確認してください。

クイック入力ボタン配置APIの完成

QuickPick または InputBoxbuttons プロパティを設定する際、新しい location プロパティを使用して各ボタンの場所を指定できるようになりました。これにより、ボタンを以下に配置できます。

  • Title: クイック入力の上のタイトル領域(指定しない場合のデフォルト)
  • Inline: 入力ボックスの右側にレンダリング
  • Input: 入力ボックス内の右側にレンダリング

クイック入力ボタントグルAPIの完成

QuickInputButtontoggle プロパティを { checked: boolean } に設定することで、クイック入力にトグルボタンを作成できるようになりました。トグルボタンはオン/オフ状態を維持し、新しい checked プロパティを使用して読み取りおよび更新が可能です。これは、機能の有効化/無効化、フィルターの適用、モードの切り替えなど、2つの状態を持つアクションに便利です。

提案API

チャットモデルプロバイダーの構成

チャットモデルプロバイダー拡張機能が languageModelChatProviders 貢献ポイントを通じて構成要件を宣言できるようにする新しい提案APIを導入しました。このAPIにより、VS Codeはユーザーが構成(APIキーやモデル設定など)を入力するための組み込みUIを提供し、この構成をAPIを介して拡張機能に渡します。

このアプローチは、将来のリリースで既存の managementCommand プロパティに置き換わる予定です。拡張機能がコマンドを通じて独自の構成UIを実装する代わりに、構成スキーマを宣言して、ユーザー体験はVS Codeに任せることができます。

VS Codeは、stringnumberboolean などの基本的なプロパティ型に対してネイティブなUIコントロールを提供します。arrayobject などの複雑な型については、VS Codeが対応する構成ファイルを開き、ユーザーがJSONエディターでスキーマの検証とIntelliSenseのサポートを受けながら構成を直接入力できるようにします。構成体験の詳細については、言語モデルエディター を参照してください。

シンプルな構成

APIキーのみが必要なプロバイダーの場合、構成は単純です。

{
  "contributes": {
    "languageModelChatProviders": [
      {
        "vendor": "my-provider",
        "displayName": "My Provider",
        "configuration": {
          "properties": {
            "apiKey": {
              "type": "string",
              "secret": true,
              "description": "API key for My Provider",
              "title": "API Key"
            }
          },
          "required": ["apiKey"]
        }
      }
    ]
  }
}

カスタムモデルによる高度な構成

カスタムエンドポイントを持つユーザー定義モデルをサポートするプロバイダーの場合、より複雑なスキーマを定義できます。

{
  "contributes": {
    "languageModelChatProviders": [
      {
        "vendor": "my-provider",
        "displayName": "My Provider",
        "configuration": {
          "properties": {
            "apiKey": {
              "type": "string",
              "secret": true,
              "description": "API key for authentication",
              "title": "API Key"
            },
            "models": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique model identifier"
                  },
                  "name": {
                    "type": "string",
                    "description": "Display name for the model"
                  },
                  "url": {
                    "type": "string",
                    "description": "Model endpoint URL"
                  },
                  "maxInputTokens": {
                    "type": "number",
                    "description": "Maximum input tokens supported by the model"
                  },
                  "maxOutputTokens": {
                    "type": "number",
                    "description": "Maximum output tokens supported by the model"
                  },
                  "toolCalling": {
                    "type": "boolean",
                    "description": "Whether the model supports tool calling"
                  },
                  "vision": {
                    "type": "boolean",
                    "description": "Whether the model supports vision capabilities"
                  }
                },
                "required": ["id", "name", "url", "maxInputTokens", "maxOutputTokens"]
              }
            }
          },
          "required": ["apiKey"]
        }
      }
    ]
  }
}

言語モデルチャットプロバイダーを登録すると、拡張機能はユーザーが提供した構成を受け取ります。

vscode.lm.registerLanguageModelChatProvider('my-provider', {
  provideLanguageModelResponse: (
    messages,
    options,
    extensionToken,
    configuration,
    token
  ) => {
    // configuration contains the values the user entered in VS Code's UI
    const apiKey = configuration.apiKey;
    const models = configuration.models;
    // Use configuration to make API calls...
  }
});

構成スキーマの secret プロパティは、フィールドが安全に保存され、UIでマスクされるべきであることを示します。VS Codeはこれらのフィールドに対して安全なストレージを自動的に処理します。

このAPIはまだ提案段階です。提案内容は以下で確認できます:vscode.proposed.lmConfiguration.d.ts

チャットプロンプトファイルAPI

拡張機能が動的なチャットリソースを寄与できるようにする新しい提案APIを導入しました。このAPIを使用すると、拡張機能はプログラムによってプロンプトファイル、カスタムエージェント、手順、スキルをユーザー定義ファイルと並べて表示させることができ、プロジェクトコンテキストに基づいたプロンプト生成や、外部リソースからのリソース取得といったシナリオを実現できます。

このAPIは ChatResource インターフェースと、各リソースタイプ向けのプロバイダー登録メソッドを導入します。

// Register a provider for skills
vscode.chat.registerSkillProvider({
  onDidChangeSkills: onDidChangeEvent,
  provideSkills(context, token): ChatResource[] {
    return [{ uri: vscode.Uri.parse('my-extension:/skills/debugging/SKILL.md') }];
  }
});

// Similar methods exist for other resource types:
// - registerCustomAgentProvider() for .agent.md files
// - registerInstructionsProvider() for .instructions.md files
// - registerPromptFileProvider() for .prompt.md files

このAPIはまだ提案段階です。提案内容は以下で確認できます:vscode.proposed.chatPromptFiles.d.ts

チャットアイテムコントローラーAPI

引き続き、チャットセッションアイテムAPI の反復作業を行いました。このAPIにより、拡張機能はVS Codeの組み込みチャットセッションビューにアイテムを寄与できます。

今回のイテレーションでは、以前のプロバイダーベースのモデルを置き換える新しいコントローラーベースのAPIを導入しました。コントローラーAPIにより、VS Codeが拡張機能から取得するのではなく、拡張機能からVS Codeへ変更をプッシュできるようになります。また、ChatSessionItems を管理オブジェクトにすることで、プロパティを更新するだけで変更をプッシュできるようになりました。

このAPIの使用方法を示す短い例を以下に示します。

import * as vscode from 'vscode';

export function activate(context: vscode.ExtensionContext) {
  // Create a new controller with a unique id
  const controller = vscode.chat.createChatSessionItemController(
    'myExtension.chatSessions',

    // Refresh function. This is invoked when the controller is registered and
    // when the user presses the refresh button.
    async (token: vscode.CancellationToken) => {
      // Fetch sessions from your backend/storage
      const sessions = await fetchSessionsFromBackend();

      // Create managed chat session items
      const items = sessions.map(session =>
        controller.createChatSessionItem(
          vscode.Uri.parse(`my-scheme://session/${session.id}`),
          session.title
        )
      );

      // Tell VS Code about these items by updating `controller.items`. They will now show
      // in the chat sessions UI
      controller.items.replace(items);

      // The chat session items are live. This means you can update them just by updating properties on them
      setTimeout(() => {
        const currentTime = new Date().toLocaleTimeString();
        for (const item of controller.items) {
          item.label = `${item.label} - ${currentTime}`;
        }
      }, 10000);
    }
  );

  // We can also listen for changes in a chat session item's archived state
  controller.onDidChangeChatSessionItemState(item => {
    console.log(`Session ${item.label} archived: ${item.archived}`);
  });
}

チャット出力レンダラーAPIの更新

引き続きチャット出力レンダラーAPIに取り組んでいます。このAPIにより、拡張機能はwebviewを使用してチャット応答内にカスタムインタラクティブコンテンツをレンダリングできます。

多くのバグ修正に加えて、Webview を直接渡すだけでなく、レンダラーを ChatOutputWebview として渡すようになりました。これにより、拡張機能はwebviewが破棄された時を監視し、関連するリソースをクリーンアップできるようになりました。webviewは、再び表示されるとVS Codeによって再作成されます。

このAPIの使用方法の詳細については、チャット出力レンダラーのサンプル拡張機能 を参照してください。

ポータブルモードの検出

新しい env.isAppPortable プロパティにより、拡張機能はVS Codeが ポータブルモード で実行されているかどうかを検出できます。ポータブルモードは、アプリケーションが data ディレクトリを含むフォルダーから実行される場合に有効になり、ホストシステムに痕跡を残さない自己完結型のインストールを可能にします。

if (vscode.env.isAppPortable) {
  // Running in portable mode - adjust behavior accordingly
}

このAPIはまだ提案段階です。提案内容は以下で確認できます:vscode.proposed.envIsAppPortable.d.ts


エンジニアリング

macOS用DMGイメージ

VS CodeはmacOS向けにDMGイメージを提供するようになり、ドラッグアンドドロップによるネイティブなインストール体験が可能になりました。イメージは、サポートされているすべてのアーキテクチャ向けに VS Codeウェブサイト から入手できます。

Screenshot showing the macOS DMG image mounted.

Windows 11コンテキストメニューの統合

コンテキストメニューをサポートしてVS Codeをインストールすると、Windows 11のファイルエクスプローラーでファイルやフォルダーを右クリックした際、最上位のコンテキストメニューにエントリーが追加され、VS Codeにアクセスするために その他のオプションを表示 を選択する必要がなくなりました。ユーザーインストールとシステムインストールの両方がこの新しいエントリーをサポートしています。

Screenshot showing VS Code in the Windows 11 context menu.

Windows用インストールレイアウトの再設計

アプリ内更新に関する長年の信頼性の問題を解決するため、Windows上のインストールレイアウトを再設計しました。最も顕著な点として、以前のバージョンではシステム終了、ユーザー介入、その他の予期しないイベントによって中断された場合に失敗し、VS Codeを壊れた状態のままにする可能性があったアトミックなファイル置換操作が行われていました。新しい実装は Chromiumの更新クライアント から着想を得ており、バージョン付きのパッケージパスを使用しています。

macOSにおける連続的な更新の回避

前の更新の適用が保留されている間に新しい更新が利用可能になった場合、VS Codeは前の更新を無効にして新しい更新の適用に進むようになり、ユーザーに2回アプリケーションの再起動を強制することを回避します。

GitHub Copilot拡張機能の非推奨化

GitHub Copilot拡張機能が非推奨となりました。すべてのAI機能はGitHub Copilot Chat拡張機能によって完全に提供されます。VS Codeを更新すると、非推奨のCopilot拡張機能は自動的にアンインストールされ、Copilot Chat拡張機能がインストールされたまま完全なCopilot体験を提供します。

Screenshot showing the deprecated Copilot extension and the active Copilot Chat extension.

npmパッケージからのcodiconの利用

Codiconは、VS Codeリポジトリに直接バンドルされるのではなく、@vscode/codicons npmパッケージを通じて利用され、ビルドプロセスの一環として組み込まれるようになりました。

注目すべき修正

  • vscode#276558 - editor.hover.enabledonModifierKeyPressed に設定されている場合、修飾キーを押してもホバーが即座にトリガーされない問題を修正
  • vscode#58814 - ターミナルプロセスへのファイル記述子のリーク

ありがとうございます

イシュートラッキング

イシュートラッキングへの貢献

プルリクエスト

vscodeへの貢献

vscode-copilot-chat への貢献

vscode-explorer-command への貢献

vscode-js-debug への貢献

vscode-python-environments への貢献

vscode-windows-registry への貢献

language-server-protocolへの貢献

python-environment-tools への貢献


新機能をすぐに試していただくことに感謝しています。頻繁にチェックして、新機能について学んでください。

以前の VS Code バージョンのリリースノートを読むには、code.visualstudio.comUpdates にアクセスしてください。

© . This site is unofficial and not affiliated with Microsoft.