GitHub CopilotはVS CodeとCLIをどう使い分けるべきか
GitHub Copilot を使い込むほど、VS Code の拡張機能を軸にするか、Copilot CLI を軸にするかで迷います。両者は競合ではなく、編集中心かターミナル中心かで役割が分かれます。
導入
現場でよくあるのは、次のような迷いです。
- エディタ内の修正は VS Code Copilot で十分なのか。
- それとも Copilot CLI で一気に流したほうが速いのか。
autoは VS Code だけなのか、CLI でも使えるのか。- クレジット消費は IDE と CLI で変わるのか。
このあたりを曖昧なまま使うと、作業フローが毎回ぶれます。この記事では、VS Code Copilot と Copilot CLI の違い、auto モデル選択、プレミアムリクエストの考え方、シーン別の使い分けを、実務前提で短く整理します。
TL;DR
まず結論です。
- エディタ内の細かい編集、差分確認、反復リファクタは VS Code Copilot が向いています。
- ターミナル中心の調査、コマンド実行、ディレクトリ単位の変更、SSH 先やコンテナ内の作業は Copilot CLI が向いています。
autoは VS Code の Copilot Chat でも、Copilot CLI でも使えます。- クレジット消費は「IDE か CLI か」ではなく、どのモデルを使い、どれだけリクエストを発生させたかで決まります。
最初に押さえるべき完成形は次の 3 つです。
# 1. Copilot CLIで一時的にautoを使う
copilot --model auto -p "プロジェクトの設定差分を確認して改善点を提案して"
# 2. 対話モードでautoへ切り替える
/model auto
# 3. CLIでカスタムプロバイダー利用時に環境変数でモデル指定する
export COPILOT_MODEL=auto
GitHub Copilotの違い
VS Code Copilot は、Copilot Chat のモデル選択 UI やチャット応答のホバー確認など、エディタに統合された形で使う前提です。差分や修正結果を視覚的に追いやすく、小さく直して確認するループに強みがあります。
一方の Copilot CLI は、対話型とプログラム実行の両方を持ち、ターミナルから直接コード変更、Git 操作、GitHub 上の PR・Issue 操作まで扱えます。信頼済みディレクトリや許可ツールの概念があり、ローカルだけでなくコンテナや SSH 環境でも同じ操作感を持ち込みやすいのが特徴です。
使い分けの早見表
| 観点 | VS Code Copilot | Copilot CLI |
|---|---|---|
| 主戦場 | エディタ内の編集とレビュー | ターミナル内の操作と自動化 |
| 得意な作業 | 小刻みな修正、差分確認、会話しながらの実装 | コマンド実行、ログ調査、ディレクトリ単位の変更 |
| モデル選択 | モデルピッカーから Auto を選択 | /model または --model で変更 |
| 実行場所 | 主に IDE 内 | ローカル、WSL、macOS、Linux のターミナル |
| 安全性の勘所 | 差分を見ながら止めやすい | 信頼済みディレクトリとツール許可管理が重要 |
autoモデル選択
auto は VS Code でも CLI でも使えます。GitHub Docs では、Copilot Chat の IDE 利用時に Auto を選ぶと、利用可能なモデルからポリシーと契約に応じて自動選択すると説明されています。
CLI 側でも Auto が使え、利用した応答ごとに実際に使われたモデルがターミナルに表示されます。モデル候補は今後変わる可能性があるため、固定モデルが必要な作業だけ明示指定する運用が実務では安定します。
VS Codeでautoを使う手順
- Copilot Chat を開く、理由はモデル選択 UI がここにあるためです。
- モデルピッカーから
Autoを選ぶ、理由は毎回モデルを意識せずに使えるためです。 - 応答ごとに使用モデルを確認したい場合は、レスポンス上でホバーする、理由は実際のルーティング先を確認できるためです。
Copilot CLIでautoを使う手順
- 単発実行で使う場合は
--model autoを付ける、理由はその場だけ auto に切り替えられるためです。 - 対話モードでは
/modelを使って切り替える、理由は会話中にモデル戦略を変えられるためです。 - 実際の利用モデルはターミナル表示で確認する、理由は auto が常に同じモデルを選ぶとは限らないためです。
実務でそのまま使う例です。
# 単発の調査
copilot --model auto -p "このリポジトリのテスト失敗原因を調査して"
# 対話モード開始
copilot
# 対話中に入力
/model auto
補足です。GitHub Docs で COPILOT_MODEL 環境変数は、独自のモデルプロバイダーを使う場合の設定項目として説明されています。標準の GitHub ホストモデルを常時 auto に固定する用途は、まず CLI のモデル選択機能と最新リリースノートで確認するのが安全です。
クレジット消費
プレミアムリクエストは、使った機能とモデルの multiplier に基づいて消費されます。GitHub Docs では CLI でも、プロンプト送信ごとにモデル一覧の括弧内 multiplier 分だけ毎月のプレミアムリクエスト枠が減ると説明されています。
そのため、VS Code だから安い、CLI だから高い、とは言い切れません。コスト差の本体は、どのモデルを選んだか、そして 1 タスクの裏で何回リクエストが走ったかです。
実務で差が出るポイント
- VS Code Copilot は、小さい修正を複数回に分けて投げやすいです。結果として、1 回あたりの制御はしやすい一方で、往復回数は増えやすくなります。
- Copilot CLI は、対話型でもプログラム実行でも大きめの仕事をまとめて依頼しやすいです。コード変更やシェル実行まで進むため、1 タスクあたりの総消費が見えにくくなることがあります。
autoには paid plan の Copilot Chat で 10% の multiplier discount があると GitHub Docs に明記されています。ただしこの割引説明は Copilot Chat 向けで、CLI に同じ条件がそのまま適用されるとは限らないため、課金判断は最新ドキュメント基準で見るべきです。
コストを抑える運用
- VS Code では、関数単位・ファイル単位で区切って投げる、理由は差分確認で不要な広がりを止めやすいためです。
- CLI では、いきなり
--allow-all-toolsで広く任せない、理由は変更範囲と副作用が大きくなりやすいためです。 - 大きい変更は CLI に下書きさせて、最終レビューと細部調整は VS Code で行う、理由は生産性と制御のバランスがよいためです。
実務フロー
おすすめは、VS Code と Copilot CLI を分業させる形です。設計相談、差分確認、局所的な修正は VS Code に寄せ、ログ調査、設定変更、リポジトリ横断の作業は CLI に寄せると迷いが減ります。
VS Code Copilotを選ぶ場面
- 複数ファイルをまたぐが、差分を目で追いながら進めたいとき。
- テスト追加、軽いリファクタ、関数単位の修正を高速に回したいとき。
- モデルを意識しすぎず
Autoで会話し、必要時だけ実モデルを確認したいとき。
Copilot CLIを選ぶ場面
- SSH 先、コンテナ、WSL、Linux/macOS ターミナルで完結したいとき。
- ログ解析、設定ファイル整理、Git 操作、PR 作成のようにシェルと GitHub 操作が近いとき。
- リポジトリ内のまとまった変更を一気に進めたいとき。
両方を組み合わせる形
- VS Code でワークスペースを開く、理由は差分確認と最終編集を速くするためです。
- 統合ターミナルから Copilot CLI を起動する、理由はそのままプロジェクト文脈を渡せるためです。
- CLI に大きめの変更を依頼する、理由は初速を上げるためです。
- VS Code 側で差分を確認して局所修正する、理由は品質を落とさずに仕上げられるためです。
ハマりどころ
autoは便利ですが、選ばれるモデルは時間やポリシーで変わります。再現性が必要な検証では固定モデルを使うほうが安全です。- Copilot CLI は信頼済みディレクトリと許可ツールの設計を誤ると、意図しない変更を広げやすいです。特に
--allow-all-toolsは限定環境で使うべきです。 COPILOT_MODELを見て標準 CLI 全体の常設設定だと解釈しがちですが、ドキュメント上は独自プロバイダー設定の文脈です。標準運用では/model、--model、最新リリースノート確認を優先したほうが混乱しません。
まとめ
VS Code Copilot は、編集、差分確認、細かい反復に強いです。Copilot CLI は、ターミナル中心の調査、自動化、大きめの変更に強いです。
重要なのは、どちらか一方に寄せ切ることではありません。auto とプレミアムリクエストの仕組みを理解したうえで、作業粒度ごとに役割を分けると、Copilot の強みを無駄なく引き出せます。
普段の開発で「この作業は VS Code」「この作業は CLI」と先に線引きしておくと、判断の迷いが減ります。その結果、AI を使う時間そのものよりも、実装とレビューに使える時間を増やしやすくなります。