Gemini API CLI

Gemini API CLI (gemini-api) एक स्टेटलेस, ज़ीरो-डिपेंडेंसी कमांड-लाइन क्लाइंट है. इसे शेल ऐक्सेस वाले एआई एजेंट के लिए बनाया गया है. इसे स्क्रिप्ट और सीआई से इस्तेमाल किया जा सकता है. इसके बाद, आपका कोडिंग एजेंट टेक्स्ट और मीडिया जनरेट कर सकता है, फ़ाइलों का विश्लेषण कर सकता है, और Gemini के मैनेज किए जा रहे एजेंट को टास्क सौंप सकता है. यह Antigravity, Claude Code, Codex, Cursor, OpenClaw, Hermes या किसी भी शेल एनवायरमेंट के साथ काम करता है.

हर सुविधा, Interactions API पर स्टैंडर्ड शेल कमांड के तौर पर काम करती है. एजेंट सबप्रोसेस, अपने टर्मिनल या सीआई पाइपलाइन से ये कमांड चलाएं:

# 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 का सही टूल चुनना

gemini-api का इस्तेमाल तब करें, जब किसी एजेंट या स्क्रिप्ट को आपके प्रोजेक्ट में एसडीके कोड जोड़े बिना, सीधे शेल से Gemini को कॉल करना हो. किसी ऐप्लिकेशन में Gemini को इंटिग्रेट करते समय, एसडीके और कोडिंग एजेंट सेटअप का इस्तेमाल करें:

टूल यह क्या करता है इसका इस्तेमाल कब करें
Gemini API CLI (gemini-api) किसी भी शेल से Gemini मॉडल और मैनेज किए जा रहे एजेंट को कॉल करता है. आपके कोडिंग एजेंट, शेल स्क्रिप्ट या सीआई जॉब को मीडिया जनरेट करना हो, फ़ाइलों का विश्लेषण करना हो या बैकग्राउंड में रिसर्च एजेंट चलाना हो. इसके लिए, प्रोजेक्ट की कोई डिपेंडेंसी नहीं होनी चाहिए.
Google GenAI SDKs Gemini की क्लाइंट लाइब्रेरी को Python, TypeScript, JavaScript, Go, Java या C# कोड में इंपोर्ट करता है. अपने ऐप्लिकेशन, बैकएंड सेवा या रीयल-टाइम Live API सेशन में Gemini की सुविधाएं जोड़ी जा रही हों.
Gemini Docs MCP & skills कोडिंग एजेंट को लाइव दस्तावेज़ खोजने और मौजूदा एसडीके नियमों की जानकारी देता है. आपका कोडिंग एजेंट, ऐप्लिकेशन कोड लिख रहा है, जो Google GenAI SDK को इंपोर्ट करता है.

यह कैसे काम करता है

रॉ REST कॉल और इंटरैक्टिव सीएलआई की वजह से, कोडिंग एजेंट को अक्सर समस्याएं आती हैं. Base64 मीडिया, कॉन्टेक्स्ट विंडो को भर देता है. इंटरैक्टिव प्रॉम्प्ट, सबप्रोसेस को ब्लॉक कर देते हैं. साथ ही, पुराना ट्रेनिंग डेटा, गलत जानकारी वाले फ़्लैग जनरेट करता है.

डिज़ाइन से जुड़े चार विकल्प, एजेंट के लिए gemini-api को भरोसेमंद बनाते हैं:

  • ऑफ़लाइन स्कीमा लुकअप: कमांड ट्री (KDL में) को प्रिंट करने के लिए --usage पास करें या --body अनुरोधों के लिए JSON स्कीमा को प्रिंट करने के लिए --schema पास करें.
  • डिस्क पर मौजूद फ़ाइलें, stdout पर पाथ: मीडिया और ट्रांसक्रिप्शन कमांड, डिस्क पर फ़ाइलें लिखते हैं और सिर्फ़ आउटपुट पाथ को प्रिंट करते हैं. इससे बाइनरी डेटा को कॉन्टेक्स्ट से बाहर रखा जाता है.
  • ड्राई रन और स्ट्रक्चर्ड आउटपुट: --dry-run इनपुट की पुष्टि करता है, क्रेडेंशियल को छिपाता है, और एचटीटीपी अनुरोध की झलक ऑफ़लाइन दिखाता है. मशीन से पढ़े जा सकने वाले आउटपुट के लिए, -o json, -o toon या --jq पास करें. stderr पर स्ट्रक्चर्ड JSON गड़बड़ियां दिखाने के लिए, --agent-mode जोड़ें. साथ ही, गड़बड़ियों को ठीक करने के लिए एग्ज़िट कोड देखें. कमांड कभी भी प्रॉम्प्ट नहीं करते, जब तक कि --interactive पास न किया जाए.
  • डिफ़ॉल्ट रूप से स्टेटलेस: कमांड, किसी भी छिपे हुए लोकल स्टेट को सेव नहीं करते. कई चरणों वाले काम को साफ़ तौर पर --previous-interaction-id, अपलोड किए गए files/<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"
}

अपनी प्रोफ़ाइल बनाना शुरू करें

सीएलआई इंस्टॉल करें, 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 install github.com/google-gemini/gemini-api-cli/cmd/gemini-api@latest

पहले से बनी बाइनरी

GitHub रिलीज़ से macOS, Linux, और Windows के लिए, वर्शन वाली संग्रहित फ़ाइलें डाउनलोड करें. इसके बाद, gemini-api को अपने PATH पर सेव करें. Docker इमेज और सीआई में सटीक वर्शन पिन करने के लिए, पहले से बने संग्रहों का इस्तेमाल करें.

2. पुष्टि करने की सुविधा को कॉन्फ़िगर करना और पुष्टि करना

Google AI Studio में जाकर, एपीआई पासकोड बनाएं (एपीआई पासकोड देखें). अपने शेल और एजेंट के सबप्रोसेस एनवायरमेंट में GEMINI_API_KEY सेट करें:

export GEMINI_API_KEY="YOUR_API_KEY"

लोकल वर्कस्टेशन पर, कुंजी को अपने ओएस कीचेन (macOS Keychain, Linux Secret Service या Windows Credential Manager) में सेव किया जा सकता है. इसके बजाय, ~/.config/gemini-api/config.yaml में कुंजी को सेव करने के लिए, Pass --no-keyring:

# 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 किलोहर्ट्ज़ मोनो WAV स्पीच (एक या दो स्पीकर) को सिंथेसाइज़ करता है और आउटपुट पाथ को प्रिंट करता है.
बनाएं music म्यूज़िक ट्रैक या लूप जनरेट करता है, ऑडियो फ़ाइल लिखता है, और उसका पाथ प्रिंट करता है.
बनाएं video MP4 क्लिप जनरेट करता है या उनमें बदलाव करता है. साथ ही, प्रोसेस पूरी होने तक इंतज़ार करता है (--async तुरंत एक आईडी दिखाता है).
बनाएं generate टेक्स्ट जनरेट करता है और उसे stdout पर स्ट्रीम करता है (--stream=false एक पूरा नतीजा दिखाता है).
किसी विषय को समझना analyze PDF, इमेज, ऑडियो, वीडियो, CSV, और टेक्स्ट फ़ाइलों या सार्वजनिक YouTube यूआरएल के बारे में सवालों के जवाब देना.
किसी विषय को समझना transcribe यह स्पीकर के लेबल और टाइमस्टैंप वाली ट्रांसक्रिप्ट (md, text, json या srt) लिखता है और आउटपुट पाथ प्रिंट करता है.
एजेंट मैनेज करें agent मैनेज किए जा रहे एजेंट (run, status, cancel, delete-interaction) चलाता है और कस्टम एजेंट की परिभाषाओं (create, list, get, delete) को मैनेज करता है.
एजेंट मैनेज करें environments, credentials, webhooks, triggers मैनेज किए जा रहे एजेंट के लिए, सैंडबॉक्स एनवायरमेंट, सेव किए गए क्रेडेंशियल, वेबहुक डिलीवरी, और शेड्यूल किए गए रन कॉन्फ़िगर करता है.
सेटअप और फ़ाइलें configure, auth, whoami इससे क्रेडेंशियल और डिफ़ॉल्ट सेटिंग कॉन्फ़िगर की जाती हैं. साथ ही, पुष्टि की चालू स्थिति दिखती है.
सेटअप और फ़ाइलें files Files API में फ़ाइलें अपलोड करना, उनकी सूची बनाना, उनकी जांच करना, और उन्हें मिटाना.
सेटअप और फ़ाइलें models उपलब्ध मॉडल की सूची दिखाता है.

वर्कफ़्लो

हर निर्देश के लिए, डिफ़ॉल्ट रूप से उस मॉडल का इस्तेमाल किया जाता है जो उस काम के लिए सबसे सही होता है. कोई दूसरा मॉडल चुनने के लिए, --model (-m) दबाएं. उपलब्ध विकल्पों की सूची देखने के लिए, gemini-api models चलाएं.

इमेज जनरेट और एडिट करने की सुविधा

वेब या मोबाइल यूज़र इंटरफ़ेस (यूआई) बनाने वाले एजेंट, 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, यूज़र इंटरफ़ेस (यूआई) के संकेतों, सुलभता की झलक, और बोलकर दिए जाने वाले निर्देशों के लिए, 24 किलोहर्ट्ज़ WAV ऑडियो जनरेट करता है. डिफ़ॉल्ट आवाज़ Kore है; --voice का इस्तेमाल करके कोई दूसरी आवाज़ चुनें. दो स्पीकर वाले डायलॉग के लिए, प्रॉम्प्ट में हर टर्न को लेबल करें और स्पीकर को आवाज़ों से मैप करें:

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 को पास करें. इसके बाद, 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 यूआरएल के बारे में सवालों के जवाब देता है. 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 एमबी तक की लोकल फ़ाइलों को इनलाइन भेजता है. base64 एन्कोडिंग के बाद, 20 एमबी तक की फ़ाइलें भेजी जा सकती हैं. बड़ी फ़ाइलों के लिए, files upload --wait का इस्तेमाल करके एक बार अपलोड करें और वापस किए गए files/<id> यूआरआई का फिर से इस्तेमाल करें:

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

एजेंट चलाना और उन्हें मैनेज करना

आपका कोडिंग एजेंट, कई चरणों वाली रिसर्च या सैंडबॉक्स किए गए टास्क, Gemini के मैनेज किए गए एजेंट को सौंप सकता है. जैसे, Deep Research एजेंट. स्ट्रीम को खुला रखने के बजाय, इंटरैक्शन आईडी तुरंत पाने के लिए, --background --stream=false पास करें:

# 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 पेलोड पास करें. response_format स्कीमा, फ़ंक्शन-कॉलिंग टूल, generation_config या "store": false सेट करने के लिए, --body पास करें. मान्य फ़ील्ड देखने के लिए, पहले 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 रनटाइम या एपीआई से जुड़ी गड़बड़ी, जैसे कि नेटवर्क की गड़बड़ी, अनुरोध संख्या सीमित करना या बैकग्राउंड में चल रहे काम का पूरा न होना.
2 इस्तेमाल या पुष्टि करने से जुड़ी गड़बड़ी. जैसे, कोई अनजान फ़्लैग, इनपुट मौजूद न होना या डुप्लीकेट --body कुंजी.
3 पुष्टि करने या अनुमति देने में गड़बड़ी होना. जैसे, एपीआई पासकोड या टोकन मौजूद न होना या अमान्य होना.

हर कमांड (पुष्टि, आउटपुट, नेटवर्क, और डाइग्नोस्टिक्स) से शेयर किए गए ग्लोबल फ़्लैग की सूची देखने के लिए, gemini-api --help-global चलाएं.

सीमाएं

  • स्ट्रीमिंग कमांड (generate और agent run) के लिए, --stream=false की ज़रूरत होती है. ऐसा तब होता है, जब इन्हें -o json या --jq के साथ जोड़कर, एक JSON रिस्पॉन्स ऑब्जेक्ट दिखाया जाता है.
  • इनलाइन -i फ़ाइल इनपुट में, रॉ फ़ाइल डेटा की सीमा 14 एमबी होती है. इसमें 20 एमबी का अनुरोध पेलोड शामिल होता है, जिसमें base64 एन्कोडिंग भी शामिल है. gemini-api files upload की मदद से बड़ी फ़ाइलें अपलोड करें. Files API, अपलोड की गई फ़ाइलों को 48 घंटों के बाद मिटा देता है.
  • gemini-api, स्टैंडर्ड एचटीटीपी अनुरोधों, एसएसई स्ट्रीमिंग, और एसिंक्रोनस पोलिंग के साथ काम करता है. यह दोनों तरफ़ से काम करने वाले वेबसॉकेट के साथ काम नहीं करता. रीयल-टाइम में आवाज़ और वीडियो की स्ट्रीमिंग के लिए, Google GenAI SDK टूल के साथ Live API का इस्तेमाल करें.

आगे क्या करना है