GitHub Copilot CLI使ってみた

前にウェイトリストに登録していたGitHub Copilot CLIについて、ついに招待がやってきたから簡単に紹介するよ。

招待が来たらまずは@githubnext/github-copilot-cliをグローバルインストールする。

npm install -g @githubnext/github-copilot-cli

その後、下記のコマンドで認証すれば使えるようになる。

github-copilot-cli auth

ついでに便利なエイリアスと追加機能を利用可能にするために下記を実行。

eval "$(github-copilot-cli alias -- "$0")"

これで準備は完了!

早速使ってみる。自然言語で尋ねればCopilotがコマンドを提案してくれるというものだ。せっかくだから日本語で尋ねてみよう。まずはgitに関するコマンドを尋ねてみる。

~ % git? 特定のコミットにタグをつけたい

 ──────────────────── Command ────────────────────

git tag <tagname> <commit>

 ────────────────── Explanation ──────────────────

○ git tag is used to create a new tag.
  ◆ <tagname> is the name of the tag.
  ◆ <commit> is the commit the tag should point to.

  ✅ Run this command
  📝 Revise query
❯ ❌ Cancel
~ %      
~ % git? 特定のコミットにつけたタグを編集しなおしたい

 ──────────────────── Command ────────────────────

git tag -f <tagname> <commit>

 ────────────────── Explanation ──────────────────

○ git tag is used to create a new tag.
  ◆ -f specifies that we want to overwrite an existing tag.
  ◆ <tagname> is the name of the tag.
  ◆ <commit> is the commit that the tag should point to.

  ✅ Run this command
  📝 Revise query
❯ ❌ Cancel
~ %  

今度はGit関連ではなく汎用的なコマンドについて尋ねてみる。

~ % ?? このディレクトリ直下のファイルについて、サイズの大きな画像ファイル上位3件を取得するコマンドを教えて(なおサイズは人が読みやすい単位になおして欲しい。あとディレクトリは深くもぐらず、この階層だけの調査で良い。)

 ──────────────────── Command ────────────────────

find . -maxdepth 1 -type f -exec du -h {} \; | grep -E ".(png|jpg)$" | sort -h | tail -n 3

 ────────────────── Explanation ──────────────────

○ find is used to list files.
  ◆ -maxdepth 1 specifies that we only want to list files in the current directory, not in sub-directories.
  ◆ -type f specifies that we only want to list files, not directories.
  ◆ -exec du -h {} \; executes the du command for each file.
    ◇ du is used to compute the disk usage of a file.
      ▪ -h specifies that we want to see the result in human-readable format.
      ▪ {} is replaced with the file name.
      ▪ \; specifies that the command ends here.
○ grep is used to search for a pattern in a file.
  ◆ -E specifies that we want to use extended regular expressions.
  ◆ .(png|jpg)$ is the pattern we search for.
    ◇ . matches any character.
    ◇ (png|jpg) matches either png or jpg.
    ◇ $ matches the end of the line.
○ sort is used to sort a list of items.
  ◆ -h specifies that we want to sort human-readable numbers.
○ tail is used to select the last few lines of a file.
  ◆ -n 3 specifies that we want to select the last 3 lines.

  ✅ Run this command
  📝 Revise query
❯ ❌ Cancel
~ % 

コマンドの提案だけでなく、解説までしてくれるみたいだ。すごくいい。 ターミナルと仲良くなれそう。

AI関連のツールはどれもこれも、学習サポートにもぴったりだよね。たとえばターミナル慣れしていない新人さんにコマンド操作を慣れてもらう時に、GitHub Copilot CLIがあったらすごく便利だと思う。