公式チュートリアル「GitHub Copilot CLI for Beginners」ハンズオンリポジトリを進めていきます!
これ ↓ (第 0 章 環境構築編) の続きです
🗺️ ハンズオンの全体像
2026/03/18 現在、第 0 章から第 7 章まであります。
今回はこの第 1 章を進めていきましょう。
| 章 | タイトル | 学べる内容 |
|---|---|---|
| 0 | 🚀 クイックスタート | インストールと動作確認 |
| 1 | [ 今ここ!→ ] 👋 最初の一歩 | ライブデモ + 3 つの操作モード |
| 2 | 🔍 コンテキストと会話 | 複数ファイルのプロジェクト分析 |
| 3 | ⚡ 開発ワークフロー | コードレビュー、デバッグ、テスト生成 |
| 4 | 🤖 特化型 (Specialized) AI アシスタントの作成 | ワークフロー用のカスタム AI エージェント |
| 5 | 🛠️ 繰り返し作業の自動化 | 自動で読み込まれるスキルの作成 |
| 6 | 🔌 GitHub・データベース・API との接続 | MCP サーバとの連携 |
| 7 | 🎯 すべてを組み合わせる | すべてを組み合わせた実践的ワークフロー |
第 1 章はこちら!
🎯 ゴール(できるようになること)
この章を終えると、次のことができるようになります:
- ハンズオンを通して、GitHub Copilot CLI による生産性向上 (コマンドいっぱつで AI によるコードレビューなど) を体験する
- タスクに応じて適切なモード(Interactive / Plan / Programmatic)を選択できる
- スラッシュコマンドを使ってセッションを操作できる
3 つの操作モード
- Interactive(対話型)
- Plan(設計)
- Programmatic(ワンショット実行)
1. まずは普通に対話してみよう
ターミナルを開いて、GitHub Copilot CLI を起動します
copilot
例えば、以下のような、初心者向けのプロンプトを試してみます
> Pythonのdataclassとは何かを簡単に説明してください
> 辞書のリストを特定のキーでソートする関数を書いてください
> Pythonにおけるlistとtupleの違いは何ですか?
> クリーンなPythonコードを書くためのベストプラクティスを5つ教えてください
このように、とても分かりやすく自然な返答が返ってきます。
一通り試し終わったら、/exit と入力してセッションを終了できます。
2. コードを見てもらおう
2-0. (準備の確認)
前回の記事(環境構築編) を見ていない方は、↓ のリンクから Codespaces を開いておいてください。
2-1. [デモ] コードレビューしてもらう
このハンズオンリポジトリには、あえてコード品質に問題を含んだサンプルファイルが用意されています。
それをレビューしてもらいましょう。
# Copilot を起動
copilot
インタラクティブセッションに入ったら、次を実行します:
日本語:
> @samples/book-app-project/book_app.py のコード品質の問題を指摘して、改善案を教えて
入力英語&出力日本語が好きな方は:
> Review @samples/book-app-project/book_app.py for code quality issues and suggest improvements in Japanese
( ↑ 一番後ろに「in Japanese」を入れている)
💡 @ とは?
@ は「ファイルを読み込む」ことを Copilot CLI に指示する記号です。
詳細は Chapter 02 で学びます。
ここではそのままコピーして使えばOKです。
すると、数秒でとても丁寧でプロフェッショナルなコードレビューを実行してくれます。
(実際の出力結果はとても長いのでスクショはごく一部)
手動で人間にコードレビューしてもらうときの時間と比べたら、かなり短い時間になりますね
2-2. [デモ] 分かりにくいコードを説明してもらう
コードを見て「これ何してるの…?」と思ったことはありませんか?
たとえば、サンプルフォルダに入っているこの python ファイル
これを説明してもらいましょう。
Copilot CLI で次を試してみてください。
> @samples/book-app-project/books.py の処理内容をわかりやすく説明してください
Copilot CLI はファイルを読み取り、コードの内容を理解し、
わかりやすく説明してくれます。
例えば、こんな感じの説明が返ってきます:
(Copilot 出力サンプル)
これは、Python の dataclass を使った
書籍コレクション管理モジュールです。
イメージとしては「デジタル本棚」のようなものです:
-
Bookは dataclass で、本の情報(タイトル、著者、出版年、既読状態)を保持します -
BookCollectionはコレクション全体を管理し、保存・読み込みを担当します
主な構成要素
1. @dataclass デコレータ(8行目)
-
__init__や__repr__などを自動生成 - データ構造を簡潔に定義できる
2. BookCollection クラス(16行目)
- Book オブジェクトのリストを管理
- JSONファイルを使ってデータの永続化を行う
主な処理:
-
load_books():data.json から読み込み -
save_books():asdict() を使って data.json に保存
3. 本に対する操作
-
add_book():新しい本を追加して保存 -
find_book_by_title():タイトルで検索 -
mark_as_read():既読状態を更新 -
find_by_author():著者で絞り込み
JSON から読み込み → Python オブジェクトとして操作 → JSON に書き戻す
という、よくある処理パターンです
こんなふうに
複雑なコードを、優しいメンターのように説明してくれるんですね!
2-3. [デモ] 動くコードを生成する (Generate Working Code)
普段なら 15 分くらい (ググって | Bing って) 書くような関数、必要になったことありませんか?
そのままセッション内で、次を試してみてください。
書籍(books)のリストを受け取り、統計情報(総数、既読数、未読数、最も古い本と新しい本)を返すPython関数を書いてください
原文も載せます (英語のほうが好きな人のために):
Write a Python function that takes a list of books and returns statistics:
total count, number read, number unread, oldest and newest book
そのままコピペして動く関数が、数秒で生成されます!
一通り試し終わったら、セッションを終了します:
> /exit
3. モードとコマンド
ここまでで、Copilot CLI に何ができるのかを見てきました。
次は、それらの機能をどう使いこなすかを理解していきます。
重要なのは、
状況に応じて 3 つの操作モードを使い分けることです。
- Interactive(対話型)
- Plan(設計)
- Programmatic(ワンショット実行)
💡 補足
Copilot CLI には Autopilot (自動操縦) モードもあります。
これは、ユーザーの入力を待たずにタスクを自動で進めてくれる強力な機能です。
ただし、
- フル権限の付与が必要
- プレミアムリクエストを自動的に消費する
といった特徴があります。
このコースでは、まず基本となる 3 つのモードにフォーカスします。
Autopilot については、基礎に慣れてから紹介されます。
3-1. 🧩 身近な例え:外食
GitHub Copilot CLI の使い方は、「外食」に例えることができます。
お店に行く前の計画から注文まで、状況によって最適なアプローチは変わります。
| モード | 外食の例え | 使う場面 |
|---|---|---|
| Plan | レストランまでのルートをGPSで確認 | 複雑なタスク:ルートを決め、途中を確認し、計画に合意してから実行 |
| Interactive | 店員と会話する | 探索・試行:質問したりカスタマイズしたり、リアルタイムでやり取り |
| Programmatic | ドライブスルーで注文 | シンプルなタスク:環境を変えずに素早く結果を得る |
外食と同じように、どの方法が適切かは自然と分かるようになります。
まず設計するなら Plan、対話しながら進めるなら Interactive、一発で結果が欲しいなら Programmatic
3-2. どのモードから始めるべき?
まずは Interactive モードから始めましょう。
理由:
- 試行錯誤しながら進められる
- 会話によってコンテキストが自然に蓄積される
- ミスしても
/clearですぐリセットできる
慣れてきたら:
Programmatic モード
→ 単発で素早く答えが欲しいとき
copilot -p "<プロンプト>"
Plan モード
→ 実装前にしっかり設計を立てたいとき
/plan
3-3. モード①:Interactive モード(まずはここから)
最適な用途:探索、試行錯誤、複数ターンの会話
店員と会話するように、質問したりフィードバックを伝えたりしながら、その場で調整できます。
インタラクティブセッションを開始するには:
copilot
これまで見てきた通り、自然に入力できるプロンプトが表示されます。
利用可能なコマンドを確認したい場合は、次を入力します:
> /help
Key insight:
Interactive モードはコンテキストを保持する
つまり、前のやり取りを踏まえて次の応答が行われます。
実際の会話のように、やり取りが積み重なっていきます。
3-3-1. Interactive モードの例
copilot
> Review @samples/book-app-project/utils.py and suggest improvements
> Add type hints to all functions
> Make the error handling more robust
> /exit
各プロンプトが前の回答を引き継いでおり、
(毎回ゼロからやり直しているのではなく)会話として連続して処理されているのが分かります。
3-4. モード②:Plan モード
最適な用途:実行前にアプローチを確認したい複雑なタスク
旅行前にGPSでルートを確認するようなイメージです。
Plan モードでは、コードを書く前に
ステップごとの実装計画を作成できます。
/plan コマンド、または Shift + Tab を押して Plan モードに切り替えます。
💡 Tips
Shift + Tab でモードを切り替えられます:
Interactive → Plan → Autopilot
インタラクティブセッション中であれば、いつでも切り替え可能です。
copilot
> /plan 「既読 (mark as read)」コマンドをこの本アプリに追加
出力例:
📋 実装計画
ステップ1:book_app.py のコマンドハンドラを更新
- "mark" コマンド用の elif 分岐を追加
- handle_mark_as_read() 関数を作成
ステップ2:ハンドラ関数の実装
- ユーザーに本のタイトルを入力させる
- collection.mark_as_read(title) を呼び出す
- 成功 / 失敗メッセージを表示
ステップ3:ヘルプテキストの更新
- コマンド一覧に "mark" を追加
- 使用方法を記述
ステップ4:動作確認
- 本を追加
- 既読にする
- 一覧表示で状態が変わっているか確認
この計画で実装を進めますか? [Y/n]
コードを書く前に設計をレビュー・修正でき、
さらに、計画が完成したら、
「この計画を mark_as_read_plan.md に保存して」
と指示すれば、Markdown ファイルとして保存することも可能です。
💡 もっと複雑なことを試したい場合
/plan Add search and filter capabilities to the book app
のように指示すると、
シンプルな機能から本格的なアプリ設計まで対応できます。
📚 Autopilot モードについて
Shift + Tab を押すと、3つ目のモードである Autopilot に切り替えられます。
Autopilot モードでは:
各ステップごとに確認を待たず、
計画に沿って自動で作業を進めていきます。
「終わったら教えて」と同僚に丸投げするイメージです。
3-5. モード③:Programmatic モード
最適な用途:
- 自動化
- スクリプト
- CI/CD
- 単発コマンド
店員と会話せずに素早く注文するドライブスルーのようなイメージです。
使い方
対話を必要としない単発の処理には、-p フラグを使います。
# コード生成
copilot -p "数値が偶数か奇数かを判定する関数を書いて"
# クイックな質問
copilot -p "PythonでJSONファイルを読み込むには?"
即答して終了するモードです。
会話なし、コンテキストなし、入力 → 出力のみ。
慣れてきたら (スクリプトでの利用)
慣れてきたら、-p をシェルスクリプトの中で使うこともできます。
#!/bin/bash
# コミットメッセージを自動生成
COMMIT_MSG=$(copilot -p "次の差分に対するコミットメッセージを生成してください: $(git diff --staged)")
git commit -m "$COMMIT_MSG"
# ファイルレビュー
copilot --allow-all -p "@myfile.py の問題点をレビューしてください"
⚠️ --allow-all について
このフラグは、すべての権限確認プロンプトをスキップし、
Copilot CLI がファイルの読み取り・コマンド実行・URLアクセスを
確認なしで実行できるようにします。
Programmatic モード(-p)では対話ができないため、この設定が必要になります。
注意点:
- 自分で書いたプロンプトに対してのみ使用する
- 信頼できるディレクトリ内でのみ使用する
- 不明な入力や機密情報を含む環境では絶対に使わない
4. 主要なスラッシュコマンド
これらのコマンドは Interactive モードで使用できます。
4-1. 重要コマンド
まずはこの 6 つだけ覚えれば OK です。日常利用の 90 %はカバーできます。
| コマンド | 機能 | 使う場面 |
|---|---|---|
/help |
利用可能なコマンド一覧を表示 | コマンドを忘れたとき |
/clear |
会話をリセットして新しく開始 | 話題を切り替えたいとき |
/plan |
実装前に作業を設計する | 複雑な機能に取り組むとき |
/research |
GitHubやWebを使った深い調査 | 実装前に調査が必要なとき |
/model |
AIモデルの確認・切り替え | モデルを変更したいとき |
/exit |
セッションを終了 | 作業を終えたとき |
これでスタートに必要なコマンドは十分です!
慣れてきたら、さらに多くのコマンドを試してみましょう。
📚 公式ドキュメント
すべてのコマンドやフラグの一覧はこちら
4-2. Agent 環境コマンド
| コマンド | 機能 |
|---|---|
/init |
リポジトリ用の Copilot 設定(指示)を初期化 |
/agent |
利用可能なエージェントを一覧表示・選択 |
/skills |
機能拡張のためのスキルを管理 |
/mcp |
MCPサーバーの設定を管理 |
💡 Skills は Chapter 05、MCPサーバーは Chapter 06 で詳しく扱います。
4-3. モデルとサブエージェント
| コマンド | 機能 |
|---|---|
/model |
AIモデルの確認・切り替え |
/delegate |
タスクを GitHub 上の Copilot コーディングエージェントに委譲(クラウド上のエージェント) |
/fleet |
複雑なタスクを並列のサブタスクに分割して高速化 |
/tasks |
バックグラウンドで動作しているサブエージェントや分離されたシェルセッションを表示 |
4-4. コード関連
| コマンド | 機能 |
|---|---|
/diff |
現在のディレクトリの変更内容をレビュー |
/review |
コードレビューエージェントを実行して変更を分析 |
/research |
GitHubやWebを使った詳細な調査を実行 |
/terminal-setup |
複数行入力(Shift+Enter / Ctrl+Enter)を有効化 |
4-5. 権限管理
| コマンド | 機能 |
|---|---|
/allow-all |
このセッションのすべての権限確認を自動承認 |
/add-dir <directory> |
許可済みディレクトリに追加 |
/list-dirs |
許可済みディレクトリ一覧を表示 |
/cwd, /cd [directory]
|
作業ディレクトリの表示・変更 |
⚠️ 注意
/allow-all は確認プロンプトをスキップします。
信頼できるプロジェクトでは便利ですが、不明なコードには注意してください。
4-6. セッション管理
| コマンド | 機能 |
|---|---|
/resume |
別のセッションに切り替え(ID指定も可能) |
/rename |
現在のセッション名を変更 |
/context |
コンテキスト使用量(トークン)を表示・可視化 |
/usage |
セッションの使用状況・統計を表示 |
/session |
セッション情報とワークスペース概要を表示 |
/compact |
会話を要約してコンテキスト使用量を削減 |
/share |
セッションをMarkdownやGitHub Gistとしてエクスポート |
4-7. ヘルプとフィードバック
| コマンド | 機能 |
|---|---|
/help |
利用可能なコマンド一覧を表示 |
/changelog |
CLIの変更履歴を表示 |
/feedback |
GitHubにフィードバックを送信 |
/theme |
ターミナルのテーマ表示・変更 |
4-8. Quick Shell コマンド
! を先頭につけることで、AIを介さずに
シェルコマンドを直接実行できます。
copilot
> !git status
# AIを介さずに git status を直接実行
> !python -m pytest tests/
# pytest を直接実行
4-9. モデルの切り替え
Copilot CLI は、複数の AI モデルに対応しています。
利用可能なモデルは、サブスクリプションや地域によって異なります。
/model コマンドを使うと、利用可能なモデルを確認・切り替えできます。
copilot
> /model
# 利用可能なモデル一覧が表示され、選択できる(例:Sonnet 4.6)
↑ スクショの下も続いてる(Gemini とかある)
💡 Tips
モデルによって「プレミアムリクエスト」の消費量が異なります。
1x と表示されているモデル(例:Claude Sonnet 4.6)
→ バランスが良く、デフォルトとしておすすめ
高倍率のモデル
→ 高性能だが、クォータを早く消費する (重いタスクのときだけ使うのが良い)
5. 試してみよう!
5-1. Interactive モードで
Copilot を起動し、続けてプロンプトを入力しながら、
ブックアプリを段階的に改善してみましょう。
copilot
> @samples/book-app-project/book_app.py をレビューして、改善できる点を教えてください
> if/elif の分岐を、より保守しやすい構造にリファクタリングしてください
> すべてのハンドラ関数に型ヒントを追加してください
> /exit
5-2. 機能を plan してみる
コードを書き始める前に、 /plan を使って
Copilot CLI に実装方針を考えさせてみましょう。
copilot
> /plan タイトルまたは著者名で本を検索できる機能をブックアプリに追加する実装計画を作ってください
# 計画を確認する
# 承認する、または修正する
# ステップごとに実装される様子を見る
5-3. Programmatic モードで自動化する
-p フラグを使うと、Interactive モードに入らずに
ターミナルから直接 Copilot CLI を実行できます。
以下のスクリプトを、リポジトリのルートディレクトリで
Copilot の中ではなく通常のターミナルにコピー&ペーストしてください。
ブックアプリ内のすべての Python ファイルをレビューします。
# ブックアプリ内のすべての Python ファイルをレビュー
for file in samples/book-app-project/*.py; do
echo "Reviewing $file..."
copilot --allow-all -p "Quick code quality review of @$file - critical issues only"
done
PowerShell(Windows)の場合:
# ブックアプリ内のすべての Python ファイルをレビュー
Get-ChildItem samples/book-app-project/*.py | ForEach-Object {
$relativePath = "samples/book-app-project/$($_.Name)";
Write-Host "Reviewing $relativePath...";
copilot --allow-all -p "Quick code quality review of @$relativePath - critical issues only"
}
まとめ
3つのモードの使い分け、
そして主要なスラッシュコマンドを学びましたね!
続き(第二章)も楽しみです!
↓ 続きの記事を書きました










