WSLでGitHub Copilot CLIを使ってみる

はじめに

GitHub Copilot CLIPublic Previewとしてリリースされているので実際に使ってみる。
Gemini CLIとか、Amazon Q Developer CLIを以前使ってみたので、GitHub Copilot CLIも使ってみる。
※ターミナル上でAIアシスタントを利用できるツールで、自然言語での質問やコード生成をターミナル上で直接実行できる。

今回は、WSL環境でGitHub Copilot CLIをセットアップして使ってみる。

環境

WSL2 (Ubuntu 24.04 LTS)
Node.js v22.12.0
npm v10.9.0
GitHub Copilot CLI v0.0.357

GitHub Copilot CLIとは

GitHub Copilot CLIは、ターミナルネイティブなAI開発アシスタントツールとなっている。
GitHubとの統合により、リポジトリのコンテキストを理解しながら、コード生成やコマンド提案を行ってくれる。

特徴

  • ターミナル上で自然言語によるAI支援を受けられる
  • GitHubリポジトリのコンテキストを認識できる
  • Model Context Protocol (MCP)によるエージェント機能の拡張に対応している
  • 実行前にユーザーの明示的な承認が必要な設計でセキュアである
  • Claude Sonnet 4.5、Claude Sonnet 4、GPT-5のモデルを選択できる

前提条件

項目要件
Node.jsv22以上
npmv10以上
GitHub Copilot有効なサブスクリプション
OSLinux、macOS、Windows (PowerShell v6+)

インストール

npmを使ってグローバルインストールする。

npm install -g @github/copilot
ログ
added 1 package in 4s

インストールされたバージョンを確認する。

copilot --version
0.0.357
Commit: 339872d6f

使い方

認証

初回起動時は、GitHubアカウントでの認証が必要。

copilot
ログ
┌──                                                                         ──┐
│                                                           ▄██████▄          │
    Welcome to GitHub                                   ▄█▀▀▀▀▀██▀▀▀▀▀█▄
    █████┐ █████┐ █████┐ ██┐██┐     █████┐ ██████┐     ▐█      ▐▌      █▌
   ██┌───┘██┌──██┐██┌─██┐██│██│    ██┌──██┐└─██┌─┘     ▐█▄    ▄██▄    ▄█▌
   ██│    ██│  ██│█████┌┘██│██│    ██│  ██│  ██│      ▄▄███████▀▀███████▄▄
   ██│    ██│  ██│██┌──┘ ██│██│    ██│  ██│  ██│     ████     ▄  ▄     ████
   └█████┐└█████┌┘██│    ██│██████┐└█████┌┘  ██│     ████     █  █     ████
    └────┘ └────┘ └─┘    └─┘└─────┘ └────┘   └─┘     ▀███▄            ▄███▀
│                              CLI Version 0.0.357      ▀▀████████████▀▀      │
└──                                                                         ──┘
 Version 0.0.357 · Commit 339872d6f

 Copilot can write, test and debug code right from your terminal. Describe a task to get started or enter ?
  for help. Copilot uses AI, check for mistakes.

 ╭────────────────────────────────────────────────────────────────────────────────────────────────────────╮
 │ Confirm folder trust                                                                                   │
 │                                                                                                        │
 │ ╭────────────────────────────────────────────────────────────────────────────────────────────────────╮ │
 │ │ /home/kbushi/workspace                                                                             │ │
 │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
 │                                                                                                        │
 │ Copilot may read files in this folder. Reading untrusted files may lead Copilot to behave in           │
 │ unexpected ways. With your permission, Copilot may execute code or bash commands in this folder.       │
 │ Executing untrusted code is unsafe.                                                                    │
 │                                                                                                        │
 │ Do you trust the files in this folder?                                                                 │
 │                                                                                                        │
 │ ❯ 1. Yes                                                                                               │
 │   2. Yes, and remember this folder for future sessions                                                 │
 │   3. No (Esc) │                                                                                                        │
 │ Confirm with number keys or ↑↓ keys and Enter, Cancel with Esc                                         │
 ╰────────────────────────────────────────────────────────────────────────────────────────────────────────╯

Yes を選択しておく。
プロンプトが起動したら/loginコマンドで認証を行う。

/login
ログ
 ──────────────────────────────────────────────────────────────────────────────────────────────────────────
 > /login
 ──────────────────────────────────────────────────────────────────────────────────────────────────────────
  /login                                       Log in to Copilot

GitHub.com を選択し、https://github.com/login/device にアクセス。
表示されている ワンタイムコードを入力する。
認証が完了すると、ターミナルに戻って使用可能になる。

ログインできた!

 Connected to GitHub MCP Server

 ● Signed in successfully as katsuobushiFPGA! You can now use Copilot.

 ~/workspace                                                                        claude-sonnet-4.5 (1x)
 ──────────────────────────────────────────────────────────────────────────────────────────────────────────
 >  Enter @ to mention files or / for commands
 ──────────────────────────────────────────────────────────────────────────────────────────────────────────

基本的な使い方

copilotコマンドで対話型のセッションが開始される。

copilot

プロンプトが表示されたら、自然言語で質問や依頼ができる。

> 現在のディレクトリ配下の.mdファイルを再帰的に検索して、ファイル数を表示するコマンドを教えて
ログ
 ● 現在のディレクトリ配下の.mdファイルを再帰的に検索して、ファイル数を表示するコマンドを実行します。

 ✓ Count .md files recursively
   $ find . -type f -name "*.md" | wc -l
7 lines...

 ● 結果: 6,472個の.mdファイルが見つかりました。

   使用したコマンド:

     find . -type f -name "*.md" | wc -l

     - find . -type f -name "*.md" : 現在のディレクトリ(.)から再帰的に、ファイルタイプ(-type
   f)で拡張子が.mdのファイルを検索
     - wc -l : 見つかったファイルの行数(=ファイル数)をカウント

   (一部のディレクトリでPermission deniedエラーが出ていますが、カウントには影響ありません)

 ~/workspace                                                                        claude-sonnet-4.5 (1x)
 ──────────────────────────────────────────────────────────────────────────────────────────────────────────
 >  Enter @ to mention files or / for commands
 ──────────────────────────────────────────────────────────────────────────────────────────────────────────
 Ctrl+c Exit · Ctrl+r Expand recent                                               Remaining requests: 75.7%

AIが提案したコマンドを確認して、実行するかどうかを選択できる。

モデルの切り替え

デフォルトではClaude Sonnet 4.5が使用されるが、/modelコマンドでモデルを変更できる。

/model

利用可能なモデル一覧が表示され、選択できる。

モデルコスト
Claude Sonnet 4.51x
Claude Sonnet 41x
Claude Haiku 4.50.33x
GPT-51x
ログ
 Choose the AI model to use for Copilot CLI. The selected model will be persisted and used for future
 sessions.

 ❯ 1. Claude Sonnet 4.5 (1x) (default) (current)
   2. Claude Sonnet 4 (1x)
   3. Claude Haiku 4.5 (0.33x)
   4. GPT-5 (1x)
   5. Cancel (Esc)

 Confirm with number keys or ↑↓ keys and Enter, Cancel with Esc

プレミアムリクエストについて

GitHub Copilot CLIでは、より高度なAIモデルを使用するため、プレミアムリクエストの仕組みが導入されている。

各モデルには「リクエストコスト」が設定されており、モデルを使用するたびにこのコストが消費される。
例えば、Claude Sonnet 4.5やGPT-5は1リクエストあたり1x、Claude Haiku 4.5は0.33xとなっている。

プレミアムリクエストの残量は、プロンプト下部に表示される。

Remaining requests: 75.7%

残量が少なくなった場合は、以下の対策が考えられる。

  • 軽量なClaude Haiku 4.5モデルに切り替える
  • 質問を簡潔にして、必要最小限のリクエストに留める
  • 翌月のリクエスト残量リセットを待つ

主なコマンド

コマンド説明
/loginGitHubアカウントで認証する
/model使用するAIモデルを切り替える
/feedbackフィードバックを送信する
/exit または Ctrl+Cセッションを終了する

使ってみる

コマンド生成

複雑なコマンドの構文を調べる代わりに、自然言語で依頼できる。

> ポート8080で動いているプロセスを見つけて停止するコマンドを教えて

AIが以下のようなコマンドを提案する。

lsof -ti:8080 | xargs kill -9
ログ
 ● ポート8080で動いているプロセスを見つけて停止するコマンドを実行します。

 ○ Find process using port 8080
   $ lsof -ti:8080


 ╭────────────────────────────────────────────────────────────────────────────────────────────────────────╮
 │ Find process using port 8080 │                                                                                                        │
 │ ╭────────────────────────────────────────────────────────────────────────────────────────────────────╮ │
 │ │ lsof -ti:8080                                                                                      │ │
 │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
 │                                                                                                        │
 │ Do you want to run this command?                                                                       │
 │                                                                                                        │
 │ ❯ 1. Yes                                                                                               │
 │   2. Yes, and approve `lsof` for the rest of the running session                                       │
 │   3. No, and tell Copilot what to do differently (Esc) │                                                                                                        │
 │ Confirm with number keys or ↑↓ keys and Enter, Cancel with Esc                                         │
 ╰────────────────────────────────────────────────────────────────────────────────────────────────────────╯

 ● 結果: ポート8080で動いているプロセスは見つかりませんでした。

   ポート8080で動いているプロセスを見つけて停止するコマンドは以下の通りです:

   方法1: lsofを使う(推奨)

     # プロセスIDを確認
     lsof -ti:8080

     # プロセスを停止
     kill $(lsof -ti:8080)

     # 強制停止する場合
     kill -9 $(lsof -ti:8080)

   方法2: ssとgrepを使う

     # プロセスIDを確認
     ss -lptn 'sport = :8080'

     # またはnetstatを使う
     netstat -tlnp | grep :8080

   方法3: fuser を使う

     # プロセスを停止
     fuser -k 8080/tcp

   現在はポート8080を使用しているプロセスがないため、停止する必要はありません。

実行前に確認してから実行できるので、安全に使用できる。

スクリプト生成

よくあるスクリプト作成ももちろんできる。

> 指定したディレクトリ内の7日以上古いログファイルを削除するbashスクリプトを書いて
ログ
 ╭────────────────────────────────────────────────────────────────────────────────────────────────────────╮
 │ Make script executable                                                                                 │
 │                                                                                                        │
 │ ╭────────────────────────────────────────────────────────────────────────────────────────────────────╮ │
 │ │ chmod +x /home/kbushi/workspace/cleanup_old_logs.sh                                                │ │
 │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────╯ │
 │                                                                                                        │
 │ Do you want to run this command?                                                                       │
 │                                                                                                        │
 │ ❯ 1. Yes                                                                                               │
 │   2. Yes, and approve `chmod` for the rest of the running session                                      │
 │   3. No, and tell Copilot what to do differently (Esc) │                                                                                                        │
 │ Confirm with number keys or ↑↓ keys and Enter, Cancel with Esc                                         │
 ╰────────────────────────────────────────────────────────────────────────────────────────────────────────╯

  ╭────────────────────────────────────────────────────────────────────────────────────────────────────────╮
 │ Edit file                                                                                              │
 │                                                                                                        │
 │ cleanup_old_logs.sh +49 -0                                                                             │
 │ /home/kbushi/workspace                                                                                 │
 │                                                                                                        │
 │  1  +  #!/bin/bash                                                                                     │
 │  2  +                                                                                                  │
 │  3  +  # 7日以上古いログファイルを削除するスクリプト                                                   │
 │  4  +                                                                                                  │
 │  5  +  # 使用方法                                                                                      │
 │  6  +  if [ $# -eq 0 ]; then │  7  +      echo "使用方法: $0 <ログディレクトリのパス>" │  8  +      echo "例: $0 /var/log/myapp" │  9  +      exit 1 │ 10  +  fi │ 11  +                                                                                                  │
 │ 12  +  LOG_DIR="$1" │ 13  +                                                                                                  │
 │ 14  +  # ディレクトリの存在確認                                                                        │
 │ 15  +  if [ ! -d "$LOG_DIR" ]; then │ 16  +      echo "エラー: ディレクトリ '$LOG_DIR' が存在しません" │ 17  +      exit 1 │ 18  +  fi │ 19  +                                                                                                  │
 │ 20  +  echo "ディレクトリ: $LOG_DIR" │ 21  +  echo "7日以上古いログファイルを検索中..." │ 22  +                                                                                                  │
 │ 23  +  # 削除対象のファイルを表示                                                                      │
 │ 24  +  echo "--- 削除対象のファイル ---" │ 25  +  find "$LOG_DIR" -type f -name "*.log" -mtime +7 -ls                                             │
 │ 26  +                                                                                                  │
 │ 27  +  # 削除対象のファイル数をカウント                                                                │
 │ 28  +  COUNT=$(find "$LOG_DIR" -type f -name "*.log" -mtime +7 | wc -l) │ 29  +                                                                                                  │
 │ 30  +  if [ "$COUNT" -eq 0 ]; then │ 31  +      echo "削除対象のファイルはありません" │ 32  +      exit 0 │ 33  +  fi │ 34  +                                                                                                  │
 │ 35  +  echo "" │ 36  +  echo "合計 $COUNT 個のファイルが見つかりました" │ 37  +                                                                                                  │
 │ 38  +  # 確認プロンプト                                                                                │
 │ 39  +  read -p "これらのファイルを削除しますか? (y/N): " -n 1 -r                                       │
 │ 40  +  echo │ 41  +                                                                                                  │
 │ 42  +  if [[ $REPLY =~ ^[Yy]$ ]]; then │ 43  +      # 7日以上古い.logファイルを削除                                                             │
 │ 44  +      find "$LOG_DIR" -type f -name "*.log" -mtime +7 -delete                                     │
 │ 45  +      echo "削除完了" │ 46  +  else │ 47  +      echo "削除をキャンセルしました" │ 48  +  fi │ 49  +                                                                                                  │
 │                                                                                                        │
 │ Do you want to edit /home/kbushi/workspace/cleanup_old_logs.sh?                                        │
 │                                                                                                        │
 │ ❯ 1. Yes                                                                                               │
 │   2. Yes, and approve all file operations for the rest of the running session                          │
 │   3. No, and tell Copilot what to do differently (Esc) │                                                                                                        │
 │ Confirm with number keys or ↑↓ keys and Enter, Cancel with Esc                                         │
 ╰────────────────────────────────────────────────────────────────────────────────────────────────────────╯

※これはいつもと同じ。

参考

おわりに

GitHub Copilot CLIを使って、ターミナル上での作業効率が期待できそう。 インストール自体は、WSL環境でも問題なく動作し、Node.jsがインストールされていれば簡単に導入できる。
Public Previewの段階なので、今後さらに機能が追加されるだろう…。
この辺のCLI系ツールは積極的に使っていきたい。

Hugo で構築されています。
テーマ StackJimmy によって設計されています。