次の大きな作業は GitHub Copilot CLI から始めたくなる理由
はじめに
ここ最近、GitHub Copilot CLI と VS Code Agent Mode を行き来しながら使うなかで、少し自分の中の重心が変わってきました。
以前は「大きく作るなら CLI、細かく直すなら Agent Mode」という作業粒度で考えていました。この考え方は今でも有効です。実際、細かい修正や差分の目視確認では、VS Code Agent Mode は気持ちよく使えます。
一方で最近は、「作業の入口をどこに置くか」 という観点で、GitHub Copilot CLI を先に考えることが増えてきました。理由は、コードを書けるかどうかだけではありません。エージェントの管理、計画、並列化、実行環境への乗せやすさといった、作業を進めるための足場が CLI 側に揃ってきていると感じるからです。🛠️
本記事は、次の関連記事の続きとしても読める位置づけです。
- C# 開発者のための GitHub Copilot CLI と VS Code Agent Mode の使い分け
- カスタムエージェントの呼び出し方で考える Copilot CLI と VS Code Agent Mode
- GitHub Copilot CLI で考える複数エージェント設計
- Custom Agents と Subagents で始める自律オーケストレーション入門
上の記事では、作業粒度・呼び出し方・複数エージェント設計をそれぞれ整理しました。今回はそこから一歩引いて、なぜ最近「まず CLI から始める」発想になってきたのかを体験ベースでまとめます。
| 記事 | 主に扱ったこと |
|---|---|
| 🧭 使い分け記事 | 作業粒度ごとの CLI / Agent Mode の選び方 |
| 🎭 カスタムエージェント記事 | 呼び出し方と実行環境の違い |
| 🧩 複数エージェント設計記事 | レビューや改善を安全に分担する考え方 |
| 🪄 自律オーケストレーション記事 | Custom Agents / Subagents による役割分担 |
| 🛠️ 本記事 | 大きめの作業を始めるとき、なぜ CLI を入口にしたくなるか |
本記事のゴール
この記事では、次のことを整理します。
- GitHub Copilot CLI を「大きめの作業の入口」にしやすい理由を説明する
- VS Code Agent Mode が今でも向いている場面を切り分ける
- どちらを先に開くか迷ったときの判断軸を持つ
- 実際のワークフロー例から、CLI → Agent Mode のつなぎ方をイメージできるようにする
読み終えたときに、読者の方が 「次の少し大きめの作業は、まず CLI で始めてみようかな」 と思える状態を目指します。
背景: 「作業粒度」だけでは足りなくなってきた
以前の私は、次のように使い分けていました。
| 作業の粒度 | 使うもの | 理由 |
|---|---|---|
| 🏗️ 新機能追加・複数ファイル変更 | GitHub Copilot CLI | リポジトリ全体を面で扱いやすい |
| ✏️ 1 ファイル・数行の修正 | VS Code Agent Mode | エディター上で差分を見ながら直しやすい |
| 🧐 PR 前の微修正 | VS Code Agent Mode | 目視確認と相性がよい |
この整理は今でも大きくは変わりません。Agent Mode は、開いているファイルや選択範囲を起点に「ここだけ直して」と頼む体験が強いです。差分を VS Code 上で見ながら承認できるので、安心感もあります。
ただ、作業が少し大きくなると、考えるべきことは「どのファイルを直すか」だけではなくなります。
- 先に計画を立てるか
- 調査と実装を分けるか
- 複数の独立タスクを並列に回すか
- どのエージェントにどこまで任せるか
- コマンド実行やテストをどのタイミングで挟むか
- 最後にレビューをどう通すか
つまり、実装そのものよりも 「作業をどう進行管理するか」 が重要になってきます。ここで、私は CLI の良さを以前より強く感じるようになりました。
CLI を入口にしやすい理由: 作業を「始めて、進める場所」として強い
GitHub Copilot CLI の良さは、単にターミナルで動くことではありません。私が便利だと感じているのは、作業の開始から完了までを 1 つの流れとして扱いやすいことです。
1. 入口がターミナルなので、作業単位が自然に大きくなる
VS Code Agent Mode では、どうしても「今開いているファイル」「選択中の範囲」「表示されている Problems」から発想しがちです。これは小さな修正では強みですが、作業の初動では視野が狭くなることもあります。
一方、CLI はリポジトリのルートで起動します。最初からターミナル上で、
cd C:\src\MyProduct
copilot
のように始めるので、思考の単位が「このファイル」ではなく 「このリポジトリで何を進めるか」 になりやすいです。
たとえば、次のような依頼は CLI から投げる方が自然です。
ユーザー検索機能を追加したいです。
まず既存の API / Service / Repository / Test の構成を調べ、
実装計画を出してから、必要なファイルを横断して変更してください。
最後に build と test を実行し、失敗があれば原因を整理してください。
この依頼は、単なる「コード修正」ではありません。調査、計画、実装、テスト、失敗時の再試行までを含む作業です。こうした複数段階の仕事は、ターミナルの中で流れを持って進められる CLI と相性がよいと感じます。だからこそ、作業の途中で呼ぶ道具というより、最初の入口に置きやすいのです。
2. Plan mode から実行ループへつなげやすい
大きめの作業で怖いのは、エージェントが意図を少し誤解したまま、複数ファイルを一気に書き換えてしまうことです。
GitHub Copilot CLI には、実装に入る前に計画を立てるための Plan mode があります。公式ドキュメントでも、対話モードで Plan mode を使うと、変更前に計画を確認できると説明されています。
もちろん、VS Code Agent Mode にも Plan mode はあります。ここで言いたいのは「CLI だけが計画できる」という話ではありません。私が CLI を入口にしやすいと感じるのは、計画を確認したあと、そのまま同じターミナル上で実装、build / test、git の確認までつなげやすいからです。
私の使い方としては、最初に次のような形で投げることが多いです。
Shift+Tab で Plan mode に切り替えるか、/plan を使って、
まず実装計画を作ってください。
このリポジトリに検索 API を追加する場合の変更対象、
実装順、テスト方針、リスクを整理してください。
まだファイルは変更しないでください。
ここで得られた計画を確認してから実装に進むと、作業のブレが減ります。VS Code 側でも同じように Plan mode や Planner エージェントを使えますが、CLI は 計画から実行・検証までをターミナル上の 1 本の流れにしやすい のが気軽です。入口で誤解を減らし、そのまま実行ループへ移れることが、大きめの作業で CLI を先に開きたくなる理由です。
3. /fleet で「分けて進める」発想に切り替えやすい
複雑な作業では、1 体のエージェントにすべてを詰め込むより、独立したサブタスクに分けた方がうまくいくことがあります。
GitHub Copilot CLI の /fleet は、複雑なリクエストを小さなタスクに分解し、サブエージェントで並列に進めるための仕組みとして説明されています。すべての作業で使うものではありませんが、調査・実装・テスト・ドキュメントのように分けやすい作業では魅力的です。
ここでは /fleet の仕組みそのものよりも、初動の時点で「分けて進める」前提に切り替えられる点に注目します。イメージとしては、次のような流れです。
ここで大事なのは、単に「速くなる」ことだけではありません。サブタスクごとにコンテキストが分かれることで、調査で読んだ大量の情報を、実装側にすべて混ぜなくて済みます。結果だけを統合する形に近づくので、作業の見通しがよくなります。
4. コマンド実行と確認のループが途切れにくい
CLI の大きな魅力は、ターミナルの中で作業が完結することです。
dotnet build
dotnet test
git status
git diff
こうしたコマンドは、開発者がもともと作業の節目で実行するものです。Copilot CLI はその同じ場所にいるので、エージェントとの会話、コマンド実行、ログ確認、次の修正依頼がつながります。
Agent Mode でも統合ターミナルを使えますが、私の体感では、「チャット」「エディター」「ターミナル」の間で視線が行き来します。小さい修正ではそれが便利です。一方、長めの実装ループでは、ターミナルだけで完結する CLI の方が集中しやすい場面があります。作業の初動から検証まで同じ場所に置けることが、CLI の強さです。
5. IDE の外に持ち出しやすい
CLI は、VS Code を開いているときだけの道具ではありません。サポート対象の OS や、インストール方法ごとの前提条件を満たすターミナル環境で使えるため、ローカルだけでなく、権限やトークン、実行環境を適切に設計すれば、スクリプトや CI 的なワークフローでも programmatic interface と組み合わせて利用できます。SSH 先や Dev Container / Codespaces での利用は、環境要件を満たす場合の実践例として考えるとよさそうです。
さらに、公式ドキュメントでは -p / --prompt を使った programmatic interface(プログラムからの利用)や、autopilot のような自律実行に関する説明もあります。ここは権限設計に注意が必要ですが、「人が VS Code を見ている前提」から離れられるのは CLI ならではです。
たとえば、次のような使い方が見えてきます。
| 場面 | CLI で嬉しいこと |
|---|---|
| 🛰️ SSH 先での調査 | IDE を開かずにリポジトリを調べられる |
| 🐳 コンテナ内の作業 | 実行環境と同じ場所でコマンドを回せる |
| 🔁 リリース前の一括確認 | build / test / lint の結果を見ながら修正できる |
| 🧪 CI 的な試行 | 使い捨て環境で自律実行を試しやすい |
ここまで IDE の外へ持ち出す話も含めて整理しましたが、まずは日常のローカル開発でどう使うかに絞って、実際の流れを見ていきます。
Agent Mode が向く場面: 「見ながら直す」強さは変わらない
ここまで CLI 寄りに書いてきましたが、VS Code Agent Mode の価値が下がったわけではありません。むしろ、役割がはっきりしてきたという感覚です。もちろん、最初から Agent Mode で始めた方がよい小さな作業もあります。Agent Mode の詳細な使い分けは既存記事で扱ったため、本記事では CLI で始めた作業を仕上げる場面 に絞って整理します。
Agent Mode が強いのは、人間が目で確認しながら、狭い範囲を確実に直したい場面です。
| 作業 | Agent Mode が向く理由 |
|---|---|
| 🐛 1 メソッドのバグ修正 | 選択範囲をそのまま文脈にできる |
| 📝 XML コメント追加 | 差分を見ながら表現を調整しやすい |
| 🎨 UI / Razor の微調整 | 見た目や周辺コードを確認しながら直せる |
| 🧐 PR 前の差分確認 | エディター上の diff と相性がよい |
| 🧪 小さなテスト追加 | 対象クラスを開いたまま依頼できる |
たとえば、CLI で機能の骨格を作ったあと、VS Code に戻って次のように頼むのはとても自然です。
この差分を PR に出す前提で確認してください。
命名、null 許容、XML コメント、テスト名の読みやすさを中心に、
1 ファイルずつ小さく修正してください。
ここでは、CLI のように大きく動いてほしいわけではありません。むしろ、差分を見ながら人間が「ここは直す」「ここはそのままにする」と判断したい場面です。こうしたときは Agent Mode の方が安心です。
実際のワークフロー例: CLI で始めて Agent Mode で締める
私の中で、最近いちばんしっくりきている流れは次の形です。
既存記事では「作業粒度でどちらを選ぶか」を整理しました。ここではもう少し実践寄りに、初動から仕上げまでを 1 本の流れとして見ていきます。
具体例として、ASP.NET Core の検索 API を追加する場合を考えます。題材自体は既存の使い分け記事でも触れていますが、ここでは 「どのファイルを直すか」ではなく「どこを入口にして作業を進めるか」 の観点で分解します。
Step 1: CLI で計画する
まずはリポジトリルートで CLI を開きます。
cd C:\src\MyProduct
copilot
最初の依頼は、実装ではなく計画に寄せます。
Shift+Tab で Plan mode に切り替えるか、/plan を使って、
まず実装計画を作ってください。
既存の API / Service / Repository / Test の構成を調べ、
ユーザー検索 API を追加するための変更対象、実装順、テスト方針、
リスクを整理してください。まだファイルは変更しないでください。
ここで計画を確認し、必要なら「Repository は既存方針に合わせて ToListAsync で」「検索条件は部分一致のみ」など、人間側の判断を加えます。
Step 2: CLI で実装とテストのループを回す
計画に納得できたら、CLI に実装を任せます。
上記の計画に従って実装してください。
実装後に dotnet build と dotnet test を実行し、
失敗した場合は原因を整理してから修正してください。
サブタスクが独立しているなら、ここで /fleet を検討します。
/fleet
ユーザー検索 API の追加を、既存構成調査、API / Service 実装、
ユニットテスト追加、ドキュメント更新に分けて進めてください。
最後に全体の差分を統合し、build と test の結果をまとめてください。
もちろん、毎回 /fleet にする必要はありません。1 つのエージェントで十分に追える規模なら、通常の実装ループの方がシンプルです。
Step 3: VS Code Agent Mode で差分を整える
build / test が成功したら、VS Code に戻って差分を眺めます。
ここからは Agent Mode の出番です。
この差分を PR に出す前提で、1 ファイルずつ確認してください。
大きな設計変更はせず、命名、コメント、テスト名、冗長な実装だけを
小さく整えてください。
この段階では、私はエージェントに「もう一度大きく作り直してほしい」とは思っていません。目的は、人間がレビューしやすい差分に整えることです。だからこそ、エディター上で確認しながら進められる Agent Mode が向いています。
最初にどちらを開くかの判断表
最後に、私の判断基準をまとめます。
| 質問 | Yes なら | No なら |
|---|---|---|
| 🏗️ 複数ファイル・複数ステップの作業か | CLI から始める | Agent Mode で十分かも |
| 🧭 計画から build / test まで一気に流したいか | CLI の Plan mode から始める | Agent Mode の Plan mode でも十分 |
| 🚀 独立タスクに分解できるか | CLI の /fleet を検討 |
通常の CLI 実装ループ |
| 🐚 build / test / git 操作が中心か | CLI が自然 | Agent Mode + 統合ターミナルでも可 |
| 👁️ 1 ファイルずつ差分を見たいか | Agent Mode が向く | CLI で面の作業を続ける |
| 🛰️ VS Code 外の環境で動かすか | CLI が向く | ローカル VS Code でもよい |
単純化すると、私は次のように考えています。
- 作業を設計して進める場所としては GitHub Copilot CLI
- 差分を見ながら仕上げる場所としては VS Code Agent Mode
この分け方にしてから、どちらを開くか迷う時間が減りました。
おわりに
GitHub Copilot CLI は、単に「ターミナル版の Copilot」ではなく、最近の私にとっては 大きめの作業を始めるための作業台 になりつつあります。
Plan mode で計画を確認し、必要なら /fleet で独立タスクに分け、ターミナルで build / test / git のループを回します。ここまでを CLI で進めてから、VS Code Agent Mode に戻って差分を目で見ながら整えます。今のところ、この流れがしっくりきています。
もちろん、すべてを CLI に寄せる必要はありません。1 メソッドの修正や PR 前の微調整は、今でも Agent Mode がとても便利です。
ただ、次に少し大きめの作業を始めるときは、まずリポジトリルートで copilot と打ってみてください。エディターでファイルを開く前に、ターミナルで計画を立て、作業を分解し、テストまで含めた流れを作ります。そうすると、GitHub Copilot CLI が単なる実装補助ではなく、作業全体を前に進める相棒に見えてくるはずです。🛠️
それでは、よい Copilot ライフを!
参考リンク
- About GitHub Copilot CLI - GitHub Docs
- Using GitHub Copilot CLI - GitHub Docs
- Running tasks in parallel with the /fleet command - GitHub Docs
- Speeding up task completion with the /fleet command - GitHub Docs
- Allowing GitHub Copilot CLI to work autonomously - GitHub Docs
- GitHub Copilot usage limits - GitHub Docs
- Chat in Visual Studio Code - VS Code Docs
- Custom agents in VS Code - VS Code Docs
Discussion