1. Introdução
Neste codelab, você vai aprender sobre a CLI do Gemini, um agente de IA de código aberto que leva o poder do Gemini diretamente ao seu terminal.
O que você vai aprender
- Instalar e configurar a CLI do Gemini
- Conhecer ferramentas, comandos integrados e configurar servidores MCP na CLI do Gemini
- Personalizar a CLI do Gemini usando o arquivo
GEMINI.md - 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, incluindo 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 usar o vibe coding 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
- No console do Google Cloud, na página de seletor de projetos, selecione ou crie um projeto do Google Cloud.
- Confira se o faturamento está ativado para seu projeto do Cloud. Saiba como verificar se o faturamento está ativado em um projeto.
- 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.

- 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
- Execute o comando a seguir no Cloud Shell para confirmar se o comando gcloud sabe sobre seu projeto.
gcloud config list project
- Se o projeto não estiver definido, use este comando:
gcloud config set project <YOUR_PROJECT_ID>
3. Instalação
Antes de configurar e executar a CLI do Gemini, crie uma pasta que será usada como pasta inicial para todos os projetos criados nela. Esse é um ponto de partida para a CLI do Gemini trabalhar, embora também faça referência a outras pastas no seu sistema, que você vai conhecer mais tarde, 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
Você pode 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 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:
- 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
- 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, a seguinte tela vai aparecer e perguntar sobre a escolha de um tema. Selecione uma opção:

Depois de selecionar essa opção, você precisará informar 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. Essa licença sem custo financeiro dá acesso ao Gemini 2.5 Pro e à janela de contexto de 1 milhão de tokens. O nível sem custo financeiro permite 60 solicitações de modelo por minuto e 1.000 solicitações por dia sem custos financeiros.
Se você atingir os limites da cota sem custo financeiro atual oferecida às Contas do Google, use a chave de API do Gemini ou a Vertex AI do Google Cloud, em que você precisará 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.

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:

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 armazenado 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):
- Sistema:
/etc/gemini-cli/settings.json(aplicável a todos os usuários, substitui as configurações do usuário e do espaço de trabalho). - Workspace:
.gemini/settings.json(substitui as configurações do usuário). - Usuário:
~/.gemini/settings.json.
Usuário do Windows: %USERPROFILE%.gemini\settings.json (que geralmente é expandido para C:\Users<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.
{
"theme": "Default",
"selectedAuthType": "oauth-personal" or "cloud-shell"
}
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:
GoogleSearch Searching the web for: "famous quote on Artificial Intelligence and who said it" ...
Search results for "famous quote on Artificial Intelligence and who said it" returned.
✦ "The development of full artificial intelligence could spell the end of the human race." - Stephen Hawking.
Você vai notar que nossa consulta resultou em uma ferramenta GoogleSearch (uma ferramenta integrada na CLI do Gemini) que foi invocada. Em outras palavras, você já usou uma das ferramentas integradas da CLI do Gemini, o GoogleSearch, que fundamenta as respostas com base em informações da Web. Você vai saber mais sobre as Ferramentas na próxima seção.
Uma maneira rápida de entender a CLI do Gemini e os vários comandos que ela oferece é digitar /help (barra) para ver vários comandos e atalhos de teclado.
Vamos sair da CLI do Gemini por enquanto. Você pode fazer isso com o comando /quit ou pressionar Ctrl-C duas vezes na sessão interativa do terminal da CLI do Gemini.
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 o modelo Pro ou Flash. No momento da redação deste laboratório, esses são os únicos dois modelos compatíveis. Por padrão, o modelo Gemini 2.5 Pro é usado, mas se você quiser usar o modelo Flash, faça isso ao iniciar a CLI do Gemini com o parâmetro -m, como 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, conforme mostrado abaixo:

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

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 de um script ou qualquer outro processo de automação. Use o parâmetro -p para fornecer o comando à CLI do Gemini, conforme mostrado abaixo, ou apenas use o argumento posicional para dar o comando.
gemini "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.
7. CLI do Gemini: ferramentas integradas
A CLI do Gemini vem com um conjunto de ferramentas integradas, e a documentação de ferramentas afirma: "O modelo 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:
- Codebase Investigator Agent (codebase_investigator)
- Edit (replace)
- FindFiles (glob)
- GoogleSearch (google_web_search)
- ReadFile (read_file)
- ReadFolder (list_directory)
- SaveMemory (save_memory)
- SearchText (search_file_content)
- Shell (run_shell_command)
- WebFetch (web_fetch)
- WriteFile (write_file)
- WriteTodos (write_todos)
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:
GoogleSearch Searching the web for: "latest finance headlines today"
Search results for "latest finance headlines today" returned.
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. Selecione "Permitir uma vez" por enquanto.

Ela grava as informações no arquivo, e uma mensagem de sucesso é exibida abaixo:
✦ I have successfully saved the latest finance headlines into the file finance-news-today.txt.
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:

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:

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

Você pode imprimir o conteúdo do arquivo com o comando cat hoje mesmo.

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 para a CLI do Gemini 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, em seguida, use a ferramenta WebFetch para acessar e mostrar o conteúdo do feed RSS.
9. Extensões da CLI do Gemini
Como a documentação afirma, as extensões da CLI do Gemini agrupam comandos, servidores MCP e comandos personalizados em um formato familiar e fácil de usar. Com as extensões, é possível ampliar os recursos da CLI do Gemini e compartilhar esses recursos 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 Gemini, agrupando tudo o que é necessário para um fluxo de trabalho específico em um único pacote organizado.

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.
Conhecer a galeria de extensões
A Galeria de extensões é o marketplace central para descobrir todas as extensões oficiais do Google e de terceiros:
- Abra o seguinte URL no seu navegador:
https://geminicli.com/extensions/browse/. - 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.
- Role a tela para baixo e encontre o card de extensão do Cloud Run.
- O card fornece uma descrição, o autor (Google) e um botão de comando
Copycom 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.
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".
- Execute o comando
gemini extensions list: - Você vai ver a seguinte saída, confirmando que nenhuma extensão foi instalada ainda.
No extensions installed.
Configurar o servidor MCP do GitHub
Um dos tipos de extensão da CLI do Gemini é um servidor MCP. Um servidor MCP é um aplicativo que expõe ferramentas e recursos à CLI do Gemini por meio do Protocolo de Contexto de Modelo, permitindo que ela interaja com sistemas e fontes de dados externos. Os servidores MCP atuam como uma ponte entre o modelo Gemini e seu ambiente local ou outros serviços, como APIs.
O servidor MCP do GitHub está disponível na Galeria de extensões do Gemini. Clique nele para abrir o card "Extensões", onde também vai aparecer o comando para instalar a extensão:

Basta copiar ou usar o comando abaixo:
gemini extensions install https://github.com/github/github-mcp-server
Continue com as permissões necessárias. Depois de instalada, a extensão vai aparecer na lista de extensões quando você executar o comando gemini extensions list.
✓ github (1.0.0)
ID: faa318861b48de8d83c95eb8cd5e82c02393493978d198a0e7bf67fcb1bd22cb
name: c0b0109d9439de57fe3cf03abeccbc52f4c98170c732d3b69af5e6395ace574e
Path: /home/romin/.gemini/extensions/github
Source: https://github.com/github/github-mcp-server (Type: git)
Enabled (User): true
Enabled (Workspace): true
MCP servers:
github
Você pode conferir o caminho da extensão e, nessa pasta, vai encontrar um arquivo chamado gemini-extension.json, cujo conteúdo é mostrado abaixo:
{
"name": "github",
"version": "1.0.0",
"mcpServers": {
"github": {
"description": "--description–",
"httpUrl": "https://api.githubcopilot.com/mcp/",
"headers": {
"Authorization": "Bearer $GITHUB_MCP_PAT"
}
}
}
}
Você vai notar que ele tem o token de acesso pessoal (PAT) sendo lido por uma variável de ambiente. Primeiro, você precisa ter um token de acesso pessoal (PAT) do GitHub. Depois disso, verifique se você criou um arquivo .env e colocou esse valor nele ou criou uma variável de ambiente da seguinte maneira (substitua PAT_VALUE pelo valor real):
export GITHUB_MCP_PAT=PAT_VALUE
Reinicie a CLI do Gemini. Depois de aberto, use o comando /mcp list para ver a lista de servidores MCP e as respectivas ferramentas disponíveis. O servidor MCP do GitHub vai aparecer em verde com as ferramentas dele (mais de 30). Confira uma lista parcial abaixo:
🟢 github (do github) - Pronto (40 ferramentas)
Ferramentas:
- add_comment_to_pending_review
- add_issue_comment
- assign_copilot_to_issue
- create_branch
- create_or_update_file
- create_pull_request
- create_repository
- delete_file
- fork_repository
- get_commit
- get_file_contents
- get_label
- get_latest_release
- get_me
- get_release_by_tag
- get_tag
- get_team_members
- get_teams
- issue_read
Vamos começar com um comando que vai invocar uma das ferramentas do servidor MCP do GitHub. Dê o seguinte comando: quem sou eu no GitHub? Assim, a CLI do Gemini vai selecionar a ferramenta correta e pedir sua permissão.

Depois que você der o comando, ele vai recuperar o resultado, conforme mostrado abaixo:
✦ You are rominirani, a Developer Advocate at Google Cloud, located in Mumbai. You have 125 public repositories and 256 followers.
Agora, trabalhe com um dos seus projetos do GitHub. Faça consultas em linguagem natural, como:
- Descreva o <repo-name> para mim.
- Clone o <repo-name> na minha máquina local.
- Descreva @<file-name> ou @<directory-name>/
- Quais são os diferentes componentes deste repositório?
- Fiz as mudanças necessárias. Você pode enviar as alterações para o GitHub usando as ferramentas do servidor MCP do GitHub?
Você vai encontrar um exercício para trabalhar com o servidor MCP do GitHub em detalhes mais adiante no laboratório.
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:

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. Dê sua aprovação. 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: /home/romin/.gemini/extensions/cloud-run
Source: https://github.com/GoogleCloudPlatform/cloud-run-mcp (Type: git)
Enabled (User): true
Enabled (Workspace): true
Context files:
/home/romin/.gemini/extensions/cloud-run/gemini-extension/GEMINI.md
MCP servers:
cloud-run
Se você iniciar a CLI do Gemini agora e executar o comando /mcp list, vai aparecer o seguinte:
🟢 cloud-run (from cloud-run) - Ready (8 tools, 2 prompts)
Tools:
- create_project
- deploy_container_image
- deploy_file_contents
- deploy_local_folder
- get_service
- get_service_log
- list_projects
- list_services
Prompts:
- deploy
- logs
Acima, mostramos apenas algumas extensões da CLI do Gemini e como configurá-las. Confira a Galeria de extensões para descobrir mais opções ou faça um codelab " Como começar a usar as extensões da CLI do Gemini".
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 à CLI do Gemini para gerar um aplicativo e enviar a versão inicial para um repositório do GitHub.
Pré-requisito
Para executar as tarefas nesta seção, há alguns pré-requisitos:
- Git
- A CLI do Gemini com a extensão da CLI do Gemini no GitHub (já fizemos isso) ou se você configurou a
gh( ferramenta de linha de comando do GitHub), isso também funciona. - 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.
Comece com um comando inicial. 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, já que 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 seguir em frente. Siga as instruções. Como exemplo, esta é minha conversa:
1. Backend (Node.js/Express):
* Set up an Express server to serve the static frontend files.
* Create an /api/schedule endpoint that will:
* Generate the event schedule dynamically, including talk timings and the lunch break, based on your requirements.
* Store mock talk data (title, speakers, category, description).
* Filter the schedule based on a category query parameter.
2. Frontend (HTML, CSS, JavaScript):
* Create an index.html file for the main structure.
* Develop style.css for a clean and responsive design.
* Write script.js to:
* Fetch the schedule data from the backend.
* Dynamically render the talks and lunch break on the page.
* Implement a search input that filters talks by category, updating the displayed schedule without a full page reload.
3. Schedule Logic:
* The backend will handle calculating the precise start and end times for each 1-hour talk, factoring in the 10:00 AM start, 10-minute transitions, and the 1-hour lunch break.
Before I proceed with the code, could you please clarify the following:
* Example Talk Data: Could you provide some example talk titles, speakers, categories (keywords), and descriptions? This will help me create realistic dummy data for the schedule.
* Lunch Break Placement: Where should the 1-hour lunch break be placed in the schedule? (e.g., after the 3rd talk, at 1 PM, etc.)
* Styling Preferences: Do you have any specific styling preferences (e.g., color scheme, modern/minimalist, etc.)? If not, I will go with a clean, simple design.
✦ I will create a single-page website for your event. Here's my plan:
✓ WriteTodos Set 7 todo(s)
✦ I am waiting for your clarifications regarding the example talk data, lunch break placement, and styling preferences before I proceed with generating the code.
Por fim, ele me deu o seguinte resumo:
✦ Instructions to Run and Test Locally:
1. Start the server:
Open your terminal in the project directory (/home/romin/gemini-cli-projects/event-website/) and run:
1 node server.js
You should see a message in the terminal indicating: Server running on http://localhost:3000.
2. Open in your browser:
Open your web browser and navigate to:
http://localhost:3000
3. Test functionality:
* You should see the event schedule displayed on the page, with talks and a lunch break.
* Search by category: In the "Search by category..." input box, type a category keyword (e.g., "AI", "Web Development", "Python", "Security").
* Click the "Search" button. The schedule displayed should filter to only show talks matching that category.
* Click the "Reset" button to clear the search filter and view the full schedule again.
Let me know if you encounter any issues or if you'd like to make any modifications or additions to the website!
Ao seguir as instruções para iniciar o servidor e navegar até a página inicial, recebemos um site de exemplo como o mostrado abaixo (você vai ver uma variante de um site semelhante se usou o mesmo comando):

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 deve 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:
- Crie o repositório.
- Ele vai usar vários comandos do Git : init, add e commit para gerenciar o repositório Git local.
- 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:

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 com a extensão MCP do GitHub para a CLI do Gemini (já fizemos isso) ou se você configurou
gh( ferramenta CLI do GitHub), isso também funciona. - Familiaridade com os conceitos básicos do Git e um pouco de conhecimento de programação. Vamos usar o Node.js neste exemplo porque talvez você já tenha o ambiente pronto na sua máquina devido à instalação da CLI 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
READMEpara este projeto.
Implementar um novo recurso
- Quero implementar um novo recurso em que o usuário também possa pesquisar por um determinado alto-falante. 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. Após 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 para a CLI do Gemini corrigir.
Quando as mudanças estiverem boas, siga as mesmas etapas para confirmar e enviar por push ao repositório remoto.
Gerar problemas com base em recursos sugeridos
Vamos tentar algo interessante aqui. Você vai perguntar à CLI do Gemini 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 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:

Trabalhar em um problema do GitHub e implementar as mudanças propostas
Agora você pode pegar um dos problemas gerados anteriormente e pedir para a CLI do Gemini trabalhar e implementar a solução.
Confira abaixo um exemplo de problema gerado:

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 fechar o problema.
(Opcional) Atividades cotidianas
Os casos de uso abaixo são tarefas que você pode acabar fazendo regularmente. 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:

Navegue até essa pasta e inicie a CLI do Gemini. Primeiro, você vai pedir à CLI do Gemini para criar algumas pastas: "Imagens", "Documentos" e "Vídeos". Depois, vai pedir para ela organizar os arquivos nas pastas.
A CLI do Gemini geralmente pede sua permissão antes de executar comandos, especialmente aqueles que modificam seu 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 elas, dependendo do tipo.

Confira alguns outros cenários de organização (os comandos são fornecidos ao lado de cada cenário):
- 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.
- 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".
- 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): renomeia todos os arquivos .jpg e .png neste diretório para incluir a data de criação deles dos 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.
- Identificar 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. Para os cinco principais artigos relevantes, resuma cada um em duas ou três frases e liste os URLs.
- 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.
- Extraia 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 um 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, o autor e outros detalhes do livro. 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 o arquivo "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 e interessante notícia (cerca de 150 palavras) adequada para um boletim informativo de uma empresa, destacando a nova tecnologia e o potencial dela.
- Elabore um e-mail resumindo uma transcrição de 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 atribuídas, incluindo quem é responsável por cada uma delas.
Suporte multimodal da CLI do Gemini
A CLI do Gemini tem suporte para vários modelos via Gemini, e você pode pedir para ela processar 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 parecida com esta:

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:

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:
- macOS: o SQLite3 vem pré-instalado. Verifique com
sqlite3 --version. Se necessário, instale com o Homebrew:brew install sqlite3. - 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). Adicione esse diretório à variável de ambiente PATH do seu sistema. - Linux: Debian/Ubuntu:
sudo apt update && sudo apt install sqlite3
Faça o download do banco de dados de amostra Chinook (link direto para fazer o 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:

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:

Forneça a permissão para executar uma vez e receber o resultado esperado:

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 Gemini para gerar dados
Você pode pedir à CLI do Gemini para produzir 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 exemplos de avaliações de clientes
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.