Interfaccia a riga di comando dell'API Gemini

L'interfaccia a riga di comando dell'API Gemini (gemini-api) è un client a riga di comando stateless e senza dipendenze creato per gli agenti AI con accesso alla shell (e utilizzabile da script e CI). L'agente di programmazione può quindi generare testo e contenuti multimediali, analizzare file e delegare attività agli agenti gestiti da Gemini. Funziona con Antigravity, Claude Code, Codex, Cursor, OpenClaw, Hermes o qualsiasi ambiente shell.

Ogni funzionalità viene eseguita come un comando shell standard nell'API Interactions. Esegui gli stessi comandi da un sottoprocesso dell'agente, dal terminale o da una pipeline 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

Scegli lo strumento Gemini giusto

Utilizza gemini-api quando un agente o uno script deve chiamare Gemini direttamente dalla shell senza aggiungere il codice dell'SDK al progetto. Utilizza gli SDK e la configurazione dell'agente di programmazione quando integri Gemini in un'applicazione:

Strumento Descrizione Quando utilizzarla
Interfaccia a riga di comando dell'API Gemini (gemini-api) Chiama i modelli Gemini e gli agenti gestiti da qualsiasi shell. Il tuo agente di programmazione, script di shell o job CI deve generare contenuti multimediali, analizzare file o eseguire un agente di ricerca in background senza dipendenze di progetto.
SDK Google GenAI Importa le librerie client di Gemini nel codice Python, TypeScript, JavaScript, Go, Java o C#. Stai integrando le funzionalità di Gemini nella tua applicazione, nel tuo servizio di backend o nella tua sessione Live API in tempo reale.
Gemini Docs MCP & skills Fornisce agli agenti di programmazione la ricerca della documentazione in tempo reale e le regole SDK aggiornate. L'agente di programmazione sta scrivendo il codice dell'applicazione che importa un SDK Google GenAI.

Come funziona

Le chiamate REST non elaborate e le CLI interattive spesso causano problemi agli agenti di programmazione. I contenuti multimediali in Base64 riempiono la finestra di contesto, i prompt interattivi bloccano i sottoprocessi e i dati di addestramento obsoleti causano flag di allucinazione.

Quattro scelte di progettazione mantengono gemini-api affidabile per gli agenti:

  • Ricerca dello schema offline: passa --usage per stampare l'albero dei comandi (in KDL) o --schema per stampare lo schema JSON per le richieste --body.
  • File su disco, percorsi su stdout: i comandi di contenuti multimediali e trascrizione scrivono i file su disco e stampano solo il percorso di output, mantenendo i dati binari fuori contesto.
  • Dry run e output strutturato: --dry-run convalida gli input, oscura le credenziali e visualizza l'anteprima della richiesta HTTP offline. Passa -o json, -o toon o --jq per l'output leggibile da macchina. Aggiungi --agent-mode per restituire errori JSON strutturati su stderr e controlla i codici di uscita per gestire gli errori. I comandi non richiedono mai l'intervento dell'utente, a meno che non passi --interactive.
  • Stateless per impostazione predefinita: i comandi non mantengono uno stato locale nascosto. Concatena esplicitamente il lavoro in più passaggi con --previous-interaction-id, un URI files/<id> caricato o un ID interazione in background.

Con -o json, i comandi multimediali scrivono comunque il file sul disco e stampano i metadati su stdout:

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

Inizia

Installa l'interfaccia a riga di comando, inserisci gemini-api nel tuo PATH, imposta GEMINI_API_KEY e aggiungi regole di utilizzo all'agente di programmazione.

1. Installa il programma binario

macOS e Linux

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

Per installare una release specifica, imposta GEMINI_VERSION su un tag della release:

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

File binari predefiniti

Scarica gli archivi con controllo delle versioni per macOS, Linux e Windows da GitHub Releases e posiziona gemini-api nel tuo PATH. Utilizza gli archivi predefiniti per bloccare le versioni esatte nelle immagini Docker e nella CI.

2. Configura l'autenticazione e verifica

Crea una chiave API in Google AI Studio (consulta Chiavi API). Imposta GEMINI_API_KEY nella shell e nell'ambiente del sottoprocesso dell'agente:

export GEMINI_API_KEY="YOUR_API_KEY"

Su una workstation locale, puoi salvare la chiave nel portachiavi del sistema operativo (Portachiavi macOS, Secret Service di Linux o Gestore delle credenziali di Windows). Passa --no-keyring per archiviare la chiave in ~/.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. Dai istruzioni all'agente

Aggiungi questo snippet al AGENTS.md, CLAUDE.md, .cursorrules o al prompt di sistema del tuo progetto in modo che l'agente di programmazione sappia come utilizzare 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`.

Poi, chiedi all'agente di programmazione come di consueto:

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.

Comandi

Esegui gemini-api --help per elencare tutti i comandi o gemini-api explore per sfogliarli in modo interattivo.

Gruppo Comando Descrizione
Crea image Genera o modifica immagini (-i), scrive un file JPEG e stampa il relativo percorso.
Crea tts Sintetizza il parlato WAV mono a 24 kHz (uno o due speaker) e stampa il percorso di output.
Crea music Genera tracce musicali o loop, scrive il file audio e stampa il relativo percorso.
Crea video Genera o modifica clip MP4 e attende il completamento (--async restituisce immediatamente un ID).
Crea generate Genera testo e lo trasmette in streaming a stdout (--stream=false restituisce un risultato completo).
Conoscere analyze Risponde a domande su PDF, immagini, audio, video, file CSV e di testo o URL di YouTube pubblici.
Conoscere transcribe Scrive trascrizioni con etichette di chi parla e timestamp (md, text, json o srt) e stampa i percorsi di output.
Gestisci agenti agent Esegue gli agenti gestiti (run, status, cancel, delete-interaction) e gestisce le definizioni degli agenti personalizzati (create, list, get, delete).
Gestisci agenti environments, credentials, webhooks, triggers Configura ambienti sandbox, credenziali archiviate, invio di webhook ed esecuzioni pianificate per gli agenti gestiti.
Configurazione e file configure, auth e whoami Configura le credenziali e i valori predefiniti e mostra lo stato di autenticazione attivo.
Configurazione e file files Carica, elenca, ispeziona ed elimina i file nell'API Files.
Configurazione e file models Elenca i modelli disponibili.

Workflows

Ogni comando utilizza per impostazione predefinita un modello adatto alla sua attività. Passa --model (-m) per scegliere un modello diverso. Esegui gemini-api models per elencare le opzioni disponibili.

Generazione e modifica di immagini

Gli agenti che creano UI web o mobile possono generare segnaposto, icone e immagini hero con Nano Banana. Passa un percorso generato con -i per modificare l'immagine:

# 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

Passa -i più volte per combinare le immagini di riferimento, ad esempio un personaggio e una guida di stile.

Sintesi vocale

gemini-api tts sintetizza l'audio WAV a 24 kHz per i segnali della UI, le anteprime di accessibilità e le procedure dettagliate narrate. La voce predefinita è Kore; scegline un'altra con --voice. Per un dialogo tra due persone, etichetta ogni turno nel prompt e mappa le persone che parlano alle voci:

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

Musica e video

Componi tracce originali con Lyria e genera clip MP4 con Gemini Omni:

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

Per impostazione predefinita, il comando video attende il completamento della generazione e scrive il file MP4 sul disco. Passa --async per restituire immediatamente un ID interazione, quindi esegui gemini-api video --resume <id> --out <path> in un secondo momento. Passa -i per animare un'immagine esistente.

Generazione di testo

gemini-api generate trasmette il testo a stdout:

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

Aggiungi --stdin per inserire il testo nel prompt. Passa --previous-interaction-id per continuare un'interazione precedente.

Analisi e trascrizione dei documenti

analyze risponde a domande su PDF, fogli di lavoro, screenshot, file audio e video e URL di YouTube pubblici. transcribe scrive una trascrizione formattata (md, text, json o srt) sul disco:

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

Passa -i più volte a analyze per confrontare i file, ad esempio gli screenshot prima e dopo.

gemini-api invia file locali in linea fino a 14 MB (20 MB dopo la codifica base64). Per i file più grandi, caricali una volta con files upload --wait e riutilizza l'URI files/<id> restituito:

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

Esegui e gestisci gli agenti

Il tuo agente di programmazione può delegare ricerche in più passaggi o attività in sandbox agli agenti gestiti da Gemini, come l'agente Deep Research. Passa --background --stream=false per ottenere immediatamente un ID interazione anziché tenere aperto uno stream:

# 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

Esegui gemini-api agent cancel <id> per interrompere un job in esecuzione. Puoi anche avviare l'agente Antigravity in una sandbox remota con agent run o gestire gli agenti personalizzati con agent create, list, get e delete. Consulta Ambienti per configurare le sandbox degli agenti.

Corpi delle richieste personalizzati

Per le opzioni senza flag dedicati, passa un payload JSON dell'API Interactions non elaborato con --body (incorporato o come @file.json). Passa --body per impostare gli schemi response_format, gli strumenti di chiamata di funzione, generation_config o "store": false. Esegui prima gemini-api <command> --schema per verificare i campi validi:

# 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 si unisce ai flag dei comandi. Se entrambi impostano la stessa chiave, il comando non va a buon fine con il codice di uscita 2, in modo che gli input in conflitto vengano interrotti rapidamente.

Codici di uscita

Ogni comando restituisce un codice di uscita tipizzato, in modo che gli script e gli agenti possano gestire gli errori senza analizzare il testo dell'errore. Ad esempio, 3 segnala un problema di autenticazione e 2 segnala una sintassi del comando non valida:

Codice Significato
0 Il comando è stato eseguito correttamente.
1 Errore di runtime o dell'API, ad esempio un errore di rete, un limite di frequenza o un job in background non riuscito.
2 Errore di utilizzo o convalida, ad esempio un flag sconosciuto, un input mancante o una chiave --body duplicata.
3 Errore di autenticazione o autorizzazione, ad esempio una chiave API o un token mancante o non valido.

Esegui gemini-api --help-global per elencare i flag globali condivisi da ogni comando (autenticazione, output, rete e diagnostica).

Limitazioni

  • I comandi di streaming (generate e agent run) richiedono --stream=false se combinati con -o json o --jq per restituire un singolo oggetto di risposta JSON.
  • Gli input di file -i incorporati hanno un limite di 14 MB di dati di file non elaborati (payload della richiesta di 20 MB, inclusa la codifica base64). Carica file di grandi dimensioni con gemini-api files upload. L'API Files elimina i file caricati dopo 48 ore.
  • gemini-api supporta le richieste HTTP standard, lo streaming SSE e il polling asincrono, non i WebSocket bidirezionali. Per lo streaming di voce e video in tempo reale, utilizza l'API Live con gli SDK Google GenAI.

Passaggi successivi