Prova pratica dell'interfaccia a riga di comando Gemini

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.

Il progetto Gemini CLI è open source e puoi visualizzare la roadmap pubblica qui.

Durante il codelab, seguirai un approccio passo passo in attività come:

  1. Installazione dell'interfaccia a riga di comando di Gemini
  2. Configurazione di base
  3. Esplorare gli strumenti e i comandi integrati nell'interfaccia a riga di comando di Gemini
  4. Personalizzazione dell'interfaccia a riga di comando di Gemini tramite il file GEMINI.md
  5. Esplorare alcuni casi d'uso con l'interfaccia a riga di comando di Gemini

Che cosa ti serve

  • Browser web Chrome
  • Un account Gmail
  • Una macchina locale con Node 20+ installato.

Questo codelab è pensato per utenti e sviluppatori di tutti i livelli (inclusi i principianti).

2. Installazione

Prima di eseguire la configurazione e l'interfaccia a riga di comando Gemini, creiamo una cartella che utilizzeremo come cartella principale per tutti i progetti che potremmo creare al suo interno. Questo è un punto di partenza per l'utilizzo della CLI Gemini, anche se farà riferimento anche ad altre cartelle del sistema, che esamineremo 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

Per eseguire Gemini CLI, puoi utilizzare uno dei seguenti metodi:

  1. Esegui il comando seguente:
npx https://github.com/google-gemini/gemini-cli
  1. Puoi installare prima l'interfaccia a riga di comando di Gemini a livello globale sul tuo sistema. Assicurati di disporre dei diritti di amministratore per farlo.
npm install -g @google/gemini-cli

e poi eseguilo con questo comando:

gemini

Supponendo che tu abbia avviato Gemini CLI con uno dei metodi sopra indicati, dovresti visualizzare la seguente schermata che ti chiede di scegliere un tema. Procedi e seleziona quello che preferisci:

9b02bd0bf1c670d.png

Una volta selezionato, ti verrà chiesto il metodo di autenticazione. Ti consigliamo di utilizzare il tuo Account Google personale e non account non Google o correlati a Google Workspace in questo lab. Questa licenza senza costi ti consente di accedere a Gemini 2.5 Pro e alla sua finestra contestuale da 1 milione di token. Il livello senza costi consente 60 richieste di modello al minuto e 1000 richieste al giorno senza costi.

Se raggiungi i limiti con la 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.

afce8d90e20adb6.png

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 la CLI Gemini è pronta e in attesa del tuo comando. Di seguito è riportato uno screenshot di esempio:

ffd8ddfede565612.png

Digita /help (barra) e vedrai una serie di comandi e scorciatoie da tastiera come mostrato di seguito:

d333742310905dcc.png

La nostra prima interazione con Gemini CLI

Digita il tuo primo messaggio nella casella. Dovremo fornire una query come:

4dc0961206c1b568.png

Noterai che la nostra query ha generato uno strumento GoogleSearch (uno strumento integrato nell'interfaccia a riga di comando di Gemini) che è stato richiamato. Questo è un modo interessante in cui abbiamo già utilizzato uno dei potenti strumenti integrati di Gemini CLI, ovvero GoogleSearch, che basa le sue risposte sulle informazioni che ottiene dal web. Nella prossima sezione vedremo altri strumenti.

Per ora chiudiamo l'interfaccia a riga di comando di Gemini. Puoi farlo tramite il comando /quit oppure puoi eseguire Ctrl-C due volte nella sessione del terminale interattivo della CLI Gemini.

File di personalizzazione dell'interfaccia a riga di comando di Gemini : settings.json

Se ricordi quando abbiamo avviato Gemini CLI per la prima volta, ci è stato chiesto di selezionare un tema e poi un metodo di autenticazione. 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 precedenza:

  1. Workspace: .gemini/settings.json (override delle impostazioni utente e di sistema).
  2. Utente: ~/.gemini/settings.json (esegue l'override delle impostazioni di sistema).
  3. Sistema: /etc/gemini-cli/settings.json (si applica a tutti gli utenti).

Se ricordi, al momento della selezione del tema, abbiamo chiesto 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.

{
  "theme": "Default",
  "selectedAuthType": "oauth-personal"
}

3. Parametri dei comandi dell'interfaccia a riga di comando di Gemini

Quando avvii Gemini CLI, puoi fornire alcuni parametri della riga di comando. 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 l'interfaccia a riga di comando di Gemini in modo da utilizzare il modello Pro o Flash. Al momento della stesura di questo lab, questi sono gli unici due modelli supportati. Per impostazione predefinita viene utilizzato il modello Gemini 2.5 Pro, ma se vuoi utilizzare il modello Flash, 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 del terminale Gemini CLI, come mostrato di seguito:

6e662d03b61b2b3f.png

Modalità non interattiva

Un'opzione interessante è eseguire l'interfaccia a riga di comando di Gemini in modalità non interattiva. Ciò significa che fornisci direttamente il prompt e Gemini risponderà senza aprire il terminale interattivo di Gemini CLI. Questa opzione è molto utile se prevedi di utilizzare l'interfaccia a riga di comando di Gemini in modo automatico nell'ambito dello script o di qualsiasi altro processo di automazione. Utilizzi il parametro -p per fornire il prompt all'interfaccia a riga di comando di Gemini 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 di follow-up.

4. Interfaccia a riga di comando di Gemini - Strumenti integrati

La CLI Gemini include 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, dobbiamo semplicemente richiamare il comando /tools come mostrato di seguito:

39939257e3f3818e.png

Una delle prime cose che dovresti chiederti è se l'interfaccia a riga di comando di Gemini 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.

Quando avvii la CLI, è disponibile un --yolomode che non utilizzeremo. La CLI Gemini 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.

Forniamo un prompt che farà scegliere a Gemini CLI uno degli strumenti integrati da eseguire e che ci darà una buona comprensione di come funziona il tutto.

Vorremmo ricevere informazioni sulle ultime notizie finanziarie in tutto il mondo e salvarle in un file nella nostra directory di lavoro locale da cui abbiamo avviato Gemini CLI. Forniamo 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 sulla tua macchina).

La prima cosa che fa è richiamare lo strumento GoogleSearch per cercare sul web.

122e6e4b01d05e69.png

Una volta completata la ricerca, i dati vengono recuperati come mostrato di seguito:

b721f40e6f643318.png

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 selezioniamo Consenti una volta.

e92f3a4774dc1e7.png

Le informazioni verranno scritte nel file e di seguito verrà visualizzato un messaggio di operazione riuscita:

33c6afdb89033c35.png

Come facciamo a verificare se il file è stato scritto o meno? Possiamo usare @file per chiedere di leggere i contenuti. Viene visualizzato un prompt come mostrato di seguito. Mentre digitiamo @, viene visualizzato un elenco di file nella cartella corrente e viene mostrato 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:

6f214cd743646f44.png

È anche un buon momento per imparare a lavorare direttamente con la shell dall'interfaccia a riga di comando di Gemini. Puoi passare alla modalità shell premendo ! nella casella del messaggio. Verrà attivata una modalità Shell. Puoi tornare indietro premendo di nuovo ! o il tasto ESC.

In modalità shell, vedrai ! all'inizio del prompt, come mostrato di seguito:

9e239408835a3acd.png

Posso eseguire il controllo direttamente utilizzando comandi standard come pwd e ls, come mostrato di seguito:

2f5d53d3c77fc8e2.png

Oggi possiamo stampare i contenuti del file tramite il comando cat.

2249b5c80e3ae2c0.png

Esercizio: ecco un breve esercizio da provare. Scegli un feed RSS a tua scelta. Fornisci un prompt all'interfaccia a riga di comando di Gemini 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.

Suggerimento:alla fine, l'interfaccia a riga di comando di Gemini dovrebbe utilizzare lo strumento WebFetch.

5. Configurazione dei server Model Context Protocol (MCP)

Un server MCP è un'applicazione che espone strumenti e risorse alla CLI Gemini tramite il Model Context Protocol, consentendole di interagire con sistemi e origini dati esterni. I server MCP fungono da ponte tra il modello Gemini e il tuo ambiente locale o altri servizi come le API.

Un server MCP consente all'interfaccia a riga di comando di Gemini di rilevare ed eseguire strumenti, estendendo così le funzionalità dell'interfaccia a riga di comando di Gemini per eseguire azioni oltre alle funzionalità integrate, come l'interazione con database, API, script personalizzati o workflow specializzati.

La CLI Gemini supporta la configurazione dei server MCP per scoprire e utilizzare strumenti personalizzati. Se hai avviato l'interfaccia a riga di comando di Gemini, puoi controllare i server MCP configurati tramite il comando /mcp, come mostrato di seguito:

255a14eb31529370.png

Se non hai configurato alcun server MCP, verrà avviata la documentazione del server MCP di Gemini CLI.

Puoi configurare i server MCP a livello globale nel file ~/.gemini/settings.json o nella directory principale del progetto. Crea o apri il file .gemini/settings.json. All'interno del file, devi aggiungere il blocco di configurazione mcpServers, come mostrato di seguito:

"mcpServers": {
    "server_name_1": {},
    "server_name_2": {},
    "server_name_n": {}
 }

Ogni configurazione del server supporta le seguenti proprietà ( documentazione di riferimento):

Obbligatorio (uno dei seguenti)

  • command (string): percorso dell'eseguibile per il trasporto Stdio
  • url (stringa): URL endpoint SSE (ad es. "http://localhost:8080/sse")
  • httpUrl (stringa): URL dell'endpoint di streaming HTTP

Facoltativo

  • args (string[]): argomenti della riga di comando per il trasporto Stdio
  • headers (oggetto): intestazioni HTTP personalizzate quando si utilizza url o httpUrl
  • env (oggetto): variabili di ambiente per il processo del server. I valori possono fare riferimento alle variabili di ambiente utilizzando la sintassi $VAR_NAME o ${VAR_NAME}
  • cwd (stringa): directory di lavoro per il trasporto Stdio
  • timeout (numero): timeout della richiesta in millisecondi (valore predefinito: 600.000 ms = 10 minuti)
  • trust (booleano): se è true, ignora tutte le conferme di chiamata dello strumento per questo server (valore predefinito: false)
  • includeTools (string[]): elenco dei nomi degli strumenti da includere da questo server MCP. Se specificato, da questo server saranno disponibili solo gli strumenti elencati qui (comportamento della whitelist). Se non specificato, tutti gli strumenti del server sono attivati per impostazione predefinita.
  • excludeTools (string[]): elenco dei nomi degli strumenti da escludere da questo server MCP. Gli strumenti elencati qui non saranno disponibili per il modello, anche se sono esposti dal server. Nota: excludeTools ha la precedenza su includeTools. Se uno strumento è presente in entrambi gli elenchi, verrà escluso.

Procediamo con la configurazione di uno dei server MCP chiave di cui potresti aver bisogno se utilizzi GitHub. Tuttavia, tieni presente che Gemini CLI richiamerà gli strumenti git presenti nel tuo sistema e potrai anche istruire Gemini CLI a utilizzarli. Quindi, tieni presente che ti aiuterà con i comandi e li eseguirà per te, ma devi configurare questi strumenti sul tuo sistema.

Server MCP GitHub

Il server MCP ufficiale di GitHub fornisce una documentazione sufficiente sugli strumenti che espone e su come configurarli. Puoi scegliere se eseguirlo in locale o in remoto, poiché Gemini CLI supporta anche i server MCP remoti.

In questo tutorial abbiamo scelto di utilizzare l'opzione Remote MCP Server in GitHub. Per farlo, devi prima disporre di un token di accesso personale (PAT) di GitHub.

Una volta ottenuto, devi aggiungere l'oggetto server MCP nel file settings.json. Di seguito è riportato il file settings.json completo sul mio sistema. Potresti avere altre impostazioni, ma l'oggetto mcpServers deve essere come indicato di seguito:

{
  "theme": "Default",
  "selectedAuthType": "oauth-personal",
  "mcpServers": {
       "github": {
            "httpUrl": "https://api.githubcopilot.com/mcp/",
            "headers": {
                "Authorization": "GITHUB_PAT"
            },
            "timeout": 5000
       }
  }
}

Puoi riavviare Gemini CLI o eseguire un comando /mcp refresh dopo aver aggiornato settings.json con la configurazione del server GitHub MCP. Lo screenshot seguente evidenzia il server Github MCP configurato sul mio computer e i vari strumenti ora disponibili per la CLI Gemini per interagire con MCP.

e34f348129d448e9.png

Iniziamo con un prompt che richiamerà uno degli strumenti del server GitHub MCP. Digita il seguente prompt:

da643d182ac3fca4.png

Tieni presente che verrà selezionato lo strumento corretto dal server GitHub MCP, ma come per altri strumenti integrati, sarà necessario fornire l'autorizzazione esplicita per richiamare lo strumento. Continua e vedi che output ottieni.

Ora devi lavorare con uno dei tuoi progetti GitHub. Fornisci le query in linguaggio naturale, ad esempio:

  • Descrivimi <repo-name>.
  • Clona <repo-name> sulla mia macchina locale.
  • Descrivi @<nome file> o @<nome directory>/
  • Quali sono i diversi componenti di questo repository?
  • Ho apportato le modifiche necessarie. Puoi eseguire il push delle modifiche su GitHub e utilizzare gli strumenti del server GitHub MCP per farlo.

Più avanti nel lab, faremo un esercizio per lavorare in dettaglio con il server MCP di GitHub.

Server MCP Context7

Context7 fornisce documentazione aggiornata per LLM ed editor di codice AI. Se vuoi fornire il contesto all'LLM con la documentazione più recente per il framework che preferisci, il server Context7 MCP è una buona opzione da configurare.

Assicurati che la tua biblioteca sia elencata nella home page di Context7.

Ecco il server MCP che devi aggiungere nel file settings.json.

"context7": {
      "httpUrl": "https://mcp.context7.com/mcp"
    }

Una volta configurato il server MCP e caricata correttamente la CLI Gemini, dovresti essere in grado di visualizzare gli strumenti Context7 come mostrato di seguito:

92f715d87989ff72.png

Ora puoi essere specifico nel prompt e chiedere all'interfaccia a riga di comando di Gemini di utilizzare Context7 per la documentazione più recente durante la generazione dell'applicazione o dello snippet di codice, utilizzando un framework XYZ specifico.

Ecco un esempio di prompt in cui voglio scrivere un agente utilizzando l'Agent Development Kit (ADK) di Google. Nel prompt specifico di cercare la documentazione relativa tramite il server MCP Context7.

I am working on coding an Agent using the Agent Development Kit (ADK) from Google. I would like to know how to create the LLMAgent in Python. Use Context7 for the latest documentation on ADK and specifically use /google/adk-python, /google/adk-docs and adk.wiki 

Ecco l'output ricevuto:

fe79972a61372d59.png

Server MCP di Presentazioni Google

Il progetto GitHub all'indirizzo https://github.com/matteoantoci/google-slides-mcp fornisce un server MCP per interagire con l'API Google Slides. Consente di creare, leggere e modificare le presentazioni Google in modo programmatico.

I passaggi per configurare il server MCP sono indicati nel progetto. Avrai bisogno di un ambiente Node.js in cui creare il server, configurare un progetto Google Cloud e i token OAuth 2.0, quindi configurare il server MCP nel file settings.json.

Una volta configurato, puoi eseguire prompt come:

  • Estrai le informazioni più recenti da "web_url", riassumile in punti chiave e crea una presentazione denominata "my_presentation".

Prova anche tu!

Altri server MCP

Ecco un elenco aggiuntivo di server MCP che potrebbero interessarti:

  1. Server Firebase MCP
  2. Servizi multimediali Google Gen AI (Imagen, Veo, Lyria)
  3. MCP Toolbox for Databases (lavora con i database Firestore, BigQuery e Google Cloud)
  4. Server MCP di Google Workspace (funziona con Documenti, Fogli, Calendar e Gmail)

Le istruzioni per configurare i server MCP sopra indicati sono pubblicate in questo post del blog.

6. Casi d'uso da provare

L'interfaccia a riga di comando di Gemini può essere applicata a un'ampia gamma di casi d'uso che riguardano sia gli sviluppatori che gli utenti non sviluppatori. Di seguito sono riportati alcuni scenari che puoi provare a seconda della tua area di interesse.

In ognuno di questi casi, viene fornito il prompt. Puoi provare questa funzionalità in modalità interattiva o non interattiva dell'interfaccia a riga di comando di Gemini tramite il parametro -p al momento dell'avvio dell'interfaccia a riga di comando di Gemini.

Organizzare file/cartelle

Puoi utilizzare la CLI Gemini 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.

Vai alla cartella e avvia l'interfaccia a riga di comando di Gemini. Chiediamogli di creare prima diverse cartelle: Immagini, Documenti, Video e poi 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, inserisci 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 sono riportati alcuni altri scenari di organizzazione (le richieste sono riportate accanto a ogni scenario):

  1. 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.
  2. 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".
  3. 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 possiamo organizzare i contenuti delle immagini nella nostra 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 l'interfaccia a riga di comando di Gemini.

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 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 nomi dei 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.
  • 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 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. Presentalo in un formato JSON strutturato.

Rispondere alle 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.
  • Scrivi 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 dell'interfaccia a riga di comando di Gemini

L'interfaccia a riga di comando di Gemini supporta più modelli tramite Gemini e puoi chiedere di elaborare file di diversi formati di contenuti in base ai tuoi requisiti.

Elaboreremo una serie di immagini di fatture con l'interfaccia a riga di comando di Gemini ed estrarremo le informazioni chiave. Segui i passaggi indicati di seguito:

  • Crea una cartella sul tuo computer e scarica alcune fatture dal seguente repository GitHub.
  • Avvia l'interfaccia a riga di comando di Gemini da questa cartella

Diamo il seguente prompt per estrarre le informazioni dalle fatture sotto forma di tabella.

The current folder contains a list of invoice image files. 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:

fb4183498d02229.png

Applica questa procedura a tutti i tuoi file in formati diversi dal testo.

Utilizzo dell'interfaccia a riga di comando di Gemini per lavorare con i database

Puoi utilizzare l'interfaccia a riga di comando di Gemini 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 dimostrarlo, utilizzeremo SQLite3. Dovremo installare SQLite3 e disporre del database di esempio Chinook.

Ecco alcune brevi istruzioni per configurare SQLite3:

  1. macOS: SQLite3 è preinstallato. Verifica con sqlite3 --version. Se necessario, installa con Homebrew: brew install sqlite3.
  2. 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.
  3. Linux: Debian/Ubuntu: sudo apt update && sudo apt install sqlite3

Scarica il database di esempio Chinook (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 l'interfaccia a riga di comando di Gemini.

Di seguito è riportato il diagramma dello schema del database:

fb8e96c21ad57590.png

Supporremo che 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. Esamineremo brevemente la prima per dimostrare l'autorizzazione che verrà richiesta.

Iniziamo con la richiesta di elencare le tabelle presenti nel database. Forniamo il seguente prompt:

What tables are present in the @chinook.db 

Utilizza lo strumento per leggere il file e poi vuole utilizzare l'utilità sqlite3 presente sul mio sistema per fare il necessario:

b2a17ef60706c3f5.png

Fornisci l'autorizzazione per eseguirlo una volta e otterrai l'output necessario:

8d40754b830f4697.png

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 principali per totale 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 dell'interfaccia a riga di comando di Gemini 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. Ci concentreremo sugli scenari applicabili a sviluppatori/tester.

Ecco alcuni prompt da provare:

Generare 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).

Vibe coding con l'interfaccia a riga di comando di Gemini

Utilizziamo l'interfaccia a riga di comando di Gemini per creare il codice di un'applicazione. Chiederemo a Gemini CLI di generare un'applicazione e poi eseguiremo il push della versione iniziale in un repository GitHub.

Prerequisito

Per eseguire le attività in questa sezione, devi:

  • Git
  • Gemini CLI con il server MCP di GitHub (l'abbiamo fatto in precedenza)
  • 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. Assicurati che i server MCP siano stati avviati correttamente, in particolare il server MCP di GitHub.

Fornisci il seguente prompt. 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.

Inoltre, tieni presente che non vogliamo che l'interfaccia a riga di comando di Gemini esegua l'applicazione o la provi per noi, perché vorremmo avere un po' più di controllo. Ma spetta completamente a te decidere come farlo.

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. 

Ecco come è andata per me con la prima risposta. Potresti ricevere una risposta completamente diversa, quindi esamina il piano e interagisci con Gemini CLI in base alle esigenze.

90232297f1e952f8.png

Anche se gli ho chiesto di non avviare i server, mi ha mostrato il comando della shell per lo stesso e mi ha chiesto se poteva eseguirlo per me. Ho deciso di non farlo per avere più controllo sull'inizio.

Ho inviato il seguente messaggio:

d74e235b0db77c51.png

Ho seguito le istruzioni, ho avviato il server e vedo che il seguente sito funziona correttamente:

71a0a6123a90e068.png

Puoi continuare ad apportare altre modifiche con l'aiuto di Gemini CLI, ma per ora questo è sufficiente, dato che dobbiamo inserire il codice in un repository GitHub.

Per prima cosa, creiamo un file .gitignore con l'aiuto della CLI Gemini.

Create a .gitignore file for this project.

Ora daremo istruzioni all'interfaccia a riga di comando di Gemini per eseguire il push di questo repository nel nostro account GitHub e questo dovrebbe esercitare gli strumenti del server GitHub MCP 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:

  1. Crea il repository.
  2. Utilizzerà più comandi Git : init, add, commit per gestire il repository Git locale.
  3. Verrà quindi configurato il Git remoto e verrà eseguito un push.

Nota:in alcuni casi, l'interfaccia a riga di comando di Gemini potrebbe scadere o utilizzare un nome utente errato e così via. Interagisci con l'interfaccia e suggerisci le correzioni.

Se tutto va bene, dovresti avere un repository GitHub. Di seguito è riportato uno screenshot di esempio:

35c2db48c39fb21a.png

Non abbiamo generato un README.md e altre cose che normalmente faremmo, ma questo è un buon esercizio per la sezione successiva, in cui lavoreremo con questo repository che hai appena creato.

Utilizzo dell'interfaccia a riga di comando di Gemini per lavorare su un repository GitHub

In questo caso d'uso, utilizzeremo Gemini CLI per lavorare con un repository GitHub. Esamineremo diversi scenari, 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 l'interfaccia a riga di comando di Gemini come assistente per queste attività specifiche per gli sviluppatori.

Prerequisito

Per eseguire le attività in questa sezione, devi:

  • Git
  • Gemini CLI con il server MCP di GitHub (l'abbiamo fatto in precedenza)
  • Familiarità con le nozioni di base di Git e un po' di conoscenze di programmazione (in questo esempio utilizzeremo Node.js, poiché potresti già avere l'ambiente pronto sul tuo computer grazie all'installazione della CLI Gemini). 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 o, 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 funziona la richiesta e la risposta.
  • Spiega @server.js

Generazione di un file README

  • Genera un file README per questo progetto.

In questo caso, Gemini CLI non solo ha generato il file README, ma ha anche voluto eseguire i comandi per aggiungerlo al repository Git e inviare le modifiche al repository remoto, cosa che ho consentito. Mi ha anche offerto di generare il file LICENSE, cosa che ho consentito.

Ora ho un file README e un file LICENSE generati e le modifiche sono state eseguite su GitHub.

d77239c8fae0aa8b.png

Implementazione di una nuova funzionalità

  • Vorrei implementare una nuova funzionalità che consenta all'utente di eseguire ricerche anche in base a un oratore specifico. Innanzitutto mostrami un piano di come implementeresti questa modifica, poi possiamo generare il codice.

Mi ha fornito un piano, che ho approvato, e poi ha proceduto 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.

Genera problemi in base alle funzionalità suggerite

Proviamo qualcosa di interessante. Chiederemo a Gemini CLI come può migliorare l'esperienza utente di questa applicazione e, in base alla sua valutazione, potrà 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. Crea un elenco di miglioramenti e poi crea i 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:

495b0f7afab91ec6.png

Lavorare su un problema di GitHub e implementare le modifiche proposte

Ora possiamo prendere uno dei problemi generati in precedenza e chiedere a Gemini CLI di risolverlo e implementarlo.

Di seguito è riportato un problema di esempio generato:

2e41f9f6eac3d1b.png

Prendi l'intero URL del problema e fornisci un prompt come questo:

  • Esamina il problema: <YOUR_ISSUE_URL> e comprendi 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.

cd3c89cf3d47723b.png

7. (Facoltativo) Personalizzare l'interfaccia a riga di comando di Gemini con GEMINI.md

Se hai notato il tuo utilizzo dell'interfaccia a riga di comando di Gemini finora, avrai notato che davamo solo il prompt e ci aspettavamo che l'interfaccia a riga di comando di Gemini lo eseguisse, a volte con risultati non conformi alle nostre aspettative. In alcuni prompt, siamo stati un po' specifici in termini di cosa fare e abbiamo incluso queste istruzioni nel prompt.

Questo potrebbe funzionare bene in base a ciò che stai chiedendo a Gemini CLI di fare e ai risultati che ottieni. Tuttavia, in molti casi, vuoi assicurarti che rispetti le regole. Queste regole potrebbero riguardare linguaggi di programmazione o framework specifici da utilizzare. Potrebbero anche essere strumenti specifici. Potrebbero essere stili di codifica. Non si tratta solo di generazione, ma potresti anche voler che Gemini CLI sia rigorosamente in modalità "pianificazione" e che presenti solo un piano e non generi codice o modifichi file sul sistema.

Inserisci GEMINI.md. Questo è il file di contesto (impostato per impostazione predefinita su GEMINI.md, ma configurabile tramite l'impostazione contextFileName) fondamentale per configurare il contesto didattico (chiamato anche "memoria") fornito al modello Gemini. Questo file ti consente di fornire all'AI istruzioni specifiche per il progetto, guide di stile di codifica o qualsiasi informazione di base pertinente, rendendo le sue risposte più personalizzate e accurate in base alle tue esigenze.

Il file GEMINI.md è in formato Markdown e viene caricato in modo gerarchico, combinando più posizioni.

L'ordine di caricamento è:

  1. Contesto globale:**~/.gemini/GEMINI.md** (per le istruzioni che si applicano a tutti i tuoi progetti).
  2. Contesto progetto/elemento principale: la CLI esegue la ricerca dalla directory corrente fino alla radice del progetto per i file GEMINI.md.
  3. Contesto della sottodirectory:la CLI esegue la scansione anche delle sottodirectory alla ricerca di file GEMINI.md, consentendo istruzioni specifiche per i componenti.

Puoi utilizzare /memory show per visualizzare il contesto combinato finale inviato al modello.

Ecco un esempio di GEMINI.md tratto dalla documentazione ufficiale:

# Project: My Awesome TypeScript Library

## General Instructions:

- When generating new TypeScript code, please follow the existing coding style.
- Ensure all new functions and classes have JSDoc comments.
- Prefer functional programming paradigms where appropriate.
- All code should be compatible with TypeScript 5.0 and Node.js 20+.

## Coding Style:

- Use 2 spaces for indentation.
- Interface names should be prefixed with `I` (e.g., `IUserService`).
- Private class members should be prefixed with an underscore (`_`).
- Always use strict equality (`===` and `!==`).

## Specific Component: `src/api/client.ts`

- This file handles all outbound API requests.
- When adding new API call functions, ensure they include robust error handling and logging.
- Use the existing `fetchWithRetry` utility for all GET requests.

## Regarding Dependencies:

- Avoid introducing new external dependencies unless absolutely necessary.
- If a new dependency is required, please state the reason.

Noterai che fornisce alcune istruzioni generali, oltre a istruzioni molto specifiche per lo stile di codifica, la gestione delle dipendenze e altro ancora. Sebbene questo sia un file GEMINI.md di esempio per i progetti TypeScript, puoi scrivere il tuo in base al linguaggio di programmazione, al framework, allo stile di codifica e ad altre preferenze.

Proviamo a utilizzare un file GEMINI.md personalizzato. Questo esempio è tratto da un gist pubblicato che mostra come utilizzare Gemini CLI solo in modalità Pianifica. Il file viene riprodotto qui:

# Gemini CLI Plan Mode

You are Gemini CLI, an expert AI assistant operating in a special 'Plan Mode'. Your sole purpose is to research, analyze, and create detailed implementation plans. You must operate in a strict read-only capacity.

Gemini CLI's primary goal is to act like a senior engineer: understand the request, investigate the codebase and relevant resources, formulate a robust strategy, and then present a clear, step-by-step plan for approval. You are forbidden from making any modifications. You are also forbidden from implementing the plan.

## Core Principles of Plan Mode

*   **Strictly Read-Only:** You can inspect files, navigate code repositories, evaluate project structure, search the web, and examine documentation.
*   **Absolutely No Modifications:** You are prohibited from performing any action that alters the state of the system. This includes:
    *   Editing, creating, or deleting files.
    *   Running shell commands that make changes (e.g., `git commit`, `npm install`, `mkdir`).
    *   Altering system configurations or installing packages.

## Steps

1.  **Acknowledge and Analyze:** Confirm you are in Plan Mode. Begin by thoroughly analyzing the user's request and the existing codebase to build context.
2.  **Reasoning First:** Before presenting the plan, you must first output your analysis and reasoning. Explain what you've learned from your investigation (e.g., "I've inspected the following files...", "The current architecture uses...", "Based on the documentation for [library], the best approach is..."). This reasoning section must come **before** the final plan.
3.  **Create the Plan:** Formulate a detailed, step-by-step implementation plan. Each step should be a clear, actionable instruction.
4.  **Present for Approval:** The final step of every plan must be to present it to the user for review and approval. Do not proceed with the plan until you have received approval. 

## Output Format

Your output must be a well-formatted markdown response containing two distinct sections in the following order:

1.  **Analysis:** A paragraph or bulleted list detailing your findings and the reasoning behind your proposed strategy.
2.  **Plan:** A numbered list of the precise steps to be taken for implementation. The final step must always be presenting the plan for approval.


NOTE: If in plan mode, do not implement the plan. You are only allowed to plan. Confirmation comes from a user message.

Salva i contenuti riportati sopra in un file denominato GEMINI.md e salvalo in ~/.gemini/GEMINI.md. Si tratta della stessa cartella in cui abbiamo creato il file settings.json. Puoi anche conservare il file GEMINI.md nella cartella <current project folder>/.gemini o avere più file GEMINI.md nelle sottodirectory se hai istruzioni diverse.

Fornisci un prompt per generare un'applicazione e osserva come risponde.

Ecco un altro file GEMINI.md ( modalità Spiega di Gemini) che puoi studiare e poi riutilizzare per le tue esigenze. L'obiettivo è rendere GEMINI CLI una guida interattiva che aiuti gli utenti a comprendere codebase complesse attraverso un processo di scoperta conversazionale.

Il file GEMINI.md è fondamentale per fare in modo che Gemini CLI segua le tue preferenze. Ti consigliamo di dare un'occhiata a questa serie pratica "Practical Gemini CLI", che approfondisce questo argomento, spiega come generare automaticamente un file per il tuo progetto, come personalizzare anche il prompt di sistema e altro ancora.

8. Complimenti

Congratulazioni, hai esplorato con successo l'interfaccia a riga di comando di Gemini, le sue funzionalità e l'hai applicata ad alcuni casi d'uso.

Documenti di riferimento