日程Fit|「いつ空いてますか?」の往復はもう不要。候補日を選んでURLを送るだけ|登録不要|今すぐ無料で使う →

VS Code Agents windowで「!」からterminal commandを実行する方法と注意点

VS CodeのAgents windowでは、チャットメッセージの先頭に半角の!を付けると、AIへの通常のプロンプトではなく、続く文字列をterminal commandとして直接実行できます。たとえば、!git statusと入力すれば、エージェントに「Gitの状態を確認して」と依頼するのではなく、git statusコマンドそのものが実行されます。

テストやビルド、Gitの状態確認をチャット画面から素早く行える便利な機能ですが、入力内容によってはファイル削除や設定変更も実行できてしまいます。通常会話との違いを理解し、送信前にコマンドを確認することが重要です。

なお、2026年7月30日のGitHub公式まとめはVS Code 1.127~1.131を対象としていますが、!接頭辞によるコマンド実行が個別のリリースノートに登場したのはVS Code 1.129です。(The GitHub Blog)

日程Fit。無料・登録不要。「いつ空いてる?」を、ひとつのリンクで。リンクを送って、○△×でかんたん日程調整。無料で日程を作る。
目次

VS Code agent chatで!から始めるとterminal commandになる仕組み

Agents windowのチャット入力欄は、通常は自然言語でエージェントへ指示を出すために使います。

たとえば、次の入力は通常のプロンプトです。

現在のGitの状態を確認して、変更内容を説明してください

この場合、エージェントが文章の意味を解釈し、必要に応じてツールやコマンドを利用します。実行方法や結果の説明もエージェントが判断します。

一方、先頭に!を付けると、入力内容はterminal commandとして扱われます。

!git status

この場合、自然言語としての解釈を依頼するのではなく、git statusを直接実行する操作になります。VS Code 1.129の公式リリースノートでは、この機能はagent host sessionにおいて、通常のエディター画面とAgents windowの両方で利用できると説明されています。(Visual Studio Code)

違いを整理すると、次のとおりです。

入力例VS Codeでの扱い向いている用途
Gitの状態を確認してAIへの通常プロンプト結果の解釈や次の対応も任せたい場合
!git statusterminal commandの直接実行Gitの状態だけを素早く確認したい場合
!npm testterminal commandの直接実行テストをすぐに開始したい場合
!dotnet testterminal commandの直接実行.NETプロジェクトのテストを実行したい場合

!は、エージェントへの依頼を強調する記号ではありません。「この後ろをコマンドとして実行する」という操作の切り替えです。

対応バージョンと利用条件

2026年7月30日に公開されたGitHub Changelogは、同年7月に提供されたVS Code 1.127~1.131の更新内容をまとめたものです。ただし、!接頭辞によるterminal command実行は、2026年7月15日公開のVS Code 1.129で追加された機能として掲載されています。(The GitHub Blog)

そのため、「VS Code 1.127~1.131のまとめに書かれているから、1.127でも使える」とは限りません。利用時は、少なくともVS Code 1.129以降であることを確認してください。

主な前提条件は次のとおりです。

確認項目内容
VS Codeのバージョン1.129以降を使用する
セッション方式agent host sessionを使用する
利用画面Agents windowまたは対応するエディター内チャット
設定必要に応じてchat.agentHost.enabledを有効にする
組織管理管理対象端末では管理者によって設定が制御される場合がある

agent hostは段階的に展開されており、設定画面に表示されていても、利用環境や組織ポリシーによって選択できる機能が異なる可能性があります。chat.agentHost.enabledが組織によって管理されている場合は、利用者側で変更できません。(Visual Studio Code)

また、Agents window自体も公式ドキュメント上ではPreviewとして案内されています。今後、画面構成や設定名、対象エージェントが変更される可能性があるため、運用へ組み込む場合はVS Codeの更新情報も確認しておくと安全です。(Visual Studio Code)

Agents windowからterminal commandを実行する手順

VS Codeのバージョンを確認する

VS Codeのメニューからバージョン情報を開き、1.129以降になっているか確認します。

古いバージョンの場合は、更新を確認してアップデートします。企業や自治体などの管理端末では、管理者が配布するバージョンに固定されていることがあります。

Agents windowを開く

Agents windowは、VS Codeのタイトルバーにある「Open in Agents」から開けます。

コマンドパレットから次のコマンドを実行する方法もあります。

Chat: Open Agents Window

コマンドラインから開く場合は、次のように実行します。

code --agents

公式ドキュメントでは、Agents windowは通常のエディターとは別の専用ウィンドウとして開き、複数のワークスペースやエージェントセッションを管理できる画面として説明されています。(Visual Studio Code)

agent host sessionを開始する

Agents windowで新しいセッションを作成し、対象のワークスペースまたはリポジトリを選択します。

続いて、agent hostに対応したエージェントを選択します。表示されるエージェントの種類は、VS Codeのバージョン、契約、設定、組織ポリシーによって異なります。

既存の古いセッションでは機能しない場合があるため、設定を変更した後は新しいagent host sessionを作成して確認するのが確実です。

チャット入力欄の先頭に!を付ける

最初は、ファイルを書き換えない確認用コマンドで試します。

!git status

Git差分の概要だけを確認する場合は、次のように入力できます。

!git diff --stat

プロジェクトに応じて、テストや静的解析も実行できます。

!npm test
!npm run lint
!dotnet test
!python -m pytest

コマンドが成功するためには、対応するランタイムやパッケージ、スクリプトがプロジェクト側に用意されている必要があります。たとえば、npm testはNode.jsがインストールされ、package.jsonにテスト用スクリプトが定義されている環境で使用します。

!接頭辞が便利な場面

Gitの状態をすぐ確認したいとき

エージェントへ説明を依頼する必要がなく、現在のブランチや変更ファイルだけを確認したい場合に向いています。

!git status
!git branch --show-current

AIによる要約も必要な場合は、通常プロンプトを使います。

現在のGitの状態を確認し、コミット前に注意すべき変更を説明してください

直接実行とAIへの依頼を使い分けることで、不要なエージェント処理や長い回答を減らせます。

エージェントが修正したコードを検証するとき

Agents windowでコードを修正した後、そのままチャット入力欄からテストを実行できます。

!npm test
!dotnet test
!python -m pytest

単に成否を確認するだけなら!が効率的です。一方、失敗原因の分析や修正まで依頼する場合は、通常プロンプトの方が適しています。

テストを実行し、失敗した場合は原因を調査して修正してください

ビルドやlintを繰り返すとき

コード変更と検証を繰り返す作業では、短いコマンドをチャットから実行できると画面移動を減らせます。

!npm run build
!npm run lint

ただし、開発サーバーのように長時間動き続けるコマンドや、途中で対話入力を求めるコマンドは、統合ターミナルで実行した方が操作しやすい場合があります。

通常プロンプトとterminal commandを使い分ける判断基準

判断に迷った場合は、「結果だけ欲しいのか」「AIの判断や説明も欲しいのか」で分けると分かりやすくなります。

やりたいこと適した入力方法
Gitの状態だけ確認したい!git status
Gitの変更内容を説明してほしい通常プロンプト
テストを実行するだけでよい!npm testなど
テスト失敗の原因を調査してほしい通常プロンプト
決まったビルドを繰り返したい!npm run buildなど
最適なビルド方法から判断してほしい通常プロンプト
複数ファイルを修正してほしい通常プロンプト
バージョン番号だけ確認したい!node --versionなど

実行する内容が明確で、コマンドも自分で理解している場合は!、判断や分析をエージェントへ任せる場合は通常プロンプトと考えるとよいでしょう。

意図しないcommand実行を防ぐ注意点

通常の文章を!から始めない

次のような入力は、強調した文章ではなくコマンドとして扱われる可能性があります。

!このエラーの原因を説明してください

質問を強調したいだけでも、チャットメッセージの先頭に!を付けないでください。

通常の会話では、そのまま文章を入力します。

このエラーの原因を説明してください

確実にコマンドとして実行したい場合に限り、先頭1文字目へ半角の!を付けます。

送信前にコマンド全体を確認する

!を付けた入力では、Enterキーを押す前に次の点を確認してください。

  • 対象のワークスペースやリポジトリが正しいか
  • 削除、上書き、初期化を含むコマンドではないか
  • &&;などで複数コマンドが連結されていないか
  • リダイレクトによってファイルを書き換えないか
  • 本番環境や共有環境へ接続するコマンドではないか
  • アクセストークンやパスワードを引数に含めていないか

特に、Webサイトやチャットからコピーしたコマンドは、内容を理解せずに貼り付けないことが重要です。

対象のfolderやworktreeを確認する

Agents windowのセッションは、選択したワークスペース、フォルダー、リポジトリ、Git worktreeなどにひも付きます。別のセッションを開いている状態でコマンドを実行すると、想定とは異なる場所で処理する可能性があります。

ファイルを変更するコマンドの前に、次のような確認を行うと安全です。

!git status

macOS、Linux、PowerShellでは、現在位置の確認に次のコマンドも使えます。

!pwd

Windowsのコマンドプロンプトを使用している場合は、次のように確認します。

!cd

Agents windowの統合ターミナルは、現在のセッションのフォルダーまたはworktreeを作業ディレクトリとして開く設計です。セッションを切り替えた直後は、対象を再確認してから操作しましょう。(Visual Studio Code)

Changesパネルだけを安全確認に使わない

terminal commandは、内容によってファイルを作成、更新、削除できます。

公式ドキュメントでは、Agents windowの「Other Files」欄には、エージェントのファイル編集ツールによる変更が表示され、terminal commandによる変更は同欄に表示されないと説明されています。(Visual Studio Code)

そのため、書き込みを伴うコマンドを実行した後は、Changesパネルだけで判断せず、Gitでも確認してください。

!git status
!git diff

Git管理外のファイルについては、ファイルエクスプローラーや統合ターミナルでも確認します。

コマンドの危険度に応じた運用ルール

個人開発では自己判断で使えますが、チームや組織で利用する場合は、コマンドの種類ごとにルールを決めておくと事故を防げます。

危険度主な操作推奨ルール
状態確認、バージョン確認、差分表示!から直接実行してよい
テスト、lint、ビルド対象sessionを確認して実行する
やや高パッケージ追加、自動整形、コード生成実行前後にGit差分を確認する
ファイル削除、Git履歴変更、DB migration統合ターミナルで内容を再確認して実行する
非常に高本番deploy、データ削除、権限変更組織の承認手順に従い、チャットから直接実行しない

!接頭辞は、短い確認コマンドやテスト実行を効率化する用途に限定すると、安全性と利便性のバランスを取りやすくなります。

!を付けてもcommandが実行されない場合の確認事項

VS Code 1.129以降か確認する

GitHubの月次まとめは1.127~1.131を対象としていますが、!接頭辞の機能が追加されたのは1.129です。

1.127や1.128を使用している場合は、VS Codeを更新してください。(Visual Studio Code)

agent hostが有効か確認する

設定画面で、次の設定を検索します。

chat.agentHost.enabled

設定が無効になっている場合は、有効化してからagent host対応の新しいセッションを作成します。

設定項目がロックされている場合は、組織の管理者によって制御されている可能性があります。(Visual Studio Code)

agent host以外のsessionを使っていないか確認する

!による直接実行は、公式リリースノートではagent host session向けの機能として案内されています。

同じAgents window内でも、セッションの種類や選択したエージェントによって利用できる機能が異なる場合があります。現在のセッションで動作しない場合は、agent host対応のエージェントを選んで新規セッションを作成してください。

使用中のshellに合ったcommandか確認する

Agents windowから実行されるコマンドも、利用環境のシェルやOSの影響を受けます。

たとえば、ファイル一覧の表示方法は環境によって異なります。

!ls
!dir

macOSやLinux向けのコマンドをWindowsのコマンドプロンプトで実行したり、PowerShell専用コマンドをbashで実行したりすると失敗します。

!が認識されていてもエラーになる場合は、機能ではなくコマンド自体の互換性を確認してください。

まずは安全なcommandで動作を確認する

VS Code Agents windowの!接頭辞は、チャットとターミナルを行き来せず、テストや状態確認を素早く実行できる便利な機能です。

ただし、!から始まる入力は通常プロンプトではありません。コマンドとして直接実行する意図がある場合だけ使用してください。

最初は、テスト用のリポジトリや変更のない作業環境で、次のコマンドから確認するのが安全です。

!git status

動作しない場合は、VS Codeが1.129以降か、agent host sessionを使用しているか、chat.agentHost.enabledが有効かを順番に確認します。

通常の質問や作業依頼では!を付けず、実行内容を自分で理解している短いterminal commandだけに!を使うことが、意図しない操作を避ける基本です。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次