2026年5月5日にマージされた「Copilot CLI with Agent Host should respect user shell from terminal profile when running shell commands」は、VS Code上でMicrosoft Copilot/GitHub Copilot CLIをAgent Host経由で使う人にとって、シェル実行環境を確認すべき更新です。結論から言うと、ローカルのAgent Hostではterminal.integrated.agentHostProfile.<os>が優先され、未設定ならterminal.integrated.defaultProfile.<os>にフォールバックする流れになります。ただし、現時点で反映されるのは主にシェル実行ファイルのpathで、プロファイルのargsやenvはまだ反映されません。(GitHub)
Copilot CLIでGit Bash、PowerShell 7、zsh、fish、WSL系シェルなどを使い分けている場合、今回の変更は「Copilotが実行するコマンドが、普段自分が使っているシェルとずれる」問題を減らすものです。一方で、ログインシェル引数や環境変数に依存している開発環境では、設定確認をしないと期待どおりにPATHや初期化スクリプトが効かない可能性があります。(GitHub)
Microsoft Copilot documentation updateの要点:Agent Hostがターミナルプロファイルを参照する
今回の更新は、VS CodeのCopilot CLI/Agent Hostでシェルコマンドを実行する際に、ユーザーが設定したターミナルプロファイルをより尊重するための変更です。PR #313679は2026年5月5日にmicrosoft/vscodeのmainへマージされ、Issue #313160を解決する変更として扱われています。(GitHub)
変更前の課題は、Agent Host管理下のターミナルで使われるシェルがユーザー設定と一致しないことでした。Issueでは、たとえばWindowsでPowerShell 7やGit Bashを好んで使っていても、Agent Host側のシェルがハードコードされたシェルに寄ってしまう問題が説明されています。(GitHub)
| 観点 | 変更前に起きやすかったこと | 変更後の考え方 |
|---|---|---|
| Agent Hostのシェル選択 | ユーザーの既定ターミナルプロファイルと一致しない場合がある | Agent Host専用プロファイルを優先し、なければ既定プロファイルへフォールバック |
| Windows環境 | PowerShell 7やGit Bashを使っていても、別のPowerShell系シェルで実行される可能性がある | 設定したプロファイルの実行ファイルパスを参照しやすくなる |
| macOS/Linux環境 | zsh、fishなどの普段使いのシェルとCopilot実行環境がずれる可能性がある | 既定ターミナルプロファイルとの整合性を取りやすくなる |
| リモートAgent Host | ローカルのパスをそのまま使えない | リモート側の設定が必要になる |
VS CodeのCopilot CLIセッションは、Chatビューから作成・監視でき、ローカルマシン上で自律的に動作するエージェントとして説明されています。つまり、エージェントがコマンドを実行する「シェル」は、生成結果やビルド結果に直接影響します。(Visual Studio Code)
新しく確認すべき設定はterminal.integrated.agentHostProfile.<os>
今回の中心となる設定は、OS別のterminal.integrated.agentHostProfile.<os>です。Windowsならterminal.integrated.agentHostProfile.windows、macOSならterminal.integrated.agentHostProfile.osx、Linuxならterminal.integrated.agentHostProfile.linuxを使います。設定値は、既存のターミナルプロファイル名、またはインラインのプロファイルオブジェクトを受け付けます。未設定の場合はterminal.integrated.defaultProfile.<os>へフォールバックします。(GitHub)
{
"terminal.integrated.agentHostProfile.windows": "PowerShell 7"
}
すでにVS Codeの統合ターミナルで既定プロファイルを設定している場合は、まずterminal.integrated.defaultProfile.<os>を確認してください。VS Code公式ドキュメントでは、既定プロファイルはterminal.integrated.defaultProfile.*で手動指定でき、指定値は既存プロファイル名にする必要があると説明されています。(Visual Studio Code)
{
"terminal.integrated.profiles.windows": {
"PowerShell 7": {
"path": "C:\\Program Files\\PowerShell\\7\\pwsh.exe"
}
},
"terminal.integrated.defaultProfile.windows": "PowerShell 7",
"terminal.integrated.agentHostProfile.windows": "PowerShell 7"
}
Agent Hostでだけ別のシェルを使いたい場合は、defaultProfileとagentHostProfileを分けます。たとえば普段のターミナルはGit Bash、Copilot CLIのAgent HostではPowerShell 7を使いたい場合、次のように切り分けます。
{
"terminal.integrated.profiles.windows": {
"Git Bash": {
"source": "Git Bash"
},
"PowerShell 7": {
"path": "C:\\Program Files\\PowerShell\\7\\pwsh.exe"
}
},
"terminal.integrated.defaultProfile.windows": "Git Bash",
"terminal.integrated.agentHostProfile.windows": "PowerShell 7"
}
影響を受けやすいユーザーと確認ポイント
今回の更新は、すべてのCopilot利用者が急いで設定変更すべきものではありません。影響が大きいのは、Copilot CLIやVS CodeのAgent Hostにシェルコマンドを実行させる場面が多く、かつシェルごとにPATH、コマンド構文、初期化ファイル、ツールチェーンが異なる環境です。
| 対象ユーザー | 影響度 | 確認すべきこと |
|---|---|---|
| VS CodeでCopilot CLIセッションを使う開発者 | 高 | Copilotが使うシェルが普段のターミナルと一致するか |
| WindowsでGit Bash、PowerShell 7、WSLを使い分けている人 | 高 | agentHostProfile.windowsを明示するか |
| macOS/Linuxでzsh、fish、bashを切り替えている人 | 中 | defaultProfileに依存してよいか、Agent Host専用設定が必要か |
| チームでCopilot CLIを標準化している管理者 | 中 | セットアップ手順にシェル確認を含めるか |
| SSH/tunnelなどのリモートAgent Host利用者 | 高 | ローカル設定ではなく、リモート側のシェル設定が必要か |
VS CodeのCopilot CLIターミナルは、macOS/Linuxではbashとzsh、WindowsではPowerShellとCommand Promptをサポートするものとして説明されています。今回のPRでは、実行ファイル名をもとにCopilot SDK側のbashまたはpowershellツールへ分類する処理も追加されています。(Visual Studio Code)
設定確認の手順
まず、利用しているVS CodeやInsidersビルドで今回の変更が入っているか確認します。PRは2026年5月5日にマージ済みですが、一般提供のタイミングは利用中のビルドやリリースチャネルによって変わる可能性があります。関連Issueにはinsiders-releasedやverification-neededのラベル、1.120.0マイルストーンが付いているため、安定版での反映状況はリリースノートと実機で確認するのが安全です。(GitHub)
VS Codeの既定プロファイルを確認する
コマンドパレットで「Terminal: Select Default Profile」を実行し、普段使うシェルが選ばれているか確認します。設定JSONで確認する場合は、OSに応じて以下のキーを見ます。
{
"terminal.integrated.defaultProfile.windows": "PowerShell 7",
"terminal.integrated.defaultProfile.osx": "zsh",
"terminal.integrated.defaultProfile.linux": "bash"
}
VS Codeのターミナルプロファイルは、実行ファイルパス、引数、環境変数などで構成されます。通常の統合ターミナルではpath、args、envを含むプロファイルを定義できますが、今回のAgent Host対応では現時点でpathのみが反映対象である点が重要です。(Visual Studio Code)
Agent Host専用プロファイルを必要に応じて追加する
普段のターミナルとCopilot CLIのAgent Hostで同じシェルを使うなら、defaultProfileだけで足りる場合があります。一方、Copilotにはより安定したシェルを使わせたい場合は、agentHostProfileを明示します。
{
"terminal.integrated.profiles.linux": {
"bash": {
"path": "/bin/bash"
},
"zsh": {
"path": "/bin/zsh"
}
},
"terminal.integrated.defaultProfile.linux": "zsh",
"terminal.integrated.agentHostProfile.linux": "bash"
}
この設定は、たとえば人間が使うターミナルではzshの補完やテーマを使い、Copilot CLIにはbashで安定してスクリプトを実行させたい場合に有効です。AIエージェントに実行させるコマンドは、見た目の快適さよりも再現性を優先したほうがトラブルを減らせます。
Copilot CLIセッションで実際のシェルを確認する
設定後は、Copilot CLIセッション内でシェル確認コマンドを実行します。目視で「設定したつもり」にならず、実際にCopilotが動かしている環境で確認するのがポイントです。
| OS/シェル | 確認コマンド例 | 見るべきポイント |
|---|---|---|
| PowerShell | $PSVersionTable | PowerShell 7かWindows PowerShellか |
| PowerShell | (Get-Process -Id $PID).Path | 実行中のシェル実行ファイル |
| bash/zsh | echo $SHELL | 期待するシェルパスか |
| bash/zsh | ps -p $$ -o comm= | 実際のプロセス名 |
| Windows | where.exe pwsh | PowerShell 7のパスが見えているか |
| POSIX系 | command -v node && command -v git | Copilotが必要な開発ツールを見つけられるか |
特にNode.js、Git、Python、Docker、言語別ビルドツールをCopilotに実行させる場合は、シェル名だけでなくPATHも確認してください。シェルが合っていても、初期化スクリプトや環境変数が期待どおりに読み込まれなければ、command not foundや異なるバージョンの実行につながります。
注意点:argsとenvはまだ移行済みと考えない
今回の更新で最も誤解しやすい点は、「ターミナルプロファイル全体が完全に反映されるわけではない」ことです。Agent Hostの設定説明では、現在反映されるのは実行ファイルのpathであり、argsとenvはまだ無視されるとされています。(GitHub)
たとえばWindowsでGit Bashを次のように定義している場合、通常の統合ターミナルでは--loginや-iを使う意図があります。
{
"terminal.integrated.profiles.windows": {
"Git Bash": {
"source": "Git Bash",
"args": ["--login", "-i"]
}
},
"terminal.integrated.agentHostProfile.windows": "Git Bash"
}
しかし、フォローアップIssue #313790では、#313679時点ではpathのみが尊重され、argsやenvは落ちるため、~/.bash_profileやPATH調整、エイリアス、exportが期待どおりに効かない例が説明されています。これは未対応事項として追跡されています。(GitHub)
| 失敗しやすいポイント | 起きること | 対策 |
|---|---|---|
argsに--loginや-iを入れている | Agent Host側でログインシェルとして起動しない可能性 | Copilot用に必要なPATHを別途確認する |
envでPATHや言語ランタイムを調整している | Copilot実行時だけツールが見つからない | VS Code起動元の環境やシステム側PATHも確認する |
| エイリアス前提でコマンドを実行させる | Copilotがエイリアスを認識しない | エイリアスではなく実コマンド名やスクリプトを使う |
| シェルプロンプトや初期化処理が重い | Agentのコマンド実行が不安定になる | Agent Host用には軽量なプロファイルを指定する |
実務では、Copilot CLIに使わせるシェルを「自分が快適に使うシェル」ではなく、「エージェントが安定してコマンドを実行できるシェル」として設計するのがおすすめです。プロンプトテーマ、補完、対話的な初期化処理は、人間には便利でもAIエージェントの実行環境ではノイズになることがあります。
リモートAgent Hostではローカル設定だけに頼らない
今回のローカルAgent Host向け変更を、SSHやtunnelなどのリモートAgent Hostにもそのまま適用できると考えるのは危険です。フォローアップIssue #313809では、#313679はローカルAgent Hostがterminal.integrated.agentHostProfile.<os>を尊重する変更であり、リモートAgent Hostではローカルで解決したパスがリモートマシン上で有効とは限らないため、リモート側の設定が必要になると説明されています。(GitHub)
たとえばローカルWindowsのC:\Program Files\Git\bin\bash.exeは、Linuxサーバー上のAgent Hostでは当然使えません。逆に、リモート側で/usr/bin/zshを使いたい場合も、ローカルVS Codeの設定だけでは十分ではないケースがあります。
リモート環境で確認する場合は、次の順で切り分けます。
| 確認項目 | 確認内容 |
|---|---|
| Agent Hostがローカルかリモートか | Copilot CLIセッションがどのマシンでコマンドを実行しているか |
| シェルパス | そのマシン上で実在するパスか |
| PATH | リモート側で必要な開発ツールが見えるか |
| 設定ファイル | リモートAgent Host側のagent-host-config.jsonなど、利用中ビルドで案内されている方法を確認する |
| チーム運用 | サーバーごとに設定が必要か、利用者ごとの設定が必要か |
リモートAgent Host向けのシェル設定は、ドキュメント化や発見しやすさが課題として追跡されています。したがって、現時点では「ローカルのVS Code設定を同期すればリモートも同じになる」と考えず、リモート側で実際にシェルとPATHを検証してください。(GitHub)
移行時の判断基準
今回の更新は大規模な移行作業というより、Copilot CLIの実行環境を見直すタイミングです。次の基準で対応を決めると、無駄な設定変更を避けられます。
| 状況 | おすすめ対応 |
|---|---|
| 普段のターミナルとCopilotで同じシェルを使いたい | terminal.integrated.defaultProfile.<os>を正しく設定する |
| Copilotだけ別の安定したシェルで動かしたい | terminal.integrated.agentHostProfile.<os>を明示する |
Git BashやMSYS2で--login -iに依存している | args未反映を前提に、PATHと初期化処理を再確認する |
| PowerShell 7必須のスクリプトがある | pwsh.exeの絶対パスを持つプロファイルを用意する |
| 複数OSでチーム開発している | OS別キーを明記し、セットアップ手順に確認コマンドを入れる |
| リモートAgent Hostを使う | ローカル設定ではなくリモート側設定を確認する |
Windowsでは、PowerShell 7とWindows PowerShellでモジュールやコマンドの挙動が異なることがあります。Copilotにビルド、テスト、依存関係の更新を任せる場合、どちらのPowerShellで動いているかは最初に確認すべきです。
macOSやLinuxでは、zshやfishを普段使っていても、プロジェクトのスクリプトはbash前提で書かれていることがあります。Copilot CLIのAgent Hostには、プロジェクトの自動実行に向いたシェルを指定すると、レビューしやすい結果になります。
管理者・チームで確認したい運用ポイント
チームでMicrosoft Copilot/GitHub Copilot CLIを導入している場合、個人ごとのターミナル設定の違いが、Copilotの実行結果の違いにつながります。特に、同じプロンプトでも「ある人の環境ではテストが通るが、別の人の環境では失敗する」という差分は、シェルやPATHの違いから起きやすくなります。
チーム運用では、次の3点をドキュメント化しておくと実務で役立ちます。
- Copilot CLIのAgent Hostに推奨するシェル
- OS別の
terminal.integrated.agentHostProfile.<os>設定例 - Copilot CLIセッション開始後に実行する確認コマンド
たとえばWindowsチームなら「PowerShell 7を標準」、フロントエンド中心のmacOS/Linuxチームなら「bashまたはzshを標準」といった方針を決めます。重要なのは、好みではなく、ビルド・テスト・パッケージ管理コマンドが安定して動くかどうかです。
今すぐ取るべきアクション
まず、VS Codeの設定でterminal.integrated.defaultProfile.<os>を確認してください。次に、Copilot CLIのAgent Hostで普段と同じシェルを使う必要があるなら、terminal.integrated.agentHostProfile.<os>を追加します。そのうえで、Copilot CLIセッション内でシェル名、実行ファイルパス、PATH、主要ツールの場所を確認します。
特に注意すべきなのは、argsとenvに依存した設定です。今回の更新でターミナルプロファイル名や実行ファイルパスは扱いやすくなりましたが、ログインシェル引数や環境変数まで完全に移行されたわけではありません。Git Bash、MSYS2、zsh、fish、PowerShellプロファイルに強く依存している環境では、Copilotが実行するコマンドを1つずつ検証してから本格運用に入るのが安全です。(GitHub)
今回の変更は、Copilot CLIをより「自分の開発環境に近い状態」で動かすための前進です。ただし、AIエージェントの実行環境は人間のターミナルと完全に同じとは限りません。設定後は、シェル、PATH、ビルドコマンド、テストコマンドの4点を確認し、Copilotに任せる作業の再現性を高めてください。

コメント