Gemini CLIを解説

記事タイトルとURLをコピーする

G-genの杉村です。Google が公開するオープンソースの AI エージェント Gemini CLI について解説します。

概要

Gemini CLI とは

Gemini CLI とは、ターミナルから直接 Gemini の機能を利用できる、オープンソース(Apache 2.0 ライセンス)の AI エージェントです。gemini コマンドを介して、自然言語でコーディング、デバッグ、情報検索、各種タスクの自動化などを実行できます。

主に開発者による利用が想定されている CLI ツールであるといえます。

Gemini CLI は、ローカルのファイルシステムを直接読み書きしたり、シェルコマンドを実行したり、Web 検索を行ったりできます。これにより、単なるコード生成に留まらず、プロジェクト全体にわたるリファクタリングや、定型的な開発タスクの自動化といった、より実践的なワークフローに Gemini を組み込むことが可能になります。

Gemini CLI は Google の最新モデルである Gemini 2.5 Pro などをモデルとして利用しており、100 万トークンという広大なコンテキストウィンドウを活用できます。

2025年7月現在、Gemini CLI は Preview 段階と位置づけられています。

料金

Gemini CLI は無料で利用できます。

個人の Google アカウントでログインすることで、1分あたり 60 リクエスト、1日あたり 1,000 リクエストまで無料でモデルを呼び出すことができます。

もちろん Google Workspace アカウントでも Gemini CLI を利用可能ですが、Google Cloud プロジェクト ID の指定が必須です。なお、後述する Login with Google の方法で Google Workspace アカウントを使ってログインした場合、Google Cloud プロジェクト ID の指定は必要なものの、料金は発生しません。

より多くのリクエストが必要な場合、使用量ベース課金の Google AI Studio または Vertex AI、あるいは有償版の Gemini Code Assist Standard / Enterprise ライセンスを利用することも可能です。

また Gemini Code Assist Standard / Enterprise ライセンスで Gemini CLI を利用すると、利用量の制限が緩和されるほか、Gemini Code Assist と連携して VS Code で Gemini Code Assist エージェントモード が利用可能になります。

初期設定

インストール

Gemini CLI は npm パッケージとして配布されています。Node.js v18 以降がインストールされている環境で、以下のコマンドを実行してインストールします。

# npm コマンドによるインストール
npm install -g @google/gemini-cli
  
# もしくは以下のコマンド
npx https://github.com/google-gemini/gemini-cli

インストール後、gemini コマンドを実行すると、Gemini CLI が起動します。

gemini

Gemini CLI 起動直後

認証

初めてこのコマンドを実行するときは、文字への色付けなど見た目の設定に続いて、自動的に認証フローが開始されます。

Gemini CLI の認証

Login with Google を選択すると、新しいブラウザウインドウがポップアップして、Google アカウントによる認証が走ります。無償版を利用したいときや、有償版の Gemini Code Assist ライセンスと連携するには、こちらを選択します。Google Workspace アカウントの場合は、環境変数または .env ファイルで、プロジェクト ID を指定する必要があります。

export GOOGLE_CLOUD_PROJECT="my-google-cloud-project"

Gemini API Key は、Google AI Studio の API キーを指定して認証するときに選択します。モデルの呼び出しが Google AI Studio 経由になります。

Vertex AI を選択すると、モデルの呼び出しが Google Cloud の Vertex AI 経由になります。環境変数または .env ファイルで、プロジェクト ID やリージョンなどを指定します。export コマンドで事前に以下のような環境変数を定義しておくか、.env と名付けたファイルをコマンド実行ディレクトリに配置することで、設定が読み込まれます。

.env ファイル(環境変数)の例

GOOGLE_GENAI_USE_VERTEXAI="true"
GOOGLE_CLOUD_PROJECT="my-google-cloud-project"
GOOGLE_CLOUD_LOCATION="global"

Google AI Studio や Google Cloud をすでに利用中であれば、これらを選択することで、呼び出し量制限が緩和された従量課金になります。

Vertex AI 経由の認証の場合、事前に gcloud auth application-default login コマンドを実行して、Gemini CLI が Google Cloud へ認証できるようにする必要があります。

Cloud Shell での利用

Google Cloud の Web コンソールには、Cloud Shell と呼ばれる仮想 Linux ターミナル環境が付属しています。この Cloud Shell 環境でも、Gemini CLI が利用できます。

Cloud Shell 環境は、仮想マシン上の Docker コンテナとして起動しており、常にパッケージ類が最新に保たれるようになっています。そのためユーザーのホームディレクトリ($HOME)以外に保存したデータは Cloud Shell 環境の再起動のたびにリセットされてしまうため、通常のインストール方法で Cloud Shell に Gemini CLI をインストールしても、次回の起動時にはインストールのし直しが必要です。

毎回の再インストールを回避するには、環境のカスタマイズスクリプトを用います。ユーザーのホームディレクトリに .customize_environment という名称のファイルを作成し、以下の通り記述します。

export PATH=${PATH}:/usr/local/nvm/versions/node/v22.16.0/bin
npm install -g @google/gemini-cli

なお、PATH 環境変数で指定されている node のバージョン(v22.16.0 の部分)は node -v コマンドで確認したものに置き換えてください。

このようにして .customize_environment に記述したスクリプトはコンテナの起動時に root ユーザーとして実行され、Gemini CLI がインストールされます。Cloud Shell 環境のコンテナの起動直後はインストールが完了せず、Gemini CLI が実行できない場合がありますが、しばらく待つと実行可能になります。スクリプトの実行ログ(標準出力・標準エラー出力)は /var/log/customize_environment ファイルに出力されます。

なお認証については、Gemini CLI を Cloud Shell 環境で起動すると、Use Cloud Shell user credentials が選択肢として表示されます。これを選択すると、Gemini CLI は自動的に Cloud Shell 環境にログインしているユーザーアカウントの認証情報を使って認証を行います。

Cloud Shell 環境では Use Cloud Shell user credentials が選択できる

Cloud Shell 環境における開発に関するその他の情報については、以下の記事も参考にしてください。

blog.g-gen.co.jp

リモートサーバー等での利用

リモートのサーバー上で Gemini CLI を認証するときなどには、Login with Google の認証方法を選択すると、操作の途中で処理が止まってしまうことがあります。この認証方法を選択した場合、認証フローの中でブラウザウインドウがポップアップし、ログイン操作後に localhost にリダイレクトして戻って来る挙動があることに由来します。リモートサーバーは localhost とは別のプラットフォームで動作していますので、ブラウザからのリダイレクト時に Gemini CLI まで情報を戻すことができないことが原因です。

認証プロセスの途中でスタックする

このような場合には、NO_BROWSER という名前の環境変数に値を設定してから Gemini CLI を起動することで、ブラウザのポップアップとリダイレクトをしない方法で認証を行うことができます(Gemini CLI の v0.1.11 以降で利用可能)。

まず、NO_BROWSER という名前の環境変数に何らかの値をセットします。

export NO_BROWSER=true

その後、Gemini CLI を起動します。以前の認証方法から変更する場合、/auth を実行します。

環境変数 NO_BROWSER を設定後、Login with Google を選択

すると CLI の再起動を促され、CLI が終了します。再度、gemini コマンドを実行して CLI を起動します。すると、以下のように認証用 URL が発行されるため、この URL にブラウザでアクセスします。

認証用 URL が発行される

ブラウザ上で Google アカウントでログインすると、認証コードの文字列が発行されます。この文字列をコピーし、ターミナル上で貼り付けて Enter を入力すると、認証が完了します。

認証コードが発行される

使い方

対話型実行

ターミナルで gemini コマンドを引数なしで実行すると、対話型モードで Gemini CLI が起動します。

gemini

プロンプトが表示されたら、自然言語で指示を入力します。

引数を2つ取って、足し算をする Python ライブラリを作ってください。
テストもしたいです。

すると、Gemini は思考プロセスや作業の内容を表示します。

ローカルへのファイル作成とコマンド実行(1)

ローカルへのファイル作成とコマンド実行(2)

シェルコマンドの実行やファイルを作成するときなどには、ユーザーに実行の許可を求めます。

次のタスクを実行

プロンプトでテストの実行も依頼していたことから、テストコードも作成してくれました。単一タスクではなく、指示に基づいて複数ステップのタスクを行っていることがわかります。

作成されたコードの実行(1)

作成されたコードの実行(2)

最後に、テストコードの実行まで行い、タスクが完了しました。

非対話型実行

パイプや引数を使って、ワンショットでタスクを実行することもできます。これは、シェルスクリプトに処理を組み込む際に便利です。--prompt オプションをつけると、対話型でなく、ワンショットの処理を行ってくれます。

$ cat calculator.py | gemini --prompt "このコードを説明して"
このPythonコードは `add` という名前の関数を定義しています。
この関数は `a``b`2つの引数(数値)を受け取り、それらを足し算した結果を返します。
例えば、`add(2, 3)` のように呼び出すと、`5` が返ってきます。

プロジェクトごとのコンテキスト設定

プロジェクトのルートディレクトリに GEMINI.md という名前の Markdown ファイルを配置することで、そのプロジェクト専用のシステムプロンプトを設定できます。

例えば、GEMINI.md に以下のように記述しておくと、Gemini はこの指示を常に念頭に置いて応答するようになります。

# プロジェクト概要
このプロジェクトは Python で記述されています。  
コーディング規約は pep8 のスタイルガイドに従います。  
  
# ルール
....

Gemini Code Assist との連携(エージェントモード)

Gemini Code Assist のライセンス(無償版、Standard、Enterprise)で Gemini CLI の認証を行うと、VS Code で Gemini Code Assist エージェントモード(agent mode)が使えます。

エージェントモードでは、単なる自然言語に従った生成に留まらず、計画、実行、検証、反復的な修正など、複数のステップを含む複雑なタスクをこなすことができます。

エージェントモードでは、以下のような機能が利用可能です。MCP サーバーの利用や、ユーザーの承認を得ずにすべてのタスクを Gemini CLI が実行できる Yolo モード、その他のツールなどが利用可能になります。

  • Model Context Protocol(MCP)servers
  • Gemini CLI commands(/memory/stats/tools/mcp
  • Yolo(You Only Look Once)mode
  • built-in tools(grepterminalfile read or file write ...)
  • Web search
  • Web fetch

プライバシーポリシーとデータ保護

Gemini モデルに関するデータ保護

Gemini CLI の「Terms of Service and Privacy Notice」は以下で公開されています。

Gemini CLI で Gemini モデルを使用した際に、どのようなプライバシーポリシーが適用され、収集されたデータ(プロンプト、回答、コード)がどのように扱われるかは、認証方法に依存します。

連番 認証方法 概要 利用規約 プライバシーポリシー
1 Login with Google
(個人アカウント)
データは Google のサービス改善やモデル改善に使われる可能性がある Google Terms of Service Gemini Code Assist Privacy Notice for Individuals
2a Gemini API Key
(無償版)
データは Google のサービス改善やモデル改善に使われる可能性がある Gemini API Terms of Service - Unpaid Service Google Privacy Policy
2b Gemini API Key
(有償版)
データは Google のサービス改善やモデル改善には使われない Gemini API Terms of Service - Paid Service Google Privacy Policy
3 Login with Google
(Google Workspace アカウントおよび有償版 Gemini Code Assist)
データは Google のサービス改善やモデル改善には使われない Google Cloud Platform Terms of Service Gemini Code Assist Privacy Notices
4 Vertex AI データは Google のサービス改善やモデル改善には使われない Google Cloud Platform Service Terms Google Cloud Privacy Notice

この違いは、Gemini CLI は認証方法に応じて、モデルを呼び出す先のプラットフォームが異なるために生まれます。有償版サービス(2b、3、4)を利用していれば、原則的にはデータは保護され、サービス改善やモデル改善に使われることはありません。

Gemini CLI の統計情報

前述の表は、Gemini モデル側のデータの扱いを示しています。一方、Gemini CLI 自体も利用統計(Usage Statistics)という情報を収集しています。利用統計の収集は、オプトアウト(無効化)することができます。

利用統計では、ツールの呼び出し、API リクエスト、設定情報などが含まれます。収集されたこれらの利用統計データがどのように扱われるかも、認証方法によって異なります。

前述の表の認証方法1では、Gemini CLI は匿名化したテレメトリに加えてプロンプトや回答を収集し、サービス改善に利用します。2a でもほぼ同様ですが、オプトアウトしても「データは How Google Uses Your Data の記載のとおりに扱われる」とされています。

これらの無償利用の方法では、利用統計の収集をオプトアウトしたとしても前述のモデル側のデータ収集があるため、データは Google によって利用されるといえます。

2b では匿名化されたテレメトリのみが収集されます。ただし、法的要件に対応するための目的で、限定された期間のみプロンプトやレスポンスが保管されます。

3 と 4 では匿名化されたテレメトリのみが収集され、プロンプトや回答は収集されません。

Gemini CLI で非常に機微な情報を扱う場合は、認証方法 3 または 4、すなわち、Google Workspace アカウント、有償版 Gemini Code Assist、Vertex AI のいずれかを使うことが望ましいといえます。

杉村 勇馬 (記事一覧)

執行役員 CTO / クラウドソリューション部 部長

元警察官という経歴を持つ現 IT エンジニア。クラウド管理・運用やネットワークに知見。AWS 認定資格および Google Cloud 認定資格はすべて取得。X(旧 Twitter)では Google Cloud や Google Workspace のアップデート情報をつぶやいています。