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 projeto da CLI do Gemini é de código aberto, e você pode conferir o roteiro público aqui.
Durante o codelab, você vai usar uma abordagem gradual em atividades como:
- Como instalar a CLI do Gemini
- Configuração básica
- Como usar ferramentas e comandos integrados na CLI do Gemini
- Personalizar a CLI do Gemini usando o arquivo
GEMINI.md
- Analisar alguns casos de uso com a CLI do Gemini
O que é necessário
- Navegador da Web Google Chrome
- Uma conta do Gmail
- Uma máquina local com o Node 20 ou mais recente instalado.
Este codelab foi criado para usuários e desenvolvedores de todos os níveis, incluindo iniciantes.
2. Instalação
Antes de executar a configuração e a CLI do Gemini, vamos criar uma pasta que será usada como pasta inicial para todos os projetos que criarmos nela. Esse é um ponto de partida para a CLI do Gemini trabalhar, mas ela também vai referenciar outras pastas no seu sistema, que vamos abordar 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
Para executar a CLI Gemini, use um dos seguintes métodos:
- Execute com o seguinte comando:
npx https://github.com/google-gemini/gemini-cli
- Primeiro, instale a CLI Gemini globalmente no seu sistema. Verifique se você tem direitos de administrador para fazer isso.
npm install -g @google/gemini-cli
e execute com o seguinte comando:
gemini
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 e aguardando seu comando. Confira abaixo uma captura de tela de exemplo:
Digite /help
(barra) para ver vários comandos e atalhos de teclado, conforme mostrado abaixo:
Nossa primeira interação com a CLI do Gemini
Digite sua primeira mensagem na caixa. Vamos dar a ele uma consulta como:
Você vai notar que nossa consulta resultou em uma ferramenta GoogleSearch
(uma ferramenta integrada na CLI do Gemini) que foi invocada. Essa é uma maneira interessante de usar uma das ferramentas integradas da CLI do Gemini, o GoogleSearch
, que fundamenta as respostas com base em informações da Web. Vamos falar mais sobre as ferramentas na próxima seção.
Vamos sair da CLI do Gemini por enquanto. Faça isso com o comando /quit
ou execute Ctrl-C
duas vezes na sessão interativa do terminal da CLI do Gemini.
Arquivo de personalização da CLI do Gemini : settings.json
Se você se lembra de quando iniciamos a CLI do Gemini pela primeira vez, foi solicitado que selecionássemos um tema e um método de autenticação. Nas execuções subsequentes da CLI 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 ordem de precedência:
- Espaço de trabalho:
.gemini/settings.json
(substitui as configurações do usuário e do sistema). - Usuário:
~/.gemini/settings.json
(substitui as configurações do sistema). - Sistema:
/etc/gemini-cli/settings.json
(válido para todos os usuários).
Se você se lembra, ao selecionar o tema, pedimos que as configurações fossem salvas 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"
}
3. Parâmetros de comando da CLI do Gemini
Há alguns parâmetros de linha de comando que podem ser fornecidos ao iniciar a CLI 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 o 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 de baixo à direita do terminal da CLI do Gemini, conforme mostrado abaixo:
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 de 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"
Não é possível continuar a conversa com perguntas complementares.
4. 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 do Gemini usa essas ferramentas para interagir com seu ambiente local, acessar informações e realizar ações. Essas ferramentas melhoram os recursos da CLI, permitindo que ela vá além da geração de texto e ajude com uma ampla variedade de tarefas".
Para conferir uma lista das ferramentas integradas atuais, basta invocar o comando /tools
, conforme mostrado abaixo:
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 gravação no sistema local, leitura de um sistema externo, acesso à rede externa e assim por diante.
Embora haja um --yolomode
disponível ao iniciar a CLI, que não vamos usar, a CLI do Gemini vai pedir permissão para executar a ferramenta escolhida. Você pode negar a permissão, permitir que ela seja executada uma vez ou conceder permissão geral para que ela seja executada sempre. Você tem e deve ter controle total sobre as coisas.
Vamos dar um comando que faça a CLI do Gemini escolher uma das ferramentas integradas para executar e que nos dê uma boa compreensão de como tudo funciona.
Queremos receber informações sobre as últimas notícias financeiras do mundo todo e salvar isso em um arquivo no nosso diretório de trabalho local, de onde iniciamos a CLI do Gemini. Enviamos 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).
Primeiro, ele invoca a ferramenta GoogleSearch
para pesquisar na Web.
Quando a pesquisa é concluída, ela recupera os dados, conforme mostrado abaixo:
Depois disso, ele estará pronto para gravar no arquivo e usará a ferramenta WriteFile
, mas como essa é uma operação sensível (gravar), ele vai pedir sua permissão. Você pode decidir o tipo de permissão, ou seja, permitir uma vez, permitir sempre etc. Por enquanto, vamos selecionar "Permitir uma vez".
Isso vai gravar as informações no arquivo, e uma mensagem de sucesso será mostrada abaixo:
Como verificamos se o arquivo foi gravado ou não? Podemos usar o @file
para pedir que ele leia o conteúdo. Damos um comando, conforme mostrado abaixo. 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:
Este também é 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 vai alternar 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:
Posso verificar diretamente usando comandos padrão como pwd
e ls
, conforme mostrado abaixo:
Podemos imprimir o conteúdo do arquivo com o comando cat
hoje.
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.
Dica:você vai acabar fazendo com que a CLI do Gemini use a ferramenta WebFetch
.
5. Como configurar servidores do Protocolo de Contexto de Modelo (MCP)
Um servidor MCP é um aplicativo que expõe ferramentas e recursos à CLI do Gemini pelo 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 do Gemini e seu ambiente local ou outros serviços, como APIs.
Um servidor MCP permite que a CLI do Gemini descubra e execute ferramentas, estendendo assim os recursos da CLI do Gemini para realizar ações além dos recursos integrados, como interagir com bancos de dados, APIs, scripts personalizados ou fluxos de trabalho especializados.
A CLI do Gemini permite configurar servidores MCP para descobrir e usar ferramentas personalizadas. Se a CLI do Gemini estiver aberta, você poderá verificar os servidores MCP configurados com o comando /mcp
, conforme mostrado abaixo:
Se você não tiver configurado nenhum servidor MCP, a documentação do servidor MCP da CLI do Gemini será aberta.
É possível configurar servidores MCP no nível global no arquivo ~/.gemini/settings.json
ou no diretório raiz do projeto. Crie ou abra o arquivo .gemini/settings.json
. No arquivo, adicione o bloco de configuração mcpServers
, conforme mostrado abaixo:
"mcpServers": {
"server_name_1": {},
"server_name_2": {},
"server_name_n": {}
}
Cada configuração de servidor é compatível com as seguintes propriedades ( documentação de referência):
Obrigatório (um dos seguintes)
- command (string): caminho para o executável do transporte Stdio
- url (string): URL do endpoint SSE (por exemplo, "http://localhost:8080/sse")
- httpUrl (string): URL do endpoint de streaming HTTP.
Opcional
- args (string[]): argumentos de linha de comando para transporte Stdio
- headers (objeto): cabeçalhos HTTP personalizados ao usar "url" ou "httpUrl"
- env (objeto): variáveis de ambiente para o processo do servidor. Os valores podem fazer referência a variáveis de ambiente usando a sintaxe $VAR_NAME ou ${VAR_NAME}.
- cwd (string): diretório de trabalho para transporte Stdio.
- timeout (number): tempo limite da solicitação em milissegundos (padrão: 600.000 ms = 10 minutos)
- trust (booleano): quando verdadeiro, ignora todas as confirmações de chamada de função para este servidor (padrão: falso).
- includeTools (string[]): lista de nomes de ferramentas a serem incluídas deste servidor MCP. Quando especificado, apenas as ferramentas listadas aqui estarão disponíveis nesse servidor (comportamento de lista de permissões). Se não for especificado, todas as ferramentas do servidor serão ativadas por padrão.
- excludeTools (string[]): lista de nomes de ferramentas a serem excluídas deste servidor MCP. As ferramentas listadas aqui não estarão disponíveis para o modelo, mesmo que sejam expostas pelo servidor. Observação: excludeTools tem precedência sobre includeTools. Se uma ferramenta estiver nas duas listas, ela será excluída.
Vamos configurar um dos principais servidores MCP que você pode precisar se estiver trabalhando com o GitHub. No entanto, a CLI do Gemini vai invocar as ferramentas do git que você tem no seu sistema, e você também pode instruir a CLI do Gemini a usar isso. Ele vai ajudar você com os comandos e executar as ações, mas você precisa ter essas ferramentas configuradas no seu sistema.
Servidor MCP do GitHub
O servidor MCP oficial do GitHub oferece documentação suficiente sobre as ferramentas que ele expõe e como configurá-las. Você pode escolher executar localmente ou remotamente, já que a CLI Gemini também é compatível com servidores MCP remotos.
Neste tutorial, escolhemos usar a opção de servidor MCP remoto no GitHub. Para isso, primeiro você precisa ter um token de acesso pessoal (PAT) do GitHub.
Depois disso, adicione o objeto do servidor MCP ao arquivo settings.json
. O arquivo settings.json completo no meu sistema é mostrado abaixo. Você pode ter outras configurações, mas o objeto mcpServers
precisa ser igual ao mostrado abaixo:
{
"theme": "Default",
"selectedAuthType": "oauth-personal",
"mcpServers": {
"github": {
"httpUrl": "https://api.githubcopilot.com/mcp/",
"headers": {
"Authorization": "GITHUB_PAT"
},
"timeout": 5000
}
}
}
É possível iniciar a CLI do Gemini novamente ou executar um comando /mcp refresh
depois de atualizar o settings.json
com a configuração do servidor MCP do GitHub. A captura de tela abaixo destaca o servidor MCP do GitHub configurado na minha máquina e as várias ferramentas agora disponíveis para a CLI do Gemini trabalhar com o MCP.
Vamos começar com um comando que vai invocar uma das ferramentas do servidor MCP do GitHub. Envie o seguinte comando:
Ele vai escolher a ferramenta correta no servidor MCP do GitHub, mas, assim como outras ferramentas integradas, isso também exige que você conceda permissão explícita para invocar a ferramenta. Confira o resultado.
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 desse repositório?
- Fiz as mudanças necessárias. Você pode enviar as mudanças para o GitHub e usar as ferramentas do servidor MCP do GitHub para fazer isso.
Vamos fazer um exercício para trabalhar com o servidor MCP do GitHub em detalhes mais tarde no laboratório.
Servidor MCP do Context7
O Context7 oferece documentação atualizada para LLMs e editores de código de IA. Se você quiser fornecer o contexto ao LLM com a documentação mais recente do framework de sua escolha, o servidor MCP Context7 é uma boa opção para configurar.
Confira se a biblioteca está listada na página inicial do Context7.
Este é o servidor MCP que você precisa adicionar ao arquivo settings.json
.
"context7": {
"httpUrl": "https://mcp.context7.com/mcp"
}
Depois que o servidor MCP for configurado e a CLI do Gemini for carregada com ele, você poderá ver as ferramentas do Context7, conforme mostrado abaixo:
Agora você pode ser específico no comando e pedir à CLI do Gemini para usar Context7
na documentação mais recente ao gerar seu aplicativo ou trecho de código usando uma estrutura XYZ específica.
Confira um exemplo de comando em que quero escrever um agente usando o Kit de Desenvolvimento de Agente (ADK) do Google. Estou especificando no meu comando para pesquisar a documentação do mesmo pelo servidor MCP Context7.
I am working on coding an Agent using the Agent Development Kit (ADK) from Google. I would like to know how to create the LLMAgent in Python. Use Context7 for the latest documentation on ADK and specifically use /google/adk-python, /google/adk-docs and adk.wiki
Esta é a saída recebida:
Servidor MCP das Apresentações Google
O projeto do GitHub em https://github.com/matteoantoci/google-slides-mcp (link em inglês) fornece um servidor MCP para interagir com a API Google Slides. Ele permite criar, ler e modificar apresentações Google de maneira programática.
As etapas para configurar o servidor MCP são fornecidas no projeto. Você precisa ter um ambiente Node.js em que vai criar o servidor, configurar um projeto do Google Cloud e tokens OAuth 2.0 e, em seguida, configurar o servidor MCP no arquivo settings.json.
Depois da configuração, você pode executar comandos como:
- Extraia as informações mais recentes de "web_url", resuma-as em pontos principais e crie uma apresentação chamada "my_presentation".
Experimente!
Mais servidores MCP
Confira outra lista de servidores MCP que podem ser interessantes para você:
- Servidor MCP do Firebase
- Serviços de mídia de IA generativa do Google (Imagen, Veo, Lyria)
- Caixa de ferramentas do MCP para bancos de dados (trabalhe com o Firestore, o BigQuery e os bancos de dados do Google Cloud)
- Servidor MCP do Google Workspace (trabalhe com Documentos, Planilhas, Agenda e Gmail)
As instruções para configurar os servidores MCP acima estão publicadas nesta postagem do blog.
6. 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.
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 no seu computador que tenha vários arquivos .txt, .png, .jpg, .pdf, .mp4 e outros. Geralmente, é a área de trabalho ou a pasta "Downloads".
Navegue até essa pasta e inicie a CLI do Gemini. Vamos pedir para ele criar várias pastas primeiro: Imagens, Documentos, Vídeos e depois organizar os arquivos nelas.
A CLI Gemini geralmente pede 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, envie 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 alguns outros cenários de organização (os comandos são fornecidos ao lado de cada cenário):
- Resumo:para cada documento na pasta "Documentos", 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.
- Categorização 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 nossa 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):
- Extrair entidades de um artigo local:do arquivo "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.
- 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.
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.
- 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 via Gemini, e você pode pedir que ela processe arquivos de diferentes formatos de conteúdo de acordo com suas necessidades.
Vamos 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
Vamos dar o seguinte comando para extrair informações das faturas em forma de tabela.
The current folder contains a list of invoice image files. Go through all the files in this folder and extract the following invoice information in the form of a table: Invoice No, Invoice Date, Invoice Sent By, Due Date, Due Amount.
O ideal é que você receba uma saída como esta:
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.
Vamos usar SQLite3
para demonstrar isso. Vamos precisar instalar o SQLite3 e ter o banco de dados de amostra Chinook.
Confira 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 Gemini possa usá-la. Inicie a CLI do Gemini.
Confira abaixo o diagrama do esquema de banco de dados:
Vamos presumir que você esteja em uma pasta chamada database-tasks
e que o arquivo do banco de dados Chinook seja chamado de chinook.db
.
Confira abaixo alguns comandos que podem ajudar você a trabalhar com bancos de dados. Vamos falar brevemente sobre o primeiro para demonstrar a permissão que será solicitada.
Começamos com o comando para listar as tabelas presentes no banco de dados. Enviamos o seguinte comando:
What tables are present in the @chinook.db
Isso usa a ferramenta para ler o arquivo e depois quer usar o utilitário sqlite3
presente no meu sistema para fazer o necessário:
Conceda a permissão para executar uma vez e receba a saída necessária:
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. Aqui, vamos nos concentrar 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).
Programação com a CLI do Gemini
Vamos usar a CLI do Gemini para criar um aplicativo com vibe code. Vamos pedir à CLI do Gemini para gerar um aplicativo e enviar a versão inicial para um repositório do GitHub.
Pré-requisito
Para realizar as tarefas desta seção, você precisa fazer o seguinte:
- Git
- CLI do Gemini com o servidor MCP do GitHub (já fizemos isso)
- Familiaridade com os princípios básicos do Git e um pouco de conhecimento de programação
Vamos presumir que você iniciou a CLI Gemini em uma pasta específica de sua escolha. Verifique se os servidores MCP foram iniciados com sucesso, principalmente o servidor MCP do GitHub.
Envie o seguinte comando. 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.
Além disso, não queremos que a CLI do Gemini execute ou teste o aplicativo para nós, porque queremos ter um pouco mais de controle. Mas a decisão é totalmente 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.
Veja como foi para mim na primeira resposta. Você pode receber uma resposta completamente diferente. Por isso, analise o plano e interaja com a CLI do Gemini conforme necessário.
Embora eu tenha pedido para não iniciar os servidores, ele me mostrou o comando shell para o mesmo e perguntou se poderia executá-lo para mim. Decidi não fazer isso para ter mais controle ao iniciar por conta própria.
Eu dei a seguinte mensagem:
Segui as instruções, iniciei o servidor e o site a seguir está funcionando bem:
Você pode continuar fazendo mais mudanças com a ajuda da CLI do Gemini, mas, por enquanto, isso é suficiente, já que precisamos enviar 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.
Agora vamos dar instruções à CLI do Gemini para enviar esse repositório na nossa conta do GitHub. Isso vai exercitar as ferramentas do servidor MCP do GitHub em segundo plano.
Envie 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, commit para gerenciar o repositório Git local.
- Em seguida, ele vai configurar o Git remoto e fazer um push.
Observação:há casos em que 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:
Não geramos um README.md
e outras coisas que normalmente faríamos, mas esse é 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 Gemini para trabalhar em um repositório do GitHub
Neste caso de uso, vamos usar a CLI do Gemini para trabalhar com um repositório do GitHub. Vamos analisar vários cenários, 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 o servidor MCP do GitHub (já fizemos isso)
- 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 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 Event Talks.
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.
- Explicar @server.js
Como gerar um arquivo README
- Gere um arquivo README para este projeto.
Nesse caso, a CLI do Gemini não apenas gerou o arquivo README, mas também quis executar os comandos para adicionar ao repositório Git e enviar as mudanças para o remoto, o que eu permiti. Ela também se ofereceu para gerar o arquivo LICENSE para mim, o que eu também permiti.
Agora tenho um arquivo README e um arquivo LICENSE gerados, e as mudanças foram enviadas ao GitHub.
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 e, depois, podemos gerar o código.
Ele me apresentou um plano, que eu aprovei, e depois fez as mudanças. Teste suas 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. Vamos perguntar à CLI do Gemini como ela pode melhorar a experiência do usuário desse aplicativo. Com base na avaliação, ela pode criar essas 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 podemos 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.
7. (Opcional) Personalizar a CLI do Gemini com GEMINI.md
Se você acompanhou o uso da CLI do Gemini até agora, deve ter notado que apenas enviamos o comando e esperamos que a CLI do Gemini o execute, às vezes com resultados que não atendem às nossas expectativas. Em alguns comandos, fomos um pouco específicos em termos do que fazer e incluímos essas instruções no comando.
Isso pode funcionar bem de acordo com o que você está instruindo a CLI do Gemini a fazer e os resultados que você recebe. Mas, em muitos casos, é importante garantir que ele siga regras. Essas regras podem ser linguagens de programação ou frameworks específicos a serem usados. Também podem ser ferramentas específicas. Podem ser estilos de programação. Não é só sobre geração, mas talvez você também queira que a CLI do Gemini esteja estritamente no modo "planejamento" e apenas apresente um plano, sem gerar código ou modificar arquivos no sistema.
Insira GEMINI.md
. Esse é o arquivo de contexto (o padrão é GEMINI.md, mas pode ser configurado com a configuração contextFileName
) que é crucial para configurar o contexto instrucional (também chamado de "memória") fornecido ao modelo do Gemini. Com esse arquivo, você pode dar instruções específicas do projeto, guias de estilo de programação ou informações relevantes para a IA, tornando as respostas mais personalizadas e precisas para suas necessidades.
O arquivo GEMINI.md
está no formato Markdown e é carregado de maneira hierárquica, combinada de vários locais.
A ordem de carregamento é:
- Contexto global:**
~/.gemini/GEMINI.md
** (para instruções que se aplicam a todos os seus projetos). - Contexto do projeto/ancestral:a CLI pesquisa do diretório atual até a raiz do projeto por arquivos
GEMINI.md
. - Contexto do subdiretório:a CLI também verifica subdiretórios em busca de arquivos
GEMINI.md
, permitindo instruções específicas do componente.
Use o /memory show
para ver o contexto combinado final enviado ao modelo.
Qual é a aparência de um GEMINI.md
e como produzir um com base na documentação oficial:
# Project: My Awesome TypeScript Library
## General Instructions:
- When generating new TypeScript code, please follow the existing coding style.
- Ensure all new functions and classes have JSDoc comments.
- Prefer functional programming paradigms where appropriate.
- All code should be compatible with TypeScript 5.0 and Node.js 20+.
## Coding Style:
- Use 2 spaces for indentation.
- Interface names should be prefixed with `I` (e.g., `IUserService`).
- Private class members should be prefixed with an underscore (`_`).
- Always use strict equality (`===` and `!==`).
## Specific Component: `src/api/client.ts`
- This file handles all outbound API requests.
- When adding new API call functions, ensure they include robust error handling and logging.
- Use the existing `fetchWithRetry` utility for all GET requests.
## Regarding Dependencies:
- Avoid introducing new external dependencies unless absolutely necessary.
- If a new dependency is required, please state the reason.
Ele fornece algumas instruções gerais, além de instruções muito específicas para estilo de programação, gerenciamento de dependências e muito mais. Embora este seja um exemplo de arquivo GEMINI.md
para projetos TypeScript, você pode escrever o seu com base na linguagem de programação, no framework, no estilo de programação e em outras preferências.
Vamos testar um arquivo GEMINI.md
personalizado. Este é um gist publicado que mostra como usar a CLI do Gemini apenas no modo de planejamento. O arquivo é reproduzido aqui:
# Gemini CLI Plan Mode
You are Gemini CLI, an expert AI assistant operating in a special 'Plan Mode'. Your sole purpose is to research, analyze, and create detailed implementation plans. You must operate in a strict read-only capacity.
Gemini CLI's primary goal is to act like a senior engineer: understand the request, investigate the codebase and relevant resources, formulate a robust strategy, and then present a clear, step-by-step plan for approval. You are forbidden from making any modifications. You are also forbidden from implementing the plan.
## Core Principles of Plan Mode
* **Strictly Read-Only:** You can inspect files, navigate code repositories, evaluate project structure, search the web, and examine documentation.
* **Absolutely No Modifications:** You are prohibited from performing any action that alters the state of the system. This includes:
* Editing, creating, or deleting files.
* Running shell commands that make changes (e.g., `git commit`, `npm install`, `mkdir`).
* Altering system configurations or installing packages.
## Steps
1. **Acknowledge and Analyze:** Confirm you are in Plan Mode. Begin by thoroughly analyzing the user's request and the existing codebase to build context.
2. **Reasoning First:** Before presenting the plan, you must first output your analysis and reasoning. Explain what you've learned from your investigation (e.g., "I've inspected the following files...", "The current architecture uses...", "Based on the documentation for [library], the best approach is..."). This reasoning section must come **before** the final plan.
3. **Create the Plan:** Formulate a detailed, step-by-step implementation plan. Each step should be a clear, actionable instruction.
4. **Present for Approval:** The final step of every plan must be to present it to the user for review and approval. Do not proceed with the plan until you have received approval.
## Output Format
Your output must be a well-formatted markdown response containing two distinct sections in the following order:
1. **Analysis:** A paragraph or bulleted list detailing your findings and the reasoning behind your proposed strategy.
2. **Plan:** A numbered list of the precise steps to be taken for implementation. The final step must always be presenting the plan for approval.
NOTE: If in plan mode, do not implement the plan. You are only allowed to plan. Confirmation comes from a user message.
Salve o conteúdo acima em um arquivo chamado GEMINI.md e salve em ~/.gemini/GEMINI.md
. Essa é a mesma pasta em que criamos o arquivo settings.json. Você também pode manter o arquivo GEMINI.md
na pasta <current project folder>/.gemini
ou ter vários arquivos GEMINI.md
nos subdiretórios se tiver instruções diferentes.
Dê um comando para gerar um aplicativo e veja como ele responde.
Confira outro arquivo GEMINI.md
( Modo de explicação do Gemini) que você pode estudar e reutilizar para suas necessidades. O foco é que a CLI do GEMINI seja um guia interativo, ajudando os usuários a entender bases de código complexas por um processo de descoberta conversacional.
O arquivo GEMINI.md
é essencial para que a CLI do Gemini siga suas preferências. Recomendamos conferir a série prática CLI do Gemini na prática, que aborda essa área, como gerar um arquivo automaticamente para seu projeto, personalizar até mesmo o comando do sistema e muito mais.
8. Parabéns
Parabéns! Você conheceu a CLI do Gemini, os recursos dela e aplicou a alguns casos de uso.