Skip to content

MS_GitHubCopilotCLI

nishi_74322014 edited this page Sep 11, 2026 · 2 revisions

GitHub Copilot CLI

概要

  • VSC からの実行がメインと言う事で、元々、GitHub Copilot in the CLI と言う製品はあった
    (2025 年 10 月に廃止・アーカイブ)が、
  • コチラは、GitHub Copilot Coding Agent より、
    更に強く Claude Code(コーディング・エージェント)を意識している。

補足(2 つの「CLI」の違い): 名前が紛らわしいので整理しておく。

【GitHub Copilot in the CLI(旧)】★
   ・gh コマンドの拡張(gh copilot suggest / explain)
   ・「このシェル コマンドは何?」
     「〜したいがコマンドは?」に答えるだけ
   ・【ファイルを編集する能力はない】
   → 2025年10月に廃止・アーカイブ(原文の記述どおり)

【GitHub Copilot CLI(新)】★
   ・独立したエージェント(npm パッケージ)
   ・【ファイルの読み書き、コマンド実行、
     計画立案、サブエージェント】まで行う
   → 位置付けとしては
     Claude Code / Codex CLI と同じ土俵

詳細

参考を参照。

インストール

参考:https://docs.github.com/ja/copilot/how-tos/copilot-cli/set-up-copilot-cli/install-copilot-cli

npm

(全プラットフォーム)

npm install -g @github/copilot

Windows

winget install GitHub.Copilot

bash

curl -fsSL https://gh.io/copilot-install | bash

macOS

brew install copilot-cli

初期設定

起動

copilot
  • YOLO モード
copilot --autopilot
  • 中断したところから続ける
copilot --continue
  • セッションを再開
    • 一覧から選択
copilot --resume
  • ID を指定して再開
copilot --resume abc123
  • エージェント指定
copilot --agent python-reviewer
  • Instruction(後述の /init を参照)を無効化する(デバッグ用)
copilot --no-custom-instructions

認証

/login

モード

Normal、Plan、Auto Pilot の 3 種類のモード

起動時切替

copilot --autopilot
copilot --plan(Issueに上がっている)

起動後切替

「Shift+Tab」で切り替え。

当該プロンプトのみ

/plan
/allow-all(エイリアス /yolo)

移行メモ(括弧の欠落): 移行元では /allow-all(エイリアス /yolo
閉じ括弧が欠落していたため補った。

基本

Claude Code と同じ。

/usage

使用状況の確認

移行メモ(誤字): 移行元の「仕様状況の確認」を
使用状況の確認」に修正した。

/model

AI モデルの確認・切り替え

/init

プロジェクト Instruction ファイルを生成

  • AGENTS.md
    CLAUDE.md、GEMINI.md は、他 AI ツールとの互換性用

    • スコープ:プロジェクトルートまたはサブディレクトリ
    • 備考:クロスプラットフォーム標準(Copilot 以外の AI でも使用可能)
  • .github/copilot-instructions.md

    • スコープ:プロジェクト
    • 備考:GitHub Copilot 専用
  • .github/instructions/*.instructions.md

補足(Instruction ファイルの使い分け): 3 種類あるが、
役割が重ならないよう設計されている

ファイル スコープ 読まれ方 用途
AGENTS.md プロジェクト / サブディレクトリ 常に読まれる ツール非依存の共通規約
.github/copilot-instructions.md プロジェクト 常に読まれる Copilot 固有の指示
.github/instructions/*.instructions.md プロジェクト applyTo に一致した時だけ 言語・領域ごとの細かい規約
【applyTo による絞り込み】★
   ---
   applyTo: "**/*.cs"
   ---
   C# では var を使わず明示的な型を書く。

   → 【関係ないファイルを編集する時は読まれない】
   → コンテキストを節約できる
   → AGENTS.md が肥大化するのを防ぐ ★

【サブディレクトリの AGENTS.md】
   ・モノレポで有効
     /AGENTS.md            … 全体の規約
     /frontend/AGENTS.md   … フロント固有
     /backend/AGENTS.md    … バックエンド固有
   → 【編集対象に近い方が優先】される

【書くべき内容】★
   ・ビルド/テストの実行方法(最重要)★
   ・命名規約・ディレクトリ構成
   ・使ってよい/いけないライブラリ
   ・【触ってはいけないファイル】
   ・文字コード・改行コード
     → [GitHub Copilot Coding Agent](MS_GitHubCopilotCodingAgent) の
       「レガシー対応」の節を参照

/help

CLI のヘルプ表示

/exit

copilot を終了させる

モード

実行モード

  • Normal、Planning、Auto Pilot
  • Interactive、Programmatic

移行メモ(見出しの重複): 移行元では「モード」という同名の見出しが
2 箇所
にある(起動時/起動後の切替を述べる節と、
各モードの内容を述べる本節)。
見出しは移行元のまま残したが、内容は補完関係にある。

Planning

計画のみで実装しない。

/plan "<プロンプト>"

Auto Pilot

YOLO:You Only Live Once(人生は一度きりだから失敗を恐れずに挑戦しよう。)

/allow-all "<プロンプト>"
/yolo "<プロンプト>"

移行メモ(括弧の欠落): 移行元では YOLO の説明の閉じ括弧が欠落
していたため補った。

補足(Auto Pilot の使いどころと危険): 「失敗を恐れずに」という
語感どおり、確認を省くモードである。

【何が起きるか】★
   ・ファイルの書き込み、コマンド実行の
     【確認プロンプトを全部スキップする】
   ・rm / git reset / 外部への送信も
     止められずに実行されうる

【安全に使う条件】★
 ① 【隔離された環境】で動かす
     → コンテナ / VM / 使い捨てのワークツリー
 ② 【変更をコミット済み】にしてから始める
     → いつでも git reset --hard で戻せる状態
 ③ 【許可ディレクトリを絞る】(/add-dir)
 ④ 認証情報を環境から外す
     → クラウドの本番資格情報が見える状態で
       YOLO を回さない ★

【向く作業 / 向かない作業】
   向く   … 大量の機械的な修正、
            テストが通るまでの反復、調査
   向かない … 本番設定の変更、
            マイグレーション、外部への通知 ★

Interactive

フツーに CLI の Chat で実行する。

Programmatic

単発実行でシェルスクリプトに組み込み可能。

  • 単発実行
copilot -p "<プロンプト>"
  • シェルスクリプトの中で利用可能
# コミットメッセージを自動生成
COMMIT_MSG=$(copilot -p "次の差分に対するコミット・メッセージを生成してください: $(git diff --staged)")
git commit -m "$COMMIT_MSG"
# ファイルレビュー
copilot --allow-all -p "@myfile.py の問題点をレビューしてください"

補足(Programmatic モードの実務的な注意): パイプに組み込めるのは
強力だが、スクリプトとして扱う際の作法がある。

【① 出力は自然言語である】★
   ・コミット メッセージの例のように
     「そのまま使う」前提だと
     前置き(「はい、以下が…」)が混ざることがある
   → プロンプトで
     【「本文だけを出力し、説明を付けないこと」】と指示する
   → 構造化が要るなら JSON を要求してパースする

【② 非決定的である】
   ・同じ入力でも出力が変わりうる
   → CI に組み込むなら
     【失敗しても止まらない】位置に置く
   → または人がレビューする成果物として出す

【③ 差分が巨大だとトークンを食う】★
   $(git diff --staged) を丸ごと渡すと
   大きな変更で上限に当たる
   → --stat や対象ファイルを絞る

【④ CI で使うなら認証をどうするか】
   → 対話ログイン(/login)ではなく
     環境変数のトークンを使う
   → 権限は【最小限】に絞る

Slash実行

セッション系

  • セッション情報とワークスペース概要を表示
/session
  • 現在のセッション名を変更
/rename
  • 再起動せずセッション切替(ID 指定も可)
/resume
  • コンテキストを表示
/context
  • 会話のクリア
/clear
  • 会話を要約してコンテキスト使用量を削減
/compact
  • セッションをエクスポート
/share

権限管理

  • セッションのすべての権限確認を自動承認
/allow-all
  • 許可済みディレクトリに追加
/add-dir <directory>
  • 許可済みディレクトリ一覧を表示
/list-dirs
  • 作業ディレクトリの表示・変更
/cwd, /cd [directory]

コーディング系

  • 差分確認
/diff
  • 変更分析(git diff、git diff --staged の違いを意識する)
/review
  • GitHub や Web を使った詳細な調査を実行
/research
  • 複数行入力(Shift+Enter / Ctrl+Enter)を有効化
/terminal-setup

エージェント系

  • 利用可能なエージェントを
    • 選択
/agent
  • 指定
/agent python-reviewer
  • サブ・エージェント

    • 委譲(GitHub クラウド上のエージェント)
/delegate
  • 複雑なタスクを並列のサブタスクに分割して高速化
/fleet
  • サブ・エージェントや分離されたシェル・セッションを表示
/tasks
  • 組込エージェント

    • Init:プロジェクト設定ファイルを生成
/init
  • Plan:コーディング前にステップごとの実装計画を作成
/plan

(または Shift+Tab でモード切替)

  • Code-review:ステージ済み/未ステージの変更をレビュー
/review
  • Explore:コードベースの探索・解析を依頼したときに内部的に使用(自動実行)
  • Task:テスト実行、ビルド、lint、依存関係のインストールなど
    任意のタスクを実行(自動実行)

補足(/delegate/fleet の違い): どちらも「他のエージェントに
任せる」機能だが、走る場所と目的が異なる

【/delegate】★
   ・【GitHub のクラウド上】でエージェントを走らせる
   ・実体は [GitHub Copilot Coding Agent](MS_GitHubCopilotCodingAgent)
   ・結果は【Pull Request として返ってくる】★
   → 「手元を離れて時間のかかる作業」を投げる
   → ローカル環境を占有しない

【/fleet】
   ・【ローカルで】サブエージェントを並列に立てる
   ・独立した文脈で並行処理し、結果を集約する
   → 「多数のファイルに同じ変更」
     「複数の観点で同時に調査」に効く ★
   → 各サブエージェントは
     【親の会話履歴を持たない】ため、
     必要な前提はプロンプトで渡す必要がある

【/tasks】
   ・上記で走らせたものの一覧・状態確認

機能拡張系

  • 機能拡張のためのスキルを管理
/skills
  • インストール済みスキル一覧を表示
/skills list
  • 指定したスキルの詳細を表示
/skills info <name>
  • スキルを有効化(リポジトリやマーケットプレイスから)
/skills add <name>
  • スキルを無効化/アンインストール
/skills remove <name>
  • SKILL.md を編集後に再読み込み
/skills reload
  • MCP サーバーの設定を管理
/mcp

補足(MCP とは): 原文では「...」で省略されているため補っておく。

【MCP(Model Context Protocol)】★
   ・Anthropic が 2024年11月に公開した
     【AI と外部ツールを繋ぐオープン規格】
   ・現在は Anthropic / OpenAI / Google / GitHub 等が
     横断的に採用しており、事実上の標準になった ★

【何ができるか】
   ・DB に問い合わせる
   ・チケット管理(Jira / Azure Boards)を読み書きする
   ・社内の API を叩く
   ・ファイル システムやブラウザを操作する
   → 【エージェントに「手足」を足す】仕組み

【構成】
   Copilot CLI(MCP クライアント)
       ↓ stdio または HTTP
   MCP サーバ(DB / GitHub / 社内 API …)

【セキュリティ上の注意】★★
   ・MCP サーバは【任意のコードを実行しうる】
     → 素性の不明なサーバを追加しない
   ・【プロンプト インジェクション】
     → 外部から読み込んだ内容に
       「〜せよ」という指示が埋め込まれていると
       エージェントが従ってしまう
     → 読み取り専用の権限に絞る、
       書き込み系は確認を挟む ★

その他

Quick Shellコマンド

AI を介さずにコマンド(git status)を直接実行

!git status

ファイル指定

「@」で指定可能だが、チャット中で使用するケースと、
MD ファイル中で使用するケースで異なる。

  • チャット中:@メンション(ファイル参照/ファイル選択)

    • 厳密な(絶対/相対)パス指定は不要。

    • 参照ファイルを指定

@ファイルやパス
  • MD ファイル中:インポート構文(@path/to/import syntax)

    • 相対パスで書くのが一般的

    • 追加ファイルをインポート

@ファイルやパス
  • ワイルドカード
    ファイルやパスにワイルドカードを使用可能。

    • ワイルドカード(任意の文字列)
*
  • 再帰的ワイルドカード(サブフォルダも対象)
**

参考

公式

MSKK

X社

開発基盤部会 Wiki

Master Vibe Coding with AI Coding Agents:Claude Code...

オリジナル・コンテンツ(イキナリLLMコーディング・エージェント)


Tags: 移行, .NET開発, 構成管理ツール, CI, BI/AI

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally