Prática com a CLI do Gemini

1. Introdução

Neste codelab, você vai conhecer a CLI do Gemini, um agente de IA de código aberto que traz o poder do Gemini diretamente para o seu terminal.

O que você vai aprender

  1. Instalar e configurar a CLI do Gemini
  2. Conhecer ferramentas, comandos integrados e configurar servidores MCP na CLI do Gemini
  3. Personalizar a CLI do Gemini usando o arquivo GEMINI.md
  4. Conhecer alguns casos de uso da CLI do Gemini

O que é necessário

Este codelab pode ser executado inteiramente no Google Cloud Shell, que já vem com a CLI do Gemini pré-instalada.

Se preferir trabalhar na sua própria máquina, há uma seção para instalar a CLI do Gemini localmente.

Você vai precisar do seguinte:

  • Navegador da Web Google Chrome
  • Uma conta do Gmail

Este codelab foi criado para usuários e desenvolvedores de todos os níveis, inclusive iniciantes. Os casos de uso no codelab foram categorizados em tarefas de desenvolvedor e não desenvolvedor. Os casos de uso para desenvolvedores mostram como realizar a programação assistida por IA com a CLI do Gemini e trabalhar com um repositório do GitHub para realizar tarefas comuns de desenvolvimento, como explicação/compreensão de código, geração de documentação, correção de problemas e muito mais. Recomendamos que você conclua esses casos de uso no codelab. Há uma seção opcional no final que aborda várias tarefas diárias que não são focadas em desenvolvedores.

2. Antes de começar

Criar um projeto

  1. No console do Google Cloud, na página de seletor de projetos, selecione ou crie um projeto do Google Cloud.
  2. Confira se o faturamento está ativado para seu projeto do Cloud. Saiba como verificar se o faturamento está ativado em um projeto.
  3. Você vai usar o Cloud Shell, um ambiente de linha de comando executado no Google Cloud que vem pré-carregado com bq. Clique em "Ativar o Cloud Shell" na parte de cima do console do Google Cloud.

Imagem do botão "Ativar o Cloud Shell"

  1. Depois de se conectar ao Cloud Shell, verifique se sua conta já está autenticada e se o projeto está configurado com seu ID do projeto usando o seguinte comando:
gcloud auth list
  1. Execute o comando a seguir no Cloud Shell para confirmar se o comando gcloud sabe sobre seu projeto.
gcloud config list project
  1. Se o projeto não estiver definido, use este comando:
gcloud config set project <YOUR_PROJECT_ID>

3. Instalação

Antes de fazer a configuração e executar a CLI do Gemini, crie uma pasta que será usada como pasta inicial para todos os projetos criados nela. Ela será um ponto de partida para a CLI do Gemini trabalhar, embora também possa consultar outras pastas no seu sistema, conforme necessário.

Crie uma pasta de amostra (gemini-cli-projects) e navegue até ela usando os comandos mostrados abaixo. Se preferir usar outro nome de pasta, faça isso.

mkdir gemini-cli-projects

Navegue até essa pasta:

cd gemini-cli-projects

É possível iniciar a CLI do Gemini diretamente com o comando gemini.

Acesse diretamente a próxima seção (Configuração da CLI do Gemini usando o arquivo settings.json).

Se você quiser instalar a CLI do Gemini localmente, siga as instruções abaixo. A CLI do Gemini já vem pré-instalada no Cloud Shell e no Cloud Workstations.

A primeira etapa é instalar o Node 20 ou mais recente na sua máquina. Depois disso, você pode instalar e executar a CLI do Gemini usando um dos seguintes métodos:

  1. Primeiro, instale a CLI do Gemini globalmente no seu sistema. Talvez você precise de acesso de administrador para realizar essa etapa.
# option 1: install Gemini CLI

npm install -g @google/gemini-cli

# .. and then run
gemini
  1. Execute com o seguinte comando:
# option 2: run without installing Gemini CLI

npx https://github.com/google-gemini/gemini-cli

Para confirmar se a CLI está instalada, execute:

gemini --version

Supondo que você tenha iniciado a CLI do Gemini usando um dos métodos acima, na primeira vez, talvez seja necessário selecionar um tema. Se sim, você pode usar o padrão ou escolher um tema da sua preferência.

O próximo ponto importante é a autenticação. Ele vai pedir o método de autenticação. Recomendamos que você use sua Conta do Google pessoal e não contas não relacionadas ao Google ou ao Google Workspace neste laboratório.

Se você atingir os limites da cota sem custo financeiro atual concedida às Contas do Google, poderá usar a API Gemini ou até mesmo a Vertex AI do Google Cloud, em que será necessário ter um ID do projeto e o nome do local dele. Consulte a seção Autenticação da documentação se você planeja usar outros métodos de autenticação.

57bad75cedaaaa38.png

Clique em "Enter". Uma página de autenticação do Google será aberta no navegador. Faça a autenticação com sua Conta do Google, aceite os termos e, depois de autenticado, você vai notar que a CLI do Gemini está pronta para receber seu comando.

Confira abaixo uma captura de tela de exemplo:

8fc80ad44c19f782.png

Neste caso, selecionamos a opção da Vertex AI, mas pode ser a conta pessoal no seu caso. Você vai notar que selecionamos o modelo Gemini 2.5 (visível na parte de baixo à direita). É possível escolher seu modelo específico a qualquer momento usando o comando /model.

4. Configuração da CLI do Gemini usando o arquivo settings.json

Se você escolher o Cloud Shell para executar o Gemini, um tema padrão para a CLI do Gemini e o método de autenticação já serão selecionados e configurados para você.

Se você instalou e iniciou a CLI do Gemini pela primeira vez, selecionou um tema e um método de autenticação.

Agora, nas execuções subsequentes da CLI do Gemini, não será necessário selecionar um tema e um método de autenticação novamente. Isso significa que ele está sendo mantido em algum lugar, e o arquivo usado é chamado de settings.json, que é a maneira de personalizar a CLI do Gemini.

As configurações são aplicadas com a seguinte precedência (o Cloud Shell só disponibiliza as configurações do usuário):

  1. Sistema: /etc/gemini-cli/settings.json (se aplica a todos os usuários e substitui as configurações do usuário e do espaço de trabalho).
  2. Workspace: .gemini/settings.json (substitui as configurações do usuário).
  3. Usuário: ~/.gemini/settings.json.

Usuário do Windows: %USERPROFILE%.gemini\settings.json (que geralmente é expandido para C:\Users&lt;YourUsername>.gemini\settings.json)

Sistema: %ProgramData%\gemini-cli\settings.json (que geralmente é expandido para C:\ProgramData\gemini-cli\settings.json)

Usuário do Mac: ~/.gemini/settings.json (que se expande para /Users/<YourUsername>/.gemini/settings.json)

Sistema: /etc/gemini-cli/settings.json

Se você se lembra, ao selecionar o tema, você escolheu salvar as configurações nas configurações do usuário. Acesse ~/.gemini folder e você vai notar o arquivo settings.json.

Meu arquivo settings.json é mostrado abaixo. Se você tivesse selecionado outro tema, o nome dele apareceria ali.

{
  "security": {
    "auth": {
      "selectedType": "oauth-personal" or "cloud-shell"
    }
  },
  "ui": {
    "theme": "Default"
  }
}

5. Nossa primeira interação com a CLI do Gemini

Vamos começar a usar a CLI do Gemini e digitar sua primeira consulta, conforme mostrado abaixo:

Give me a famous quote on Artificial Intelligence and who said that?

A resposta esperada é mostrada abaixo:

 > 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

Uma maneira rápida de entender a CLI do Gemini e os vários comandos que ela oferece é digitar /help (barra) para receber vários comandos e atalhos de teclado.

Vamos sair da CLI do Gemini por enquanto. Você pode fazer isso com o comando /quit ou Ctrl-C duas vezes na sessão interativa do terminal da CLI do Gemini. Ao sair da CLI do Gemini, você vai ver as estatísticas da sessão, que oferecem insights sobre a sessão, o uso do modelo e outras métricas.

6. CLI do Gemini: parâmetros de comando

Há alguns parâmetros de linha de comando que podem ser fornecidos ao iniciar a CLI do Gemini. Para conferir uma lista completa de opções, use --help, conforme mostrado abaixo.

gemini --help

Isso vai mostrar todas as opções disponíveis. Consulte a documentação aqui.

Vamos analisar algumas delas. A primeira é configurar a CLI do Gemini para usar um modo específico do Gemini. No momento da atualização deste laboratório, esta é a lista de modelos compatíveis. Para usar um modelo específico, faça isso ao iniciar a CLI do Gemini com o parâmetro -m, conforme mostrado abaixo:

gemini -m "gemini-2.5-flash"

Se você começar da maneira acima, poderá verificar o modelo na parte inferior direita do terminal da CLI do Gemini.

Depois de entrar no aplicativo da CLI do Gemini, use o comando /model para abrir uma caixa de diálogo que permite escolher um modelo. Uma execução de amostra é mostrada abaixo. Dependendo dos seus requisitos e das orientações fornecidas, você pode continuar trocando o modelo para escolher o certo para a tarefa, dependendo da complexidade e da necessidade de controlar os custos.

69154a6bf6553f35.png

Modo não interativo

Uma opção interessante é executar a CLI do Gemini em um modo não interativo. Isso significa que você fornece o comando diretamente e ele responde sem abrir o terminal interativo da CLI do Gemini. Isso é muito útil se você planeja usar a CLI do Gemini de forma automatizada como parte do script ou qualquer outro processo de automação. Use o parâmetro -p para fornecer o comando à CLI do Gemini, conforme mostrado abaixo:

gemini -p "What is the gcloud command to deploy to Cloud Run"

Lembre-se de que não é possível continuar a conversa com perguntas complementares. Esse modo também não permite autorizar ferramentas (incluindo o WriteFile) ou executar comandos shell.

Se você não incluir o parâmetro -p e apenas fornecer o seguinte, a CLI do Gemini será aberta com o comando e continuará dentro dele.

gemini "What is the gcloud command to deploy to Cloud Run"

7. CLI do Gemini: ferramentas integradas

A CLI do Gemini vem com um conjunto de ferramentas integradas, e a documentação de ferramentas afirma que "o modelo do Gemini usa essas ferramentas para interagir com seu ambiente local, acessar informações e realizar ações. Essas ferramentas aprimoram os recursos da CLI, permitindo que ela vá além da geração de texto e ajude em uma ampla variedade de tarefas."

Para conferir uma lista das ferramentas integradas, invoque o comando /tools, conforme mostrado abaixo:

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)

Uma das coisas que você precisa se perguntar imediatamente é se a CLI do Gemini pode simplesmente chamar essas ferramentas quando quiser. A resposta padrão é não, quando se trata de operações sensíveis que podem envolver a gravação no sistema local, a leitura de um sistema externo, o acesso à rede externa e assim por diante.

Embora haja um --yolo disponível ao iniciar a CLI (não é recomendado), a CLI do Gemini vai pedir sua permissão para executar a ferramenta escolhida. Você pode negar, permitir que o app seja executado uma vez ou dar permissão geral para que ele sempre seja executado. Você está (e deve estar) no controle total das coisas.

Vamos usar um comando que faça a CLI do Gemini escolher uma das ferramentas integradas para executar e que dê uma boa compreensão de como tudo funciona.

Imagine um cenário em que você quer receber informações sobre as últimas notícias financeiras do mundo e salvá-las em um arquivo no diretório de trabalho local de onde você iniciou a CLI do Gemini. Use o seguinte comando:

Search for the latest headlines today in the world of finance and save them in a file named finance-news-today.txt

Imagine por um momento o que ele precisa fazer. O ideal é que ele faça uma Pesquisa Google para receber notícias de algumas fontes de informação relevantes que possam fornecer notícias financeiras. Em seguida, ele precisa criar um arquivo chamado finance-news-today.txt (uma operação de gravação no seu sistema local que vai exigir sua permissão) com o conteúdo.

Vamos ver o que acontece (faça o mesmo na sua máquina).

A primeira coisa que ela faz é invocar a ferramenta GoogleSearch para pesquisar na Web e recuperar os resultados, conforme mostrado abaixo:

 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'.

Depois disso, está tudo pronto para gravar as informações no arquivo com a ferramenta WriteFile, mas como essa é uma operação sensível (gravação), você precisa permiti-la. Você pode decidir o tipo de permissão, ou seja, permitir uma vez, permitir sempre etc. Por enquanto, selecione "Permitir uma vez".

Ela grava as informações no arquivo, e uma mensagem de sucesso é exibida abaixo:

✦ I have saved the latest finance news to finance-news-today.txt.
  Finance News Saved: The task is complete.

Como verificar se o arquivo foi gravado ou não? Use o @file para pedir que ele leia o conteúdo. Ao digitar @, uma lista de arquivos na pasta atual é exibida, incluindo o arquivo que acabou de ser criado. Selecione essa opção e envie o comando. Meu comando é mostrado abaixo:

read the contents of @finance-news-today.txt

Isso resulta na invocação das ferramentas necessárias (ReadManyFiles, ReadFile) e o conteúdo é exibido conforme mostrado abaixo:

    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. CLI do Gemini: modo Shell

Este é um bom momento para aprender a trabalhar diretamente com o Shell na CLI do Gemini. Para entrar no modo shell, pressione ! na caixa de mensagem. Isso alterna para um modo Shell. Para voltar, pressione ! novamente ou a tecla ESC.

No modo shell, você verá o ! no início do comando, conforme mostrado abaixo:

aab5d032116fa5e8.png

É possível verificar diretamente usando comandos padrão, como pwd e ls, conforme mostrado abaixo. Os comandos pressupõem um SO do tipo Linux. Se você estiver em outro sistema operacional (Windows), use comandos equivalentes, como cd, dir e type. A saída dessas chamadas está incluída na janela de contexto do modelo.

f6e6d45174a9997d.png

Você também pode imprimir o conteúdo do arquivo com o comando cat, ou seja, cat finance-news-today.txt.

Exercício: confira um exercício curto para testar. Escolha um feed RSS. Dê um comando à CLI do Gemini para buscar o conteúdo do feed RSS e formatar os resultados de uma maneira específica. Essa é uma boa maneira de automatizar algo no início do dia. Você pode até pedir ao Gemini CLI para descobrir se há um feed RSS para uma área específica, por exemplo, as notas da versão do Google Cloud Platform.

Confira um exemplo de comando abaixo:

Get the latest release notes for Google Cloud from its RSS Feed and display the key points in a well-formatted list.

O ideal é que esse comando primeiro invoque a ferramenta GoogleSearch para encontrar o feed RSS do Google Cloud Platform e depois use a ferramenta WebFetch para acessar e mostrar o conteúdo do feed RSS. Talvez seja necessário conceder permissões para invocar essas ferramentas.

9. Extensões da CLI do Gemini

Como a documentação afirma, as extensões da CLI do Gemini empacotam prompts, servidores MCP e comandos personalizados em um formato familiar e fácil de usar. Com as extensões, você pode expandir os recursos da CLI do Gemini e compartilhá-los com outras pessoas. É o principal mecanismo para estender a funcionalidade da CLI do Gemini além das ferramentas integradas.

Uma extensão é um pacote independente, com controle de versões e fácil de distribuir. Pense nele como o "contêiner de transporte" das suas personalizações da CLI do Gemini, agrupando tudo o que é necessário para um fluxo de trabalho específico em um único pacote organizado.

f5ae3e229462c130.png

Uma extensão pode agrupar qualquer combinação de:

  • Comandos de barra personalizados (seus arquivos .toml).
  • Configurações do servidor MCP (que antes ficavam em settings.json).
  • Arquivos de contexto (GEMINI.md) para fornecer instruções e diretrizes específicas ao modelo.
  • Restrições de ferramentas (excludeTools) para criar um ambiente mais seguro e focado.

A Galeria de extensões é o marketplace central para descobrir todas as extensões oficiais do Google e de terceiros:

  1. Abra o seguinte URL no navegador: https://geminicli.com/extensions/
  2. Essa galeria é o mecanismo de capacidade de descoberta do ecossistema. Você pode conferir extensões de empresas como GitHub, Redis e DynaTrace, mostrando a variedade de ferramentas disponíveis.
  3. Role a tela para baixo e encontre o card da extensão do Cloud Run ou acesse o link.
  4. O card fornece uma descrição, o autor (Google) e um botão de comando Copy com um clique. Essa é a maneira mais simples de receber o comando de instalação de uma extensão.

Extensões da CLI do Gemini: comandos de gerenciamento

O comando gemini extensions é o ponto de entrada para gerenciar suas extensões locais.

Execute no terminal para ver a lista de comandos disponíveis.

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:

Os comandos são simples (instalar/desinstalar, listar, atualizar, ativar/desativar etc.), e vamos usar alguns deles neste codelab.

Verificar sua lista atual de extensões

Antes de instalar qualquer coisa, vamos verificar nossa "página em branco".

  1. Execute o comando gemini extensions list:
  2. Você vai ver a seguinte saída, confirmando que nenhuma extensão foi instalada ainda.
No extensions installed.

Como configurar o servidor MCP do Cloud Run

A extensão do Cloud Run disponível na galeria de extensões da CLI do Gemini é um servidor MCP que permite implantar nossos aplicativos no Cloud Run.

Confira abaixo o card da extensão do Cloud Run na galeria de extensões:

ed9b19eac1fbde78.png

Primeiro, instale a extensão do Cloud Run clicando em Copiar comando de instalação, conforme mostrado acima. Em seguida, cole esse comando no terminal do Cloud Shell. Ele deve ser semelhante a este:

gemini extensions install https://github.com/GoogleCloudPlatform/cloud-run-mcp

Ao executar o comando acima, você vai ver uma confirmação necessária. Aprove. A extensão do Cloud Run vai pedir o ID e o local do seu projeto do Google. Forneça essas informações. A extensão do Cloud Run será instalada.

Se você executar o comando gemini extensions list agora, a extensão do Cloud Run vai aparecer instalada, conforme mostrado abaixo:

✓ 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 você iniciar a CLI do Gemini agora e executar o comando /mcp list, vai aparecer o seguinte. Observe as ferramentas e os comandos do servidor MCP do 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

Este é apenas um exemplo de uma extensão da CLI do Gemini que mostramos como configurar. Confira mais opções na galeria de extensões.

10. Casos de uso para testar

A CLI do Gemini pode ser aplicada a uma ampla variedade de casos de uso para desenvolvedores e não desenvolvedores. Confira alguns cenários e, dependendo da sua área de interesse, teste qualquer um ou todos eles.

Em cada um desses casos, o comando é fornecido. Você pode testar isso no modo interativo ou não interativo da CLI do Gemini usando o parâmetro -p ao iniciar a CLI do Gemini.

Vibe coding com a CLI do Gemini

Vamos usar a CLI do Gemini para criar um aplicativo com vibe coding. Nesta tarefa, você vai pedir ao Gemini CLI para gerar um aplicativo e enviar a versão inicial para um repositório do GitHub.

Pré-requisito

Para realizar as tarefas nesta seção, há alguns pré-requisitos:

  • Git
  • CLI do Gemini
  • Configure gh ( ferramenta da CLI do GitHub).
  • Familiaridade com os princípios básicos do Git e um pouco de conhecimento de programação

Vamos presumir que você iniciou a CLI do Gemini em uma pasta específica da sua escolha. No nosso caso, iniciamos a CLI do Gemini na pasta inicial gemini-cli-projects e em outra pasta event-website dentro dela.

Comece com um comando inicial. Pense nisso como uma especificação para seu aplicativo. Modifique como quiser. Durante a sessão com a CLI do Gemini, ela vai pedir permissões para criar arquivos etc. Conceda as permissões necessárias.

Nesta tarefa, não queremos que a CLI do Gemini execute ou teste o aplicativo para nós, porque queremos um pouco mais de controle. Mas a decisão é sua.

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. 

Os próximos comandos e respostas são um exemplo de fluxo que foi observado. A CLI do Gemini vai criar um plano e pedir confirmações / esclarecimentos ou prosseguir. Siga as instruções. Como exemplo, esta é minha conversa:

    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:

Ela até me faz algumas perguntas (mostradas abaixo e que eu respondo):

c6127207c54a776c.png

Em seguida, ele gera o código, pedindo confirmações em vários pontos, e eu dou a permissão necessária para continuar.

Por fim, ele iniciou o servidor e pediu que eu inspecionasse a página:

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.

Confira um exemplo de página gerada:

12664933302b3867.png

Você pode continuar fazendo mais mudanças com a ajuda da CLI do Gemini. Quando estiver satisfeito com as mudanças, envie para um repositório do GitHub.

Primeiro, vamos criar um arquivo .gitignore com a ajuda da CLI do Gemini.

Create a .gitignore file for this project.

A próxima etapa é dar instruções para a CLI do Gemini enviar esse repositório para nossa conta do GitHub. Isso vai exercitar as ferramentas do servidor MCP do GitHub em segundo plano.

Dê um comando semelhante a este:

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

Ele vai passar por vários comandos aqui:

  1. Crie o repositório.
  2. Ele vai usar vários comandos do Git : init, add e commit para gerenciar o repositório Git local.
  3. Em seguida, ele vai configurar o Git remoto e fazer um push.

Observação:em alguns casos, a CLI do Gemini pode atingir o tempo limite ou usar um nome de usuário incorreto, etc. Interaja com ela e sugira as correções.

Se tudo der certo, você terá um repositório do GitHub. Confira abaixo uma captura de tela de exemplo:

b393c67b13ddf19a.png

Observe que você não gerou um README.md para este projeto. Isso é um bom exercício para a próxima seção, em que vamos trabalhar com o repositório que você acabou de criar.

Usar a CLI do Gemini para trabalhar em um repositório do GitHub

Neste caso de uso, você vai usar a CLI do Gemini para trabalhar com um repositório do GitHub. Você vai realizar várias tarefas, incluindo:

  • Noções básicas sobre a base de código
  • Gerar a documentação
  • Implementar um novo recurso
  • Confirme e envie as mudanças de volta para o repositório
  • Trabalhar em um problema do GitHub e implementar as mudanças propostas

Isso vai dar uma boa base para trabalhar com seus repositórios e usar a CLI do Gemini como um assistente para essas tarefas específicas do desenvolvedor.

Pré-requisito

Para realizar as tarefas desta seção, você precisa fazer o seguinte:

  • Git
  • CLI do Gemini e gh ( ferramenta da CLI do GitHub).
  • Familiaridade com os conceitos básicos do Git e um pouco de conhecimento de programação. Vamos usar o Node.js neste exemplo porque você já pode ter o ambiente pronto na sua máquina devido à instalação da CLI do Gemini. Mas, depois, você pode escolher um repositório com uma linguagem de programação e um framework diferentes.
  • Você precisa ter concluído a seção anterior e ter o repositório em mãos, onde criamos um site de palestras sobre eventos.

Vamos continuar usando a CLI do Gemini na pasta/diretório que você usou para gerar o aplicativo Event Talks. Se necessário, clone o repositório na sua máquina local e inicie a CLI do Gemini nesse diretório. Teste os seguintes cenários:

Noções básicas sobre a base de código

  • Quero entender esse projeto em detalhes. Me ajude a entender os principais recursos e depois divida em lado do servidor e do cliente. Pegue um fluxo de amostra e mostre como a solicitação e a resposta funcionam.
  • Explain @server.js

Como gerar um arquivo README

  • Gere um arquivo README para este projeto.

Implementar um novo recurso

  • Quero implementar um novo recurso em que o usuário também possa pesquisar por um determinado orador. Primeiro, mostre um plano de como você implementaria essa mudança. Depois, podemos gerar o código.

Ele vai fornecer um plano que você pode aprovar. Com a aprovação, a CLI do Gemini vai fazer essas mudanças. Teste as mudanças e, se houver bugs (o que é provável), peça ao Gemini para a CLI do Gemini corrigir.

Quando as mudanças estiverem boas, siga as mesmas etapas para fazer commit e enviar por push ao repositório remoto. Ele pode até fazer isso automaticamente para você. Você sempre pode perguntar o que a CLI do Gemini pode ou não fazer.

Gerar problemas com base nos recursos sugeridos

Vamos tentar algo interessante aqui. Você vai pedir ao Gemini CLI como ela pode melhorar a experiência do usuário desse aplicativo e, com base na avaliação, criar sugestões como problemas no mesmo repositório do GitHub. Ele vai usar a ferramenta create_issue do servidor MCP do GitHub.

Tente o seguinte comando:

  • Quero que você avalie o aplicativo do ponto de vista da experiência do usuário. Facilidade de uso, capacidade de resposta, mensagens úteis e muito mais. Crie uma lista de melhorias e crie-as como problemas no repositório do GitHub.

O ideal é que ele compartilhe as melhorias primeiro com você e depois crie os problemas no repositório do GitHub com sua permissão. Confira um exemplo de captura de tela da nossa execução:

10a31e665be46f9d.png

Trabalhar em um problema do GitHub e implementar as mudanças propostas

Agora você pode pegar um dos problemas gerados anteriormente e pedir ao Gemini CLI para trabalhar e implementá-lo.

Confira abaixo um exemplo de problema gerado:

2778bde35f41efe9.png

Pegue o URL do problema inteiro e forneça um comando como este:

  • Leia o problema: <YOUR_ISSUE_URL> e entenda quais mudanças precisam ser feitas. Primeiro, discuta o plano e depois mostre as mudanças propostas no código.

Aprove as mudanças e envie-as para o repositório. Você pode até pedir para ele encerrar o problema.

(Opcional) Atividades cotidianas

Os casos de uso abaixo são tarefas que você pode acabar fazendo com frequência. Isso inclui organizar arquivos em pastas, buscar e resumir conteúdo da Web, processar arquivos de imagem e extrair conteúdo deles, trabalhar com bancos de dados e muito mais.

Explore os casos de uso que quiser.

Organizar arquivos/pastas

Você pode usar a CLI do Gemini para organizar os arquivos de acordo com os tipos em várias pastas, conforme necessário. Acesse uma pasta na sua máquina que tenha vários arquivos .txt, .png, .jpg, .pdf, .mp4 e outros. Geralmente, é a área de trabalho ou a pasta "Downloads".

Confira abaixo uma pasta de exemplo e o conteúdo dela. Você pode ter outros arquivos:

7011e3dfaf628e9b.png

Navegue até essa pasta e inicie a CLI do Gemini. Primeiro, peça à CLI do Gemini para criar algumas pastas: "Imagens", "Documentos" e "Vídeos". Depois, peça para ela organizar os arquivos nas pastas.

A CLI do Gemini geralmente pede permissão antes de executar comandos, principalmente aqueles que modificam o sistema de arquivos (como gravar, mover ou excluir arquivos). Sempre revise esses comandos com atenção antes de conceder permissão. Essa é sua rede de segurança.

Create the following folders "Images","Documents","Videos"

Em seguida, dê o seguinte comando:

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.

Confira abaixo um exemplo do estado final da pasta. Você vai ver novas subpastas criadas e os arquivos movidos para as respectivas subpastas, dependendo do tipo deles.

4c1ee9ddea4b3f5f.png

Confira alguns outros cenários de organização (os comandos são fornecidos ao lado de cada cenário):

  1. Resumo:para cada documento na pasta "Documents", crie um arquivo txt na mesma pasta chamado "summary_ORIGINAL_FILENAME.txt" que contenha um resumo de três frases dos principais pontos do documento.
  2. Categorizar por tipo:verifique todos os arquivos PDF e DOCX neste diretório. Mova todos os arquivos com "invoice" no nome ou conteúdo para a pasta "Financial/Invoices". Mova os arquivos com "receipt" para "Financial/Receipts". Todos os outros arquivos .docx vão para "Relatórios".
  3. Extração de informações importantes (e "tagging"): para cada arquivo PDF na pasta "Financial/Invoices", leia o conteúdo. Se você encontrar uma data, renomeie o arquivo para incluir essa data no formato AAAA-MM-DD, por exemplo, "invoice_2025-07-26_original_name.pdf".

Organizar imagens

Vamos ver como organizar o conteúdo de imagens na sua máquina.

Para testar:

  • Você precisa ter um diretório/pasta com vários arquivos de imagem (.jpg, .png etc.). Inclua algumas com dados EXIF (a maioria das fotos de câmeras/smartphones tem isso).
  • Navegue até esse diretório.
  • Inicie a CLI do Gemini.

Teste um dos seguintes cenários (os comandos são fornecidos ao lado de cada um):

  • Renomear por data (dados EXIF): renomeie todos os arquivos .jpg e .png neste diretório para incluir a data de criação deles nos dados EXIF no formato "AAAAMMDD_HHMMSS_nome_original.jpg". Se nenhuma data EXIF for encontrada, use a data da última modificação do arquivo.
  • Criar descrições de imagens:para cada imagem na pasta, descreva o que há nela e salve a descrição em um arquivo de texto chamado "description_ORIGINAL_FILENAME.txt" no mesmo diretório.
  • Identifique duplicados (conceitual, requer lógica mais avançada): encontre imagens duplicadas nesta pasta com base no conteúdo visual e liste os nomes dos arquivos. Não exclua ainda.

Resumir artigos (arquivos locais ou da Web)

Para cada um dos cenários abaixo, mude o URL, o tema de interesse e os nomes dos arquivos locais conforme necessário. Os nomes de arquivos fornecidos são exemplos. Você pode substituí-los pelos nomes dos arquivos que estão no seu sistema.

Teste um dos seguintes cenários (os comandos são fornecidos ao lado de cada um):

  • Resumir um artigo da Web (URL único): acesse https://medium.com/google-cloud/getting-started-with-gemini-cli-8cc4674a1371 e resuma os três principais pontos importantes deste artigo de notícias.
  • Resumir vários artigos da Web (por exemplo, de uma pesquisa): encontre os artigos de notícias mais recentes sobre "CLI do Gemini" usando a Pesquisa Google. Resuma cada um dos cinco principais artigos relevantes em duas ou três frases e liste os URLs deles.
  • Resumir um arquivo de texto local:resuma os principais pontos do artigo em "my_research_paper.txt". Concentre-se na metodologia e nas conclusões.
  • Resumir um PDF local:leia "financial_report_Q2_2025.pdf". Resuma a performance financeira e os principais desafios mencionados.

Extrair informações específicas (arquivos locais ou da Web)

Para cada um dos cenários abaixo, mude o URL, o tema de interesse e os nomes dos arquivos locais conforme necessário. Os nomes de arquivos fornecidos são exemplos. Você pode substituí-los pelos nomes dos arquivos que estão no seu sistema.

Teste um dos seguintes cenários (os comandos são fornecidos ao lado de cada um):

  • Extraia entidades de um artigo local:em "biography.txt", liste todas as pessoas nomeadas e as datas importantes associadas a elas.
  • Extrair dados de uma tabela em um PDF:em "quarterly_sales.pdf", extraia os dados da tabela na página 3 que mostra "Vendas de produtos por região" e apresente-os em formato de tabela Markdown.
  • Extrair manchetes e fontes de um site de notícias:acesse "https://news.google.com/" (ou um site de notícias semelhante). Extraia as principais manchetes da primeira página e as fontes de notícias correspondentes. Apresente-os como uma lista com marcadores.
  • Encontrar especificações de produtos em uma página de e-commerce:acesse "https://www.amazon.in/Google-Cloud-Certified-Associate-Engineer/dp/1119871441" (exemplo de um livro). Extraia o título do livro, o autor e outros detalhes. Apresente isso em um formato JSON estruturado.
  • Extraia a duração de um vídeo em um determinado formato (por exemplo, "2h37m42s").

Responder a perguntas com base no conteúdo (comportamento semelhante ao RAG)

Para cada um dos cenários abaixo, mude o URL, o tema de interesse e os nomes dos arquivos locais conforme necessário. Os nomes de arquivos fornecidos são exemplos. Você pode substituí-los pelos nomes dos arquivos que estão no seu sistema.

Teste um dos seguintes cenários (os comandos são fornecidos ao lado de cada um):

  • Perguntas e respostas em um documento local:estou anexando "user_manual.pdf". Quais são as etapas para resolver problemas de conectividade de rede?
  • Perguntas e respostas em uma página da Web:usando o conteúdo de"https://www.who.int/news-room/fact-sheets/detail/climate-change-and-health", quais são os principais riscos à saúde associados à mudança climática de acordo com a OMS?
  • Comparar informações de várias fontes: tenho dois artigos de notícias, "article1.txt" e "article2.txt", que discutem as mudanças recentes na política econômica. Compare e contraste os pontos de vista sobre o possível impacto nas pequenas empresas.

Geração de conteúdo com base em informações extraídas

Para cada um dos cenários abaixo, mude o URL, o tema de interesse e os nomes dos arquivos locais conforme necessário.

Teste um dos seguintes cenários (os comandos são fornecidos ao lado de cada um):

  • Gerar um resumo de notícias com base em um artigo:leia @tech_innovation_article.txt. Escreva uma breve notícia interessante (cerca de 150 palavras) adequada para um boletim informativo de uma empresa, destacando a nova tecnologia e o potencial dela.
  • Escreva um e-mail resumindo a transcrição de uma reunião:aqui está um arquivo de transcrição de reunião: @meeting_transcript.txt. Escreva um e-mail para a equipe resumindo as principais decisões tomadas e as ações necessárias atribuídas, incluindo quem é responsável por cada uma.

Suporte multimodal da CLI do Gemini

A CLI do Gemini tem suporte para vários modelos pelo Gemini, e você pode pedir que ela processe arquivos de diferentes formatos de conteúdo de acordo com suas necessidades.

Você vai processar várias imagens de faturas com a CLI do Gemini e extrair informações importantes delas. Siga estas etapas:

  • Crie uma pasta na sua máquina e faça o download de algumas faturas do seguinte repositório do GitHub.
  • Inicie a CLI do Gemini nessa pasta

Dê o seguinte comando para extrair informações das faturas em forma de tabela.

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.

O ideal é que você receba uma saída como esta:

7203d699d875a91f.png

Confira outro cenário em que você pode pedir mais colunas derivadas. Digamos que você queira mostrar um emoji de cruz vermelha para todas as datas de vencimento de faturas que já passaram. Você pode dar um comando da seguinte forma:

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.

Isso produz a seguinte saída:

e11fcde0400f5a0b.png

Aplique isso a qualquer um dos seus arquivos que estejam em formatos diferentes de texto.

Usar a CLI do Gemini para trabalhar com bancos de dados

Você pode usar a CLI do Gemini para trabalhar com mais eficiência em vários bancos de dados. Você pode usar esse recurso em vários cenários: consultas com linguagem natural, exportação de dados, design de esquemas de banco de dados, geração de dados de teste realistas e muito mais.

Você vai usar o SQLite3 para fazer isso. É necessário instalar o SQLite3 e ter o banco de dados de exemplo Chinook.

Confira abaixo instruções breves para configurar o SQLite3:

  1. macOS: o SQLite3 vem pré-instalado. Verifique com sqlite3 --version. Se necessário, instale com o Homebrew: brew install sqlite3.
  2. Windows: faça o download dos binários pré-compilados no site do SQLite (link em inglês). Extraia os arquivos para um diretório (por exemplo, C:\sqlite) e adicione esse diretório à variável de ambiente PATH do sistema.
  3. Linux: Debian/Ubuntu: sudo apt update && sudo apt install sqlite3

Faça o download do banco de dados de amostra Chinook (link direto para download).

Para executar esses comandos, crie uma pasta (database-tasks) no diretório gemini-cli-projects. Copie o arquivo do banco de dados Chinook para essa pasta. Verifique se a ferramenta sqlite3 está configurada no seu sistema e disponível no caminho para que a CLI do Gemini possa usá-la. Inicie a CLI do Gemini.

Confira abaixo o diagrama do esquema de banco de dados:

4178b54e03a07d60.png

Suponha que você esteja em uma pasta chamada database-tasks e que o arquivo do banco de dados Chinook se chame chinook.db.

Confira abaixo alguns comandos que podem ajudar você a trabalhar com bancos de dados. Vamos abordar brevemente o primeiro para demonstrar a permissão que será solicitada.

Comece com o comando para listar as tabelas presentes no banco de dados:

What tables are present in the file: chinook.db 

Isso usa a ferramenta para ler o arquivo e, em seguida, quer usar o utilitário sqlite3 presente no seu sistema para fazer o necessário:

a8d782201eba1eb8.png

Conceda permissão para executar uma vez e receber o resultado esperado:

69e96f22610e7892.png

Teste os seguintes comandos ou qualquer outro que você quiser:

  • Quantos funcionários há?
  • Qual é o esquema da tabela de faturas?
  • Quais são as três principais faturas por total e quais clientes as emitiram?

A CLI do Gemini cuida de duas coisas: gerar a instrução SQL correta para atender ao seu requisito e fornecer o comando sqlite3 correto.

Usar a CLI do Gemini para gerar dados

Você pode pedir para a CLI do Gemini gerar dados em vários formatos. Isso pode variar de partes de conteúdo a dados JSON que talvez você precise simular. Vamos focar aqui em cenários aplicáveis a desenvolvedores/testadores.

Confira alguns comandos para testar:

Gerar dados JSON de avaliações de clientes de amostra

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

Gerar respostas de API simuladas (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').

Gerar instruções de inserção de banco de dados de amostra (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'.

Gerar dados CSV para carregamento/análise de dados

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

Gerar um arquivo de configuração (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.

Geração de dados de teste para casos extremos/validação

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. Parabéns

Parabéns! Você conheceu a CLI do Gemini, suas funcionalidades e aplicou a ferramenta a alguns casos de uso.

Documentos de referência