Gemini CLI
Curso práctico de IA en la terminal

Curso de Gemini CLI

Aprende a potenciar tu flujo de desarrollo con un agente de IA que vive en tu terminal. Un curso progresivo que te llevará desde la instalación hasta integraciones avanzadas con MCP, extensiones y más.

Compatible con Linux, macOS y Windows (WSL/PowerShell). Solo necesitas Node.js y una cuenta de Google.

~4 horas
15 pasos
Desde cero
⚙️

Prerequisito: Entorno de desarrollo

Antes de empezar, necesitas tener Node.js 20+ instalado. Si aún no configuraste tu computador, sigue primero esta guía paso a paso.

Ir a Configuración del Entorno →
01

Introducción

Este es un curso de Hazla con Datos. ¡Bienvenido al taller de Gemini CLI! En este curso, aprenderás a instalar, configurar y utilizar la interfaz de línea de comandos (CLI) de Gemini para potenciar tu flujo de trabajo de desarrollo.

Videos complementarios

Parte 1

Parte 2

Gemini CLI no es solo un chat; es un agente colaborativo que vive en tu terminal, entiende tu código y puede ejecutar tareas complejas utilizando herramientas del sistema.

TÚ ERES EL PILOTO, LA IA ES TU COPILOTO

Antes de empezar, hay algo fundamental que debes entender: un agente de IA no reemplaza tu criterio como desarrollador. Lo amplifica.

Gemini CLI es una herramienta extraordinariamente capaz, pero necesita dirección. Puede generar código, refactorizar módulos enteros y automatizar tareas repetitivas — pero no sabe cuál es la arquitectura correcta para tu proyecto, qué trade-offs son aceptables para tu equipo, ni qué convenciones sigue tu organización.

Tu rol como desarrollador es supervisar, guiar y validar. Esto significa:

  • Revisar siempre lo que genera. No aceptes código que no entiendas. Si no puedes explicar lo que hace, no debería estar en tu proyecto.
  • Dar contexto claro. La calidad de la respuesta es directamente proporcional a la calidad de tu prompt. Un agente bien dirigido produce resultados profesionales; uno sin dirección produce código genérico.
  • Saber cuándo decir no. Si la propuesta del agente no tiene sentido, recházala. Tienes el poder de aprobar, modificar o cancelar cualquier acción.
  • Mantener tus fundamentos afilados. Cuanto más sepas de programación, terminal y arquitectura, mejor podrás supervisar y corregir al agente. La IA no es un atajo para evitar aprender.
⚠️

Advertencia

Un desarrollador que usa IA sin entender lo que genera es más peligroso que uno que no la usa. La velocidad sin criterio produce deuda técnica, vulnerabilidades y bugs difíciles de rastrear.

La combinación más poderosa es un desarrollador con criterio técnico sólido + un agente de IA bien configurado. Este curso te enseña a construir exactamente eso.

⚠️

Advertencia

Nota importante (marzo 2026): Gemini CLI es una tecnología en constante evolución y mejora. Algunos comandos, opciones o comportamientos descritos en este curso podrían variar o dejar de estar disponibles en versiones posteriores. Ante cualquier duda, consulta siempre la documentación oficial y el changelog para mantenerte al día.

LO QUE APRENDERÁS

  • Cómo instalar y autenticar Gemini CLI
  • Cómo interactuar con el modelo Gemini desde tu terminal
  • Cómo dar contexto de tus archivos y organizar tu proyecto
  • Cómo planificar antes de ejecutar (Plan Mode) y usar subagents
  • Cómo utilizar herramientas integradas para navegar por internet
  • Integración avanzada con MCP (Model Context Protocol)
  • Qué son las Extensiones y cómo instalarlas
  • Cómo crear tus propias Skills y subagents personalizados
  • Cómo utilizar la memoria persistente (GEMINI.md) de forma iterativa
02

Requisitos

Para completar este taller, necesitarás:

SOFTWARE

  • Node.js versión 20.0.0 o superior
  • Una cuenta de Google o una API Key de Gemini
  • Un shell compatible: Bash, Zsh o PowerShell

SISTEMAS OPERATIVOS SOPORTADOS

  • macOS 15+
  • Windows 11 24H2+
  • Ubuntu 20.04+ (u otra distro Linux compatible)

HARDWARE RECOMENDADO

  • Uso casual: 4 GB+ de RAM
  • Uso intensivo: 16 GB+ de RAM
  • Conexión a internet (obligatoria)
💡

Nota

Este taller está diseñado para desarrolladores de todos los niveles. No necesitas experiencia previa con IA.

03

Instalación

El primer paso es instalar la herramienta en tu sistema.

OPCIÓN 1: NPM (RECOMENDADO)

Terminal window
npm install -g @google/gemini-cli

OPCIÓN 2: HOMEBREW (macOS/Linux)

Terminal window
brew install gemini-cli

OPCIÓN 3: SIN INSTALAR (npx)

Si solo quieres probar sin instalar globalmente:

Terminal window
npx @google/gemini-cli

VERIFICAR INSTALACIÓN

Terminal window
gemini --version

CANALES DE ACTUALIZACIÓN

Gemini CLI ofrece tres canales de release:

  • Stable (recomendado): npm install -g @google/gemini-cli@latest
  • Preview (semanal, sin garantía): npm install -g @google/gemini-cli@preview
  • Nightly (diario, experimental): npm install -g @google/gemini-cli@nightly
💡

Nota

Si encuentras problemas de permisos en Linux/macOS, puedes necesitar usar sudo o configurar npm para instalar paquetes globales sin permisos de administrador.

04

Autenticación

Antes de empezar a chatear, necesitas conectar Gemini CLI con tu cuenta. Hay varias formas de autenticarte.

OPCIÓN 1: LOGIN CON GOOGLE (RECOMENDADO)

  1. Ejecuta el comando principal: gemini
  2. Selecciona Login with Google en el menú interactivo.
  3. Autoriza la aplicación en el navegador que se abrirá.
  4. Las credenciales se guardan localmente para futuras sesiones.
💡

Nota

Si tienes Google AI Pro/Ultra, usa la cuenta asociada a tu suscripción.

OPCIÓN 2: API KEY

  1. Obtén una API Key desde Google AI Studio.
  2. Configura la variable de entorno:
    Terminal window
    export GEMINI_API_KEY=tu_clave_aqui
  3. Ejecuta gemini y selecciona “Use Gemini API key”.
⚠️

Advertencia

Trata las API Keys como credenciales sensibles. No las compartas ni las subas a repositorios.

OPCIÓN 3: VERTEX AI

Para usuarios de Google Cloud, puedes autenticarte con Application Default Credentials:

Terminal window
gcloud auth application-default login

Requiere configurar las variables GOOGLE_CLOUD_PROJECT y GOOGLE_CLOUD_LOCATION.

PERSISTIR CREDENCIALES

Puedes guardar tus variables de entorno en:

  • Tu archivo de shell (~/.bashrc, ~/.zshrc, $PROFILE)
  • Un archivo .gemini/.env (se carga automáticamente)

MODO NO INTERACTIVO (HEADLESS)

Para scripts o pipelines donde no hay TTY:

Terminal window
echo "¿Qué es el fine tuning?" | gemini

O con el flag -p:

Terminal window
gemini -p "Genera un resumen rápido de este repo"

Tip

El modo headless requiere credenciales pre-configuradas (API Key o Vertex AI). Útil para CI/CD y automatizaciones.

05

Chat Básico

Ahora que estás dentro, ¡probemos lo básico!

CHAT BÁSICO

Escribe cualquier pregunta o instrucción directamente en el prompt.

  • Intenta esto: Explica brevemente qué es la arquitectura MVC.

COMANDOS DE BARRA (/)

Gemini CLI tiene comandos especiales que empiezan con /. Estos son los más importantes:

Navegación y sesión:

  • /help — Ver ayuda completa
  • /clear — Limpiar la pantalla (o Ctrl+L)
  • /quit o /exit — Salir de Gemini CLI
  • /stats — Ver estadísticas de la sesión (tokens, modelo, herramientas)

Contexto y memoria:

  • /memory show — Ver el contexto cargado desde archivos GEMINI.md
  • /memory add <texto> — Agregar texto al archivo GEMINI.md global
  • /memory refresh — Recargar archivos de contexto
  • /compress — Comprimir el historial del chat en un resumen

Modelo y configuración:

  • /model — Ver o cambiar el modelo activo
  • /model set <modelo> — Cambiar a un modelo específico (ej. gemini-2.5-pro)
  • /model manage — Gestión interactiva de modelos disponibles
  • /permissions — Ver permisos actuales
  • /permissions trust <ruta> — Confiar en un directorio para evitar confirmaciones
  • /settings — Abrir el editor interactivo de configuración
  • /theme — Cambiar el tema visual
  • /tools — Ver herramientas disponibles

Historial y control:

  • /chat save <tag> — Guardar un checkpoint de la conversación
  • /chat resume <tag> — Reanudar desde un checkpoint
  • /rewind — Retroceder en el historial (o Esc Esc)
  • /restore — Restaurar archivos al estado previo a una herramienta
  • /plan — Activar Plan Mode (solo lectura, planifica sin ejecutar)

Extensiones y skills:

  • /extensions — Gestionar extensiones
  • /skills — Gestionar Agent Skills
  • /mcp — Ver estado de servidores MCP
💡

Nota

Tarea práctica: Escribe /help para ver la lista completa de comandos disponibles.

06

Contexto y Archivos

Una de las características más potentes es la capacidad de leer tus archivos locales. Usa el símbolo @ para referenciar archivos o directorios.

EJERCICIO PRÁCTICO: ENCONTRAR UN BUG

  1. Crea un archivo de prueba en otra terminal (o usa uno existente):

    Terminal window
    echo "function suma(a, b) { return a - b; }" > bug.js
    ⚠️

    Advertencia

    Nota: ¡Hemos introducido un bug intencional, restando en lugar de sumar!

  2. En Gemini CLI, pide que encuentre el error usando el contexto del archivo:

    Terminal window
    Encuentra el error en este código: @bug.js

Gemini leerá el contenido de bug.js, analizará el código y te explicará que la función suma está restando.

REFERENCIAR DIRECTORIOS COMPLETOS

También puedes referenciar carpetas enteras para resumir proyectos:

Terminal window
Resumen de este directorio: @.
💡

Nota

El símbolo @ es extremadamente útil cuando trabajas en proyectos grandes. Puedes referenciar múltiples archivos en un solo prompt.

07

Automatización

Gemini CLI no solo lee, también puede ayudarte a organizar tu espacio de trabajo. Vamos a simular una carpeta desordenada y pedirle que la organice.

PREPARACIÓN

Abre una nueva terminal y crea un desorden simulado:

Terminal window
mkdir desorden
cd desorden
touch foto1.jpg foto2.png notas.txt script.py data.json todo.md config.yml
cd ..

LA TAREA

Entra en la carpeta desorden con Gemini CLI (o navega hasta ella). Prompt:

Estoy en la carpeta ‘desorden’. Mira los archivos que hay y organízalos en subcarpetas lógicas (ej. Imágenes, Documentos, Código). Muévelos automáticamente.

ACCIÓN

Gemini analizará los archivos (usando herramientas como list_directory) y propondrá un plan:

  • Mover .jpg, .png a Imágenes/
  • Mover .txt, .md a Documentos/
  • Mover .py, .json, .yml a Código/ o Config/

Te pedirá confirmación para ejecutar los comandos run_shell_command (como mv ...). Acepta y observa cómo tu carpeta queda limpia en segundos.


PLAN MODE: PLANIFICAR ANTES DE EJECUTAR

Cuando la tarea es compleja o riesgosa, puedes usar Plan Mode: un entorno de solo lectura donde Gemini investiga tu proyecto y diseña un plan de implementación sin modificar ningún archivo.

¿PARA QUÉ SIRVE?

  • Investigar el codebase antes de hacer cambios
  • Evaluar alternativas y trade-offs
  • Crear un plan de implementación detallado en Markdown
  • Revisar y aprobar la estrategia antes de que se ejecute

CÓMO ACTIVARLO

Hay varias formas de entrar en Plan Mode:

  • Desde el chat: escribe /plan o simplemente pide “planifica cómo…”
  • Con Shift+Tab: cicla entre modos de aprobación (incluido Plan)
  • Desde la terminal: gemini --approval-mode=plan
  • En settings.json:
    { "experimental": { "plan": true } }

FLUJO DE TRABAJO

  1. Investigación: Describes tu objetivo. Gemini explora el código en modo solo lectura.
  2. Diseño: El agente hace preguntas clarificadoras y presenta opciones.
  3. Plan: Genera un plan detallado en Markdown dentro del directorio de planes.
  4. Revisión: Apruebas para proceder, iteras con feedback, o cancelas con Esc.

HERRAMIENTAS DISPONIBLES EN PLAN MODE

Gemini puede leer pero no escribir:

  • Lectura de archivos, directorios y búsqueda (read_file, glob, grep_search)
  • Búsqueda web (google_web_search)
  • Sub-agentes de investigación
  • Herramientas MCP de solo lectura
  • Escritura únicamente de archivos .md en el directorio de planes

ROUTING AUTOMÁTICO DE MODELOS

Cuando usas selección automática de modelo, Plan Mode es inteligente:

  • Fase de planificación: usa el modelo Pro (mayor razonamiento)
  • Fase de implementación: cambia a Flash (más rápido) tras aprobar el plan

EJERCICIO PRÁCTICO

Prueba Plan Mode con un escenario real:

/plan

Planifica cómo agregarías tests unitarios al archivo game.js del Capstone Project. Analiza las funciones existentes y propón qué framework usar y qué casos de prueba cubrir.

Revisa el plan generado. Si te convence, aprueba y Gemini lo ejecutará. Si no, presiona Esc para cancelar sin que se haya tocado un solo archivo.

Tip

Plan Mode es ideal para tareas que involucran múltiples archivos o decisiones arquitectónicas. Te permite alinear la estrategia antes de que el agente haga cambios.

TIPS DE USO ESTRATÉGICO

  • Empieza siempre en Plan Mode para tareas complejas. Invierte tu energía en el plan para que la implementación salga en un solo intento.
  • Si algo sale mal, vuelve a Plan Mode. No sigas empujando con errores acumulados — re-planifica.
  • Usa Plan Mode también para verificar, no solo para construir. Pide que planifique cómo validar o testear lo que ya se implementó.
  • Puedes usar un enfoque de doble agente: genera el plan en una sesión y luego abre otra sesión para que lo revise como un ingeniero senior antes de ejecutar.

SUBAGENTS: DELEGAR TAREAS A AGENTES ESPECIALIZADOS

Los subagents son agentes especializados que operan dentro de tu sesión principal de Gemini CLI. Cada uno tiene su propio contexto, herramientas y sistema de instrucciones, sin contaminar la ventana de contexto principal.

¿POR QUÉ USARLOS?

  • Contexto limpio: Cada subagent tiene su propia ventana de contexto, manteniendo tu sesión principal enfocada.
  • Especialización: Puedes crear agentes expertos en seguridad, testing, documentación, etc.
  • Más poder de cómputo: Agrega “usa subagents” a cualquier petición para que Gemini delegue en paralelo.

SUBAGENTS INTEGRADOS

Gemini CLI incluye subagents listos para usar:

SubagentPropósito
codebase_investigatorAnaliza codebases, mapea dependencias, reverse engineering
cli_helpExperto en comandos y configuración de Gemini CLI
generalist_agentRutea tareas al subagent especializado más adecuado
browser_agent(Experimental) Automatiza tareas en el navegador web

CREAR SUBAGENTS PERSONALIZADOS

  1. Habilita la funcionalidad en settings.json:
{
"experimental": {
"enableAgents": true
}
}
  1. Crea un archivo Markdown en .gemini/agents/ (proyecto) o ~/.gemini/agents/ (usuario):
---
name: security-auditor
description: "Encuentra vulnerabilidades de seguridad en el código"
tools:
- read_file
- grep_search
model: gemini-2.5-pro
temperature: 0.2
max_turns: 10
---
Eres un auditor de seguridad experto. Analiza el código buscando:
1. Inyecciones SQL y XSS
2. Secrets hardcodeados
3. Dependencias vulnerables
4. Permisos excesivos

Campos del frontmatter:

CampoDescripción
nameIdentificador único (minúsculas, guiones)
descriptionQué hace — guía al agente principal para delegarle tareas
toolsHerramientas que puede usar (limita el alcance)
modelModelo específico (opcional)
temperatureCreatividad 0.0–2.0 (opcional)
max_turnsLímite de turnos (default: 15)
timeout_minsTimeout en minutos (default: 5)

EJERCICIO: CREAR UN SUBAGENT DE DOCUMENTACIÓN

Terminal window
mkdir -p .gemini/agents
cat > .gemini/agents/doc-writer.md << 'EOF'
---
name: doc-writer
description: "Genera documentación técnica para funciones y módulos"
tools:
- read_file
- grep_search
- list_directory
model: gemini-2.5-flash
max_turns: 8
---
Eres un escritor técnico. Cuando te pidan documentar código:
1. Lee el archivo completo para entender el contexto.
2. Identifica funciones, clases y exports públicos.
3. Genera JSDoc/TSDoc con descripción, parámetros y ejemplos.
4. Incluye un README.md si se trata de un módulo completo.
EOF

Luego pide:

Documenta todas las funciones del archivo game.js, usa subagents

⚠️

Advertencia

Los subagents ejecutan herramientas sin pedir confirmación individual en cada paso. Ten cuidado al otorgarles herramientas como run_shell_command o write_file — limita sus tools al mínimo necesario.

08

Shell Integration

Gemini CLI puede ejecutar comandos de sistema por ti o permitirte ejecutarlos directamente sin salir de la herramienta.

EJECUCIÓN DIRECTA CON !

Usa el prefijo ! seguido de un comando para ejecutarlo inmediatamente:

Terminal window
!ls -la

(En Windows usa !dir en lugar de !ls)

La salida se imprime en terminal pero no se envía automáticamente al modelo.

SHELL MODE

Escribe ! y pulsa Enter (sin comando) para entrar en Shell Mode: una terminal interactiva dentro de Gemini CLI. Sal con exit o Esc.

AGENTE AUTÓNOMO

También puedes pedirle a Gemini que ejecute comandos en lenguaje natural:

Crea un archivo llamado “hola.txt” que contenga el texto “Hola desde Gemini CLI”.

Gemini generará una llamada a run_shell_command o write_file. Por defecto, cada comando requiere tu aprobación explícita con opciones para permitir una vez, siempre, o denegar.

PROCESOS EN BACKGROUND

Para tareas de larga duración (ej. servidores de desarrollo), usa el comando /shells para abrir un dashboard donde puedes ver los logs o detener procesos.

MODO SANDBOX

Para máxima seguridad, ejecuta con --sandbox para correr comandos en un contenedor Docker aislado:

Terminal window
gemini --sandbox -y -p "analiza este código"

Tip

Los comandos altamente interactivos (como vim) funcionan mejor con el prefijo ! directo en lugar de dejar que el agente los ejecute.

09

Web Tools

Gemini CLI viene equipado con “herramientas” (Tools) que le dan superpoderes más allá de generar texto. Dos de las más útiles son google_web_search y web_fetch.

BÚSQUEDA WEB

¿Necesitas información actualizada que el modelo no tiene en su entrenamiento? Intenta esto:

Busca en internet el precio actual de la accion de Nvidia.

Gemini usará la herramienta google_web_search, obtendrá resultados reales y te dará una respuesta fundamentada.

LEER URLS ESPECÍFICAS

Si tienes un enlace a una documentación o artículo: Intenta esto:

Ingresa a https://en.wikipedia.org/wiki/Artificial_intelligence y dime de que trata

La herramienta web_fetch descargará el contenido de la página para que Gemini pueda analizarlo, incluso si es muy largo.

VER TODAS LAS TOOLS

Para ver qué herramientas tienes disponibles en tu sesión actual: /tools

10

Capstone Project

Antes de explorar las integraciones avanzadas con MCP, vamos a poner en práctica todo lo aprendido con un proyecto completo y divertido.

DESCRIPCIÓN DEL PROYECTO

Crearás un juego de navegador inspirado en el clásico juego del dinosaurio de Chrome, pero con un giro único: un desarrollador que salta sobre “bugs” de software en lugar de cactus.

CARACTERÍSTICAS DEL JUEGO

  • Motor del juego: HTML5 Canvas + JavaScript vanilla.
  • Obstáculos: Diferentes tipos de bugs (syntax errors, merge conflicts) con visuales únicos.
  • Power-ups: “Debug Tokens” que permiten ralentizar el juego o auto-fix.
  • Sistema de puntuación: Score actual, high score y racha de bugs evitados.
  • Estilo retro: Gráficos pixel art y efectos de sonido 8-bit.

CÓMO USAR GEMINI CLI PARA ESTE PROYECTO

Este ejercicio es perfecto para demostrar el poder de Gemini CLI como asistente de desarrollo. Intenta este prompt detallado:

Actúa como un desarrollador senior de videojuegos web. Tu tarea es crear un juego completo y funcional llamado ‘Bug Runner’, inspirado en el Chrome Dino game.

Requisitos Técnicos:

  1. Stack: HTML5 Canvas, CSS3 y Vanilla JavaScript (ES6+).
  2. Archivos: Genera index.html, styles.css, y game.js.
  3. Assets: NO uses imágenes externas. Usa métodos de canvas para dibujar sprites pixel-art o formas geométricas.

Gameplay:

  • Mecánica: Runner infinito con salto (barra espaciadora / tap).
  • Obstáculos: 3 tipos de bugs con velocidades/patrones diferentes.
  • Power-ups: ‘Debug Token’ que ralentiza el tiempo.
  • Game Loop: Usa requestAnimationFrame para 60 FPS estables.

CRITERIOS DE ÉXITO

Tu juego estará completo cuando:

  1. ✓ El personaje salte suavemente con física realista.
  2. ✓ Los obstáculos aparezcan aleatoriamente y se muevan.
  3. ✓ Las colisiones se detecten correctamente.
  4. ✓ El score aumente y se guarde el high score.
  5. ✓ Funcione tanto en móvil como en desktop.
11

MCP

MCP (Model Context Protocol) es un estándar abierto que permite a Gemini conectarse con tus datos y herramientas externas de forma segura. Piensa en ello como “plugins” universales para la IA.

¿QUÉ ES UN SERVIDOR MCP?

Un servidor MCP es una aplicación que expone herramientas y recursos al CLI a través del protocolo MCP. Soporta tres tipos de transporte:

  • Stdio: Comunicación por subproceso (lo más común)
  • SSE: Server-Sent Events
  • HTTP: Streaming HTTP

AGREGAR UN SERVIDOR MCP

Desde la terminal:

Terminal window
gemini mcp add <nombre> <comando> [args...]

Ejemplo con GitHub:

Terminal window
gemini mcp add github npx -y @modelcontextprotocol/server-github \
-e GITHUB_PERSONAL_ACCESS_TOKEN=tu_token

Opciones útiles:

  • -s, --scopeuser o project
  • -t, --transportstdio, sse o http
  • -e, --env — Variables de entorno
  • --trust — Omitir confirmaciones (solo servidores controlados por ti)

GESTIONAR SERVIDORES

Terminal window
gemini mcp list # Ver servidores configurados
gemini mcp remove <nombre> # Eliminar un servidor
gemini mcp enable <nombre> # Habilitar
gemini mcp disable <nombre> # Deshabilitar

CONFIGURACIÓN EN SETTINGS.JSON

También puedes configurar servidores directamente en settings.json:

{
"mcpServers": {
"miServidor": {
"command": "python",
"args": ["-m", "mi_servidor_mcp"],
"env": { "API_KEY": "$MI_API_KEY" },
"timeout": 15000
}
}
}

USO EN EL CHAT

  • Las herramientas MCP aparecen junto a las built-in en /tools.
  • Usa /mcp dentro de una sesión para ver el estado de los servidores.
  • Para ejecutar una herramienta, describe la acción en lenguaje natural.
  • Los servidores MCP pueden exponer prompts como slash commands personalizados.
💡

Nota

Las variables de entorno sensibles (*TOKEN*, *SECRET*, *KEY*) son automáticamente redactadas por seguridad. Solo las variables configuradas explícitamente se pasan al servidor.

12

Extensions

Las extensiones de Gemini CLI empaquetan prompts, servidores MCP, comandos personalizados, temas, hooks, sub-agentes y Agent Skills en un formato reutilizable.

INSTALAR UNA EXTENSIÓN

Terminal window
gemini extensions install <URL_del_repositorio>

Ejemplo:

Terminal window
gemini extensions install https://github.com/gemini-cli-extensions/workspace

GESTIONAR EXTENSIONES

Desde la terminal:

Terminal window
gemini extensions list # Ver extensiones instaladas
gemini extensions install # Instalar nueva

Desde una sesión interactiva:

  • /extensions list — Listar extensiones
  • /extensions enable — Habilitar
  • /extensions disable — Deshabilitar

GALERÍA DE EXTENSIONES

Puedes explorar extensiones disponibles en la galería oficial antes de instalarlas.

EJEMPLOS PRÁCTICOS

  • Workspace: Herramientas para gestión de proyectos multi-directorio.
    Terminal window
    gemini extensions install https://github.com/gemini-cli-extensions/workspace

Tip

Las extensiones pueden incluir sus propias Agent Skills, servidores MCP y comandos personalizados — todo empaquetado en un solo repositorio.

13

Skills

Las Agent Skills permiten extender Gemini CLI con experiencia especializada y flujos de trabajo procedimentales. Son parte del estándar abierto Agent Skills.

¿CÓMO FUNCIONAN?

  1. Gemini CLI inyecta los nombres y descripciones de las Skills en el system prompt.
  2. Cuando el modelo identifica una tarea que coincide, invoca la herramienta activate_skill.
  3. Tú confirmas la activación en un prompt de consentimiento.
  4. El contenido del SKILL.md y acceso al directorio se pasan al agente.

UBICACIONES DE DESCUBRIMIENTO

Las Skills se buscan en tres niveles (en orden de prioridad):

  1. Proyecto: .gemini/skills/ o .agents/skills/
  2. Usuario: ~/.gemini/skills/ o ~/.agents/skills/
  3. Extensiones: Skills incluidas en extensiones instaladas

CREAR UNA SKILL

Hay dos formas de crear una Skill:

Opción 1: Usando el skill-creator integrado

Simplemente pídelo en el chat:

Crea una nueva skill llamada “code-reviewer”

Gemini CLI generará automáticamente el directorio, el archivo SKILL.md con metadata, y las carpetas de soporte.

Opción 2: Creación manual

Crea el directorio y el archivo SKILL.md tú mismo.

ESTRUCTURA DE UNA SKILL

mi-skill/
├── SKILL.md (obligatorio)
├── scripts/ (opcional — scripts ejecutables)
├── references/ (opcional — documentación estática)
└── assets/ (opcional — plantillas y recursos)

FORMATO DE SKILL.MD

El archivo combina frontmatter YAML con instrucciones en Markdown:

---
name: code-reviewer
description: >
Usa esta skill para revisar código. Soporta
cambios locales y Pull Requests remotos.
---
# Code Reviewer Instructions
Eres un experto revisor de código. Sigue este proceso:
1. Analiza buscando bugs lógicos.
2. Asegúrate de cumplir con las convenciones del proyecto.
3. Busca vulnerabilidades de seguridad (OWASP Top 10).
4. Sugiere mejoras de rendimiento si aplican.

Campos del frontmatter:

  • name — Identificador único (debe coincidir con el nombre del directorio)
  • description — Explica el propósito de la skill y cuándo Gemini debería activarla. Es clave para que el modelo la elija correctamente.

Cuerpo Markdown: Instrucciones claras y accionables que guían el comportamiento del agente cuando la skill está activa. Mientras más específico y estructurado, mejor será el resultado.

EJERCICIO: CREAR UNA SKILL DE “CODE REVIEWER”

  1. Crea la estructura:
Terminal window
mkdir -p .gemini/skills/code-reviewer
  1. Crea el archivo SKILL.md:
Terminal window
cat > .gemini/skills/code-reviewer/SKILL.md << 'EOF'
---
name: code-reviewer
description: >
Experto en revisión de código. Actívala cuando
el usuario pida un code review o revisión de código.
---
# Code Reviewer Instructions
Eres un experto revisor de código. Sigue este proceso:
1. Analiza buscando bugs lógicos y edge cases.
2. Verifica que se cumplan las convenciones del proyecto.
3. Busca vulnerabilidades de seguridad.
4. Evalúa la legibilidad y mantenibilidad.
5. Presenta los hallazgos en una tabla con severidad (alta/media/baja).
EOF

GESTIONAR SKILLS

Desde una sesión interactiva:

  • /skills list — Listar skills disponibles
  • /skills reload — Recargar definiciones
  • /skills enable — Habilitar
  • /skills disable — Deshabilitar

Desde la terminal:

Terminal window
gemini skills list
gemini skills install <repo_o_directorio>
gemini skills link <directorio_local>
gemini skills uninstall <nombre>

PROBANDO LA SKILL

Terminal window
/skills reload

Haz un code review de mi archivo game.js

💡

Nota

Las Skills ahorran tokens gracias a la “progressive disclosure”: solo se carga el nombre y descripción inicialmente. El contenido completo se carga únicamente al activar la skill.


TIPS: SACARLE EL MÁXIMO A LAS SKILLS

COMMITEA TUS SKILLS A GIT

Las Skills en .gemini/skills/ son parte de tu proyecto. Haz commit y reutilízalas en todos tus repositorios:

Terminal window
# Copiar skills a un nuevo proyecto
cp -r proyecto-a/.gemini/skills/ proyecto-b/.gemini/skills/

O mejor aún, mantén un repositorio de skills personales e instálalas con gemini skills install.

CONVIERTE TAREAS REPETITIVAS EN SKILLS

Si haces algo más de una vez al día, conviértelo en una Skill. Ejemplos prácticos:

  • techdebt-hunter — Ejecutar al final de cada sesión para encontrar código duplicado y deuda técnica
  • test-writer — Genera tests unitarios siguiendo las convenciones de tu proyecto
  • pr-reviewer — Revisa PRs con checklist personalizado de tu equipo
  • migrator — Automatiza migraciones de base de datos con pasos específicos

IDEAS DE SKILLS AVANZADAS

  • Un skill que sincronice contexto de Slack, GitHub Issues y docs en un solo resumen
  • Un skill de analytics que escriba queries, revise código y testee cambios
  • Un skill de seguridad que audite dependencias y escanee secrets
14

Persistent Memory

Los archivos GEMINI.md son tu memoria persistente: instrucciones que se envían automáticamente al modelo en cada sesión.

ORDEN DE CARGA

Los archivos se cargan jerárquicamente:

  1. Global: ~/.gemini/GEMINI.md — instrucciones por defecto para todos los proyectos
  2. Proyecto: GEMINI.md en la raíz del repo — contexto específico del proyecto
  3. Just-in-time: Archivos GEMINI.md en subdirectorios — se cargan automáticamente cuando el agente accede a archivos en esos directorios

MODULARIZACIÓN CON IMPORTS

Puedes dividir archivos grandes usando la sintaxis @archivo.md:

# Instrucciones del Proyecto
@coding-style.md
@naming-conventions.md
@api-guidelines.md

Esto importa el contenido de cada archivo referenciado (rutas relativas o absolutas).

EJERCICIO PRÁCTICO

  1. Crea un contexto de proyecto:
Terminal window
cat > GEMINI.md << 'EOF'
# Instrucciones del Proyecto
- Responde en español y con tono conciso.
- Prefiere ejemplos en TypeScript.
- Sigue las convenciones de Airbnb para JavaScript.
EOF
  1. Refresca y valida:
Terminal window
/memory refresh
/memory show
  1. Agrega instrucciones rápidamente:
Terminal window
/memory add "Usa siempre comillas simples en strings"

PERSONALIZAR EL NOMBRE DE ARCHIVO

Puedes cambiar qué archivos de contexto se cargan editando settings.json:

{
"context": {
"fileName": ["AGENTS.md", "CONTEXT.md", "GEMINI.md"]
}
}

Tip

A diferencia de las Skills (que se activan bajo demanda), el contenido de GEMINI.md se incluye siempre en el contexto. Mantenlo conciso para no desperdiciar tokens.


ESTRATEGIA: MEJORA ITERATIVA DEL GEMINI.MD

Tu GEMINI.md es la herramienta más poderosa que tienes para mejorar la calidad de las respuestas. Trátalo como un documento vivo que evoluciona con cada sesión.

EL PATRÓN DE AUTO-CORRECCIÓN

Cada vez que corrijas al agente, termina con:

“Actualiza tu GEMINI.md para que no cometas ese error de nuevo.”

Gemini es sorprendentemente bueno escribiendo reglas para sí mismo. Con el tiempo, tu tasa de errores bajará notablemente.

EDITA SIN PIEDAD

No dejes que tu GEMINI.md crezca sin control. Revísalo periódicamente:

  • Elimina reglas que ya no aplican
  • Consolida instrucciones redundantes
  • Verifica que las reglas realmente mejoren los resultados
  • Itera hasta que la tasa de errores baje de forma medible

DIRECTORIO DE NOTAS POR PROYECTO

Una técnica avanzada: mantener un directorio de notas que el agente actualice después de cada tarea:

Terminal window
mkdir -p .gemini/notes

En tu GEMINI.md, apunta a las notas:

# Contexto del Proyecto
@.gemini/notes/arquitectura.md
@.gemini/notes/decisiones.md
@.gemini/notes/errores-conocidos.md

Pide al agente que actualice las notas relevantes al final de cada sesión:

Actualiza las notas del proyecto con lo que aprendiste en esta sesión.

💡

Nota

El GEMINI.md global (~/.gemini/GEMINI.md) aplica a todos tus proyectos. Úsalo para preferencias universales como idioma, estilo de código y convenciones que siempre sigues.

15

Configuration

settings.json controla el comportamiento del CLI: modelos, UI, contexto, seguridad y más.

UBICACIÓN

  • Usuario: ~/.gemini/settings.json — configuración global
  • Proyecto: .gemini/settings.json — configuración del proyecto (tiene prioridad)

EDITAR RÁPIDO

Desde el CLI: ejecuta /settings para abrir el editor interactivo con todas las opciones organizadas por categorías.

CATEGORÍAS DE CONFIGURACIÓN

CategoríaQué controla
GeneralVim mode, modo de aprobación, auto-update
UITema, renderizado, footer, indicador de “thinking”
ModelSelección de modelo, compresión de contexto, detección de loops
ContextDescubrimiento de memoria, filtrado de archivos, .geminiignore
ToolsConfiguración de shell, truncado de output
SecurityYOLO mode, aprobación de herramientas, carpetas de confianza
SkillsHabilitación de Agent Skills

EJEMPLO DE CONFIGURACIÓN

{
"model": {
"modelId": "gemini-2.5-flash"
},
"ui": {
"theme": "github-dark"
},
"context": {
"fileName": ["GEMINI.md", "CONTEXT.md"]
},
"tools": {
"autoAccept": false
}
}

CONFIGURACIÓN DE MODELOS

Puedes cambiar el modelo activo de varias formas:

  • En la sesión: /model set <nombre>
  • En settings.json: "model": { "modelId": "gemini-2.5-pro" }
  • Gestión interactiva: /model manage

CARPETAS DE CONFIANZA

Para evitar que Gemini CLI pida confirmación cada vez que accede a un directorio:

Terminal window
/permissions trust /ruta/a/mi/proyecto
💡

Nota

Usa /settings para explorar todas las opciones disponibles. La configuración de proyecto (.gemini/settings.json) sobreescribe la configuración de usuario.

Siguiente 1. Introducción