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 3 Pro などをモデルとして使用でき、100 万トークンという広大なコンテキストウィンドウを活用できます。

料金

Gemini CLI は、使用方法によっては無料で利用できます。Gemini CLI 自体はオープンソースであるため、利用料金はかかりません。しかし、背後で動作する LLM(Gemini)の利用料金を考慮する必要があります。

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

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

Google Workspace アカウントでも Gemini CLI を利用可能です。後述する Login with Google の方法で Google Workspace アカウントを使って認証する場合、Google Cloud プロジェクト ID の指定が必須です。ただしこの方法を使って認証する場合、どのような利用規約が適用されるのか、また料金が発生するかどうかについて、Google は明確なドキュメントを用意していません。Google Workspace アカウントをお使いの方が業務等で Gemini CLI を利用する場合、後述の「初期設定 > 認証」の後で紹介するように、Google Cloud の Vertex AI で認証、あるいは 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 を起動すると、文字への色付けなど見た目の設定に続いて、自動的に認証フローが開始されます。このフローによって、バックエンドで使用する Gemini API へ認証され、Gemini モデルの呼び出しが可能になります。

Gemini CLI の認証

Login with Google を選択すると、新しいブラウザウインドウがポップアップして、Google アカウントによる認証が走ります。Gemini CLI の無償版や Gemini Code Assist 有償プランと連携したいときは、この認証方法を選択します。

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

Gemini API Key は、Google AI Studio の API キーを指定して認証するときに選択します。モデルの呼び出しが Google AI Studio 経由になります。これを選択することで、呼び出し量制限が緩和された従量課金になります。

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

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

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

Google Cloud をすでに利用中であれば、この認証方法を選択することで、呼び出し量制限が緩和された従量課金になります。また、入力したプロンプトや出力されたレスポンスは、Google Cloud の規約に従って保護され、再トレーニングなどには使われません。

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

Cloud Shell での利用

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

Cloud Shell にはデフォルトで Gemini CLI がインストールされており、追加のセットアップは必要ありません

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

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

Cloud Shell 環境における開発に関するその他の情報については、以下の記事も参考にしてください。Google Cloud ユーザーは、ローカル PC に何もインストールしなくても、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 CLI では、ユーザーが直接プロンプトを入力すると、それに沿って Gemini が自律的に動作し、タスクを進めます。しかし、組織ごとや開発プロジェクトごと、チームごとなどに、開発のルールや文化、技術的な制約がある場合、そういった背景情報をプロンプトとして毎回入力するのは非効率です。また、作成したプロンプトを各個人が属人的な資産として持ってしまうと、いわゆる車輪の再開発が発生してしまいます。

Gemini CLI には、こうした状況に対応するために、各種のコンテキスト管理機能や、拡張機能が用意されています。

  • GEMINI.md(コンテキストファイル)
  • Agent Skills
  • Subagents
  • Extensions

GEMINI.md(コンテキストファイル)

GEMINI.md は、Gemini CLI にシステムプロンプトを与えるための、Markdown 形式のテキストファイルです。他の CLI ツールでいうと、例として Claude Codeの CLAUDE.md に相当します。こういったファイルは、LLM にコンテキストを与えるためコンテキストファイルとも呼ばれます。

開発プロジェクト(各ワークスペース)のルートディレクトリに配置し、使用する技術スタック、コーディング規約、プロジェクトのディレクトリ構成、重要なドメイン知識などを記述しておくことで、Gemini CLI がそれに沿った動作をするようになります。

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

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

なお GEMINI.md をユーザーディレクトリの ~/.gemini ディレクトリに配置することで、すべてのプロジェクトに適用することができます。GEMINI.md は階層的に動作するので、ユーザーレベルの GEMINI.md と、プロジェクトレベルの GEMINI.md を併用することもできます。~/.gemini/GEMINI.md をグローバルコンテキストファイル、各ワークスペースに配置された GEMINI.md をワークスペースのコンテキストファイルとも呼びます。

GEMINI.md にコンテキストを記述することで Gemini の動作をチューニングすることができますが、情報を詰め込みすぎるとベースのコンテキストを圧迫するため、後述の機能を併用して知識を分散させることが重要です。

Agent Skills

Agent Skills、または単にSkillsは、特定の問題を解決するための「手順書」や「専門ツールのセット」を Gemini CLI に持たせるための拡張機能です。特定の API のリクエスト方法や、デプロイの実行手順などをドキュメント化し、特定の状況下で AI が実行可能なスキルとして登録できます。

基本的に Markdown 形式のテキストファイルとして記述する点では GEMINI.md と同様ですが、GEMINI.md と異なるのは、Agent Skills はオンデマンドに呼び出されるという点です。常にコンテキストとして読み込まれる GEMINI.md とは異なり、Agent Skills は AI が自律的に必要と判断したときにのみ呼び出され、コンテキストとして使用されます。これにより無駄にコンテキストを消費したり、コンテキストが肥大化して精度が下がることを防げます。

また、Agent Skills にはスクリプトやリファレンスドキュメントを同梱できます。プログラミング言語で事前に記述されたスクリプトを Agent Skills が実行することで、再現性のある形でタスクを実行できます。

1つの Agent Skills は1つのディレクトリにまとめられ、Markdown 形式のテキストファイルである SKILL.md や、実行可能スクリプトをまとめた scripts/、静的なドキュメントをまとめた references/ などで構成されます。Gemini CLI の Agent Skills は、Anthropic 社が提唱する agentskills.io の Agent Skills オープンスタンダードに準拠しており、Claude Code など他の AI エージェントツールと資産を共有できます。

Subagents

Subagents は、特定のタスクに特化したサブエージェントを呼び出し、タスクを委譲する機能です。

Subagents のメリットは、コンテキストの分離です。例えば、複雑なソースコードファイル群を読み解いて、エラー原因を調査するようなタスクでは、大量のコマンド実行と試行錯誤のログが発生します。これをサブエージェントに任せることで、調査過程のノイズはサブエージェントの独立したコンテキスト内にとどまり、メインエージェントには最終的な調査結果の要約だけが返却されます。これにより、コンテキストが圧迫されることを防ぐことができます。

Subagents は必要なときにメインエージェントが自律的に呼び出すほか、プロンプト内で @ で指定することで、明示的に呼び出すことも可能です。

なお、Subagents から Agent Skills を呼び出せるため、プロンプトの重複管理を防ぐことができます。

Extensions

Extensions(拡張機能)は、Gemini CLI 用の拡張機能をまとめたパッケージです。GEMINI.md(コンテキストファイル)、Agent Skills、Subagents のほか、MCP サーバー、カスタムスクリプトなどもまとめてパッケージできます。

これにより、チームで開発した Agent Skills や Subagents などをパッケージングして配布できます。つまり、Extensions は Agent Skills や Subagents などを組織内で共有することで重複開発を防ぎ、開発効率を上げることに寄与します。

また公式の Gemini CLI extension gallery には多数の Extensions が一般公開されており、Google Cloud 関係の Extensions などをダウンロードしてすぐに使用することができます。

Extensions は以下のようなコマンドで Gemini CLI に簡単にインストール可能です。

gemini extensions install https://github.com/gemini-cli-extensions/workspace

Agent Skills や Sub-agents、Extensions による Gemini CLI の応用については、Google Cloud Next '26 のブレイクアウトセッションでも紹介されました。以下の記事を参照してください。

blog.g-gen.co.jp

IDE におけるエージェントモード

VS Code と IntelliJ の2つの統合開発環境(IDE)では、Gemini Code Assist エージェントモードが使用でき、AI エージェントによる開発を行うことができます。このエージェントモードは、バックエンドで Gemini CLI と同じ技術が動作しています。

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

Gemini Code Assist エージェントモードでは、VS Code と IntelliJ において、以下のような機能が利用可能です。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」は以下で公開されています。なお、当記事の記載内容は2025年9月中旬現在の情報に基づいていますので、最新情報は必ず以下の規約ドキュメントを確認してください。

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

No 認証方法 概要 利用規約 プライバシーポリシー
1 Login with Google かつ Gemini Code Assist 有償プランなし データは Google のサービス改善やモデル改善に使われる可能性がある Google Terms of Service Gemini Code Assist Privacy Notice for Individuals
2 Login with Google かつ Gemini Code Assist 有償プランあり データは Google のサービス改善やモデル改善には使われない Google Cloud Platform Terms of Service Gemini Code Assist Privacy Notice for Standard and Enterprise
3 Gemini API Key(無償版) データは Google のサービス改善やモデル改善に使われる可能性がある Gemini API Terms of Service - Unpaid Service Google Privacy Policy
4 Gemini API Key(有償版) データは Google のサービス改善やモデル改善には使われない Gemini API Terms of Service - Paid Service Google Privacy Policy
5 Vertex AI データは Google のサービス改善やモデル改善には使われない Google Cloud Platform Service Terms Google Cloud Privacy

上記から、データが保護される(入力したプロンプトや AI からのレスポンスなどが Google のサービス改善や再トレーニングに使われないことを指します)ための条件は、以下のとおりです。

  • Gemini Code Assist の有償プラン(Standard / Enterprise)のライセンスと紐づいた Google アカウントで認証している(表の2)
  • Gemini API Key(Google AI Studio)の有償版で認証している(表の4)
  • Google Cloud の Vertex AI で認証している(表の5)

上記以外のケースでは、個人 Google アカウントか Google Workspace アカウントかに関わらず、入出力データは Google に再利用される可能性があります。

なお、2025年7月初頭ころの Terms of Service and Privacy Notice ドキュメントでは、Google Workspace ユーザーであれば、無条件でデータが保護されるように解釈できる記載がありました。しかし2025年7月中旬ころにこの記載が改められ、上記に要約したとおりの記載となっています。

前述したように、Login with Google の方法で Google Workspace アカウントを使って認証する場合、どのような利用規約が適用されるのか、また料金が発生するかどうかについて、Google はドキュメントに明記していません。Google Workspace アカウントをお使いの方が業務等で Gemini CLI を利用する場合、Vertex AI で認証、あるいは Gemini Code Assist の有償プランを使って認証することが推奨されます。

Gemini CLI の統計情報

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

利用統計では、ツールの呼び出しや API リクエストの記録、CLI の設定情報などが収集対象です。一方で、プロンプトやレスポンス、氏名やメールアドレス、ファイルの内容などは収集されません。よって、オプトアウトする、しないに関わらず、プロンプトやレスポンスが保護されるかどうかは、前述の規約に依存します。

前述の表の1と3では、利用統計をオプトアウトしたとしても、停止されるのは上記の統計情報の収集のみであり、依然としてプロンプトやレスポンスなどは Google に収集され、サービス改善や再トレーニングに使用される可能性は残ります。

よって、Gemini CLI を業務で使用したり、機微な情報を扱う場合は、前述の表の 2、4、5 のいずれかを選択することが望ましいといえます。

杉村 勇馬 (記事一覧)

執行役員 CTO

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