Actividad práctica con Gemini CLI

1. Introducción

En este codelab, aprenderás sobre Gemini CLI, un agente de IA de código abierto que lleva el poder de Gemini directamente a tu terminal.

El proyecto de la CLI de Gemini es de código abierto y puedes consultar la hoja de ruta pública aquí.

Qué aprenderás

  1. Instala y configura Gemini CLI
  2. Explora herramientas, comandos integrados y cómo configurar servidores de MCP en la CLI de Gemini
  3. Personaliza la CLI de Gemini a través del archivo GEMINI.md
  4. Explora algunos casos de uso con Gemini CLI

Requisitos

Este codelab se puede ejecutar por completo en Google Cloud Shell, que viene con la CLI de Gemini preinstalada.

Como alternativa, si prefieres trabajar en tu propia máquina, hay una sección para instalar Gemini CLI de forma local.

Necesitarás lo siguiente:

  • Navegador web Chrome
  • Una cuenta de Gmail

Este codelab está diseñado para usuarios y desarrolladores de todos los niveles (incluidos los principiantes). Los casos de uso del codelab se clasificaron en tareas para desarrolladores y tareas para no desarrolladores. Los casos de uso para desarrolladores demuestran cómo generar código con la CLI de Gemini y trabajar con un repositorio de GitHub para realizar tareas de desarrollo comunes, como explicar o comprender el código, generar documentación, corregir problemas y mucho más. Te recomendamos que completes estos casos de uso en el codelab. Al final, hay una sección opcional que abarca varias tareas cotidianas que no se centran en los desarrolladores.

2. Antes de comenzar

Crea un proyecto

  1. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.
  2. Asegúrate de que la facturación esté habilitada para tu proyecto de Cloud. Obtén información sobre cómo verificar si la facturación está habilitada en un proyecto.
  1. Usarás Cloud Shell, un entorno de línea de comandos que se ejecuta en Google Cloud y que viene precargado con bq. Haz clic en Activar Cloud Shell en la parte superior de la consola de Google Cloud.

Imagen del botón Activar Cloud Shell

  1. Una vez que te conectes a Cloud Shell, verifica que ya te autenticaste y que el proyecto se configuró con el ID de tu proyecto con el siguiente comando:
gcloud auth list
  1. En Cloud Shell, ejecuta el siguiente comando para confirmar que el comando gcloud conoce tu proyecto.
gcloud config list project
  1. Si tu proyecto no está configurado, usa el siguiente comando para hacerlo:
gcloud config set project <YOUR_PROJECT_ID>

3. Instalación

Antes de configurar y ejecutar la CLI de Gemini, creemos una carpeta que usarás como carpeta principal para todos los proyectos que crees dentro de ella. Este es un punto de partida para que funcione la CLI de Gemini, aunque también hará referencia a otras carpetas de tu sistema que verás más adelante, según sea necesario.

Crea una carpeta de muestra (gemini-cli-projects) y navega a ella con los comandos que se muestran a continuación. Si prefieres usar otro nombre de carpeta, hazlo.

mkdir gemini-cli-projects

Naveguemos a esa carpeta:

cd gemini-cli-projects

Puedes iniciar la CLI de Gemini directamente con el comando gemini.

Navega directamente a la próxima sección (configuración de la CLI de Gemini a través de settings.json).

Si deseas instalar la CLI de Gemini de forma local, sigue las instrucciones que se indican a continuación.

El primer paso es instalar Node 20 o una versión posterior en tu máquina. Una vez que se complete este proceso, puedes instalar y ejecutar la CLI de Gemini con cualquiera de los siguientes métodos:

  1. Primero, puedes instalar Gemini CLI de forma global en tu sistema. Es posible que necesites acceso de administrador para realizar este paso.
# option 1: install Gemini CLI

npm install -g @google/gemini-cli

# .. and then run
gemini
  1. Ejecútalo con el siguiente comando:
# option 2: run without installing Gemini CLI

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

Para confirmar que la CLI está instalada, ejecuta el siguiente comando:

gemini --version

Si lanzaste la CLI de Gemini con alguno de los métodos anteriores, deberías ver la siguiente pantalla que te pregunta sobre la elección de un tema. Selecciona uno que te guste:

9b02bd0bf1c670d.png

Una vez que selecciones esa opción, se te pedirá el método de autenticación. En este lab, se recomienda que uses tu Cuenta de Google personal y no cuentas que no sean de Google o que no estén relacionadas con Google Workspace. Esa licencia gratuita te da acceso a Gemini 2.5 Pro y a su ventana de contexto de 1 millón de tokens. El nivel gratuito permite 60 solicitudes de modelos por minuto y 1,000 solicitudes por día sin cargo.

Si alcanzas los límites con la cuota gratuita actual que se otorga a las Cuentas de Google, puedes optar por usar la clave de la API de Gemini o incluso Google Cloud Vertex AI, en la que deberás tener un ID del proyecto y el nombre de la ubicación de ese proyecto. Si planeas usar otros métodos de autenticación, consulta la sección Autenticación de la documentación.

afce8d90e20adb6.png

Haz clic en Intro. Se abrirá una página de autenticación de Google en el navegador. Continúa con la autenticación con tu Cuenta de Google, acepta las condiciones y, una vez que te autentiques correctamente, notarás que la CLI de Gemini está lista y esperando tu comando. A continuación, se muestra una captura de pantalla de ejemplo:

ffd8ddfede565612.png

4. Configuración de la CLI de Gemini a través de settings.json

Si eliges Cloud Shell para ejecutar Gemini, ya se seleccionó y configuró un tema predeterminado para la CLI de Gemini y el método de autenticación.

Si instalaste la CLI de Gemini en tu máquina y la ejecutaste por primera vez, seleccionaste un tema y, luego, un método de autenticación.

Ahora, en las ejecuciones posteriores de la CLI de Gemini, no se te pedirá que vuelvas a seleccionar un tema ni un método de autenticación. Esto significa que se persiste en algún lugar y el archivo que usa se llama settings.json, y es la forma de personalizar la CLI de Gemini.

La configuración se aplica con la siguiente precedencia (Cloud Shell solo hace que la configuración del usuario esté disponible):

  1. Sistema: /etc/gemini-cli/settings.json (se aplica a todos los usuarios y anula la configuración del usuario y del espacio de trabajo).
  2. Espacio de trabajo: .gemini/settings.json (anula la configuración del usuario).
  3. Usuario: ~/.gemini/settings.json.

Usuario de Windows: %USERPROFILE%.gemini\settings.json (que suele expandirse a C:\Users&lt;TuNombreDeUsuario>.gemini\settings.json)

Sistema: %ProgramData%\gemini-cli\settings.json (que, por lo general, se expande a C:\ProgramData\gemini-cli\settings.json)

Usuario de Mac: ~/.gemini/settings.json (que se expande a /Users/<TuNombreDeUsuario>/.gemini/settings.json)

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

Si recuerdas, cuando seleccionaste el tema, elegiste que la configuración se guardara en la Configuración del usuario. Así que visita ~/.gemini folder y verás el archivo settings.json.

A continuación, se muestra mi archivo settings.json. Si hubieras seleccionado otro tema, verías su nombre allí.

{
  "theme": "Default",
  "selectedAuthType": "oauth-personal" or "cloud-shell"
}

5. Nuestra primera interacción con Gemini CLI

Comencemos a usar la CLI de Gemini y escribe tu primera consulta como se muestra a continuación:

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

A continuación, se muestra la respuesta esperada:

4dc0961206c1b568.png

Notarás que nuestra búsqueda generó una herramienta GoogleSearch (una herramienta integrada en la CLI de Gemini) que se invocó. En otras palabras, ya usaste una de las potentes herramientas integradas de Gemini CLI, GoogleSearch, que fundamenta sus respuestas en la información que obtiene de la Web. Obtendrás más información sobre las Herramientas en la siguiente sección.

Una forma rápida de comprender la CLI de Gemini y los diversos comandos que admite es escribir /help (barra diagonal) para ver una variedad de comandos y combinaciones de teclas, como se muestra a continuación:

d333742310905dcc.png

Por ahora, salgamos de la CLI de Gemini. Puedes hacerlo con el comando /quit o con Ctrl-C dos veces en la sesión interactiva de la terminal de la CLI de Gemini.

6. CLI de Gemini: parámetros de comandos

Hay algunos parámetros de línea de comandos que se pueden proporcionar cuando inicias la CLI de Gemini. Para obtener una lista completa de las opciones, puedes usar --help, como se muestra a continuación.

gemini --help

Esto debería mostrar toda la variedad de opciones disponibles. Te recomendamos que consultes la documentación aquí.

Veamos algunas de ellas. La primera es configurar la CLI de Gemini para que use el modelo Pro o Flash. Actualmente, en el momento de escribir este lab, estos son los únicos dos modelos admitidos. De forma predeterminada, se usa el modelo Gemini 2.5 Pro, pero, si quieres usar el modelo Flash, puedes hacerlo cuando inicies la CLI de Gemini con el parámetro -m, como se muestra a continuación:

gemini -m "gemini-2.5-flash"

Notarás que, si comienzas de la manera anterior, puedes verificar el modelo en la parte inferior derecha de la terminal de la CLI de Gemini, como se muestra a continuación:

6e662d03b61b2b3f.png

Modo no interactivo

Una opción interesante es ejecutar la CLI de Gemini en un modo no interactivo. Esto significa que le proporcionas directamente la instrucción y la responderá sin que se abra la terminal interactiva de la CLI de Gemini. Esto es muy útil si planeas usar Gemini CLI de forma automatizada como parte de la secuencia de comandos o de cualquier otro proceso de automatización. Usas el parámetro -p para proporcionar la instrucción a la CLI de Gemini, como se muestra a continuación:

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

Ten en cuenta que no hay lugar para continuar la conversación con preguntas de seguimiento. Este modo tampoco te permite autorizar herramientas (incluida WriteFile) ni ejecutar comandos de shell.

7. CLI de Gemini: Herramientas integradas

La CLI de Gemini incluye un conjunto de herramientas integradas, y la documentación de las herramientas indica que "el modelo de Gemini usa estas herramientas para interactuar con tu entorno local, acceder a la información y realizar acciones. Estas herramientas mejoran las capacidades de la CLI, lo que le permite ir más allá de la generación de texto y ayudar con una amplia variedad de tareas".

Para obtener una lista de las herramientas integradas actuales, invoca el comando /tools como se muestra a continuación:

39939257e3f3818e.png

Una de las cosas que debería llamarte la atención de inmediato es preguntarte si la CLI de Gemini puede simplemente llamar a estas herramientas cuando lo desee. La respuesta predeterminada es no, cuando se trata de operaciones sensibles que podrían implicar escribir en el sistema local, leer desde un sistema externo, ir a la red externa, etcétera.

Si bien hay un --yolomode disponible cuando inicias la CLI (no se recomienda por lo general), verás que la CLI de Gemini te pedirá permiso para ejecutar la herramienta que eligió. Puedes rechazar el permiso, permitir que se ejecute una vez o darle permiso general para que se ejecute siempre. Tú tienes y debes tener el control total de todo.

Usemos una instrucción que haga que la CLI de Gemini elija una de las herramientas integradas para ejecutar y que te permita comprender bien cómo funciona todo.

Imagina una situación en la que deseas obtener información sobre las últimas noticias financieras de todo el mundo y guardarla en un archivo en el directorio de trabajo local desde el que iniciaste la CLI de Gemini. Usa la siguiente instrucción:

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

Imagina por un momento lo que debería hacer. Lo ideal sería que saliera a hacer una búsqueda en Google para obtener noticias de algunas fuentes de información relevantes que puedan proporcionarle noticias financieras. Luego, debe crear un archivo llamado finance-news-today.txt (una operación de escritura en tu sistema local que requerirá tu permiso) con su contenido.

Veamos qué sucede (deberías hacer lo mismo en tu máquina).

Lo primero que hace es invocar la herramienta GoogleSearch para buscar en la Web.

122e6e4b01d05e69.png

Una vez que se completa la búsqueda, recupera los datos como se muestra a continuación:

b721f40e6f643318.png

Una vez que se complete, estará listo para escribir esto en el archivo y usará la herramienta WriteFile, pero, como se trata de una operación sensible (write), te pedirá permiso. Puedes decidir el tipo de permiso, es decir, permitir una vez, permitir siempre, etcétera. Por ahora, selecciona Permitir una vez.

e92f3a4774dc1e7.png

Luego, se escribirá la información en el archivo y se mostrará el siguiente mensaje de confirmación:

33c6afdb89033c35.png

¿Cómo verificas si el archivo está escrito o no? Puedes usar @file para pedirle que lea el contenido. A medida que escribes @, se muestra una lista de los archivos de la carpeta actual y se muestra el archivo que acaba de crear. Selecciona esa opción y envía la instrucción. A continuación, se muestra mi instrucción:

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

Esto hace que se invoquen las herramientas necesarias (ReadManyFiles, ReadFile) y que el contenido se muestre como se indica a continuación:

6f214cd743646f44.png

8. CLI de Gemini: modo Shell

Este es un buen momento para aprender a trabajar directamente con Shell desde la CLI de Gemini. Para ingresar al modo de shell, presiona ! en el cuadro de mensaje. Esto activará el modo Shell. Para volver, presiona ! de nuevo o la tecla ESC.

Cuando estés en el modo de shell, verás ! al comienzo de la instrucción, como se muestra a continuación:

9e239408835a3acd.png

Puedes verificarlo directamente con comandos estándar como pwd y ls, como se muestra a continuación. Ten en cuenta que los comandos suponen un SO de tipo Linux. Si usas otro sistema operativo (Windows), usa comandos equivalentes, como (cd, dir y type). Ten en cuenta que el resultado de estas llamadas se incluye en la ventana de contexto del modelo.

2f5d53d3c77fc8e2.png

Hoy puedes imprimir el contenido del archivo con el comando cat.

2249b5c80e3ae2c0.png

Ejercicio: Aquí tienes un ejercicio corto para probar. Elige el feed RSS que prefieras. Dale una instrucción a la CLI de Gemini para recuperar el contenido del feed RSS y darle formato a los resultados de una manera específica. Esta es una buena forma de automatizar algo al comienzo del día. Incluso puedes pedirle a la CLI de Gemini que averigüe si hay un feed RSS para un área específica, por ejemplo, las notas de la versión de Google Cloud Platform.

A continuación, se muestra un ejemplo de instrucción:

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

Idealmente, esta instrucción primero debería invocar la herramienta GoogleSearch para encontrar el feed RSS de Google Cloud Platform y, luego, usar la herramienta WebFetch para obtener el contenido del feed RSS y mostrarlo.

9. Configura servidores del Protocolo de contexto del modelo (MCP)

Un servidor de MCP es una aplicación que expone herramientas y recursos a la CLI de Gemini a través del Protocolo de contexto del modelo, lo que le permite interactuar con sistemas externos y fuentes de datos. Los servidores de MCP actúan como un puente entre el modelo de Gemini y tu entorno local o bien otros servicios, como las APIs.

Un servidor de MCP permite que la CLI de Gemini descubra y ejecute herramientas, lo que extiende las capacidades de la CLI de Gemini para realizar acciones más allá de sus funciones integradas, como interactuar con bases de datos, APIs, secuencias de comandos personalizadas o flujos de trabajo especializados.

La CLI de Gemini admite la configuración de servidores de MCP para descubrir y usar herramientas personalizadas. Si tienes iniciada la CLI de Gemini, puedes consultar los servidores de MCP configurados con el comando /mcp, como se muestra a continuación:

255a14eb31529370.png

Si no configuraste ningún servidor de MCP, se iniciará la documentación del servidor de MCP de la CLI de Gemini.

Puedes configurar los servidores de MCP a nivel global en el archivo ~/.gemini/settings.json o en el directorio raíz de tu proyecto. Crea o abre el archivo .gemini/settings.json. Dentro del archivo, deberás agregar el bloque de configuración mcpServers, como se muestra a continuación:

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

Cada configuración del servidor admite las siguientes propiedades ( documentación de referencia):

Obligatorio (una de las siguientes opciones)

  • command (cadena): Es la ruta de acceso al ejecutable para el transporte de Stdio.
  • url (cadena): URL del extremo de SSE (p.ej., "http://localhost:8080/sse")
  • httpUrl (cadena): URL del extremo de transmisión HTTP

Opcional

  • args (cadena[]): Argumentos de la línea de comandos para el transporte de Stdio
  • headers (objeto): Encabezados HTTP personalizados cuando se usan url o httpUrl
  • env (objeto): Variables de entorno para el proceso del servidor. Los valores pueden hacer referencia a variables de entorno con la sintaxis $VAR_NAME o ${VAR_NAME}.
  • cwd (cadena): Es el directorio de trabajo para el transporte de Stdio.
  • timeout (número): Tiempo de espera de la solicitud en milisegundos (el valor predeterminado es 600,000 ms = 10 minutos)
  • trust (booleano): Cuando es verdadero, omite todas las confirmaciones de llamadas a herramientas para este servidor (valor predeterminado: falso).
  • includeTools (string[]): Es una lista de nombres de herramientas que se incluirán desde este servidor de MCP. Cuando se especifica, solo las herramientas que se indican aquí estarán disponibles desde este servidor (comportamiento de lista blanca). Si no se especifica, todas las herramientas del servidor se habilitan de forma predeterminada.
  • excludeTools (string[]): Es una lista de nombres de herramientas que se excluirán de este servidor de MCP. Las herramientas que se enumeran aquí no estarán disponibles para el modelo, incluso si el servidor las expone. Nota: excludeTools tiene prioridad sobre includeTools. Si una herramienta está en ambas listas, se excluirá.

Procedamos a configurar uno de los servidores de MCP clave que podrías necesitar si trabajas con GitHub. Probablemente te preguntarás si, en caso de que ya tengas Git y otras herramientas relacionadas configuradas en tu sistema, seguirías necesitando el servidor de MCP de GitHub.

La CLI de Gemini invocará las herramientas de Git que tengas en tu sistema, y también puedes indicarle a la CLI de Gemini que las use. Por lo tanto, ten en cuenta que la CLI de Gemini te ayudará a traducir tus consultas en lenguaje natural a herramientas equivalentes que puedas tener en tu sistema, y es posible que debas indicar explícitamente eso en tu instrucción.

Es posible que no necesites la siguiente sección para configurar un servidor de MCP de GitHub si ya tienes lo siguiente configurado en tu sistema:

  • Herramientas de Git (esto significa que puedes ejecutar comandos como git init, git add, etcétera en tu sistema)
  • gh : Es GitHub en la línea de comandos. Lleva las solicitudes de extracción, los problemas y otros conceptos de GitHub a la terminal junto a donde ya estás trabajando con Git y tu código. Instálalo desde aquí y valida su configuración con algunos comandos, en especial los relacionados con la autenticación en GitHub desde tu máquina.

Si aún quieres probar el servidor de MCP de GitHub, consulta la siguiente sección o puedes omitirla.

Servidor de MCP de GitHub

El servidor de MCP oficial de GitHub proporciona suficiente documentación sobre las herramientas que expone, junto con la forma de configurar las mismas. Puedes elegir si ejecutarlo de forma local o remota, ya que la CLI de Gemini también admite servidores de MCP remotos.

En este instructivo, se muestra la opción Remote MCP Server en GitHub. Para ello, primero deberás tener un token de acceso personal (PAT) de GitHub.

Una vez que lo tengas, deberás agregar el objeto del servidor de MCP en el archivo settings.json. A continuación, se muestra el archivo settings.json completo en mi sistema. Es posible que tengas parámetros de configuración adicionales, pero el objeto mcpServers debe ser como se indica a continuación:

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

Puedes volver a iniciar la CLI de Gemini o ejecutar el comando /mcp refresh una vez que hayas actualizado settings.json con la configuración del servidor de MCP de GitHub. En la siguiente captura de pantalla, se destaca el servidor de MCP de GitHub que está configurado en mi máquina y las diversas herramientas que ahora están disponibles para la CLI de Gemini para trabajar con MCP.

e34f348129d448e9.png

Comencemos con una instrucción que invocará una de las herramientas del servidor de MCP de GitHub. Escribe la siguiente instrucción:

da643d182ac3fca4.png

Ten en cuenta que elegirá la herramienta correcta del servidor de MCP de GitHub, pero, al igual que con otras herramientas integradas, también deberás otorgar permiso explícito para invocar la herramienta. Continúa y observa el resultado que obtienes.

Ahora deberías trabajar con uno de tus proyectos de GitHub. Haz tus preguntas en lenguaje natural, por ejemplo:

  • ¿Puedes describir <repo-name>?
  • Clona <repo-name> en mi máquina local.
  • Describe @<nombre-de-archivo> o @<nombre-de-directorio>/.
  • ¿Cuáles son los diferentes componentes de este repositorio?
  • Realicé los cambios necesarios. ¿Puedes enviar los cambios a GitHub y usar las herramientas del servidor de MCP de GitHub para hacerlo?

Más adelante en el lab, encontrarás un ejercicio para trabajar con el servidor de MCP de GitHub en detalle.

Servidor de MCP de Context7

Context7 proporciona documentación actualizada para los LLM y los editores de código de IA. Si quieres proporcionar contexto al LLM con la documentación más reciente del framework que elijas, el servidor de MCP de Context7 es una buena opción para configurar.

Asegúrate de que tu biblioteca aparezca en la página principal de Context7.

Este es el servidor de MCP que debes agregar en el archivo settings.json.

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

Una vez que el servidor de MCP esté configurado y la CLI de Gemini se haya cargado correctamente con él, deberías poder ver las herramientas de Context7 como se muestra a continuación:

92f715d87989ff72.png

Ahora puedes ser específico en tu instrucción y pedirle a la CLI de Gemini que use Context7 para obtener la documentación más reciente mientras genera tu aplicación o fragmento de código con un framework XYZ específico.

Este es un ejemplo de instrucción en el que quiero escribir un agente con el Kit de desarrollo de agentes (ADK) de Google. En mi instrucción, especifico que se busque la documentación para lo mismo a través del servidor de MCP de 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 es la salida que se recibió:

fe79972a61372d59.png

Servidor de MCP de Presentaciones de Google

El proyecto de GitHub en https://github.com/matteoantoci/google-slides-mcp proporciona un servidor MCP para interactuar con la API de Google Slides. Te permite crear, leer y modificar presentaciones de Presentaciones de Google de forma programática.

En el proyecto, se indican los pasos para configurar el servidor de MCP. Deberás tener un entorno de Node.js en el que compilarás el servidor, configurarás un proyecto de Google Cloud y tokens de OAuth 2.0, y, luego, configurarás el servidor de MCP en el archivo settings.json.

Una vez que configures la herramienta, podrás ejecutar instrucciones como las siguientes:

  • Extrae la información más reciente de "web_url", resúmela en puntos clave y crea una presentación llamada "my_presentation".

¡Pruébalo!

Más servidores de MCP

A continuación, se incluye una lista adicional de servidores de MCP que podrían interesarte:

  1. Servidor de MCP de Firebase
  2. Servicios de medios de IA generativa de Google (Imagen, Veo, Lyria)
  3. Caja de herramientas de MCP para bases de datos (trabaja con bases de datos de Firestore, BigQuery y Google Cloud)
  4. Servidor de MCP de Google Workspace (funciona con Documentos, Hojas de cálculo, Calendario y Gmail)

Las instrucciones para configurar los servidores de MCP anteriores se publicaron en esta entrada de blog.

10. Personaliza Gemini CLI con GEMINI.md

Si observaste tu uso de Gemini CLI hasta ahora, habrás notado que solo proporcionábamos la instrucción y esperábamos que Gemini CLI la ejecutara, a veces con resultados que no cumplían con nuestras expectativas. En algunas instrucciones, fuiste un poco específico en cuanto a qué hacer y las incluiste en la instrucción.

Esto puede funcionar bien según lo que le indiques a la CLI de Gemini que haga y los resultados que obtengas. Sin embargo, en muchos casos, querrás asegurarte de que siga reglas. Estas reglas podrían ser lenguajes de programación o frameworks específicos que se deben usar. También podrían ser herramientas específicas. Podrían ser estilos de programación. No se trata solo de la generación, sino que también es posible que desees que la CLI de Gemini esté estrictamente en lo que se denomina modo de "planificación" y que solo presente un plan y no genere ningún código ni modifique archivos en el sistema.

Ingresa GEMINI.md. Este es el archivo de contexto (de forma predeterminada, GEMINI.md, pero se puede configurar a través de la propiedad contextFileName en el archivo settings.json) que es fundamental para configurar el contexto de instrucción (también denominado "memoria") que se proporciona al modelo de Gemini. Este archivo te permite darle a la IA instrucciones específicas del proyecto, guías de estilo de codificación o cualquier información pertinente de antecedentes, lo que hace que sus respuestas sean más personalizadas y precisas para tus necesidades.

El archivo GEMINI.md está en formato Markdown y se carga de forma jerárquica, lo que se combina desde varias ubicaciones.

El orden de carga es el siguiente:

  1. Contexto global: **~/.gemini/GEMINI.md** (para instrucciones que se aplican a todos tus proyectos).
  2. Contexto del proyecto o del elemento superior: La CLI busca archivos GEMINI.md desde tu directorio actual hasta la raíz del proyecto.
  3. Contexto de subdirectorio: La CLI también analiza los subdirectorios en busca de archivos GEMINI.md, lo que permite instrucciones específicas para cada componente.

Puedes usar /memory show para ver el contexto combinado final que se envía al modelo.

¿Cómo se ve un GEMINI.md? Creamos uno a partir de la documentación 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.

Notarás que proporciona algunas instrucciones generales, además de instrucciones muy específicas para el estilo de codificación, la administración de dependencias y mucho más. Si bien este es un archivo GEMINI.md de muestra para proyectos de TypeScript, puedes escribir el tuyo según tu lenguaje de programación, framework, estilo de codificación y otras preferencias.

Puedes probar un archivo GEMINI.md personalizado. Esto proviene de un gist publicado que muestra cómo usar la CLI de Gemini en el modo Planificar únicamente. El archivo se reproduce aquí:

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

Guarda el contenido anterior en un archivo llamado GEMINI.md y guárdalo en ~/.gemini/GEMINI.md. Esta es la misma carpeta en la que creaste el archivo settings.json. También puedes conservar el archivo GEMINI.md en tu carpeta <current project folder>/.gemini o incluso tener varios archivos GEMINI.md en tus subdirectorios si tienes diferentes instrucciones.

Proporciona una instrucción para generar una aplicación y observa cómo responde.

Aquí tienes otro archivo GEMINI.md ( modo Explicar de Gemini) que puedes estudiar y, luego, reutilizarlo para tus requisitos y usarlo. Esto se centra en que la CLI de GEMINI sea una guía interactiva que ayude a los usuarios a comprender bases de código complejas a través de un proceso de descubrimiento conversacional.

El archivo GEMINI.md es clave para que la CLI de Gemini siga tus preferencias. Te sugerimos que consultes esta serie práctica "Practical Gemini CLI" que profundiza en este tema, cómo puedes generar automáticamente uno para tu proyecto, personalizar incluso la instrucción del sistema y mucho más.

Ten en cuenta que también puedes crear el archivo GEMINI.md a medida que interactúas con la CLI de Gemini. En cualquier momento, puedes usar el comando /memory add <alguna instrucción o regla>, y la CLI de Gemini lo agregará al archivo GEMINI.md. Incluso puedes usar lenguaje natural para pedirle a la CLI de Gemini que agregue a su memoria, es decir, GEMINI.md, a través de instrucciones como "Recuerda <alguna instrucción o regla>" o "Agrega a la memoria <alguna instrucción o regla>".

11. Gemini CLI: Comandos de barra personalizados

Acabas de ver cómo personalizar GEMINI.md para crear un modo de planificación. En la sección anterior, también se proporcionaron vínculos a un modo de explicación.

¿Qué sucede si deseas configurar ambos modos y darle instrucciones a la CLI de Gemini para que entre en cualquiera de ellos a través de los comandos de barra /plan o /explain? De eso se tratan exactamente los comandos de barra personalizados de Gemini CLI.

Como se indica en la documentación, "Los comandos personalizados te permiten guardar y reutilizar tus instrucciones favoritas o las que usas con más frecuencia como combinaciones de teclas personales en la CLI de Gemini. Puedes crear comandos específicos para un solo proyecto o comandos que estén disponibles de forma global en todos tus proyectos, lo que optimiza tu flujo de trabajo y garantiza la coherencia".

Creemos un par de comandos de barra personalizados: /plan y /explain.

El siguiente paso es comprender de dónde toma la CLI de Gemini los comandos personalizados. Según la documentación, descubre comandos de dos ubicaciones, que se cargan en un orden específico:

  1. Comandos del usuario (globales): Se encuentran en ~/.gemini/commands/. Estos comandos están disponibles en cualquier proyecto en el que trabajes.
  2. Comandos del proyecto (local): Se encuentran en <your-project-root>/.gemini/commands/. Estos comandos son específicos del proyecto actual y se pueden registrar en el control de versiones para compartirlos con tu equipo.

Elijamos la carpeta del proyecto actual desde la que iniciaste la CLI de Gemini. Por lo tanto, esta será la carpeta <your-project-root>/.gemini/commands/. Crea la estructura de carpetas.

¿Qué necesitamos crear dentro de esta carpeta? Necesitamos dos archivos TOML (plan.toml y explain.toml). Puedes obtener más información sobre los espacios de nombres y las convenciones de nomenclatura aquí.

Cada archivo TOML debe tener dos campos : description y prompt. Asegúrate de que la descripción sea breve y concisa, ya que se mostrará junto al comando en la CLI de Gemini. La siguiente muestra de archivo TOML se tomó de la entrada de blog oficial sobre los comandos personalizados con barra.

A continuación, se muestra un ejemplo de un archivo plan.toml. Ten en cuenta que la instrucción contiene un marcador de posición especial {{args}}. La CLI reemplazará ese marcador de posición exacto por todo el texto que el usuario escribió después del nombre del comando.

description="Investigates and creates a strategic plan to accomplish a task."
prompt = """
Your primary role is that of a strategist, not an implementer.
Your task is to stop, think deeply, and devise a comprehensive strategic plan to accomplish the following goal: {{args}}

You MUST NOT write, modify, or execute any code. Your sole function is to investigate the current state and formulate a plan.

Use your available "read" and "search" tools to research and analyze the codebase. Gather all necessary context before presenting your strategy.

Present your strategic plan in markdown. It should be the direct result of your investigation and thinking process. Structure your response with the following sections:

1.  **Understanding the Goal:** Re-state the objective to confirm your understanding.
2.  **Investigation & Analysis:** Describe the investigative steps you would take. What files would you need to read? What would you search for? What critical questions need to be answered before any work begins?
3.  **Proposed Strategic Approach:** Outline the high-level strategy. Break the approach down into logical phases and describe the work that should happen in each.
4.  **Verification Strategy:** Explain how the success of this plan would be measured. What should be tested to ensure the goal is met without introducing regressions?
5.  **Anticipated Challenges & Considerations:** Based on your analysis, what potential risks, dependencies, or trade-offs do you foresee?

Your final output should be ONLY this strategic plan.
"""

Intenta crear también un archivo explain.toml. Puedes consultar el modo Explicar de Gemini para elegir contenido.

Reinicia Gemini CLI. Ahora verás que tiene un comando de barra (/plan), como se muestra a continuación:

8b0720ba31b6c251.png

12. Casos de uso para probar

La CLI de Gemini se puede aplicar a una amplia variedad de casos de uso que se aplican tanto a desarrolladores como a no desarrolladores. Aquí se presentan algunas situaciones y, según tu área de interés, puedes probarlas todas o algunas de ellas.

En cada uno de estos casos, se proporciona la instrucción. Puedes probarlo en el modo interactivo o no interactivo de la CLI de Gemini con el parámetro -p cuando inicies la CLI de Gemini.

Vibe coding con Gemini CLI

Usemos la CLI de Gemini para generar código de una aplicación. En esta tarea, le pedirás a Gemini CLI que genere una aplicación y, luego, enviarás la versión inicial a un repositorio de GitHub.

Requisitos previos

Para realizar las tareas de esta sección, debes cumplir con algunos requisitos previos:

  • Git
  • CLI de Gemini con el servidor de MCP de GitHub (ya lo hicimos) o si configuraste gh ( herramienta de CLI de GitHub), también funcionaría.
  • Conocimiento básico de Git y algo de programación

Supondremos que iniciaste la CLI de Gemini en una carpeta específica de tu elección. Asegúrate de que los servidores de MCP se hayan iniciado correctamente, en especial el servidor de MCP de GitHub.

Comienza con una instrucción inicial. Puedes modificarlo como quieras. Ten en cuenta que, a lo largo de la sesión con la CLI de Gemini, se te solicitarán permisos para crear los archivos, etc. Otorga los permisos necesarios.

En esta tarea, no buscamos que la CLI de Gemini ejecute la aplicación ni la pruebe por nosotros, ya que queremos tener un poco más de control. Pero depende completamente de ti cómo quieras hacerlo.

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. 

Las siguientes instrucciones y respuestas son un flujo de muestra que se observó. Es posible que obtengas una respuesta completamente diferente, así que revisa el plan e interactúa con la CLI de Gemini según sea necesario.

90232297f1e952f8.png

Observamos que, a veces, Gemini CLI intenta hacer más y hasta puede darte los comandos que le gustaría ejecutar. Para este ejercicio, es recomendable no hacerlo, de modo que tengas más control sobre cómo se realiza la tarea y qué te gustaría validar primero.

Por ejemplo, si ofrece ejecutar los comandos, puedes simplemente salir y dar un mensaje como el que se muestra a continuación:

d74e235b0db77c51.png

Después de seguir las instrucciones para iniciar el servidor y navegar a la página principal, obtuvimos un sitio de muestra como el que se muestra a continuación (deberías ver una variante de un sitio similar si usaste la misma instrucción):

71a0a6123a90e068.png

Puedes seguir realizando más cambios con la ayuda de la CLI de Gemini. Una vez que estés conforme con los cambios, puedes enviarlos a un repositorio de GitHub.

Primero, creemos un archivo .gitignore. Puedes pedirle ayuda a la CLI de Gemini.

Create a .gitignore file for this project.

El siguiente paso es darle instrucciones a la CLI de Gemini para que envíe este repositorio a nuestra cuenta de GitHub, lo que debería ejercitar las herramientas del servidor de MCP de GitHub en segundo plano.

Proporciona una instrucción similar a la siguiente:

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

Aquí se ejecutarán varios comandos:

  1. Crea el repositorio.
  2. Usará varios comandos de Git : init, add y commit para administrar el repositorio de Git local.
  3. Luego, configurará el remoto de Git y realizará una inserción.

Nota: En algunos casos, es posible que Gemini CLI agote el tiempo de espera o use un nombre de usuario incorrecto, etc. Interactúa con ella y sugiere las correcciones.

Si todo sale bien, deberías tener un repositorio de GitHub. A continuación, se muestra una captura de pantalla de ejemplo:

35c2db48c39fb21a.png

Ten en cuenta que no generaste un README.md para este proyecto, lo que será un buen ejercicio para la próxima sección, en la que trabajaremos con el repositorio que acabas de crear.

Usa Gemini CLI para trabajar en un repositorio de GitHub

En este caso de uso, usarás Gemini CLI para trabajar con un repositorio de GitHub. Realizarás varias tareas, entre las que se incluyen las siguientes:

  • Comprende la base de código
  • Generación de documentación
  • Implementa una función nueva
  • Confirma y envía los cambios al repositorio.
  • Trabaja en un problema de GitHub y aplica los cambios propuestos

Esto debería proporcionarte una buena base para trabajar con tus repositorios y usar la CLI de Gemini como asistente en relación con estas tareas específicas para desarrolladores.

Requisitos previos

Para realizar las tareas de esta sección, necesitarás lo siguiente:

  • Git
  • CLI de Gemini con el servidor de MCP de GitHub (ya lo hicimos) o si configuraste gh ( herramienta de CLI de GitHub), también funcionaría.
  • Familiaridad con los conceptos básicos de Git y algunos conocimientos de programación (en este ejemplo, usaremos Node.js, ya que es posible que ya tengas el entorno listo en tu máquina debido a que instalaste la CLI de Gemini). Sin embargo, más adelante, puedes elegir el repositorio que quieras con un lenguaje de programación y un framework diferentes.
  • Deberías haber completado la sección anterior y tener a mano el repositorio en el que creamos un sitio web de Event Talks.

Continuemos usando la CLI de Gemini desde la carpeta o el directorio que usaste para generar la aplicación Event Talks o, si es necesario, puedes clonar el repositorio en tu máquina local y, luego, iniciar la CLI de Gemini desde ese directorio. Prueba las siguientes situaciones, como se indica a continuación:

Comprende la base de código

  • Me gustaría comprender este proyecto en detalle. Ayúdame a comprender las funciones principales y, luego, desglosarlas en el servidor y el cliente. Toma un flujo de muestra y muéstrame cómo funcionan la solicitud y la respuesta.
  • Explícame @server.js

Cómo generar un archivo README

  • Genera un archivo README para este proyecto.

En este caso, la CLI de Gemini no solo generó el archivo README, sino que también quiso ejecutar los comandos para agregar al repositorio de Git y enviar los cambios al repositorio remoto, lo que puedes permitir si lo ves hacerlo.

En algunos casos, incluso puede ofrecerse a generar el archivo LICENSE por ti. Puedes decidir si quieres hacerlo. Según el resultado, verás los archivos README o LICENSE generados, y los cambios se habrán enviado a GitHub.

d77239c8fae0aa8b.png

Implementa una función nueva

  • Me gustaría implementar una nueva función en la que el usuario también pueda buscar por un orador específico. Primero, muéstrame un plan de cómo implementarías este cambio y, luego, podemos generar el código.

Te proporcionará un plan que puedes aprobar. Una vez que apruebes los cambios, Gemini CLI los realizará. Prueba los cambios y, si hay errores (lo más probable), pídele a la CLI de Gemini que los corrija.

Una vez que los cambios se vean bien, puedes seguir los mismos pasos para confirmarlos y enviarlos al repositorio remoto.

Genera problemas en función de las funciones sugeridas

Probemos algo interesante aquí. Le preguntarás a la CLI de Gemini cómo puede mejorar la experiencia del usuario de esta aplicación y, según su evaluación, puede crear esas sugerencias como problemas en el mismo repositorio de GitHub. Usará la herramienta "create_issue" del servidor de MCP de GitHub.

Prueba la siguiente instrucción:

  • Me gustaría que evalúes la aplicación desde el punto de vista de la experiencia del usuario. Facilidad de uso, capacidad de respuesta, mensajes útiles y mucho más. Crea una lista de mejoras y, luego, crea problemas en el repositorio de GitHub.

Lo ideal sería que primero comparta las mejoras contigo y, luego, con tu permiso, cree los problemas en el repositorio de GitHub. A continuación, se muestra una captura de pantalla de ejemplo de nuestra ejecución:

495b0f7afab91ec6.png

Trabaja en un problema de GitHub y aplica los cambios propuestos

Ahora puedes tomar uno de los problemas que se generaron anteriormente y pedirle a la CLI de Gemini que lo implemente.

A continuación, se muestra un ejemplo del problema que generó:

2e41f9f6eac3d1b.png

Toma la URL del problema completa y proporciona una instrucción como esta:

  • Revisa el problema: <YOUR_ISSUE_URL> y comprende qué cambios se deben realizar. Primero, analiza el plan y, luego, muestra los cambios propuestos en el código.

Puedes aprobar los cambios y enviarlos al repositorio. Incluso puedes pedirle que cierre el problema.

cd3c89cf3d47723b.png

(Opcional) Tareas diarias

Los casos de uso que se indican a continuación son tareas que podrías terminar realizando con frecuencia. Esto incluye organizar archivos en carpetas, recuperar y resumir contenido de la Web, procesar archivos de imágenes y extraer contenido de ellos, trabajar con bases de datos y mucho más.

Puedes explorar cualquiera de los casos de uso que desees.

Organización de archivos y carpetas

Puedes usar la CLI de Gemini para organizar los archivos según los tipos en varias carpetas según sea necesario. Ve a una carpeta de tu máquina que tenga varios archivos .txt, .png, .jpg, .pdf, .mp4 y otros. Es probable que sea tu escritorio o tu carpeta de descargas.

A continuación, se muestra una carpeta de ejemplo y su contenido (es posible que tengas otros archivos):

e9d70be5bbea46d5.png

Navega a esa carpeta y, luego, inicia Gemini CLI. Primero, le pedirás a la CLI de Gemini que cree algunas carpetas: Imágenes, Documentos y Videos. Luego, le pedirás que organice los archivos en las carpetas.

La CLI de Gemini a menudo te pedirá permiso antes de ejecutar comandos, especialmente aquellos que modifican tu sistema de archivos (como escribir, mover o borrar archivos). Siempre revisa estas instrucciones con atención antes de otorgar permiso. Esta es tu red de seguridad.

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

Luego, escribe la siguiente instrucción:

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.

A continuación, se muestra un ejemplo del estado final de la carpeta. Deberías ver las nuevas subcarpetas creadas y los archivos movidos a las subcarpetas correspondientes según su tipo.

7e27d4c88416f62.png

A continuación, se presentan algunas otras situaciones de organización (las instrucciones se indican junto a cada situación):

  1. Resumen: Para cada documento de la carpeta "Documents", crea un archivo txt en la misma carpeta llamado "summary_ORIGINAL_FILENAME.txt" que contenga un resumen de 3 oraciones de los puntos principales del documento.
  2. Categorizar por tipo: Analiza todos los archivos PDF y DOCX de este directorio. Mueve todos los archivos que contengan la palabra "factura" en su nombre o contenido a la carpeta "Finanzas/Facturas". Mueve los archivos con "receipt" a "Financial/Receipts". Todos los demás archivos .docx se guardan en "Informes".
  3. Extracción de información clave (y "etiquetado"): Para cada archivo PDF de la carpeta "Financial/Invoices", lee su contenido. Si encuentras una fecha, cambia el nombre del archivo para incluirla en formato AAAA-MM-DD, p.ej., ‘invoice_2025-07-26_original_name.pdf'.

Organiza imágenes

Veamos cómo puedes organizar el contenido de imágenes en tu computadora.

Para probar esta función, haz lo siguiente:

  • Deberás tener un directorio o una carpeta con varios archivos de imagen (.jpg, .png, etcétera). Incluye algunas con datos EXIF (la mayoría de las fotos de cámaras o teléfonos los tienen).
  • Navega a este directorio.
  • Inicia Gemini CLI.

Prueba cualquiera de las siguientes situaciones (las instrucciones se indican junto a cada situación):

  • Rename by Date (EXIF Data): Cambia el nombre de todos los archivos .jpg y .png de este directorio para incluir su fecha de creación a partir de los datos EXIF en el formato “AAAAMMDD_HHMMSS_nombre_original.jpg”. Si no se encuentra ninguna fecha EXIF, usa la fecha de última modificación del archivo.
  • Crea descripciones de imágenes: Para cada imagen de esta carpeta, describe lo que se ve en ella y guarda esa descripción en un archivo de texto llamado "description_ORIGINAL_FILENAME.txt" en el mismo directorio.
  • Identificar duplicados (conceptual, requiere lógica más avanzada): Busca las imágenes duplicadas en esta carpeta según su contenido visual y enumera sus nombres de archivo. No los borres aún.

Resumir artículos (archivos locales o web)

Para cada una de las situaciones que se describen a continuación, puedes cambiar la URL, el tema de interés y los nombres de los archivos locales según corresponda. Los nombres de archivo proporcionados son de ejemplo. Puedes reemplazarlos por los nombres de los archivos que tienes en tu sistema.

Prueba cualquiera de las siguientes situaciones (las instrucciones se indican junto a cada situación):

  • Resume un artículo web (URL única): Ve a https://medium.com/google-cloud/getting-started-with-gemini-cli-8cc4674a1371 y resume los 3 puntos clave más importantes de este artículo de noticias.
  • Resumir varios artículos web (p.ej., de una búsqueda): Busca los artículos de noticias más recientes sobre "CLI de Gemini" con la Búsqueda de Google. En el caso de los 5 artículos más relevantes, resume cada uno en 2 o 3 oraciones y enumera sus URLs.
  • Resumir un archivo de texto local: Resume los puntos principales del artículo en "my_research_paper.txt". Enfócate en la metodología y las conclusiones.
  • Resume un PDF local: Lee “financial_report_Q2_2025.pdf”. Proporciona un resumen del rendimiento financiero y los principales desafíos mencionados.

Cómo extraer información específica (archivos locales o la Web)

Para cada una de las situaciones que se describen a continuación, puedes cambiar la URL, el tema de interés y los nombres de los archivos locales según corresponda. Los nombres de archivo proporcionados son de ejemplo. Puedes reemplazarlos por los nombres de los archivos que tienes en tu sistema.

Prueba cualquiera de las siguientes situaciones (las instrucciones se indican junto a cada situación):

  • Extrae entidades de un artículo local: De "biography.txt", enumera todas las personas con nombre y las fechas importantes asociadas a ellas.
  • Extrae datos de una tabla en un PDF: En “quarterly_sales.pdf”, extrae los datos de la tabla de la página 3 que muestra las “Ventas de productos por región” y preséntalos en formato de tabla de Markdown.
  • Extrae titulares y fuentes de noticias de un sitio web de noticias: Ve a "https://news.google.com/" (o a un sitio de noticias similar). Extrae los titulares principales de la portada y sus fuentes de noticias correspondientes. Preséntalos como una lista con viñetas.
  • Cómo encontrar las especificaciones de un producto en una página de comercio electrónico: Navega a "https://www.amazon.in/Google-Cloud-Certified-Associate-Engineer/dp/1119871441" (ejemplo de un libro). Extrae el título, el autor y otros detalles del libro. Presenta esta información en un formato JSON estructurado.
  • Extrae la duración de un video en un formato determinado (p. ej., "2h37m42s").

Respuesta a preguntas basadas en el contenido (comportamiento similar a RAG)

Para cada una de las situaciones que se describen a continuación, puedes cambiar la URL, el tema de interés y los nombres de los archivos locales según corresponda. Los nombres de archivo proporcionados son de ejemplo. Puedes reemplazarlos por los nombres de los archivos que tienes en tu sistema.

Prueba cualquiera de las siguientes situaciones (las instrucciones se indican junto a cada situación):

  • Preguntas y respuestas sobre un documento local: Adjunto el archivo "user_manual.pdf". ¿Cuáles son los pasos para solucionar problemas de conectividad de red?
  • Preguntas y respuestas en una página web: Según la OMS, ¿cuáles son los principales riesgos para la salud asociados con el cambio climático, según el contenido de"https://www.who.int/news-room/fact-sheets/detail/climate-change-and-health"?
  • Comparar información de varias fuentes: Tengo dos artículos de noticias: "article1.txt" y "article2.txt", ambos sobre los cambios recientes en la política económica. Compara y contrasta sus opiniones sobre el impacto potencial en las pequeñas empresas.

Generación de contenido basada en la información extraída

Para cada una de las situaciones que se describen a continuación, puedes cambiar la URL, el tema de interés y los nombres de los archivos locales según corresponda.

Prueba cualquiera de las siguientes situaciones (las instrucciones se indican junto a cada situación):

  • Genera un resumen de noticias a partir de un artículo: Lee @tech_innovation_article.txt. Escribe un breve y atractivo resumen de noticias (alrededor de 150 palabras) adecuado para un boletín informativo de la empresa, en el que se destaque la nueva tecnología y su potencial.
  • Redacta un correo electrónico que resuma la transcripción de una reunión: Aquí tienes un archivo de transcripción de la reunión: @meeting_transcript.txt. Redacta un correo electrónico para el equipo en el que se resuman las decisiones clave tomadas y los elementos de acción asignados, y se incluya quién es responsable de cada uno.

Compatibilidad multimodal de la CLI de Gemini

La CLI de Gemini admite varios modelos a través de Gemini, y puedes pedirle que procese archivos de diferentes formatos de contenido según tus requisitos.

Procesarás varias imágenes de facturas con la CLI de Gemini y extraerás información clave de ellas. Sigue los pasos que se indican a continuación:

  • Crea una carpeta en tu máquina y descarga algunas facturas del siguiente repositorio de GitHub.
  • Inicia Gemini CLI desde esa carpeta

Proporciona la siguiente instrucción para extraer información de las facturas en forma de tabla.

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.

Lo ideal sería que obtuvieras un resultado similar al siguiente:

fb4183498d02229.png

Aquí hay otra situación en la que puedes solicitar columnas derivadas adicionales. Supongamos que deseas mostrar un emoji de cruz roja para todas las fechas de vencimiento de facturas que ya pasaron. Puedes dar una instrucción de la siguiente manera:

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.

Esto produce el siguiente resultado:

f65f6ca8308c7053.png

Aplica este proceso a cualquiera de tus archivos que no estén en formato de texto.

Usa Gemini CLI para trabajar con bases de datos

Puedes usar Gemini CLI para trabajar de manera más eficiente con varias bases de datos. Puedes usarlo en varias situaciones: realizar consultas con lenguaje natural, exportar datos, diseñar esquemas de bases de datos, generar datos de prueba realistas y mucho más.

Usarás SQLite3 para realizar esta tarea. Deberás instalar SQLite3 y tener la base de datos de muestra Chinook.

A continuación, se incluyen instrucciones breves para configurar SQLite3:

  1. macOS: SQLite3 viene preinstalado. Verifica con sqlite3 --version. Si es necesario, instálalo con Homebrew: brew install sqlite3.
  2. Windows: Descarga los objetos binarios precompilados del sitio web de SQLite. Extrae los archivos en un directorio (p.ej., C:\sqlite). Agrega ese directorio a la variable de entorno PATH del sistema.
  3. Linux (Debian/Ubuntu): sudo apt update && sudo apt install sqlite3

Descarga la base de datos de muestra de Chinook (aquí tienes un vínculo directo para descargarla).

Para ejecutar estas instrucciones, te sugerimos que crees una carpeta (database-tasks) en el directorio gemini-cli-projects. Copia el archivo de la base de datos de Chinook en esa carpeta. Asegúrate de que la herramienta sqlite3 esté configurada en tu sistema y disponible en la ruta de acceso para que la CLI de Gemini pueda usarla. Inicia Gemini CLI.

A continuación, se muestra el diagrama del esquema de la base de datos:

fb8e96c21ad57590.png

Supongamos que estás en una carpeta llamada database-tasks y que el archivo de la base de datos de Chinook se llama chinook.db.

A continuación, se incluyen varias instrucciones que pueden ayudarte a trabajar con bases de datos. Cubramos brevemente el primero para demostrar el permiso que se solicitará.

Comienza con la instrucción para enumerar las tablas presentes en la base de datos. Para ello, ingresa la siguiente instrucción:

What tables are present in the file: chinook.db 

Esto usa la herramienta para leer el archivo y, luego, quiere usar la utilidad sqlite3 presente en tu sistema para hacer lo necesario:

b2a17ef60706c3f5.png

Proporciona el permiso para ejecutarlo una vez y obtener el resultado esperado:

8d40754b830f4697.png

Prueba las siguientes instrucciones o cualquier otra que elijas:

  • ¿Cuántos empleados hay?
  • ¿Cuál es el esquema de la tabla de facturas?
  • ¿Cuáles son las 3 facturas principales por total y qué clientes las emitieron?

Notarás que la CLI de Gemini se encarga de dos cosas: generar la instrucción SQL correcta para satisfacer tu requisito y proporcionar el comando sqlite3 correcto.

Usa Gemini CLI para generar datos

Puedes solicitarle a la CLI de Gemini que genere datos en varios formatos. Esto puede abarcar desde fragmentos de contenido hasta datos JSON que tal vez debas simular. Aquí nos enfocaremos en situaciones aplicables a desarrolladores y verificadores.

Estas son algunas instrucciones que puedes probar:

Genera datos JSON de opiniones de clientes de muestra

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

Cómo generar respuestas simuladas de la API (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').

Cómo generar instrucciones de inserción de bases de datos de muestra (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'.

Cómo generar datos CSV para la carga y el análisis de datos

Generate 10 lines of CSV data, including a header row, for customer transactions. Columns should be: 'TransactionID' (unique string), 'CustomerID' (integer), 'ItemPurchased' (string, e.g., 'Laptop', 'Monitor', 'Keyboard'), 'Quantity' (integer, 1-3), 'UnitPrice' (float, between 100.00 and 1500.00), 'TransactionDate' (YYYY-MM-DD).

Genera un archivo de configuración (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.

Generación de datos de prueba para casos extremos o validación

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

13. Felicitaciones

¡Felicitaciones! Exploraste correctamente la CLI de Gemini, sus capacidades y la aplicaste a algunos casos de uso.

Documentos de referencia