ターミナル上でも利用可能になったGemini CLI

最近登場した「Gemini CLI」を試したメモ

1. Gemini CLI のセットアップ方法

まずは導入手順です。

手軽に試すなら npx でも良いですが、継続利用ならインストール推奨です。

1-1. グローバルインストール

ターミナルのどこからでも gemini を呼び出せます。

npm install -g @google-gemini/cli
1-2. プロジェクトローカルインストール

特定プロジェクトでのみ使いたい場合。

npm install @google-gemini/cli --save-dev
1-3. 認証は API キーがおすすめ

Google AI Studio で API キーを取得し、環境変数へ設定します。

export GOOGLE_API_KEY="取得したAPIキー"

.zshrc などに追記しておけば毎回読み込まれます。

2. CUI サーバでの OAuth 認証回避テクニック

GUI 無しサーバで gemini auth が詰まる場合の対処です。

  1. xdg-utils を導入し URL 発行を有効化。
    sudo apt install xdg-utils
  2. サーバで表示された認証 URL をローカル PC ブラウザで開く。
  3. リダイレクト先 http://localhost:ポート/oauth2callback?... をコピーし、サーバ側で curl
    curl -v "<http://localhost:34567/oauth2callback?state=>..."

これで CLI に認証コードが渡ります。

3. .env ファイル運用

機密情報やモデル設定を環境変数で一元管理します。

3-1. 読み込み順序
  1. カレントディレクトリ .env
  2. 親ディレクトリを遡り最初に見つかった .env
  3. ~/.env

コマンドライン引数が最優先で、.envsettings.json より優先されます。

3-2. グローバル例
# ~/.env
GEMINI_API_KEY=your_api_key_here
GEMINI_MODEL=gemini-1.5-pro
3-3. プロジェクト例
# <プロジェクトルート>/.env
GEMINI_API_KEY=project_specific_api_key
GEMINI_MODEL=gemini-2.5-flash
3-4. 主要環境変数
  • GEMINI_API_KEY … 必須
  • GEMINI_MODEL … デフォルトモデル
  • GOOGLE_API_KEY GOOGLE_CLOUD_PROJECT GOOGLE_APPLICATION_CREDENTIALS … GCP 用
  • GEMINI_SANDBOX SEATBELT_PROFILE … サンドボックス関連

.gitignore.env を除外するのを忘れずに。

4. settings.json によるカスタマイズ

優先順位は以下です。

  1. アプリデフォルト
  2. ~/.gemini/settings.json
  3. <プロジェクト>/.gemini/settings.json
  4. 環境変数
  5. コマンドライン引数

設定例:

{
  "theme": "GitHub",
  "sandbox": "docker",
  "usageStatisticsEnabled": true
}

5. カスタムインストラクションファイル

GEMINI.md などに AI への指示を記述できます。

settings.jsoncontextFileName で名称変更可。

{
  "contextFileName": "AGENTS.md"
}

優先度はグローバル → プロジェクト → サブディレクトリで内容が結合されます。

管理コマンド
  • /memory show … 読み込まれた内容表示
  • /memory refresh … 再スキャン

6. サンドボックス機能

外部コマンドを隔離実行する安全機構です。

  • 起動時フラグ: gemini -s
  • 設定: "sandbox": "docker"
  • 環境変数: GEMINI_SANDBOX=docker

カスタム Dockerfile を .gemini/sandbox.Dockerfile に置き、

BUILD_SANDBOX=1 gemini -s

で自動ビルドされます。

macOS では SEATBELT_PROFILE で Seatbelt プロファイルを指定可。

7. MCP(Model-Context Protocol)サーバ連携

外部ツールを統合する拡張機構です。

設定例:

{
  "mcpServers": {
    "myPythonServer": {
      "command": "python",
      "args": ["mcp_server.py", "--port", "8080"],
      "cwd": "./mcp_tools/python",
      "timeout": 5000
    }
  }
}

MCP サーバは stdin/stdout で JSON RPC を実装し、Gemini Function Calling に準拠します。


まとめ

  • インストール: npm -g で全体、-save-dev でプロジェクト単位。
  • 認証: API キーが簡単安全。
  • CUI サーバでも curl で OAuth 認証を完結可能。
  • 設定ファイル:
    • .env → 機密 & モデル設定。
    • settings.json → UI・サンドボックス等細かい挙動。
    • GEMINI.md → モデル指示文。
  • 優先順位: CLI 引数 > 環境変数 > プロジェクト設定 > グローバル設定 > デフォルト。
  • サンドボックスMCP サーバ で安全かつ柔軟に外部ツールを呼び出せる。

公式ドキュメント: https://github.com/google-gemini/gemini-cli/blob/main/docs/cli/configuration.md