Gemini API CLI

Gemini API CLI(gemini-api)は、シェルアクセス権を持つ AI エージェント向けに構築された、ステートレスで依存関係のないコマンドライン クライアントです(スクリプトや CI からも使用できます)。コーディング エージェントは、テキストやメディアの生成、ファイルの分析、Gemini マネージド エージェントへのタスクの委任を行うことができます。Antigravity、Claude Code、Codex、Cursor、OpenClaw、Hermes、または任意のシェル環境で動作します。

すべての機能は、Interactions API で標準のシェルコマンドとして実行されます。エージェントのサブプロセス、ターミナル、または CI パイプラインから同じコマンドを実行します。

# 1. Install on macOS or Linux
curl -fsSL https://raw.githubusercontent.com/google-gemini/gemini-api-cli/main/scripts/install.sh | bash

# 2. Set your API key
export GEMINI_API_KEY="YOUR_API_KEY"

# 3. Generate media, analyze a file, or launch a background managed agent
gemini-api image "Minimalist isometric icon of a cloud database" --out ./assets/db-icon.jpg
gemini-api analyze -i ./docs/quarterly-report.pdf "Summarize the key findings in three bullets."
gemini-api agent run "Compare WebRTC SFU architectures and cite sources" \
  --agent deep-research-preview-04-2026 \
  --background \
  --stream=false

適切な Gemini ツールを選択する

エージェントまたはスクリプトが、プロジェクトに SDK コードを追加せずにシェルから Gemini を直接呼び出す必要がある場合は、gemini-api を使用します。Gemini をアプリケーションに組み込む場合は、SDK とコーディング エージェントの設定を使用します。

ツール 機能 用途
Gemini API CLI(gemini-api) 任意のシェルから Gemini モデルとマネージド エージェントを呼び出します。 コーディング エージェント、シェル スクリプト、CI ジョブで、生成メディアの生成、ファイルの分析、バックグラウンド リサーチ エージェントの実行を、プロジェクトの依存関係なしで行う必要がある。
Google GenAI SDK Gemini クライアント ライブラリを Python、TypeScript、JavaScript、Go、Java、C# コードにインポートします。 アプリケーション、バックエンド サービス、またはリアルタイムの Live API セッションに Gemini 機能を組み込んでいる。
Gemini Docs MCP とスキル コーディング エージェントにライブ ドキュメント検索と最新の SDK ルールを提供します。 コーディング エージェントが、Google GenAI SDK をインポートするアプリケーション コードを記述している。

仕組み

未加工の REST 呼び出しとインタラクティブな CLI は、コーディング エージェントで問題を引き起こすことがよくあります。Base64 メディアがコンテキスト ウィンドウを埋め、インタラクティブなプロンプトがサブプロセスをブロックし、古いトレーニング データがハルシネーション フラグを引き起こします。

エージェントにとって gemini-api の信頼性を維持するための 4 つの設計上の選択肢があります。

  • オフライン スキーマ検索: --usage を渡してコマンドツリー(KDL 形式)を出力するか、--schema を渡して --body リクエストの JSON スキーマを出力します。
  • ディスク上のファイル、stdout 上のパス: メディア コマンドと音声文字変換コマンドは、ファイルをディスクに書き込み、出力パスのみを出力します。バイナリデータはコンテキストから除外されます。
  • ドライランと構造化出力: --dry-run は、入力を検証し、認証情報を削除して、HTTP リクエストをオフラインでプレビューします。マシンで読み取り可能な出力の場合は、-o json、-o toon、または --jq を渡します。--agent-mode を追加して、stderr で構造化された JSON エラーを返し、終了コードを確認して障害を処理します。--interactive を渡さない限り、コマンドはプロンプトを表示しません。
  • デフォルトでステートレス: コマンドは非表示のローカル状態を保持しません。--previous-interaction-id、アップロードされた files/<id> URI、またはバックグラウンド インタラクション ID を使用して、マルチステップの作業を明示的にチェーンします。

-o json を使用しても、メディア コマンドは引き続きファイルをディスクに書き込み、メタデータを stdout に出力します。

{
  "kind": "image",
  "mime_type": "image/jpeg",
  "path": "/path/to/project/assets/db-icon.jpg",
  "response_id": "v1_...",
  "size_bytes": 2914159,
  "status": "completed"
}

始める

CLI をインストールし、gemini-api を PATH に配置して、GEMINI_API_KEY を設定し、コーディング エージェントに使用ルールを追加します。

1. バイナリをインストールする

macOS と Linux

curl -fsSL https://raw.githubusercontent.com/google-gemini/gemini-api-cli/main/scripts/install.sh | bash

特定のリリースをインストールするには、GEMINI_VERSION をリリースタグに設定します。

curl -fsSL https://raw.githubusercontent.com/google-gemini/gemini-api-cli/main/scripts/install.sh | GEMINI_VERSION=<release-tag> bash

Windows(PowerShell)

iwr -useb https://raw.githubusercontent.com/google-gemini/gemini-api-cli/main/scripts/install.ps1 | iex

Go

go install github.com/google-gemini/gemini-api-cli/cmd/gemini-api@latest

ビルド済みのバイナリ

GitHub リリースから macOS、Linux、Windows 用のバージョン付きアーカイブをダウンロードし、gemini-api を PATH に配置します。ビルド済みのアーカイブを使用して、Docker イメージと CI で正確なバージョンを固定します。

2. 認証を構成して確認する

Google AI Studio で API キーを作成します(API キーを参照)。シェルとエージェントのサブプロセス環境で GEMINI_API_KEY を設定します。

export GEMINI_API_KEY="YOUR_API_KEY"

ローカル ワークステーションでは、OS キーチェーン(macOS キーチェーン、Linux Secret Service、Windows 認証情報マネージャー)に鍵を保存できます。代わりに --no-keyring を渡して、鍵を ~/.config/gemini-api/config.yaml に保存します。

# Save to your OS keychain (or run gemini-api configure --interactive)
gemini-api configure --api-key "YOUR_API_KEY"

# Check the active credential source, then preview a request offline
gemini-api whoami
gemini-api generate "Confirm CLI setup in one sentence." --dry-run

3. エージェントに指示を出す

このスニペットをプロジェクトの AGENTS.md、CLAUDE.md、.cursorrules、またはシステム プロンプトに追加して、コーディング エージェントが gemini-api の使用方法を認識できるようにします。

## Gemini API CLI (`gemini-api`)

You have access to `gemini-api` through the shell. Use it to generate text or media (images, speech, music, video), analyze documents and recordings, or run and manage Gemini managed agents.

1. Run `gemini-api --help` or `gemini-api --usage` to choose a command, and `gemini-api <command> --schema` before building a `--body` JSON payload.
2. Preview unfamiliar or complex calls offline with `--dry-run -o json`.
3. For a single JSON result or `--jq` filtering on `generate` or `agent run`, pass `--stream=false -o json`.
4. To chain multi-step workflows, capture the output paths that media and transcription commands print to stdout, and the `id` values returned by `generate` or `agent run`.

その後、通常どおりコーディング エージェントにプロンプトを入力します。

Build a landing page for our developer tool. Use Gemini to generate a hero
illustration and a 15-second welcome voiceover, and start a background Deep
Research agent to compare competing CLI onboarding flows. Wire the assets and
findings into the page.

コマンド

gemini-api --help を実行してすべてのコマンドを一覧表示するか、gemini-api explore を実行してインタラクティブに参照します。

グループ コマンド 機能
作成 image 画像を生成または編集し(-i)、JPEG ファイルを書き込んで、そのパスを出力します。
作成 tts 24 kHz のモノラル WAV 音声(1 人または 2 人のスピーカー)を合成し、出力パスを出力します。
作成 music 音楽トラックまたはループを生成し、音声ファイルを書き込んで、そのパスを出力します。
作成 video MP4 クリップを生成または編集し、完了するまで待機します(--async はすぐに ID を返します)。
作成 generate テキストを生成して stdout にストリーミングします(--stream=false は 1 つの完全な結果を返します)。
理解 analyze PDF、画像、音声、動画、CSV、テキスト ファイル、公開されている YouTube URL に関する質問に回答します。
理解 transcribe 話者ラベル付きのタイムスタンプ付き文字起こし(md、text、json、srt)を書き込み、出力パスを出力します。
エージェントの管理 agent マネージド エージェント(run、status、cancel、delete-interaction)を実行し、カスタム エージェント定義(create、list、get、delete)を管理します。
エージェントの管理 environments、credentials、webhooks、triggers マネージド エージェントのサンドボックス環境、保存された認証情報、Webhook 配信、スケジュール設定された実行を構成します。
セットアップとファイル configure、auth、whoami 認証情報とデフォルトを構成し、アクティブな認証状態を表示します。
セットアップとファイル files Files API でファイルのアップロード、一覧表示、検査、削除を行います。
セットアップとファイル models 使用可能なモデルを一覧表示します。

Workflows

各コマンドは、デフォルトでタスクに適したモデルに設定されています。別のモデルを選択するには、--model(-m)を渡します。gemini-api models を実行して、使用可能なオプションを一覧表示します。

画像の生成と編集

ウェブまたはモバイル UI を構築するエージェントは、Nano Banana を使用してプレースホルダ、アイコン、ヒーロー画像を生成できます。生成されたパスを -i で渡して画像を編集します。

# Generate a 16:9 image at 2K resolution (512, 1K, 2K, or 4K) and capture its path
HERO_PATH=$(gemini-api image "Friendly robot mascot in a sunlit workshop, space on left for headline" \
  --aspect-ratio 16:9 \
  --image-size 2K \
  --out ./public/images/hero.jpg)

# Edit the generated image
gemini-api image "Add a winter scarf and soft snowfall outside the window" \
  -i "$HERO_PATH" \
  --out ./public/images/hero-winter.jpg

-i を複数回渡して、キャラクターやスタイルガイドなどの参照画像を組み合わせます。

音声合成

gemini-api tts は、UI のキュー、ユーザー補助のプレビュー、ナレーション付きのチュートリアル用に 24 kHz の WAV 音声を合成します。デフォルトの音声は Kore です。--voice で別の音声を選択します。2 人の話者の会話では、プロンプトで各ターンにラベルを付け、話者を音声にマッピングします。

gemini-api tts "Build succeeded. All integration tests passed." \
  --voice Aoede \
  --out ./public/audio/build-ok.wav

gemini-api tts "Alice: Welcome to the release walkthrough! Bob: Let's look at what shipped today." \
  --multi-speaker "Alice=Kore,Bob=Puck" \
  --out ./public/audio/release-intro.wav

音楽と動画

Lyria でオリジナルのトラックを作成し、Gemini Omni で MP4 クリップを生成します。

gemini-api music "Warm ambient synth and acoustic guitar background loop, 95 BPM" \
  --out ./public/audio/bg-loop.mp3

gemini-api video "A drone shot of a mountain landscape at sunrise." \
  --aspect-ratio 16:9 \
  --resolution 1080p \
  --out ./public/video/mountain-sunrise.mp4

デフォルトでは、video コマンドは生成が完了するまで待機し、MP4 ファイルをディスクに書き込みます。--async を渡してインタラクション ID をすぐに返し、後で gemini-api video --resume <id> --out <path> を実行します。既存の画像をアニメーション化するには、-i を渡します。

テキスト生成

gemini-api generate はテキストを stdout にストリーミングします。

gemini-api generate "Write a one-paragraph welcome message for new users of a note-taking app."

--stdin を追加して、テキストをプロンプトにパイプします。以前のインタラクションを続行するには、--previous-interaction-id を渡します。

ドキュメントの分析と音声文字変換

analyze は、PDF、スプレッドシート、スクリーンショット、音声ファイル、動画ファイル、公開 YouTube URL に関する質問に回答します。transcribe は、フォーマットされた文字起こし(md、text、json、srt)をディスクに書き込みます。

gemini-api analyze -i ./docs/product-brief.pdf "List the open questions and who owns each one." > open-questions.md

gemini-api transcribe -i ./fixtures/customer-call.mp4 --format srt --out ./fixtures/customer-call.srt

-i を analyze に複数回渡して、変更前と変更後のスクリーンショットなどのファイルを比較します。

gemini-api は、最大 14 MB(base64 エンコード後は 20 MB)のローカル ファイルをインラインで送信します。サイズの大きいファイルの場合は、files upload --wait を使用して 1 回アップロードし、返された files/<id> URI を再利用します。

FILE_URI=$(gemini-api files upload ./recordings/all-hands.mp4 --wait)

gemini-api analyze -i "$FILE_URI" "List action items with owners and timestamps."
gemini-api transcribe -i "$FILE_URI" --format json --out ./recordings/all-hands.json

エージェントを実行して管理する

コーディング エージェントは、複数ステップのリサーチやサンドボックス化されたタスクを、Deep Research エージェントなどの Gemini マネージド エージェントに委任できます。ストリームを開いたままにするのではなく、--background --stream=false を渡してインタラクション ID をすぐに取得します。

# Launch a Deep Research job in the background and capture its interaction ID
RESEARCH_ID=$(gemini-api agent run "Compare open-source vector index benchmarks and cite primary papers." \
  --agent deep-research-preview-04-2026 \
  --background \
  --stream=false \
  --jq '.id')

# Check status or fetch the finished result while continuing other work
gemini-api agent status "$RESEARCH_ID" -o json

gemini-api agent cancel <id> を実行して、実行中のジョブを停止します。agent run を使用してリモート サンドボックスで Antigravity エージェントを起動したり、agent create、list、get、delete を使用してカスタム エージェントを管理したりすることもできます。エージェント サンドボックスを構成するには、環境をご覧ください。

カスタム リクエスト本文

専用フラグのないオプションの場合は、--body(インラインまたは @file.json)を使用して、未加工の Interactions API JSON ペイロードを渡します。--body を渡して、response_format スキーマ、関数呼び出しツール、generation_config、"store": false を設定します。まず gemini-api <command> --schema を実行して、有効なフィールドを確認します。

# Inspect the JSON Schema for the request body
gemini-api generate --schema > generate-schema.json

# Return schema-constrained JSON and skip storing the interaction
cat logs.txt | gemini-api generate "Extract every error message from these logs." \
  --stdin \
  --body '{
    "response_format": {
      "type": "text",
      "mime_type": "application/json",
      "schema": {
        "type": "object",
        "properties": {"errors": {"type": "array", "items": {"type": "string"}}},
        "required": ["errors"]
      }
    },
    "store": false
  }'

--body はコマンドフラグとマージされます。両方が同じキーを設定すると、コマンドは終了コード 2 で失敗し、競合する入力はすぐに失敗します。

終了コード

すべてのコマンドは、型付きの終了コードを返します。これにより、スクリプトとエージェントはエラーテキストを解析せずにエラーを処理できます。たとえば、3 は認証の問題を示し、2 は無効なコマンド構文を示します。

コード 意味
0 コマンドが成功しました。
1 ネットワーク障害、レート制限、バックグラウンド ジョブの失敗などのランタイム エラーまたは API エラー。
2 使用エラーまたは検証エラー(不明なフラグ、入力の欠落、--body キーの重複など)。
3 認証または認可の失敗(API キーまたはトークンがない、または無効など)。

gemini-api --help-global を実行して、すべてのコマンド(認証、出力、ネットワーク、診断)で共有されるグローバル フラグを一覧表示します。

制限事項

  • ストリーミング コマンド(generate と agent run)を -o json または --jq と組み合わせて単一の JSON レスポンス オブジェクトを返す場合は、--stream=false が必要です。
  • インライン -i ファイル入力の上限は、14 MB の未加工ファイルデータ(base64 エンコードを含む 20 MB のリクエスト ペイロード)です。gemini-api files upload を使用してサイズの大きいファイルをアップロードします。Files API は、アップロードされたファイルを 48 時間後に削除します。
  • gemini-api は、標準の HTTP リクエスト、SSE ストリーミング、非同期ポーリングをサポートしていますが、双方向 WebSocket はサポートしていません。リアルタイムの音声と動画のストリーミングには、Google GenAI SDK で Live API を使用します。

次のステップ