概要
GitHub CopilotはVSCodeのチャットで使う印象が強かったのですが、実際にCLIも試してみると、向いている作業がかなり違いました。使い分け方や、VSCodeからCLIを起動する組み合わせ方を紹介します。

最初に結論まとめ
- GitHub CopilotはIDEとCLIを使い分ける価値がありそう
- まとまった作業で長く走らせるにはCLIの方が合う
- VSCodeのGUIの中でCLI版を使うのもけっこうアリ
GitHub CopilotはIDEだけでなくCLIも使い分けるメリットがある
GitHub Copilot は VSCode や Visual Studio のチャット画面から使う印象が強いですが、CLI から使うのも思ったより便利でした。(以下、エディタのチャット画面から使うものを「IDE」と呼びます)
私はこれまでIDE側をメインに使っていましたが、試してみると CLI の方が合う用途もありました。今のところは、どちらかに寄せるというより使い分けるのが良さそうだと感じています。
今のところの使い分け
まだ試し始めたばかりですが、現時点では次の使い分けがしっくり来ています。
IDEが向く場面
1つの指示に、1つのAgentが1つのPremiumRequestで作業して、結果をそのままIDEでプレビュー出来ます。
デバッグ情報など、IDE上に出ているコンテキストを使いながら進めたいときは IDE の方がやりやすいです。また、ファイル変更をその都度プレビューしながら細かく指示を出したい場合も IDE が向いています。
できたものをデバッグしながら詰める段階や、「今見てるこのドキュメントをこう直してくれ」のようなファイル起点の場合は、こちらの方が扱いやすいと感じています。
画面はこういう感じになります。(VSCodeの例)
画面右側でチャットした内容でそのまま動作し、差分をエディタですぐ表示出来る、という動きです。
CLIが向く場面
1つの指示に、1つのPremiumRequestで作業します。さらにauto pilotモードを使うと、必要に応じてPremiumRequestの追加消費もして作業を続けてくれます。(これは状況によって良し悪しなので使い分けですが)
使ってみたところ、1つのエージェントだけではなく、サブエージェントと分担して作業をする場合もあるようです。とりあえず今まで試した範囲ではサブエージェント側のPremiumRequestの消費は0となっていましたが、ドキュメントでの明言は見つかっていません。
最初に指示を出したら完了するまである程度自走してほしい作業は CLI の方が合います。
agent.mdの内容に従ってまとまった作業をやって欲しい場合や、最初に一気にコーディングしたい場合はこちらが使いやすいです。特に auto pilot モードがあるため、許可を求めてくる回数が多い作業を連続で行って欲しいケースではCLIの方が使いやすいです。(IDEも、最近は「この種のコマンドを今のセッションが終わるまで許可」といった選択肢が増えてやりやすくなってはいますが)
ちなみにこちらの比較記事で言うとCodexの動きに近いですが、印象としては、GitHub Copilot CLIは指示したことはやるが指示しないことはやらないという動きです。同じ自走でも、GitHub CopilotのCLIは指示を完了するまで自走し、Codexは良さそうだと思うことを全部やるまで自走する感じなのかなと思います。
画面はCLIなのでコマンドプロンプト等ですが、次の章のようにVSCodeから起動する方が使いやすいと思います。
VSCodeでワークスペースを開いてCLIを使うと便利
CLI を使うときも、ターミナルだけを単独で開くより、VSCode でワークスペースを開いてその Terminal から使うと便利です。
人間側は VSCode でファイルを確認しやすいですし、必要なパスをコピーして CLI に貼るのも楽です。さらに最近のVSCodeでは、GitHub Copilot CLIで開始した場合もチャットセッションの履歴として拾ってくれます。
次の画像のような感じで、一画面で作業出来ます。下部のターミナルでCLIを起動したものを右側のチャットセッションが履歴として拾っている(指示がそちらに表示されて、その後に「Background」と表示されています)。エディタもそのまま使える。という感じです。差分表示はIDE版ほど直観的に便利ではないので、そこはgitを併用するなどして補うと良いと思います。
まとめ
GitHub CopilotはIDEのチャットのイメージがありましたが、CLIもだいぶ使いやすく、それぞれ違った役割がありそうです。IDEのメリットがどこにあるかを考えると、IDEを使いたいシーンではVSCodeよりもVisual Studioの方が合うかもしれません。使い分けを色々試していこうと思います。

