はじめに
Github Copilot CLIは強力なツールですが、設定や指示の出し方などがうまくできていないと思ったような成果が得られません。
今回は、Copilot CLIを使って開発を進める上での注意点について紹介します。
環境を整える
custom instructionを使用する
instructions.mdを定義することで、Copilotの振舞いを制御することができます。
instructions.mdは配置する場所に応じてScopeが異なります。
| 配置場所 | Scope |
|---|---|
~/
| すべてのセッション(グローバル) |
.github/
| リポジトリ |
.github/
| リポジトリ(モジュール式) |
AGENTS.md
(Gitのルートディレクトリまたは現在の作業ディレクトリ内) | リポジトリ |
Copilot.md
、、
GEMINI.md
CODEX.md
| リポジトリ |
リポジトリの指示はグローバルな指示よりも常に優先されます。
また、長過ぎる指示は効果を発揮しない場合があるので、簡潔に実行可能なものにすることが望ましいです。
使用するツールを設定する
Copilotが許可を求めずに使用できるツールを管理できます。
Copilotが許可を求めた際に「一度だけ許可」、または、「常に許可」を選択することで、そのツールをリストに追加し、今回のセッションと今後のセッションで使えるようにします。
承認したツールのリセットする場合は、
| 1 | /reset-allowed-tools |
を実行してください。
他にも、フラグを使用して許可するツールを事前に設定することもできます。
| 1 | copilot --allow-tool='shell(git:*)' --deny-tool='shell(git push)' |
以下は権限パターンの例です。
| shell(git:*) | すべてのGitコマンドを許可する |
| shell(npm run:*) | すべてのnpmスクリプトを許可する |
| shell(npm run test:*) | npmのテストコマンドを許可する |
| write | ファイル書き込みを許可 |
用途にあったモデルを選択する
/model
コマンドで使用するモデルを選択することができます。
以下は代表的なモデルとそのモデルが向いている用途です。
| モデル | 最適な用途 | 特徴 |
| Claude Opus 4.6 | 複雑なアーキテクチャ、困難なデバッグ、繊細なリファクタリング | 多くのプレミアムリクエストを消費する |
| Claude Sonnet 4.6 | 日常的なコーディング、ほとんどの定型作業 | 高速でコスト効率が良い |
| GPT-5.3 Codex | コード生成、コードレビュー、簡単な実装 | 他のモデルによって生成されたコードをレビューするのに向く |
コーディングの前に計画を立てる
プランモード
具体的な計画が与えられると、モデルの精度が向上します。
プランモードでは、Copilotはコードを書く前に構造化された実行計画を作成します。
「Shift」+「Tab」を押すと、「通常モード」と「プランモード」が切り替わります。また、
/plan
コマンドを使用して計画を立てることもできます。
プランモードでは、入力されたすべてのプロンプトに基づいてワークフローが実行されます。
- Copilotは、リクエストとコードベースを分析する
- Copilotは、要件とアプローチの認識を合わせるために、いくつか質問する
- チェックボックス付きの構造化された実行計画を作成する
- プランを
plan.mdに保存する - 実行前に承認を求める
プランモードを使用するタイミング
プランモードは以下のようなタスクをこなす際に効果を発揮します。
- 複雑な複数のファイルの変更
- 多数の接点を持つリファクタリング
- 新機能の実装
無限のセッションを活用する
コンテキストウィンドウの自動管理
Copilot CLIではセッション数が無制限なので、コンテキストが不足する心配はありません。
Copilotは必要に応じて会話履歴を要約して情報を保持するとこで、コンテキストを自動的に管理します。
セッションの保存場所は以下のとおりです。
| 1 2 3 4 5 6 | ~/.copilot/session-state/{session-id}/ ├── events.jsonl # Full session history ├── workspace.yaml # Metadata ├── plan.md # Implementation plan (if created) ├── checkpoints/ # Compaction history └── files/ # Persistent artifacts |
また、
/compat
コマンドを実行することで、手動で圧縮処理を実行することができます。
セッション管理コマンド
現在のCLIセッションに関する情報を表示するには、
/session
コマンドを実行します。
また、
/session checkpoints
により、セッションチェックポイントの一覧を表示できます。
特定のチェックポイントの詳細を表示するには、
/session checkpoints NUMBER
を使います。
/session files
は、現在のセッション中に作成された一時ファイルを表示します。
/session plan
は、現在のプランを表示するのに使います。
セッションの焦点を絞る
無制限のセッションは長時間の作業を可能としますが、集中したセッションの方がより良い結果を生み出します。
関連性のないタスクを実行する場合には、
/clear
または、
/new
を使ってコンテキストをリセットします。
また、
/context
を使うと現在のコンテキストの使用状況を可視化することができます。
- システム/ツールトークン
- メッセージ履歴トークン
- 空きスペース
- バッファの割当
効果的にタスクを委任する
タスクを委任する
/delegate
コマンドを使用することで、Copilotコーディングエージェントを使用して、クラウド上で実行させます。これは、次のような場合に有効です。
- 非同期で実行できるタスク
- 他のリポジトリへの変更
- 長時間かかるタスク
高度なパターン
Copilot CLIを使ってより高度な作業を行う場合の例を紹介します。
複数のリポジトリにまたがって作業する
Copilot CLIは、柔軟なマルチリポジトリワークフローを提供します。
親ディレクトリでCopilot CLIを実行することで、すべての子リポジトリに同時にアクセスして作業できるようになります。
/add-dir
コマンドを使うとアクセス範囲を拡大することができます。
/list-dirs
コマンドで許可されたディレクトリを表示することができます。
UI作業に画像を使用する
Copilotは視覚的な参照に対応しています。画像をCLIにドラッグ&ドロップするか、
@FILENAME
で参照画像ファイルを指定してください。
自律的なタスクの完了
オートパイロットモードに切り替えると、Copilotは作業完了まで自律的に動作します。これは、常時監視を必要としない長時間の作業に最適です。
詳細については、GitHub Copilot CLI の自律動作を許可するを参照してください。
/fleet
コマンドを使うと、Copilotはタスクをサブエージェントによって実行される並列サブタスクに分割し、大規模なタスクの処理速度を向上させることができます。
詳細については、 /fleet コマンドを使用したタスクの並列実行を参照してください。
さいごに
Copilotを有効に使うための方法を紹介しました。