😽

GitHub Copilot for CLI があればコマンドなんてもう覚えなくていいのでは?

2023/03/22に公開

GitHub Copilot for CLI があればコマンドなんてもう覚えなくていいのでは?

image.png

どうも @ekusiadadus です。
なぜか、ウェイティングリストの最初をもらうことが多いです <- 本当に謎
OpenAI の GPT-4 とか 今回の GitHub Copilot とか
その分、レビューして貢献していこうと思います

今回は、GitHub Copilot for CLI に関してです
公式 によると

シェルのコマンドやフラグを覚えるのに苦労したことはないだろうか。シェルにやってほしいことをそのまま言えたらいいのに、と思ったことは?GitHub Copilot のアシスタンスをターミナルに組み込むことで、そんな心配はもういらない。 (意訳)

ということで、CLI で GitHub Copilot を使えるようになりました。

GitHub Copilot for CLI は、GitHub Copilot と同じく、AI がコマンドを生成してくれるものです。

コマンドは、3 つです

使い方

  1. ??
  2. git?
  3. gh?

??

このコマンドは、シェルの任意のコマンドを AI に聞くことができます。

公式

  1. TypeScript のファイルを検索したい
  2. node_modules の中身は無視したい
  3. サイズでソートをかけたい

copilotcli1.gif

やってみた

  1. Go 言語をインストールしたい
  2. Go 言語のバージョンは、1.21 にしたい
  3. apt-get でなく、wget を使いたい

copilotcli4.gif

少し意地悪をして、まだリリースされていないgo1.21 をインストールしたいというコマンドを AI に聞いてみました。

上の gif をみると、go1.16.3 を進めてきたり、apt-get を使わないでという指示を無視するので、まだ完全ではありませんが、言語やアプリをインストールする際に、Google に聞く必要はなくなりそうです。

git?

git?は、git の起動に特化した検索に使用されます。git?と比べると、git コマンドを生成する能力が高く、git のコンテキストであることを説明する必要がない場合は、クエリーをより簡潔にすることができます。

とのことです。
おそらく内部的には、?? と同じで事前に git コマンドであるという学習をさせているのではないかと思います。
もしかしたら、学習データを git コマンドに特化させているのかもしれません。(未確認)

公式

  1. ブランチを削除したい
  2. test-branch-1を削除したい

copilotcli2.gif

やってみた

  1. main ブランチ を deploy ブランチにマージしたい
  2. main ブランチのいくつかのコミットのみをマージしたい

copilotcli5.gif

上のような感じで、日本語でも答えてくれますが前後の文脈を読んでくれているのかは微妙だと思います。
単純にプロンプトをつなげているだけのようにも見えます。

gh?

ghは、GitHub CLI のコマンドとクエリのインターフェイスのパワーと、AI が複雑なフラグと jq を生成してくれる便利さを兼ね備えています。

公式

  1. vercel/next.js のリポジトリの issue を開きたい
  2. shell 上で開きますか?

copilotcli3.gif

やってみた

  1. GitHub で assign されている PR を全て列挙する
  2. GitHub の PR ページを開く

copilotcli6.gif

WSL からやったので、WSL GUI  が出てしまいましたが、良さげ

ただ、ちゃんと聞かないとたまにやばいコマンドを打ち出すことがあるので気を付けてください。

copilotcli7.gif

インストールはこちらから

https://www.npmjs.com/package/@githubnext/github-copilot-cli

GitHubで編集を提案

Discussion