Gemini API KSA (gemini-api), kabuk erişimi olan yapay zeka ajanları için tasarlanmış, durum bilgisiz ve bağımlılığı bulunmayan bir komut satırı istemcisidir. Komut dosyalarından ve CI'dan kullanılabilir.
Kodlama temsilciniz daha sonra metin ve medya oluşturabilir, dosyaları analiz edebilir ve görevleri Gemini tarafından yönetilen temsilcilere devredebilir. Antigravity, Claude Code, Codex, Cursor, OpenClaw, Hermes veya herhangi bir kabuk ortamıyla çalışır.
Her özellik, Interactions API'de standart bir kabuk komutu olarak çalışır. Aynı komutları bir temsilci alt işleminden, terminalinizden veya bir CI ardışık düzeninden çalıştırın:
# 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
Doğru Gemini aracını seçme
Bir temsilcinin veya komut dosyasının, projenize SDK kodu eklemeden Gemini'ı doğrudan kabuktan çağırması gerektiğinde gemini-api aracını kullanın. Gemini'ı bir uygulamaya entegre ederken SDK'ları ve kodlama temsilcisi kurulumunu kullanın:
| Araç | Ne işe yarar? | Ne zaman kullanılır? |
|---|---|---|
Gemini API CLI (gemini-api) |
Herhangi bir kabuktan Gemini modellerini ve yönetilen temsilcileri çağırır. | Kodlama temsilciniz, kabuk komut dosyanız veya CI işiniz; üretken yapay zeka aracı oluşturmalı, dosyaları analiz etmeli ya da sıfır proje bağımlılığı olan bir arka plan araştırma temsilcisi çalıştırmalıdır. |
| Google GenAI SDK'ları | Gemini istemci kitaplıklarını Python, TypeScript, JavaScript, Go, Java veya C# koduna aktarır. | Uygulamanıza, arka uç hizmetinize veya anlık Live API oturumunuza Gemini özellikleri ekliyorsunuz. |
| Gemini Docs MCP ve becerileri | Kodlama temsilcilerine canlı doküman arama ve güncel SDK kuralları sunar. | Kodlama temsilciniz, Google GenAI SDK'sını içe aktaran uygulama kodu yazıyor. |
İşleyiş şekli
Ham REST çağrıları ve etkileşimli CLI'lar, kodlama temsilcileri için genellikle sorunlara neden olur. Base64 medya, bağlam penceresini doldurur; etkileşimli istemler, alt süreçleri engeller ve eski eğitim verileri, halüsinasyonlu işaretlere neden olur.
Dört tasarım seçeneği, gemini-api modelinin temsilciler için güvenilir olmasını sağlar:
- Çevrimdışı şema arama: Komut ağacını (KDL biçiminde) yazdırmak için
--usage,--bodyistekleri için JSON şemasını yazdırmak üzere--schemadeğerini iletin. - Diskteki dosyalar,
stdoutüzerindeki yollar: Medya ve transkript komutları, dosyaları diske yazar ve yalnızca çıkış yolunu yazdırarak ikili verileri bağlam dışında tutar. - Deneme çalıştırmaları ve yapılandırılmış çıkış:
--dry-run, girişleri doğrular, kimlik bilgilerini çıkartır ve HTTP isteğini çevrimdışı olarak önizler. Makine tarafından okunabilir çıkış için-o json,-o toonveya--jqparametresini iletin.stderrüzerinde yapılandırılmış JSON hataları döndürmek için--agent-modeekleyin ve hataları işlemek için çıkış kodlarını kontrol edin. Komutlar,--interactiveparametresini iletmediğiniz sürece hiçbir zaman istem göstermez. - Varsayılan olarak durum bilgisiz: Komutlar gizli yerel durumları saklamaz.
--previous-interaction-id, yüklenen birfiles/<id>URI'si veya arka plan etkileşim kimliği ile çok adımlı çalışmaları açıkça zincirleyin.
-o json ile medya komutları, dosyayı diske yazmaya ve meta verileri stdout'e yazdırmaya devam eder:
{
"kind": "image",
"mime_type": "image/jpeg",
"path": "/path/to/project/assets/db-icon.jpg",
"response_id": "v1_...",
"size_bytes": 2914159,
"status": "completed"
}
Başlayın
CLI'yı yükleyin, gemini-api dosyasını PATH dizinine yerleştirin, GEMINI_API_KEY değişkenini ayarlayın ve kodlama temsilcinize kullanım kuralları ekleyin.
1. İkili programı yükleme
macOS ve Linux
curl -fsSL https://raw.githubusercontent.com/google-gemini/gemini-api-cli/main/scripts/install.sh | bash
Belirli bir sürümü yüklemek için GEMINI_VERSION değerini bir sürüm etiketi olarak ayarlayın:
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
Önceden derlenmiş ikili programlar
GitHub Sürümleri'nden macOS, Linux ve Windows için sürümlü arşivleri indirin ve gemini-api dosyasını PATH dizininize yerleştirin. Docker görüntülerinde ve CI'da tam sürümleri sabitlemek için önceden oluşturulmuş arşivleri kullanın.
2. Kimlik doğrulamayı yapılandırma ve doğrulama
Google AI Studio'da bir API anahtarı oluşturun (API anahtarları bölümüne bakın). Kabuğunuzda ve temsilcinizin alt işlem ortamında GEMINI_API_KEY değerini ayarlayın:
export GEMINI_API_KEY="YOUR_API_KEY"
Yerel bir iş istasyonunda anahtarı işletim sisteminizin anahtar zincirine (macOS Anahtar Zinciri, Linux Secret Service veya Windows Kimlik Bilgisi Yöneticisi) kaydedebilirsiniz. Anahtarı yerine ~/.config/gemini-api/config.yaml içinde depolamak için
--no-keyring parametresini iletin:
# 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. Ajanlarınıza talimat verin
Kodlama temsilcinizin gemini-api aracını nasıl kullanacağını bilmesi için bu snippet'i projenizin AGENTS.md, CLAUDE.md, .cursorrules veya sistem istemine ekleyin:
## 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`.
Ardından, kodlama temsilcinize her zamanki gibi istem girin:
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.
Komutlar
Tüm komutları listelemek için gemini-api --help komutunu, komutlara etkileşimli olarak göz atmak için gemini-api explore komutunu çalıştırın.
| Grup | Komut | Ne işe yarar? |
|---|---|---|
| Oluştur | image |
Resim oluşturur veya düzenler (-i), JPEG dosyası yazar ve yolunu yazdırır. |
| Oluştur | tts |
24 kHz mono WAV konuşma (bir veya iki konuşmacı) sentezler ve çıkış yolunu yazdırır. |
| Oluştur | music |
Müzik parçaları veya döngüler oluşturur, ses dosyasını yazar ve yolunu yazdırır. |
| Oluştur | video |
MP4 klipleri oluşturur veya düzenler ve işlem tamamlanana kadar bekler (--async hemen bir kimlik döndürür). |
| Oluştur | generate |
Oluşturulan metin oluşturur ve stdout adresine aktarır (--stream=false tam bir sonuç döndürür). |
| Anlayın | analyze |
PDF'ler, resimler, ses, video, CSV ve metin dosyaları ya da herkese açık YouTube URL'leri ile ilgili soruları yanıtlar. |
| Anlayın | transcribe |
Konuşmacı etiketli, zaman damgalı transkriptleri (md, text, json veya srt) yazar ve çıkış yollarını yazdırır. |
| Aracıları yönet | agent |
Yönetilen aracıları (run, status, cancel, delete-interaction) çalıştırır ve özel aracı tanımlarını (create, list, get, delete) yönetir. |
| Aracıları yönet | environments, credentials, webhooks, triggers |
Yönetilen temsilciler için korumalı alan ortamlarını, depolanan kimlik bilgilerini, webhook yayınını ve planlanmış çalıştırmaları yapılandırır. |
| Kurulum ve dosyalar | configure, auth ve whoami |
Kimlik bilgilerini ve varsayılanları yapılandırır ve etkin yetkilendirme durumunu gösterir. |
| Kurulum ve dosyalar | files |
Files API'deki dosyaları yükler, listeler, inceler ve siler. |
| Kurulum ve dosyalar | models |
Kullanılabilir modelleri listeler. |
İş akışları
Her komut, varsayılan olarak görevine uygun bir model kullanır. Farklı bir model seçmek için --model (-m) parametresini iletin. Kullanılabilir seçenekleri listelemek için gemini-api models komutunu çalıştırın.
Görüntü üretme ve düzenleme
Web veya mobil kullanıcı arayüzleri oluşturan temsilciler, Nano Banana ile yer tutucular, simgeler ve hero resimler oluşturabilir. Resmi düzenlemek için oluşturulan yolu -i ile geri iletin:
# 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
Karakter ve stil kılavuzu gibi referans görselleri birleştirmek için -i parametresini birden fazla kez kullanın.
Konuşma sentezi
gemini-api tts; kullanıcı arayüzü işaretleri, erişilebilirlik önizlemeleri ve sesli açıklamalı adım adım açıklamalar için 24 kHz WAV ses sentezler. Varsayılan ses Kore. --voice ile başka bir ses seçebilirsiniz. İki konuşmacılı diyaloglarda, istemdeki her sırayı etiketleyin ve konuşmacıları seslerle eşleştirin:
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
Müzik ve video
Lyria ile özgün parçalar besteleyin ve Gemini Omni ile MP4 klipler oluşturun:
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
Varsayılan olarak video komutu, oluşturma işleminin tamamlanmasını bekler ve MP4 dosyasını diske yazar. Etkileşim kimliğini hemen döndürmek için --async değerini iletin, ardından gemini-api video --resume <id> --out <path> değerini çalıştırın. Mevcut bir resmi canlandırmak için -i parametresini iletin.
Metin oluşturma
gemini-api generate, stdout numaralı telefona kısa mesaj gönderiyor:
gemini-api generate "Write a one-paragraph welcome message for new users of a note-taking app."
Metni isteme aktarmak için --stdin ekleyin. Önceki bir etkileşimi devam ettirmek için --previous-interaction-id parametresini iletin.
Belge analizi ve transkripsiyon
analyze; PDF'ler, e-tablolar, ekran görüntüleri, ses ve video dosyaları ile herkese açık YouTube URL'leri hakkındaki soruları yanıtlar. transcribe, biçimlendirilmiş bir transkripti (md, text, json veya srt) diske yazar:
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
Dosyaları karşılaştırmak için -i parametresini analyze komutuna birden çok kez iletin (ör. öncesi ve sonrası ekran görüntüleri).
gemini-api, 14 MB'a kadar (base64 kodlamasından sonra 20 MB) yerel dosyaları satır içi olarak gönderir.
Daha büyük dosyalar için files upload --wait ile bir kez yükleyin ve döndürülen files/<id> URI'sini yeniden kullanın:
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
Temsilcileri çalıştırma ve yönetme
Kodlama temsilciniz, çok adımlı araştırma veya korumalı alan görevlerini Deep Research temsilcisi gibi Gemini tarafından yönetilen temsilcilere devredebilir. Bir akışı açık tutmak yerine hemen etkileşim kimliği almak için --background --stream=false parametresini iletin:
# 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
Çalışan bir işi durdurmak için gemini-api agent cancel <id> komutunu çalıştırın. Ayrıca agent run ile uzak bir korumalı alanda Antigravity ajanını başlatabilir veya agent create, list, get ve delete ile özel ajanları yönetebilirsiniz. Temsilci korumalı alanlarını yapılandırmak için Ortamlar bölümüne bakın.
Özel istek gövdeleri
Özel işaretleri olmayan seçenekler için --body (satır içi veya @file.json olarak) ile ham bir Interactions API JSON yükü iletin. response_format şemalarını, işlev çağrısı araçlarını, generation_config veya "store": false değerini ayarlamak için --body değerini iletin. Geçerli alanları kontrol etmek için önce gemini-api <command> --schema komutunu çalıştırın:
# 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, komut işaretleriyle birleştirilir. Her ikisi de aynı anahtarı ayarlarsa komut, 2 çıkış koduyla başarısız olur. Böylece çakışan girişler hızlı bir şekilde başarısız olur.
Çıkış kodları
Her komut, yazılı bir çıkış kodu döndürür. Böylece komut dosyaları ve aracılar, hata metnini ayrıştırmadan hataları işleyebilir. Örneğin, 3 bir kimlik doğrulama sorununu, 2 ise geçersiz komut söz dizimini belirtir:
| Kod | Anlamı |
|---|---|
0 |
Komut başarılı oldu. |
1 |
Ağ hatası, sıklık sınırlaması veya başarısız arka plan işi gibi çalışma zamanı ya da API hatası. |
2 |
Bilinmeyen işaret, eksik giriş veya yinelenen --body anahtarı gibi kullanım ya da doğrulama hatası. |
3 |
Kimlik doğrulama veya yetkilendirme hatası (ör. eksik ya da geçersiz API anahtarı veya jetonu). |
Her komutun paylaştığı genel işaretleri (kimlik doğrulama, çıkış, ağ ve teşhis) listelemek için gemini-api --help-global komutunu çalıştırın.
Sınırlamalar
- Akış komutları (
generateveagent run), tek bir JSON yanıt nesnesi döndürmek için-o jsonveya--jqile birleştirildiğinde--stream=falsegerektirir. - Satır içi
-idosya girişleri, 14 MB ham dosya verisiyle (Base64 kodlaması dahil 20 MB istek yükü) sınırlıdır.gemini-api files uploadile büyük dosyalar yükleyin. Files API, yüklenen dosyaları 48 saat sonra siler. gemini-api; standart HTTP isteklerini, SSE akışını ve eşzamansız yoklamayı destekler ancak çift yönlü WebSockets'i desteklemez. Anlık ses ve video akışı için Google GenAI SDK'ları ile Live API'yi kullanın.