Skip to main content

GitHub Copilot CLI のベスト プラクティス

          GitHub Copilot CLI(コマンドラインインターフェース)を最大限に活用する方法について説明します。

イントロダクション

          GitHub Copilot CLI(コマンドラインインターフェース) は、エージェント機能をコマンド ラインに直接提供する、ターミナルネイティブの AI コーディング アシスタントです。 
          Copilot CLI (コパイロット CLI) チャットボットのように動作し、質問に答えることができますが、その真の力は、コーディングパートナーとして自律的に作業する能力にあり、タスクを委任してその作業を監督することができます。

この記事では、さまざまな CLI コマンドを効果的に使用して CLI のファイルへのアクセスを管理する方法まで、 Copilot CLI (コパイロット CLI)を最大限に活用するためのヒントを提供します。 これらのヒントを出発点として考え、実際のワークフローに最適なものを試してみてください。

メモ

          GitHub Copilot CLI(コマンドラインインターフェース) は絶えず進化しています。 
          `/help` コマンドを使用して、最新の情報を確認します。

1. 環境をカスタマイズする

カスタム命令ファイルを使用する

          Copilot CLI (コパイロット CLI) では、複数の場所から命令が自動的に読み取られ、組織全体の標準とリポジトリ固有の規則を定義できます。

          **サポートされている場所 (検出順):**
ロケーションScope
~/.copilot/copilot-instructions.mdすべてのセッション (グローバル)
.github/copilot-instructions.mdリポジトリ
.github/instructions/**/*.instructions.mdリポジトリ (モジュール式)
AGENTS.md (Git ルートまたは CWD 内)リポジトリ
Copilot.mdGEMINI.mdCODEX.mdリポジトリ

ベスト プラクティス

リポジトリ命令 は常にグローバル命令よりも優先されます 。 これを使用して、チーム規則を適用します。 たとえば、これは単純な .github/copilot-instructions.md ファイルです。

## Build Commands
- `npm run build` - Build the project
- `npm run test` - Run all tests
- `npm run lint:fix` - Fix linting issues

## Code Style
- Use TypeScript strict mode
- Prefer functional components over class components
- Always add JSDoc comments for public APIs

## Workflow
- Run `npm run lint:fix && npm test` after making changes
- Commit messages follow conventional commits format
- Create feature branches from `main`

ヒント

命令を簡潔で実用的な状態に保ちます。 長い命令は有効性を希釈することができます。

詳しくは、「GitHub Copilotの応答をカスタマイズする方法」をご覧ください。

許可されるツールを構成する

アクセス許可を求めずに実行できるツール Copilot 管理します。 Copilotがアクションのアクセス許可を要求する場合は、通常、この時間だけを許可するか、CLI セッションの残りの部分でツールを使用することを許可するかを選択できます。

以前に承認されたツールをリセットするには、次を使用します。

/reset-allowed-tools

CLI フラグを使用して、許可されたツールを事前構成することもできます。

copilot --allow-tool='shell(git:*)' --deny-tool='shell(git push)'
          **一般的なアクセス許可パターン:**
  • shell(git:*) — すべての Git コマンドを許可する
  • shell(npm run:*) — すべての npm スクリプトを許可する
  • shell(npm run test:*) — npm テスト コマンドを許可する
  • write — ファイルの書き込みを許可する

お好みのモデルを選択する

          `/model`を使用して、タスクの複雑さに基づいて使用可能なモデルから選択します。
モデル最適な対象者トレードオフ
自動レート制限の削減と待機時間とエラーの削減自動モデル選択 Copilot について」を参照してください
Claude Opus 4.5 (既定)複雑なアーキテクチャ、難しいデバッグ、微妙なリファクタリング最も機能は高いが、より多くの Premium 要求を使用する
Claude Sonnet 4.5日常のコーディング、ほとんどの日常的なタスク速く、費用効果が大きい、ほとんどの仕事をうまく扱う
GPT-5.2 Codexコード生成、コード レビュー、簡単な実装他のモデルによって生成されたコードのレビューに最適
          **Recommendations:**
  • 自動 では、リアルタイムシステムの正常性とモデルのパフォーマンスに基づいてモデルをインテリジェントに選択し、レート制限を削減し、待機時間とエラーを低減します。
  • Opus 4.5 は、深い推論、複雑なシステム設計、微妙なバグ調査、または広範なコンテキスト理解を必要とするタスクに最適です。
  • Sonnet 4.5 に切り替えて 、速度とコスト効率が重要な日常的なタスクを行い、日常的なコーディングの大部分を効果的に処理します。
  • 大量のコード生成に Codex を使用し、他のモデルによって生成されたコードをレビューするための 2 番目の意見として使用します。

タスクの複雑さの変化に応じて、モデルを /model セッション中に切り替えることができます。

組織または企業が独自の LLM プロバイダー API キーを使用してカスタム モデルを構成している場合、それらのモデルも一覧の下部 /model に表示されます。

独自のモデル プロバイダーを使用する

          Copilot CLI (コパイロット CLI)ホスト型モデルではなく、独自のモデル プロバイダーを使用するようにGitHubを構成できます。 
          `copilot help providers`を実行して、完全なセットアップ手順を実行します。

          **重要な考慮事項:**
  • モデルでは、 ツール呼び出し (関数呼び出し ) と ストリーミングをサポートする必要があります。 Copilot CLI (コパイロット CLI) は、いずれかの機能が見つからない場合にエラーを返します。

  • 最良の結果を得るには、少なくとも 128,000 個のトークンのコンテキスト ウィンドウを持つモデルを使用します。

  • 組み込みのサブエージェント (/review/task、探索、 /fleet) は、プロバイダー構成を自動的に継承します。

  • Premium 要求コストの見積もりは、独自のプロバイダーを使用する場合は非表示になります。 トークンの使用状況 (入力、出力、キャッシュ数) は引き続き表示されます。

  • /delegate は、 GitHubにサインインしている場合にのみ機能します。 セッションは、プロバイダーではなく、 GitHubのサーバー側の Copilotに転送されます。

            [独自のモデル プロバイダーの使用を](/copilot/concepts/agents/copilot-cli/about-copilot-cli#using-your-own-model-provider)参照してください。
    

2. コーディングする前に計画する

プラン モード

          **モデルは、従う具体的な計画が与えられると、より高い成功率を達成します。** プラン モードでは、 Copilot は、コードを記述する前に構造化された実装計画を作成します。

          <kbd>Shift</kbd>+<kbd>Tab</kbd> キーを押して、標準モードとプラン モードを切り替えます。 プラン モードでは、入力したすべてのプロンプトによってプラン ワークフローがトリガーされます。

または、通常モードで /plan コマンドを使用して、同じ効果を得ることもできます。

          **プロンプトの例 (通常モード):**
/plan Add OAuth2 authentication with Google and GitHub providers
          **何が起こるか:**
  • Copilot は、要求とコードベースを分析します。

  • 要件とアプローチに合わせて質問を明確にします。

  • チェック ボックスを使用して構造化実装計画を作成します。

  • プランをplan.mdにセッションフォルダー内で保存します。

  • 実装する前に 、承認を待ちます

            <kbd>
            </kbd>
            + キーを押すと、Markdown ファイルの既定のエディターでプランを表示および編集できます。
    
            **プランの出力例:**
    
# Implementation Plan: OAuth2 Authentication

## Overview
Add social authentication using OAuth2 with Google and GitHub providers.

## Tasks
- [ ] Install dependencies (passport, passport-google-oauth20, passport-github2)
- [ ] Create authentication routes in `/api/auth`
- [ ] Implement passport strategies for each provider
- [ ] Add session management middleware
- [ ] Create login/logout UI components
- [ ] Add environment variables for OAuth credentials
- [ ] Write integration tests

## Detailed Steps
1. **Dependencies**: Add to package.json...
2. **Routes**: Create `/api/auth/google` and `/api/auth/github`...

プラン モードを使用する場合

Scenarioプラン モードを使用しますか?
複雑な複数ファイルの変更
多くのタッチ ポイントを使用したリファクタリング
新機能の実装
バグのクイック修正
一つのファイルの変更

探査→計画→コード→コミット ワークフロー

複雑なタスクに最適な結果を得るには:

  • 以下を参照してください。

    Read the authentication files but don't write code yet

  • プラン:

    /plan Implement password reset flow

  • レビュー:

    プランを確認し、変更を提案する

  • 実装:

    Proceed with the plan

  • 検証:

    Run the tests and fix any failures

  • コミット:

    Commit these changes with a descriptive message

3. 無限セッションを活用する

コンテキスト ウィンドウの自動管理

          Copilot CLI (コパイロット CLI)
          **は無限セッション**を備えています。 コンテキストが不足することを心配する必要はありません。 システムは、重要な情報を保持しながら会話履歴を要約するインテリジェントな圧縮によってコンテキストを自動的に管理します。

          **セッションストレージの場所:**
~/.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

メモ

圧縮を手動でトリガーする必要がある場合は、 /compactを使用します。 これは、システムが自動的に処理するため、ほとんど必要ありません。

セッション管理コマンド

現在の CLI セッションに関する情報を表示するには、次のように入力します。

/session

セッション チェックポイントの一覧を表示するには、次のように入力します。

/session checkpoints

メモ

セッション コンテキストが圧縮されるときにチェックポイントが作成され、Copilotによって作成された概要コンテキストを表示できます。

特定のチェックポイントの詳細を表示するには、次のように入力します。

/session checkpoints NUMBER

ここで NUMBER は、表示するチェックポイントを指定します。

現在のセッション中に作成された一時ファイル (リポジトリに保存すべきではない Copilot によって作成された成果物など) を表示するには、次のように入力します。

/session files
          Copilot がプランを生成している場合、現在のプランを表示するには、次のように入力します。
/session plan

ベスト プラクティス: セッションに集中する

無限セッションでは実行時間の長い作業が可能ですが、集中したセッションではより良い結果が得られます。

  • 関連のないタスク間で /clear または /new を使用します。
  • これにより、コンテキストがリセットされ、応答の品質が向上します。
  • 同僚との新しい会話を始めるのと同じように考えてください。

          `/context` コマンド

          `/context`を使用して現在のコンテキストの使用状況を視覚化します。 次の内訳が表示されます。
  • システム/ツール トークン
  • メッセージ履歴トークン
  • 空き領域
  • バッファーの割り当て

4. 作業を効果的に委任する

          `/delegate` コマンド

          **
          Copilot クラウドエージェントを使用してクラウドで実行する作業をオフロードします。** これは、次の場合に特に強力です。
  • 非同期的に実行できるタスク。

  • 他のリポジトリへの変更。

  • 待ちたくない、実行時間の長い操作。

            **サンプル プロンプト:**
    
/delegate Add dark mode support to the settings page
          **何が起こるか:**
  • 要求が Copilot クラウドエージェントに送信されます。
  • エージェントは、変更を含むプル要求を作成します。
  • クラウド エージェントが動作している間は、ローカルで作業を続けることができます。

どのようなときに /delegate を使用するか

/delegate を使用するローカルで作業する
付随的なタスクコア機能の動作
ドキュメントの更新デバッグ
個別のモジュールのリファクタリング対話型の探索

5. 一般的なワークフロー

コードベースの導入

新しいプロジェクトに参加するときは、 Copilot CLI (コパイロット CLI) をペア プログラミング パートナーとして使用します。 たとえば、次の Copilotを要求できます。

  • How is logging configured in this project?
  • What's the pattern for adding a new API endpoint?
  • Explain the authentication flow
  • Where are the database migrations?

テスト駆動開発

          Copilot CLI (コパイロット CLI)と組み合わせてテストを開発します。
  • Write failing tests for the user registration flow
  • テストを確認して承認します。
  • Now implement code to make all tests pass
  • 実装を確認します。
  • Commit with message "feat: add user registration"

コード レビューの支援

  • /review Use Opus 4.5 and Codex 5.2 to review the changes in my current branch against `main`. Focus on potential bugs and security issues.

Git 操作

          Copilot は Git ワークフローに秀でています。
  • What changes went into version `2.3.0`?
  • Create a PR for this branch with a detailed description
  • Rebase this branch against `main`
  • Resolve the merge conflicts in `package.json`

バグ調査

  • The `/api/users` endpoint returns 500 errors intermittently. Search the codebase and logs to identify the root cause.

リファクタリング

  • /plan Migrate all class components to functional components with hooks

    次に、Copilot が尋ねる質問に答える。 作成したプランを確認し、必要に応じて Copilot に変更を加えるように依頼します。 プランに問題が無い場合は、Implement this plan のプロンプトを実行できます。

6. 高度なパターン

複数のリポジトリ間で作業する

          **
          Copilot CLI (コパイロット CLI) は、柔軟なマルチリポジトリ ワークフローを提供**します。これは、マイクロサービス、モノレポ、または関連プロジェクトに取り組むチームにとって重要な差別化要因です。

          **オプション 1: 親ディレクトリから実行する**
# Navigate to a parent directory containing multiple repos
cd ~/projects
copilot
          Copilot は、すべての子リポジトリに同時にアクセスして動作できるようになりました。 これは次の場合に最適です。
  • マイクロサービス アーキテクチャ

  • 関連するリポジトリ間で調整された変更を行う

  • プロジェクト間で共有パターンをリファクタリングする

            **オプション 2: `/add-dir` を使用してアクセスを拡張する**
    
# Start in one repo, then add others (requires full paths)
copilot
/add-dir /Users/me/projects/backend-service
/add-dir /Users/me/projects/shared-libs
/add-dir /Users/me/projects/documentation
          **許可されたディレクトリの表示と管理:**
/list-dirs
          **ワークフローの例: 調整された API の変更**
I need to update the user authentication API. The changes span:

- @/Users/me/projects/api-gateway (routing changes)
- @/Users/me/projects/auth-service (core logic)
- @/Users/me/projects/frontend (client updates)

Start by showing me the current auth flow across all three repos.

このマルチリポジトリ機能を使用すると、次のことが可能になります。

  • 横断的リファクタリング (共通パターンを全体的に更新する)
  • クライアントの更新による API コントラクトの変更
  • 複数のコードベースを参照するドキュメント
  • モノレポ全体における依存関係のアップグレード

UI 作業に画像を使用する

          Copilot は、ビジュアル参照を操作できます。 CLI 入力に画像を直接**ドラッグ アンド ドロップするか**、Ctrl<kbd></kbd>+<kbd>キー</kbd>を使用してクリップボードから画像を貼り付けるか、プロンプトでイメージ ファイルを参照するだけです。
Implement this design: @mockup.png
Match the layout and spacing exactly

複雑な移行のチェックリスト

大規模な変更の場合:

Run the linter and write all errors to `migration-checklist.md` as a checklist.
Then fix each issue one by one, checking them off as you go.

自律タスクの完了

オートパイロット モードに切り替えて、 Copilot が完了するまでタスクで自律的に動作できるようにします。 これは、一定の監督を必要としない実行時間の長いタスクに最適です。 詳しくは、「GitHub Copilot CLI が自律的に動作できるようにする」をご覧ください。

必要に応じて、通常、プロンプトの開始時に /fleet スラッシュ コマンドを使用して大規模なタスクを高速化し、 Copilot がサブエージェントによって実行される並列サブタスクにタスクを分割できるようにします。 詳しくは、「`/fleet` コマンドを使用したタスクの並列実行」をご覧ください。

7. チームのガイドライン

  • 次を使用してを作成します。

    • コマンドのビルドとテスト
    • コード スタイルのガイドライン
    • コミット前に必要なチェック
    • アーキテクチャの決定
  • 次の規則を確立します

    • /planを使用する場合 (複雑な特徴、リファクタリング)
    • /delegate を使用する場面 (補助作業)
    • AI 支援を使用したコード レビュー プロセス

セキュリティに関する考慮事項

  • Copilot CLI (コパイロット CLI) には、破壊的な操作の可能性がある明示的な承認が必要です。
  • 受け入れる前に、提案されたすべての変更を確認します。
  • 権限許可リストを慎重に使用します。
  • シークレットをコミットしないでください。 Copilot は、これを回避するように設計されていますが、常に確認してください。

生産性の測定

次のようなメトリックを追跡します。

  • 発行から pull_request までの時間
  • マージ前の反復回数
  • コード レビューのフィードバック サイクル
  • テスト カバレッジの向上

ヘルプを受ける

コマンド ラインから、次のコマンドを使用してヘルプを表示できます: copilot -h

さまざまなトピックのヘルプについては、次のように入力します。

copilot help TOPIC
          `TOPIC`には、`config`、`commands`、`environment`、`logging`、または`permissions`のいずれかを指定できます。

CLI 内

CLI 内のヘルプについては、次のように入力します。

/help

使用状況の統計情報を表示するには、次のように入力します。

/usage
          GitHubに関するCopilot CLI (コパイロット CLI)にプライベート フィードバックを送信したり、バグ レポートを作成したり、機能要求を送信したりするには、次のように入力します。
/feedback

ハンズオン プラクティス

アプリケーションの構築に関する実践的な経験を得るには、Copilot CLI (コパイロット CLI) を使用したを試してください。

学習内容を次に示します。

  • Copilot CLI (コパイロット CLI) のインストール
  • 問題テンプレートを使用して問題を作成する
  • Node.js CLI 電卓アプリを生成する
  • 電卓機能の拡張
  • 電卓関数の単体テストを記述する
  • プルリクエストを作成し、確認してマージする

詳細については、次を参照してください。