0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【簡単】Gemini CLIを触ってみる

Posted at

はじめに

今話題になっている、Gemini CLI を軽く触ってみました

セットアップ

ターミナルを開いて、以下のコマンドを実行します。

npx https://github.com/google-gemini/gemini-cli

または、

npm install -g @google/gemini-cli

初期設定では、CLIのテーマ(見た目)や、Googleアカウントでのログインを求められます。
ここは、画面に従って進めていけばよいので特に躓く要素はありませんでした。

以下の画面が表示されれば、セットアップ完了です。
image.png

Gemini CLIの基本的な機能は、以下の記事がわかりやすくまとめられており参考にさせていただきました。
Gemini CLI の簡単チュートリアル

本記事では、以下の機能を触ってみます。

  • Google検索
  • ソースコードレビュー・ファイル修正

Google検索を試してみる

試しに以下の質問をしてみました。

2025年現在の日本の総理大臣を教えて

質問をすると、3,4秒ほどして回答が帰ってきました。

image.png

首相官邸のプロフィールとも一致していますね。
image.png

ソースコードレビューをさせてみる

Gemini CLIは、ローカル上のファイルを読み書きすることができます。

試しに、僕が個人で作っていたGoogle拡張機能の1クラスをコードレビューさせてみます。

コードレビューをさせるには、コマンドライン上で対象のプロジェクトフォルダへ移動してGemini CLIを起動します。

cd <対象のプロジェクトフォルダパス>
gemini

image.png

システムの概要を説明してもらう

まずは、プロジェクトフォルダーの概要をGemini CLIに読み込ませて説明してもらいます。

> このシステムの概要を説明してください

こちらが、プロンプト実行の結果です。ちゃんと読み込められていて感動しました。

image.png

実行中の画面を見るに、READMEやmanifest.jsonを見て判定しているようですね。
image.png

コードレビューをお願いしてみる

次は、以下のコードをレビューしてもらいます。

urlUtils.java
import {
  SEARCH_PARAM_KEY,
  SEARCH_PATH_KEY,
  TARGET_AREA_JAPAN,
} from "./constants.js";

/**
 * 現在のURLを確認し、日本限定検索になっているか確認します
 * @returns true:日本限定になっている false:それ以外
 */
export function isSearchTargetJapan(url) {
  // qパラメーターの値を取得する
  const queryParams = url.searchParams.get(SEARCH_PARAM_KEY);
  if (queryParams === null || queryParams === undefined) {
    return false;
  }
  // すでにページが日本限定検索が含まれているかチェックする
  if (queryParams.includes(TARGET_AREA_JAPAN)) {
    return true;
  } else {
    return false;
  }
}

/**
 * 現在のURLを確認し、日本限定検索になっているか確認します
 * @returns true:日本限定ではない false:それ以外
 */
export function isNotSearchTargetJapan(url) {
  // qパラメーターの値を取得する
  const queryParams = url.searchParams.get(SEARCH_PARAM_KEY);
  if (queryParams === null || queryParams === undefined) {
    return false;
  }
  // すでにページが日本限定検索が含まれているかチェックする
  if (queryParams.includes(TARGET_AREA_JAPAN)) {
    return false;
  } else {
    return true;
  }
}

/**
 *渡されたURLのパスに検索パスが含まれていないか確認します
 * @param {*} url URL
 * @returns true:検索キーが存在する false それ以外
 */
export function isSearchPathMissing(url) {
  const pathname = url.pathname;

  // 'search'キーが存在するかどうかをチェック
  return pathname.includes(SEARCH_PATH_KEY);
}

@ を使用することで、ファイルを指定することができます。
入力したプロンプトはこちら

@js/content/urlUtils.jsのソースコードレビューをしてください。改善点があれば教えて下さい。   

コマンドを実行すると以下の画面になり、Geminiがファイルを読み込んでいるのがわかります。

image.png

ソースコードレビュー結果

こちらがコードレビュー結果です。

image.png

Gemini CLIはAIエージェントなので、ソースコードレビューの結果をファイルに反映させることができます。
回答結果の最後で、リファクタリングを適用してもよいか、Gemini CLIが聞いてくれています。

今回は、実際にファイルが修正されるか試してみたいので、リファクタリングさせてみます。

提案してもらった内容でリファクタリングを適用してください。

image.png

Applly this change? で変更を適用するか聞かれています。
ここでは、ソースコードレビューの結果をちゃんと反映してくれるか確認したいので「Yes, allow once」を選択してみます。

image.png

urlUtils.js のリファクタリングが完了後、自動で影響範囲を調べて他に修正が必要なファイルを探し出してくれています。

ここでも、「Yes, allow once」を選択して修正を適用させてみます。

ソースコードレビュー適用後

ソースコードの変更が完了したようです。

image.png

SourceTreeから、どのファイルが修正されたのか確認してみます。
image.png

content/urlUtils.js の修正抜粋

image.png

content/searchTweet.js の修正抜粋

image.png

コードレビューの感想

ざっと変更点を見た限り、変更したメソッドの参照箇所もちゃんと変更できていて感心しました。
実際に、修正されたコードでシステムを動かしてみましたが、問題なく動作していました。

所感

ざっと触ってみましたが、特に躓く要素もなく簡単に使える衣装がありました。
Gemini CLIの最大のメリットは、簡単に使えて無料枠が広いことだと思います。

Claude Codeは無料プランが存在しないのに対して、Gemini CLIは、毎分 60 回モデル リクエスト、1日あたり1,000 回のリクエストが無料で提供されています。

Gemini CLI を無料で利用するには、個人の Google アカウントでログインし、無償版の Gemini Code Assist ライセンスを取得するだけです。この無料ライセンスにより、Gemini 2.5 Pro と 100 万トークンという広大なコンテキスト ウィンドウにアクセスできます。プレビュー期間中に利用制限することがほとんどないように、業界最大級の利用枠を提供します。毎分 60 回モデル リクエスト、1日あたり1,000 回のリクエストを無料で提供します。

Gemini CLI : オープンソース AI エージェントより抜粋

これまでAIエージェントを使ってみたい と思っていた方にはぴったりだと思いました。

他にもコマンドをカスタマイズできたりするみたいなので、いろいろ触ってみようと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?