1. Introduzione
In questo codelab, imparerai a utilizzare Gemini CLI, un agente AI open source che porta la potenza di Gemini direttamente nel tuo terminale.
Cosa imparerai a fare
- Installazione e configurazione di Gemini CLI
- Esplorare gli strumenti, i comandi integrati e la configurazione dei server MCP in Gemini CLI
- Personalizzare Gemini CLI tramite il file
GEMINI.md - Esplorare alcuni casi d'uso con Gemini CLI
Che cosa ti serve
Questo codelab può essere eseguito interamente in Google Cloud Shell, in cui è preinstallata Gemini CLI.
In alternativa, se preferisci lavorare sulla tua macchina, c'è una sezione per installare Gemini CLI in locale.
Ti serviranno:
- Browser web Chrome
- Un account Gmail
Questo codelab è progettato per utenti e sviluppatori di tutti i livelli (inclusi i principianti). I casi d'uso nel codelab sono stati suddivisi in attività per sviluppatori e non sviluppatori. I casi d'uso per gli sviluppatori mostrano come vibrare il codice con Gemini CLI e come lavorare con un repository GitHub per eseguire attività di sviluppo comuni come la spiegazione/comprensione del codice, la generazione di documentazione, la risoluzione di problemi e altro ancora. Ti consigliamo di completare questi casi d'uso nel codelab. Alla fine è presente una sezione facoltativa che copre diverse attività quotidiane non incentrate sugli sviluppatori.
2. Prima di iniziare
Crea un progetto
- Nella console Google Cloud, nella pagina di selezione del progetto, seleziona o crea un progetto Google Cloud.
- Verifica che la fatturazione sia attivata per il tuo progetto Cloud. Scopri come verificare se la fatturazione è abilitata per un progetto.
- Utilizzerai Cloud Shell, un ambiente a riga di comando in esecuzione in Google Cloud precaricato con bq. Fai clic su Attiva Cloud Shell nella parte superiore della console Google Cloud.

- Una volta eseguita la connessione a Cloud Shell, verifica di essere già autenticato e che il progetto sia impostato sul tuo ID progetto utilizzando il seguente comando:
gcloud auth list
- Esegui questo comando in Cloud Shell per verificare che il comando gcloud conosca il tuo progetto.
gcloud config list project
- Se il progetto non è impostato, utilizza il seguente comando per impostarlo:
gcloud config set project <YOUR_PROJECT_ID>
3. Installazione
Prima di eseguire la configurazione ed eseguire Gemini CLI, creiamo una cartella che utilizzeremo come cartella principale per tutti i progetti che creeremo al suo interno. Questo è un punto di partenza per Gemini CLI, anche se farà riferimento anche ad altre cartelle del sistema, che verranno utilizzate in un secondo momento, se necessario.
Crea una cartella di esempio (gemini-cli-projects) e vai alla cartella tramite i comandi mostrati di seguito. Se preferisci utilizzare un altro nome per la cartella, fallo pure.
mkdir gemini-cli-projects
Andiamo alla cartella:
cd gemini-cli-projects
Puoi avviare direttamente Gemini CLI tramite il comando gemini.
Vai direttamente alla sezione successiva (configurazione di Gemini CLI tramite settings.json).
Se vuoi installare Gemini CLI in locale, segui le istruzioni riportate di seguito. Tieni presente che l'interfaccia a riga di comando di Gemini è preinstallata su Cloud Shell e Cloud Workstations.
Il primo passo consiste nell'installare Node 20+ sulla tua macchina. Una volta completata questa operazione, puoi installare ed eseguire Gemini CLI utilizzando uno dei seguenti metodi:
- Puoi installare Gemini CLI a livello globale sul tuo sistema. Per eseguire questo passaggio, potresti aver bisogno dell'accesso amministrativo.
# option 1: install Gemini CLI
npm install -g @google/gemini-cli
# .. and then run
gemini
- Esegui il comando seguente:
# option 2: run without installing Gemini CLI
npx https://github.com/google-gemini/gemini-cli
Puoi verificare che la CLI sia installata eseguendo:
gemini --version
Supponendo che tu abbia avviato Gemini CLI con uno dei metodi sopra descritti, al primo avvio potrebbe esserti chiesto di selezionare un tema. In caso affermativo, puoi scegliere il tema predefinito o uno a tua scelta.
La prossima cosa importante è l'autenticazione. Ti verrà chiesto il metodo di autenticazione. In questo lab ti consigliamo di utilizzare il tuo Account Google personale e non account non Google o correlati a Google Workspace.
Se raggiungi i limiti della quota senza costi attuale assegnata agli Account Google, puoi scegliere di utilizzare la chiave API Gemini o anche Google Cloud Vertex AI, dove dovrai disporre di un ID progetto e del nome della località per quel progetto. Se prevedi di utilizzare altri metodi di autenticazione, consulta la sezione Autenticazione della documentazione.

Procedi e fai clic su Invio. Si aprirà una pagina di autenticazione di Google nel browser. Procedi con l'autenticazione con il tuo Account Google, accetta i termini e, una volta autenticato correttamente, noterai che Gemini CLI è pronto e in attesa del tuo comando.
Di seguito è riportato uno screenshot di esempio:

In questo caso, abbiamo selezionato l'opzione Vertex AI, ma nel tuo caso potrebbe essere l'account personale. Noterai che abbiamo selezionato il modello Gemini 2.5 (visibile in basso a destra). Puoi scegliere il modello specifico in qualsiasi momento utilizzando il comando /model.
4. Configurazione di Gemini CLI tramite settings.json
Se scegli Cloud Shell per eseguire Gemini, il tema predefinito per Gemini CLI e il metodo di autenticazione sono già selezionati e configurati per te.
Se hai installato Gemini CLI sul tuo computer e l'hai avviata per la prima volta, hai selezionato un tema e poi un metodo di autenticazione.
Ora, nelle esecuzioni successive di Gemini CLI, non ti verrà più chiesto di selezionare un tema e un metodo di autenticazione. Ciò significa che viene salvato da qualche parte e il file che utilizza si chiama settings.json ed è il modo per personalizzare Gemini CLI.
Le impostazioni vengono applicate con la seguente priorità (Cloud Shell rende disponibili solo le impostazioni utente):
- Sistema:
/etc/gemini-cli/settings.json(si applica a tutti gli utenti, sostituisce le impostazioni utente e dello spazio di lavoro). - Workspace:
.gemini/settings.json(override delle impostazioni utente). - Utente:
~/.gemini/settings.json.
Utente Windows: %USERPROFILE%.gemini\settings.json (che in genere si espande a C:\Users<YourUsername>.gemini\settings.json)
Sistema: %ProgramData%\gemini-cli\settings.json (che in genere si espande a C:\ProgramData\gemini-cli\settings.json)
Utente Mac: ~/.gemini/settings.json (che si espande in /Users/<YourUsername>/.gemini/settings.json)
Sistema: /etc/gemini-cli/settings.json
Se ricordi, al momento della selezione del tema, hai scelto di salvare le impostazioni nelle Impostazioni utente. Visita la pagina ~/.gemini folder e noterai il file settings.json.
Di seguito è riportato il mio file settings.json. Se avessi selezionato un altro tema, ne vedresti il nome.
{
"security": {
"auth": {
"selectedType": "oauth-personal" or "cloud-shell"
}
},
"ui": {
"theme": "Default"
}
}
5. La nostra prima interazione con Gemini CLI
Iniziamo a utilizzare Gemini CLI e digitiamo la prima query come mostrato di seguito:
Give me a famous quote on Artificial Intelligence and who said that?
La risposta prevista è mostrata di seguito:
> Give me a famous quote on Artificial Intelligence and who said that?
✦ "The only way to do great work is to love what you do." - Steve Jobs (While not directly about AI, it's a famous quote related to technology and innovation, which underpins AI development.)
Alternatively:
"The development of full artificial intelligence could spell the end of the human race." - Stephen Hawking
Un modo rapido per comprendere la CLI Gemini e i vari comandi che supporta è digitare /help (barra) per visualizzare una serie di comandi e scorciatoie da tastiera.
Per il momento, chiudiamo Gemini CLI. Puoi farlo tramite il comando /quit oppure puoi eseguire Ctrl-C due volte nella sessione di terminale interattiva di Gemini CLI. Quando esci da Gemini CLI, vengono visualizzate le statistiche della sessione, che forniscono informazioni sulla sessione, sull'utilizzo del modello e su altre metriche.
6. Gemini CLI - Command Parameters
Esistono alcuni parametri della riga di comando che è possibile fornire all'avvio di Gemini CLI. Per visualizzare un elenco completo delle opzioni, puoi utilizzare --help come mostrato di seguito.
gemini --help
Dovrebbe essere visualizzata l'intera gamma di opzioni disponibili. Ti invitiamo a consultare la documentazione qui.
Diamo un'occhiata ad alcuni. Il primo consiste nel configurare Gemini CLI per utilizzare una modalità Gemini specifica. Al momento dell'aggiornamento di questo lab, ecco l'elenco dei modelli supportati. Per utilizzare un modello specifico, puoi farlo quando avvii Gemini CLI tramite il parametro -m, come mostrato di seguito:
gemini -m "gemini-2.5-flash"
Se inizi nel modo sopra descritto, puoi controllare il modello in basso a destra nel terminale Gemini CLI.
Una volta nell'applicazione Gemini CLI, puoi utilizzare il comando /model per aprire una finestra di dialogo che ti consente di scegliere un modello. Di seguito è riportata un'esecuzione di esempio. A seconda dei requisiti e delle indicazioni fornite, puoi continuare a cambiare modello per scegliere quello giusto per l'attività in base alla complessità e alla necessità di controllare i costi.

Modalità non interattiva
Un'opzione interessante è eseguire Gemini CLI in modalità non interattiva. Ciò significa che fornisci direttamente il prompt e il modello risponderà senza aprire il terminale interattivo di Gemini CLI. Questa opzione è molto utile se prevedi di utilizzare Gemini CLI in modo automatico nell'ambito dello script o di qualsiasi altro processo di automazione. Utilizza il parametro -p per fornire il prompt a Gemini CLI come mostrato di seguito:
gemini -p "What is the gcloud command to deploy to Cloud Run"
Tieni presente che non è possibile continuare la conversazione con domande aggiuntive. Questa modalità non consente inoltre di autorizzare strumenti (incluso WriteFile) o di eseguire comandi shell.
Ricorda che se ometti il parametro -p e fornisci solo quanto segue, Gemini CLI si aprirà con il prompt e continuerà all'interno.
gemini "What is the gcloud command to deploy to Cloud Run"
7. Gemini CLI - Strumenti integrati
Gemini CLI è dotata di un insieme di strumenti integrati e la documentazione degli strumenti afferma che "il modello Gemini utilizza questi strumenti per interagire con il tuo ambiente locale, accedere alle informazioni ed eseguire azioni. Questi strumenti migliorano le funzionalità della CLI, consentendole di andare oltre la generazione di testo e di assistere in un'ampia gamma di attività".
Per ottenere un elenco degli strumenti integrati attuali, richiama il comando /tools come mostrato di seguito:
Available Gemini CLI tools:
- Activate Skill (activate_skill)
- Ask User (ask_user)
- Edit (replace)
- Enter Plan Mode (enter_plan_mode)
- FindFiles (glob)
- GoogleSearch (google_web_search)
- Invoke Subagent (invoke_agent)
- List Background Processes (list_background_processes)
- Read Background Output (read_background_output)
- ReadFile (read_file)
- ReadFolder (list_directory)
- SearchText (grep_search)
- Shell (run_shell_command)
- Update Topic Context (update_topic)
- WebFetch (web_fetch)
- WriteFile (write_file)
Una delle prime cose che dovresti chiederti è se Gemini CLI può semplicemente chiamare questi strumenti quando vuole. La risposta predefinita è no, quando si tratta di operazioni sensibili che potrebbero comportare la scrittura nel sistema locale, la lettura da un sistema esterno, l'accesso alla rete esterna e così via.
Anche se è disponibile un --yolo quando avvii la CLI (in genere non consigliato), Gemini CLI ti chiederà l'autorizzazione per eseguire lo strumento che ha scelto. Puoi rifiutare l'autorizzazione, consentire l'esecuzione una sola volta o concedere l'autorizzazione generale per l'esecuzione continua. Sei e dovresti avere il pieno controllo della situazione.
Utilizziamo un prompt che farà scegliere a Gemini CLI uno degli strumenti integrati da eseguire e che ti darà una buona comprensione di come funziona il tutto.
Immagina uno scenario in cui vuoi ricevere informazioni sulle ultime notizie finanziarie in tutto il mondo e salvarle in un file nella directory di lavoro locale da cui hai avviato la Gemini CLI. Utilizza il seguente prompt:
Search for the latest headlines today in the world of finance and save them in a file named finance-news-today.txt
Immagina per un momento cosa dovrebbe fare. Idealmente, deve eseguire una ricerca su Google per ottenere notizie da alcune fonti di informazioni pertinenti che possono fornirgli notizie finanziarie. Dopodiché, deve creare un file denominato finance-news-today.txt (un'operazione di scrittura sul sistema locale che richiederà la tua autorizzazione) con i relativi contenuti.
Vediamo cosa succede (dovresti procedere allo stesso modo sul tuo computer).
La prima cosa che fa è richiamare lo strumento GoogleSearch per cercare sul web e recuperare i risultati, come mostrato di seguito:
Searching for Finance News:
I will first search for the latest finance headlines and then save them to a file.
✓ GoogleSearch Searching the web for: "latest finance headlines"
→ Search results for "latest finance headlines" returned.
Saving Finance News: I will now save the finance headlines to the file 'finance-news-today.txt'.
Una volta fatto, è pronto per scrivere nel file e utilizzerà lo strumento WriteFile, ma poiché si tratta di un'operazione sensibile (scrittura), ti chiederà l'autorizzazione. Puoi decidere il tipo di autorizzazione , ad esempio Consenti una volta, Consenti sempre e così via. Per ora seleziona Consenti una volta.
Le informazioni verranno scritte nel file e di seguito verrà visualizzato un messaggio di operazione riuscita:
✦ I have saved the latest finance news to finance-news-today.txt.
Finance News Saved: The task is complete.
Come si verifica se il file è scritto o meno? Puoi utilizzare @file per chiedere di leggere i contenuti. Mentre digiti @, viene visualizzato un elenco di file nella cartella corrente e il file appena creato. Selezionala e invia il prompt. Il mio prompt è mostrato di seguito:
read the contents of @finance-news-today.txt
In questo modo vengono richiamati gli strumenti richiesti (ReadManyFiles, ReadFile) e i contenuti vengono visualizzati come mostrato di seguito:
✓ ReadManyFiles Attempting to read files from finance-news-today.txt → Read 1 file(s)
Topic: Summarizing the financial news headlines.
✦ The latest finance headlines as of May 15, 2026, include:
Global Markets & Economy:
* The Dow Jones Industrial Average surpassed 50,000 for the first time, driven by strong earnings from Cisco
Systems and a 2% rise in Nasdaq due to tech stocks.
* Inflation concerns are growing, hinting at potential Fed interest rate hikes.
* Kevin Warsh has been confirmed as the new Federal Reserve head.
* A "constructive" U.S.-China summit took place in Beijing between President Trump and President Xi, with
markets watching for impacts from proposed tariffs.
Corporate & Tech News:
<REST OF THE CONTENT>
8. Gemini CLI - Modalità shell
È il momento giusto per imparare a lavorare direttamente con la shell da Gemini CLI. Puoi passare alla modalità shell premendo ! nella casella del messaggio. Verrà attivata la modalità Shell. Puoi tornare indietro premendo di nuovo ! o il tasto ESC.
In modalità shell, vedrai ! all'inizio del prompt, come mostrato di seguito:

Puoi eseguire il controllo direttamente utilizzando comandi standard come pwd e ls, come mostrato di seguito. Tieni presente che i comandi presuppongono un sistema operativo di tipo Linux. Se utilizzi un altro sistema operativo (Windows), utilizza comandi equivalenti come (cd, dir e type). Tieni presente che l'output di queste chiamate è incluso nella finestra contestuale del modello.

Puoi stampare i contenuti del file anche tramite il comando cat, ad esempio cat finance-news-today.txt.
Esercizio: ecco un breve esercizio da provare. Scegli un feed RSS a tua scelta. Fornisci un prompt a Gemini CLI per recuperare i contenuti del feed RSS e formattare i risultati in un modo specifico. È un buon modo per automatizzare qualcosa all'inizio della giornata. Puoi anche chiedere a Gemini CLI di verificare se esiste un feed RSS per un'area specifica, ad esempio le note di rilascio di Google Cloud.
Di seguito è riportato un esempio di prompt:
Get the latest release notes for Google Cloud from its RSS Feed and display the key points in a well-formatted list.
Idealmente, questo prompt dovrebbe prima richiamare lo strumento GoogleSearch per trovare il feed RSS di Google Cloud Platform e poi utilizzare lo strumento WebFetch per recuperare i contenuti del feed RSS e visualizzarli. Potrebbe esserti chiesto di concedere le autorizzazioni per richiamare questi strumenti.
9. Estensioni Gemini CLI
Come indicato nella documentazione, le estensioni Gemini CLI raggruppano prompt, server MCP e comandi personalizzati in un formato familiare e intuitivo. Con le estensioni, puoi ampliare le funzionalità di Gemini CLI e condividerle con altre persone. È il meccanismo principale per estendere la funzionalità di Gemini CLI oltre i suoi strumenti integrati.
Un'estensione è un pacchetto autonomo, con controllo delle versioni e facilmente distribuibile. Consideralo come il "container di spedizione" per le personalizzazioni di Gemini CLI, che raggruppa tutto il necessario per un workflow specifico in un unico pacchetto ordinato.

Un'estensione può raggruppare qualsiasi combinazione di:
- Comandi slash personalizzati (i tuoi file .toml).
- Configurazioni del server MCP (che in precedenza si trovavano in settings.json).
- File di contesto (GEMINI.md) per fornire istruzioni e linee guida specifiche al modello.
- Limitazioni degli strumenti (excludeTools) per creare un ambiente più sicuro e mirato.
Esplorare la galleria di estensioni
La Galleria delle estensioni è il marketplace centrale per scoprire tutte le estensioni ufficiali create da Google e di terze parti:
- Apri il seguente URL nel browser:
https://geminicli.com/extensions/ - Questa galleria è il motore di rilevabilità dell'ecosistema. Puoi vedere le estensioni di aziende come GitHub, Redis e DynaTrace, che mostrano l'ampiezza degli strumenti disponibili.
- Scorri verso il basso e trova la scheda dell'estensione per Cloud Run o fai clic su questo link.
- Tieni presente che la scheda fornisce una descrizione, l'autore (Google) e un pulsante di comando
Copycon un solo clic. Questo è il modo più semplice per ottenere il comando di installazione di un'estensione.
Estensioni Gemini CLI - Comandi di gestione
Il comando gemini extensions è il punto di accesso per gestire le estensioni locali.
Eseguilo nel terminale per visualizzare l'elenco dei comandi disponibili.
gemini extensions <command>
Manage Gemini CLI extensions.
Commands:
gemini extensions install <source> [--auto-update] [--pre-release]
Installs an extension from a git repository URL or a local path.
gemini extensions uninstall [names..]
Uninstalls one or more extensions.
gemini extensions list
Lists installed extensions.
gemini extensions update [<name>] [--all]
Updates all extensions or a named extension to the latest version.
gemini extensions disable [--scope] <name>
Disables an extension.
gemini extensions enable [--scope] <name>
Enables an extension.
gemini extensions link <path>
Links an extension from a local path. Updates made to the local path
will always be reflected.
gemini extensions new <path> [template]
Create a new extension from a boilerplate example.
gemini extensions validate <path>
Validates an extension from a local path.
gemini extensions config [name] [setting]
Configure extension settings.
Options:
I comandi sono semplici (installazione/disinstallazione, elenco, aggiornamento, attivazione/disattivazione e così via) e ne utilizzeremo alcuni in questo codelab.
Controllare l'elenco attuale delle estensioni
Prima di installare qualsiasi cosa, controlliamo di avere una "tabula rasa".
- Esegui il comando
gemini extensions list: - Dovresti vedere il seguente output, che conferma che non sono ancora installate estensioni.
No extensions installed.
Configurazione del server MCP di Cloud Run
L'estensione Cloud Run disponibile nella raccolta di estensioni della CLI Gemini è un server MCP che ci consente di eseguire il deployment delle nostre applicazioni su Cloud Run.
Di seguito è riportata la scheda dell'estensione Cloud Run della galleria delle estensioni:

Innanzitutto, installa l'estensione Cloud Run facendo clic su Copia comando di installazione come mostrato sopra. Poi incolla il comando nel terminale Cloud Shell (dovrebbe essere simile al seguente):
gemini extensions install https://github.com/GoogleCloudPlatform/cloud-run-mcp
Dopo aver eseguito il comando precedente, ti verrà richiesta una conferma. Procedi con l'approvazione. L'estensione Cloud Run ti chiederà l'ID progetto Google e la località del progetto Google. Forniscilo. L'estensione Cloud Run dovrebbe essere installata correttamente.
Se ora esegui il comando gemini extensions list, dovresti visualizzare l'estensione Cloud Run installata come mostrato di seguito:
✓ cloud-run (1.0.0)
ID: 3c1a38909b6d7d90b6acc8ca1e80d97b4a867253a3cd12d841b2aab4e556a58f
name: 0b1820c1f0c043bbb3b54f496d862c02172424c930eb965d61f468be52e6f127
Path: /Users/romin/.gemini/extensions/cloud-run
Source: https://github.com/GoogleCloudPlatform/cloud-run-mcp (Type: github-release)
Release tag: v1.10.0
Enabled (User): true
Enabled (Workspace): true
Context files:
/Users/romin/.gemini/extensions/cloud-run/gemini-extension/GEMINI.md
MCP servers:
cloud-run
Settings:
Project ID: YOUR_GCP_PROJEC_ID (User - /Users/romin/.gemini/extensions/cloud-run/.env)
Region: YOUR_GCP_PROJECT_LOCATION (User - /Users/romin/.gemini/extensions/cloud-run/.env)
Se avvii Gemini CLI ora ed esegui il comando /mcp list, vedrai quanto segue. Nota gli strumenti e i prompt del server MCP di Cloud Run.
Configured MCP servers:
🟢 cloud-run (from cloud-run) - Ready (8 tools, 2 prompts)
Tools:
- mcp_cloud-run_create_project
- mcp_cloud-run_deploy_container_image
- mcp_cloud-run_deploy_file_contents
- mcp_cloud-run_deploy_local_folder
- mcp_cloud-run_get_service
- mcp_cloud-run_get_service_log
- mcp_cloud-run_list_projects
- mcp_cloud-run_list_services
Prompts:
- deploy
- logs
Questo è solo un esempio di estensione Gemini CLI di cui abbiamo mostrato la configurazione. Puoi consultare la Galleria delle estensioni per scoprirne altre.
10. Casi d'uso da provare
Gemini CLI può essere applicata a un'ampia gamma di casi d'uso che riguardano sia gli sviluppatori che i non sviluppatori. Di seguito sono riportati alcuni scenari che puoi provare, tutti o solo quelli che ti interessano.
In ognuno di questi casi, viene fornito il prompt. Puoi provare questa funzionalità in modalità interattiva o non interattiva di Gemini CLI tramite il parametro -p al momento dell'avvio di Gemini CLI.
Vibe coding con Gemini CLI
Utilizziamo Gemini CLI per creare il codice di un'applicazione. In questa attività, chiederai a Gemini CLI di generare un'applicazione e poi di eseguire il push della versione iniziale in un repository GitHub.
Prerequisito
Per eseguire le attività in questa sezione, sono necessari alcuni prerequisiti:
- Git
- Gemini CLI
- Configura
gh( strumento CLI di GitHub). - Familiarità con le nozioni di base di Git e un po' di conoscenze di programmazione
Supporremo che tu abbia avviato Gemini CLI in una cartella specifica a tua scelta. Nel nostro caso, abbiamo avviato Gemini CLI dalla cartella home iniziale : gemini-cli-projects e un'altra cartella event-website al suo interno.
Inizia con un prompt iniziale. Consideralo come una specifica per la tua applicazione. Puoi modificarlo come preferisci. Tieni presente che durante la sessione con Gemini CLI, ti verrà chiesto di concedere le autorizzazioni per creare i file e così via. Concedi le autorizzazioni richieste.
In questa attività, non vogliamo che Gemini CLI esegua l'applicazione o la provi per noi, perché vogliamo un po' più di controllo. Ma la decisione spetta a te.
Generate a website for a 1-day event filled with technical talks. There are going to be 6 talks in a single track of 1 hour each. Each talk has the following information: title, 1 or maximum of 2 speakers, category (1 or maximum of 3 keywords), duration and a description. The website has a single page where users can see the schedule for the entire day with the timings. There will be one lunch break of an hour and the event starts at 10:00 AM. Keep a 10 minute transition between talks. I would like to use Node.js on the server side and standard HTML, JavaScript and CSS on the front-end. The users should be able to search the talks based on category.
I would like you to proceed in the following way:
1. Plan out how you would design and code this application.
2. Ask me for any clarifications along the way.
3. Once I am fine with it, do generate the code and provide me instructions to run and test locally.
I seguenti prompt e risposte sono un flusso di esempio osservato. Gemini CLI elaborerà un piano e ti chiederà eventuali conferme / chiarimenti o di procedere. Segui le istruzioni. Come esempio, ecco il mio thread di conversazione di esempio:
✦ Of course. I will start by creating a plan for the application.
Plan:
1. Backend (Node.js):
* I'll set up a simple Node.js server using the Express.js framework.
* This server will have two main purposes:
1. Serve the static frontend files (HTML, CSS, JavaScript).
2. Provide an API endpoint (e.g., /api/talks) that will send the event schedule data to the frontend as a JSON object.
* The talk data will be stored in a separate talks.json file for easy management.
2. Frontend (HTML, CSS, JS):
* HTML: A single index.html file will define the structure of the page, including a container for the schedule and a search input field for filtering by category.
* CSS: A style.css file will be used to style the website for a clean and professional look, ensuring the schedule is easy to read.
* JavaScript: A script.js file will handle the dynamic aspects of the site:
1. It will fetch the talk data from the backend API when the page loads.
2. It will dynamically render the schedule on the page based on the fetched data.
3. It will implement the search functionality. As the user types in the search box, it will filter the displayed talks based on the category keywords.
3. Project Structure:
I will organize the project with a clear and standard structure:
1 /
2 ├── public/
3 │ ├── index.html
4 │ ├── style.css
5 │ └── script.js
6 ├── talks.json
7 └── server.js
8 └── package.json
Before I proceed with generating the code, I have a few questions to ensure the final product meets your expectations:
Mi pone anche alcune domande (mostrate di seguito e a cui rispondo):

Poi procede con la generazione del codice, chiedendomi conferme in diversi punti e a cui fornisco l'autorizzazione necessaria per procedere.
Infine, ha avviato il server e mi ha chiesto di andare avanti e ispezionare la pagina:
The server is now running in the background.
3. View Your Website
You can now open your web browser and navigate to the following address to see your website:
http://localhost:3000 (http://localhost:3000)
4. Test the Search Functionality
Once the page is loaded, you can test the search functionality by typing a category into the search bar (e.g., "AI", "Frontend", "Cybersecurity"). The list of talks
will filter in real-time.
This completes the setup and implementation of your event website. Let me know if you have any other questions.
Ecco la pagina di esempio che ha generato:

Puoi continuare ad apportare altre modifiche con l'aiuto di Gemini CLI. Una volta soddisfatto delle modifiche, puoi eseguirne il push in un repository GitHub.
Per prima cosa, creiamo un file .gitignore con l'aiuto di Gemini CLI.
Create a .gitignore file for this project.
Il passaggio successivo consiste nel dare istruzioni a Gemini CLI per eseguire il push di questo repository nel nostro account GitHub. In questo modo, gli strumenti del server GitHub MCP verranno eseguiti in background.
Dai un prompt simile a quello riportato di seguito:
Great! I would now like to push all of this to a new repository in my GitHub account. I would like to name this repository <Your-Name>-event-talks-app
Verranno eseguiti diversi comandi:
- Crea il repository.
- Utilizzerà più comandi Git : init, add, commit per gestire il repository Git locale.
- Verrà quindi configurato il Git remoto e verrà eseguito un push.
Nota:in alcuni casi, Gemini CLI potrebbe scadere o utilizzare un nome utente errato e così via. Interagisci con lo strumento e suggerisci le correzioni.
Se tutto va bene, dovresti avere un repository GitHub. Di seguito è riportato uno screenshot di esempio:

Tieni presente che non hai generato un README.md per questo progetto e che è un buon esercizio per la sezione successiva, in cui lavoreremo con questo repository che hai appena creato.
Utilizzo di Gemini CLI per lavorare su un repository GitHub
In questo caso d'uso, utilizzerai Gemini CLI per lavorare con un repository GitHub. Eseguirai più attività, tra cui:
- Comprendere la base di codice
- Generazione della documentazione in corso…
- Implementazione di una nuova funzionalità
- Esegui il commit e il push delle modifiche nel repository
- Lavorare su un problema di GitHub e implementare le modifiche proposte
In questo modo avrai una base solida per lavorare con i tuoi repository e utilizzare Gemini CLI come assistente per queste attività specifiche per gli sviluppatori.
Prerequisito
Per eseguire le attività in questa sezione, devi:
- Git
- Gemini CLI e
gh( strumento dell'interfaccia a riga di comando di GitHub). - Familiarità con le nozioni di base di Git e un po' di conoscenze di programmazione (in questo esempio utilizzeremo Node.js, in quanto potresti già avere l'ambiente pronto sulla tua macchina perché hai installato la Gemini CLI). Tuttavia, in un secondo momento puoi scegliere un repository a tua scelta con un linguaggio di programmazione e un framework diversi.
- Dovresti aver completato la sezione precedente e avere a portata di mano il repository in cui abbiamo creato un sito web Event Talks.
Continuiamo a utilizzare Gemini CLI dalla cartella/directory che hai utilizzato per generare l'applicazione Event Talks oppure, se necessario, puoi clonare il repository sulla tua macchina locale e quindi avviare Gemini CLI da quella directory. Prova gli scenari elencati di seguito:
Comprendere la base di codice
- Vorrei capire meglio questo progetto. Aiutami a capire le funzionalità principali e poi suddividile in lato server e lato client. Prendi un flusso di esempio e mostrami come funzionano la richiesta e la risposta.
Explain @server.js
Generazione di un file README
- Genera un file
READMEper questo progetto.
Implementazione di una nuova funzionalità
- Vorrei implementare una nuova funzionalità che consenta all'utente di eseguire ricerche anche in base a un oratore specifico. Mostrami prima un piano di implementazione di questa modifica, poi possiamo generare il codice.
Dovrebbe fornirti un piano che puoi approvare. Una volta approvate, Gemini CLI procederà con le modifiche. Prova le modifiche e, se ci sono bug (probabile), chiedi a Gemini CLI di correggerli.
Una volta che le modifiche ti soddisfano, puoi seguire gli stessi passaggi per eseguirne il commit e il push al repository remoto. Potrebbe persino eseguirli automaticamente. Puoi sempre chiedere a Gemini CLI cosa può o non può fare.
Generare problemi in base alle funzionalità suggerite
Proviamo qualcosa di interessante. Chiederai a Gemini CLI in che modo può migliorare l'esperienza utente di questa applicazione e, in base alla sua valutazione, può creare questi suggerimenti come problemi nello stesso repository GitHub. Utilizzerà lo strumento "create_issue" del server GitHub MCP.
Prova il seguente prompt:
- Vorrei che valutassi l'applicazione dal punto di vista dell'esperienza utente. Facilità d'uso, reattività, messaggi utili e altro ancora. Elabora un elenco di miglioramenti e poi creali come problemi nel repository GitHub.
Idealmente, condividerà prima i miglioramenti con te e poi procederà con la tua autorizzazione per creare i problemi nel repository GitHub. Ecco uno screenshot di esempio della nostra corsa:

Lavorare su un problema di GitHub e implementare le modifiche proposte
Ora puoi prendere uno dei problemi generati in precedenza e chiedere a Gemini CLI di risolverlo e implementarlo.
Di seguito è riportato un problema di esempio generato:

Prendi l'intero URL del problema e fornisci un prompt come questo:
- Leggi il problema:
<YOUR_ISSUE_URL>e scopri quali modifiche devono essere apportate. Innanzitutto, discuti il piano e poi mostra le modifiche proposte nel codice.
Puoi approvare le modifiche e inviarle al repository. Puoi anche chiedere di chiudere il problema.
(Facoltativo) Attività quotidiane
I casi d'uso riportati di seguito sono attività che potresti svolgere regolarmente. Queste includono l'organizzazione dei file in cartelle, il recupero e il riepilogo dei contenuti dal web, l'elaborazione dei file immagine e l'estrazione dei contenuti, l'utilizzo dei database e altro ancora.
Non esitare a esplorare i casi d'uso che preferisci.
Organizzare file/cartelle
Puoi utilizzare Gemini CLI per organizzare i file in base ai tipi in varie cartelle, a seconda delle necessità. Vai a una cartella sul tuo computer che contiene diversi file .txt, .png, .jpg, .pdf, .mp4 e altri. Probabilmente si tratta del desktop o della cartella Download.
Ecco una cartella di esempio e i relativi contenuti (potresti avere altri file):

Vai alla cartella e avvia Gemini CLI. Chiederai a Gemini CLI di creare prima alcune cartelle: Immagini, Documenti, Video, poi chiederai a Gemini CLI di organizzare i file nelle cartelle.
La CLI Gemini spesso ti chiede l'autorizzazione prima di eseguire i comandi, in particolare quelli che modificano il file system (come la scrittura, lo spostamento o l'eliminazione di file). Controlla sempre attentamente questi prompt prima di concedere l'autorizzazione. È la tua rete di sicurezza.
Create the following folders "Images","Documents","Videos"
Poi, dai il seguente prompt:
Go through all the files in this folder and then organize them by moving all the files ending with .jpg, .jpeg, .gif into the "Images" folder. Move all ".txt" files into the "Documents" folder. Move all the ".mp4" files in the "Videos" folder.
Di seguito è riportato un esempio di come dovrebbe essere lo stato finale della cartella. Dovresti vedere le nuove sottocartelle create e i file spostati nelle rispettive sottocartelle a seconda del tipo.

Di seguito sono riportati alcuni altri scenari di organizzazione (le richieste sono riportate accanto a ogni scenario):
- Riepilogo: per ogni documento nella cartella "Documenti", crea un file txt nella stessa cartella denominato "summary_ORIGINAL_FILENAME.txt" che contenga un riepilogo di tre frasi dei punti principali del documento.
- Categorizzazione per tipo:scansiona tutti i file PDF e DOCX in questa directory. Sposta tutti i file con la parola "fattura" nel nome o nel contenuto nella cartella "Finanziario/Fatture". Sposta i file con "ricevuta" in "Finanziario/Ricevute". Tutti gli altri file .docx vengono inseriti in "Report".
- Estrazione delle informazioni chiave (e "tagging"): per ogni file PDF nella cartella "Finanziario/Fatture", leggi i contenuti. Se trovi una data, rinomina il file in modo che la includa nel formato AAAA-MM-GG, ad esempio "invoice_2025-07-26_original_name.pdf".
Organizzare le immagini
Vediamo come puoi organizzare i contenuti delle immagini nella tua macchina.
Per provare questa funzionalità:
- Devi avere una directory/cartella con vari file immagine (.jpg, .png e così via). Includi alcune foto con dati EXIF (la maggior parte delle foto scattate con fotocamere/smartphone li hanno).
- Vai a questa directory.
- Avvia Gemini CLI.
Prova uno dei seguenti scenari (i prompt sono riportati accanto a ciascuno scenario):
- Rinomina per data (dati EXIF): rinomina tutti i file .jpg e .png in questa directory in modo che includano la data di creazione dai dati EXIF nel formato "AAAAMMGG_HHMMSS_nome_originale.jpg". Se non viene trovata alcuna data EXIF, utilizza la data dell'ultima modifica del file.
- Crea descrizioni delle immagini:per ogni immagine in questa cartella, descrivi cosa contiene l'immagine e salva la descrizione in un file di testo denominato "description_ORIGINAL_FILENAME.txt" nella stessa directory.
- Identifica duplicati (concettuale, richiede una logica più avanzata): trova eventuali immagini duplicate in questa cartella in base al loro contenuto visivo ed elenca i relativi nomi file. Non eliminarli ancora.
Riassumere articoli (file locali o web)
Per ciascuno degli scenari riportati di seguito, sentiti libero di modificare l'URL, l'argomento di interesse e i nomi dei file locali in base alle tue esigenze. I nomi file forniti sono nomi file di esempio. Puoi sostituirli con i nomi file dei file presenti nel tuo sistema.
Prova uno dei seguenti scenari (i prompt sono riportati accanto a ciascuno scenario):
- Riassumi un articolo web (URL singolo): vai all'indirizzo https://medium.com/google-cloud/getting-started-with-gemini-cli-8cc4674a1371 e riassumi i tre principali punti chiave di questo articolo di notizie.
- Riassumi più articoli web (ad es. da una ricerca): trova gli articoli di notizie più recenti su "Gemini CLI" utilizzando la Ricerca Google. Per i primi 5 articoli pertinenti, riassumi ciascuno in 2-3 frasi ed elenca i relativi URL.
- Riassumere un file di testo locale: riassumi i punti principali dell'articolo in "my_research_paper.txt". Concentrati sulla metodologia e sulle conclusioni.
- Riassumi un PDF locale:leggi "financial_report_Q2_2025.pdf". Fornisci un riepilogo del rendimento finanziario e delle sfide principali menzionate.
Estrazione di informazioni specifiche (file locali o web)
Per ciascuno degli scenari riportati di seguito, sentiti libero di modificare l'URL, l'argomento di interesse e i nomi dei file locali in base alle tue esigenze. I nomi file forniti sono nomi file di esempio. Puoi sostituirli con i nomi file dei file presenti nel tuo sistema.
Prova uno dei seguenti scenari (i prompt sono riportati accanto a ciascuno scenario):
- Estrai entità da un articolo locale:dal file "biography.txt", elenca tutte le persone con nome e le date significative associate.
- Estrai i dati da una tabella in un PDF: in "quarterly_sales.pdf", estrai i dati dalla tabella a pagina 3 che mostra le "Vendite di prodotti per regione" e presentali in formato di tabella Markdown.
- Estrarre titoli e fonti di notizie da un sito web di notizie: vai su "https://news.google.com/" (o un sito di notizie simile). Estrai i titoli principali della prima pagina e le relative fonti di notizie. Presentali come un elenco puntato.
- Trova le specifiche del prodotto da una pagina di e-commerce:vai alla pagina "https://www.amazon.in/Google-Cloud-Certified-Associate-Engineer/dp/1119871441" (esempio per un libro). Estrai il titolo, l'autore e altri dettagli del libro. Presenta queste informazioni in un formato JSON strutturato.
- Estrai la durata di un video in un determinato formato (ad es. "2h37m42s").
Rispondere a domande in base ai contenuti (comportamento simile a RAG)
Per ciascuno degli scenari riportati di seguito, sentiti libero di modificare l'URL, l'argomento di interesse e i nomi dei file locali in base alle tue esigenze. I nomi file forniti sono nomi file di esempio. Puoi sostituirli con i nomi file dei file presenti nel tuo sistema.
Prova uno dei seguenti scenari (i prompt sono riportati accanto a ciascuno scenario):
- Domande e risposte su un documento locale: allego "user_manual.pdf". Quali sono i passaggi per risolvere i problemi di connettività di rete?
- Domande e risposte su una pagina web:utilizzando i contenuti di "https://www.who.int/news-room/fact-sheets/detail/climate-change-and-health", quali sono i principali rischi per la salute associati al cambiamento climatico secondo l'OMS?
- Confronta le informazioni di più fonti: ho due articoli di notizie: "article1.txt" e "article2.txt", entrambi riguardanti i recenti cambiamenti della politica economica. Confronta e metti a contrasto i loro punti di vista sul potenziale impatto sulle piccole imprese.
Generazione di contenuti basata sulle informazioni estratte
Per ciascuno degli scenari riportati di seguito, sentiti libero di modificare l'URL, l'argomento di interesse e i nomi dei file locali in base alle tue esigenze.
Prova uno dei seguenti scenari (i prompt sono riportati accanto a ciascuno scenario):
- Genera un riepilogo di notizie da un articolo: leggi @tech_innovation_article.txt. Scrivi un breve e coinvolgente riepilogo delle notizie (circa 150 parole) adatto a una newsletter aziendale, mettendo in evidenza la nuova tecnologia e il suo potenziale.
- Crea una bozza di email che riassuma la trascrizione di una riunione: ecco un file di trascrizione della riunione: @meeting_transcript.txt. Scrivi una bozza di email al team riepilogando le decisioni chiave prese e le attività assegnate, inclusi i responsabili di ciascuna.
Supporto multimodale di Gemini CLI
Gemini CLI supporta più modelli tramite Gemini e puoi chiedere di elaborare file di diversi formati di contenuti in base alle tue esigenze.
Elaborerai una serie di immagini di fatture con Gemini CLI ed estrarrai le informazioni chiave. Segui i passaggi riportati di seguito:
- Crea una cartella sul tuo computer e scarica alcune fatture dal seguente repository GitHub.
- Avvia Gemini CLI da questa cartella
Fornisci il seguente prompt per estrarre le informazioni dalle fatture sotto forma di tabella.
The current folder contains a list of invoice files in Image format. Go through all the files in this folder and extract the following invoice information in the form of a table: Invoice No, Invoice Date, Invoice Sent By, Due Date, Due Amount.
Idealmente, dovresti ottenere un output simile a questo:

Ecco un altro scenario in cui puoi richiedere colonne derivate aggiuntive. Supponiamo che tu voglia mostrare l'emoji di una croce rossa per tutte le date di scadenza delle fatture passate. Puoi dare un prompt come segue:
list all files with .png extension in this folder. Extract the invoice information from it by reading them locally and display it in a table format containing the following column headers: : Invoice No, Invoice Date, Invoice Sent By, Due Date, Due Amount. Add a column at the end of the table that shows a red cross emoji in case the due date is in the past.
Viene prodotto il seguente output:

Applica questa procedura a tutti i tuoi file in formati diversi dal testo.
Utilizzo di Gemini CLI per lavorare con i database
Puoi utilizzare Gemini CLI per lavorare in modo più efficiente con vari database. Puoi utilizzarlo per diversi scenari: query con linguaggio naturale, esportazione di dati, progettazione di schemi di database, generazione di dati di test realistici e altro ancora.
Per svolgere questa attività, utilizzerai SQLite3. Dovrai installare SQLite3 e disporre del database di esempio Chinook.
Ecco brevi istruzioni per configurare SQLite3:
- macOS: SQLite3 è preinstallato. Verifica con
sqlite3 --version. Se necessario, installa con Homebrew:brew install sqlite3. - Windows: scarica i file binari precompilati dal sito web di SQLite. Estrai i file in una directory (ad es.
C:\sqlite). Aggiungi questa directory alla variabile di ambiente PATH del sistema. - Linux: Debian/Ubuntu:
sudo apt update && sudo apt install sqlite3
Scarica il database di esempio Chinook (qui trovi un link diretto per scaricarlo).
Per eseguire questi prompt, ti consigliamo di creare una cartella (database-tasks) nella directory gemini-cli-projects. Copia il file del database Chinook in questa cartella. Assicurati che lo strumento sqlite3 sia configurato sul tuo sistema e disponibile nel percorso, in modo che Gemini CLI possa utilizzarlo. Avvia Gemini CLI.
Di seguito è riportato il diagramma dello schema del database:

Supponiamo che tu ti trovi in una cartella denominata database-tasks e che il file del database Chinook sia denominato chinook.db.
Di seguito sono riportati diversi prompt che possono aiutarti a lavorare con i database. Analizziamo brevemente il primo per dimostrare l'autorizzazione che verrà richiesta.
Inizia con il prompt per elencare le tabelle presenti nel database:
What tables are present in the file: chinook.db
Utilizza lo strumento per leggere il file e poi vuole utilizzare l'utilità sqlite3 presente sul tuo sistema per fare il necessario:

Concedi l'autorizzazione per eseguirlo una volta per ottenere l'output previsto:

Prova i seguenti prompt o qualsiasi altro prompt a tua scelta:
- Quanti dipendenti ci sono?
- Qual è lo schema della tabella delle fatture?
- Quali sono le 3 fatture con l'importo totale più elevato e quali clienti le hanno emesse?
Noterai che Gemini CLI si occupa di due cose: generare l'istruzione SQL corretta per soddisfare il tuo requisito e fornire il comando sqlite3 corretto.
Utilizzo di Gemini CLI per generare dati
Puoi chiedere a Gemini CLI di produrre dati in vari formati. Questi possono variare dai contenuti ai dati JSON che potresti dover simulare. Concentriamoci sugli scenari applicabili a sviluppatori/tester.
Ecco alcuni prompt da provare:
Genera dati JSON di recensioni dei clienti di esempio
Generate a JSON array of 3 synthetic customer reviews for a new smartphone. Each review should have 'reviewId' (string, UUID-like), 'productId' (string, e.g., 'SMARTPHONE_X'), 'rating' (integer, 1-5), 'reviewText' (string, 20-50 words), and 'reviewDate' (string, YYYY-MM-DD format).
Generazione di risposte API simulate (JSON)
Generate a JSON array representing 7 daily sales records for a mock API endpoint. Each record should include 'date' (YYYY-MM-DD, chronologically increasing), 'revenue' (float, between 5000.00 and 20000.00), 'unitsSold' (integer, between 100 and 500), and 'region' (string, either 'North', 'South', 'East', 'West').
Generazione di istruzioni di inserimento del database di esempio (SQL)
Generate 5 SQL INSERT statements for a table named 'users' with columns: 'id' (INTEGER, primary key), 'username' (VARCHAR(50), unique), 'email' (VARCHAR(100)), 'password_hash' (VARCHAR(255)), 'created_at' (DATETIME, current timestamp). Ensure the password_hash is a placeholder string like 'hashed_password_X'.
Generazione di dati CSV per il caricamento/l'analisi dei dati
Generate 10 lines of CSV data, including a header row, for customer transactions. Columns should be: 'TransactionID' (unique string), 'CustomerID' (integer), 'ItemPurchased' (string, e.g., 'Laptop', 'Monitor', 'Keyboard'), 'Quantity' (integer, 1-3), 'UnitPrice' (float, between 100.00 and 1500.00), 'TransactionDate' (YYYY-MM-DD).
Genera un file di configurazione (YAML)
Generate a sample YAML configuration for a 'user_service'. Include sections for 'database' with 'host', 'port', 'username', 'password', 'database_name'. Also include a 'api_keys' section with 'payment_gateway' and 'email_service' placeholders. Use realistic default values.
Generazione di dati di test per casi limite/convalida
Generate a JSON array of 8 email addresses for testing purposes. Include a mix of: 2 valid standard emails, 2 with missing '@', 2 with invalid domains (e.g., '.com1'), and 2 with special characters in the local part that are usually invalid (e.g., spaces or multiple dots).
11. Complimenti
Congratulazioni, hai esplorato Gemini CLI, le sue funzionalità e l'hai applicata a diversi casi d'uso.