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 を使用します。