Gemini CLIは、Googleの強力な生成AIモデルであるGeminiを、コマンドラインから手軽に利用できるオープンソースのツールです。

【重要】データプライバシーに関する注意点
デフォルトで利用されるGoogle AIのGemini API(特に無料版)では、入力したプロンプトがGoogleのモデル品質向上のために利用される可能性があります。一方、この記事で解説するVertex AI経由で利用する場合、入力データがモデルの学習に使われることはありません。企業の機密情報やプロダクトのコードを扱う場合は、Vertex AIの利用が強く推奨されます。

この記事では、Gemini CLIのバックエンドをVertex AIに切り替え、その強力なデータガバナンスとカスタマイズ機能を活用するための手順を解説します。

公式情報

1. Gemini CLIの主な特長

  • オープンソース: 誰でも開発に参加でき、活発なコミュニティによって日々進化しています。
  • ローカルファイルとの連携: @記法で、ローカルファイルを簡単にコンテキストに追加できます。
  • 柔軟なコンテキスト読み込み: デフォルトのGEMINI.md以外に、CLAUDE.mdなど任意のファイル名を設定でき、他のAIツールからの移行を支援します。
  • シェルコマンドの実行: run_shell_commandツール (!) を使えば、CLIから離れることなくコマンドを実行し、その結果を対話に含めることができます。
  • Web検索機能: google_web_searchツールでWeb上の最新情報を検索し、対話に利用できます。
  • 高い拡張性(MCP): Model Context Protocol (MCP) をサポートし、独自のカスタムツールサーバーを連携させることが可能です。

2. 前提条件とIAM権限

2.1. 必要なツールと環境

  • Google Cloudプロジェクト: 課金が有効になっていること。
  • gcloud CLI: Google Cloud CLIがインストールされ、gcloud auth application-default loginによる認証が完了していること。
  • Gemini CLI: Gemini CLIがインストール済みであること。

2.2. 必要なIAM権限

Vertex AIを利用するには、Gemini CLIを実行するユーザーまたはサービスアカウントに適切なIAMロールが必要です。最低限、Vertex AI ユーザー (roles/aiplatform.user) のロールを付与してください。

# gcloudコマンドでIAMロールを付与する例
gcloud projects add-iam-policy-binding YOUR_PROJECT_ID \
    --member="user:your-email@example.com" \
    --role="roles/aiplatform.user"

3. Vertex AIバックエンドの設定

環境変数を設定し、Gemini CLIのバックエンドをVertex AIに切り替えます。設定方法は2通りあります。

方法1: exportコマンド(一時的な設定)

ターミナルのセッションごとに環境変数を設定します。

export GOOGLE_GENAI_USE_VERTEXAI=true
export GOOGLE_CLOUD_PROJECT="YOUR_PROJECT_ID"
export GOOGLE_CLOUD_LOCATION="YOUR_PROJECT_LOCATION" # 例: us-central1

この設定を恒久化するには、~/.zshrc~/.bashrc に追記してください。

方法2: .envファイル(プロジェクトごとの設定)

プロジェクトのルートディレクトリに.envファイルを作成して、環境変数を管理する方法も推奨されます。このファイルはGitの管理対象外にすることが一般的です。

.envファイルの中身:

GOOGLE_GENAI_USE_VERTEXAI=true
GOOGLE_CLOUD_PROJECT="YOUR_PROJECT_ID"
GOOGLE_CLOUD_LOCATION="YOUR_PROJECT_LOCATION"

Gemini CLIは、カレントディレクトリから親ディレクトリを遡って.envファイルを自動で読み込みます。

4. 利用モデルの変更

タスクに応じて、または最新のモデルを試すために、利用するGeminiモデルを柔軟に変更できます。

一時的な変更(コマンド実行ごと)

--model (または -m) フラグを使うと、そのコマンド一度だけモデルを指定できます。

# gemini-2.5-flashモデルを一時的に利用する例
gemini -p "このプロジェクトについて説明" --model gemini-2.5-flash

デフォルトモデルの変更(恒久的な設定)

環境変数 GEMINI_MODEL を設定すると、デフォルトで利用するモデルを指定できます。この設定は .env ファイルに記述するのが便利です。

.envファイルに追記:

GEMINI_MODEL="gemini-2.5-flash"

5. 高度なカスタマイズ (settings.json)

Gemini CLIは .gemini/settings.json ファイルを通じ、さらに細かい動作をカスタマイズできます。(ワークスペースの設定がユーザー設定より優先されます)

  • ユーザー設定: ~/.gemini/settings.json
  • ワークスペース設定: (プロジェクトルート)/.gemini/settings.json

5.1. コンテキストファイル名の変更

contextFileNameキーで、プロンプトとして読み込むファイル名を指定できます。

例: AGENT.md を読み込む設定

{
  "contextFileName": "AGENT.md"
}

5.2. カスタムツールサーバー (MCP) の設定

独自のツールを定義したHTTPサーバーを、MCPとして連携させることができます。

例: ローカルのカスタムツールサーバーを追加

{
  "mcpServers": {
    "my-custom-tools": {
      "command": "node /path/to/my/custom/tool/server.js",
      "port": 8080,
      "enabled": true
    }
  }
}

6. Vertex AI連携のメリットとユースケース

Vertex AIをバックエンドに利用することで、エンタープライズレベルの機能が活用可能になります。

  • データプライバシーの保証: Vertex AIでは、プロンプトやレスポンス、ファインチューニングに利用したデータが、Googleの基盤モデルの学習に使われることはありません。企業の機密情報や個人情報を含むデータを扱う場合でも、安心して利用できます。
  • 強固なセキュリティとガバナンス: VPC Service Controlsによるネットワーク境界制御や、IAMによる詳細な権限管理が可能です。
  • モデルのカスタマイズ: 自社のデータセットでモデルをファインチューニングし、特定のドメインやタスクに特化したモデルをCLIから利用できます。
  • エコシステム連携: BigQueryやVertex AI Pipelinesといった他のGoogle Cloudサービスとシームレスに連携し、高度な分析やMLOpsを実現します。

具体的なユースケース

  • セキュアなコードリファクタリング: 金融機関など、規制の厳しい業界の開発者が、VPC-SCで保護された環境内で、機密情報を含むコードベースの分析やリファクタリングを安全に行う。
  • 社内ドキュメントに基づいたQA: 社内のコーディング規約をファインチューニングしたモデルに対し、CLIから「このコンポーネントの正しい使い方は」といった質問を投げかけ、文脈に沿った回答を得る。
  • 開発ワークフローの自動化: 「最新のコミットログからリリースノートを生成し、Jiraにチケットを起票する」といった一連のタスクをカスタムツールとして定義し、gemini 'リリースノート作って' のような単純な指示で実行する。

7. まとめ

本記事では、Gemini CLIのバックエンドをVertex AIに切り替える基本設定から、settings.jsonを用いた高度なカスタマイズ、そして具体的なユースケースまでを解説しました。オープンソースであるGemini CLIの柔軟性と、Vertex AIの堅牢なエンタープライズ向け機能を組み合わせることで、開発者は生成AIをより安全かつ効率的に、それぞれのニーズに合わせて活用できます。


この記事は、Gemini CLI自身によって、公式リポジトリの情報を参照しながら作成されています。