はじめに
はてブのテクノロジーカテゴリのページで見かけた、パブリックプレビュー提供の GitHub の Copilot CLI を軽く試してみた、という話です。
はてブで見かけたのは、以下のページへのリンクです。
●GitHub Copilot CLI is now in public preview - GitHub Changelog
https://github.blog/changelog/2025-09-25-github-copilot-cli-is-now-in-public-preview/
さっそく試してみる
さっそく、自分の Mac の環境で試してみました。
インストールと起動
以下のリポジトリで、インストール・起動の手順を見てみます。
●github/copilot-cli: GitHub Copilot CLI brings the power of Copilot coding agent directly to your terminal.
https://github.com/github/copilot-cli
以下を見ると、npmコマンドを使ったグローバルインストール( npm install -g @github/copilot
)ができ、インストール後は copilot
コマンドで実行できるようです。
自分は、ローカルインストールと、ローカルインストールしたものの起動を、以下のコマンドで進めました。
※ 通常は、公式手順の通りにグローバルインストールをするのが良さそうかと思います
npm i @github/copilot
npx copilot
以下は、実際にターミナル上でこの手順を進めている時の画面です。
GitHub Copilot CLI の起動後
npx copilot
を実行した後は、「Welcome to GitHub Copilot CLI」という表示が出て、その下に以下のような表示などが出てきました。
起動後、既にログインした状態になったのですが、おそらく直近で ghコマンド(GitHub CLI)を使ったログインを行っていたためだと思われます。
とりあえず、3択で出ている選択肢は「1」を選んで次に進みました。
スラッシュコマンド
以下はスラッシュを入力し、スラッシュコマンドのサジェストを見てみたところです。
上記の /feedback
の下を見ていくと、現時点では以下が出てきました。
詳細は別途、見てみようかと思います。
処理を実行してみる
あとは、簡単なプロンプトで試してみます。
プロンプトは、過去に各種生成AI系の CLIツールのお試しでも使っていた
「Node.jsのプログラムでフィボナッチ数列を出力するプログラムを書いて、app.mjsという内容で保存して」
という内容にしました。
実行結果や、その後の処理の許可をしていった後の内容は、以下のとおりです。
上記で生成されたコードをファイルとして保存して良いか、確認が入ったので許可して次へ進めます。
その後、nodeコマンドを使った実行も、引数のあり/なしで 2パターン試してくれたようです(ここでも途中で、コマンド実行の許可を求められたので、許可して次に進みました)。
そして、動作確認が行われた後は、以下が表示されました。
これで、一通りの処理は完了です。
生成されたファイル
最後に、ファイルが生成されているかと、自分で nodeコマンドを実行して結果を得られるかを確認しました。
まずファイルについては、以下のような内容のファイルが生成されていました。
/**
* フィボナッチ数列を生成・出力するプログラム
*/
// フィボナッチ数列を計算する関数(再帰版)
function fibonacciRecursive(n) {
if (n <= 1) {
return n;
}
return fibonacciRecursive(n - 1) + fibonacciRecursive(n - 2);
}
// フィボナッチ数列を計算する関数(効率的版)
function fibonacciIterative(n) {
if (n <= 1) {
return n;
}
let prev = 0;
let curr = 1;
for (let i = 2; i <= n; i++) {
const next = prev + curr;
prev = curr;
curr = next;
}
return curr;
}
// フィボナッチ数列を指定した個数分出力する関数
function printFibonacciSequence(count) {
console.log(`フィボナッチ数列(最初の${count}個):`);
for (let i = 0; i < count; i++) {
const value = fibonacciIterative(i);
console.log(`F(${i}) = ${value}`);
}
}
// メイン処理
function main() {
console.log("=== フィボナッチ数列プログラム ===\n");
// デフォルトで10個のフィボナッチ数を出力
const count = process.argv[2] ? parseInt(process.argv[2]) : 10;
if (isNaN(count) || count < 0) {
console.error("エラー: 正の整数を指定してください");
process.exit(1);
}
printFibonacciSequence(count);
console.log("\n=== 実行例(再帰版 vs 効率版)===");
const testN = 10;
console.log(`F(${testN}) 再帰版: ${fibonacciRecursive(testN)}`);
console.log(`F(${testN}) 効率版: ${fibonacciIterative(testN)}`);
}
// プログラム実行
main();
それと、自分で引数のあり/なしの 2パターンでのコマンド実行を試してみて、それらも以下のように動作したのを確認できました。