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.
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 →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
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.
Instalación
El primer paso es instalar la herramienta en tu sistema.
OPCIÓN 1: NPM (RECOMENDADO)
npm install -g @google/gemini-cliOPCIÓN 2: HOMEBREW (macOS/Linux)
brew install gemini-cliOPCIÓN 3: SIN INSTALAR (npx)
Si solo quieres probar sin instalar globalmente:
npx @google/gemini-cliVERIFICAR INSTALACIÓN
gemini --versionCANALES 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.
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)
- Ejecuta el comando principal:
gemini - Selecciona Login with Google en el menú interactivo.
- Autoriza la aplicación en el navegador que se abrirá.
- 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
- Obtén una API Key desde Google AI Studio.
- Configura la variable de entorno:
Terminal window export GEMINI_API_KEY=tu_clave_aqui - Ejecuta
geminiy 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:
gcloud auth application-default loginRequiere 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:
echo "¿Qué es el fine tuning?" | geminiO con el flag -p:
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.
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 (oCtrl+L)/quito/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 (oEsc 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.
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
-
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!
-
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:
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.
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:
mkdir desordencd desordentouch foto1.jpg foto2.png notas.txt script.py data.json todo.md config.ymlcd ..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
/plano 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
- Investigación: Describes tu objetivo. Gemini explora el código en modo solo lectura.
- Diseño: El agente hace preguntas clarificadoras y presenta opciones.
- Plan: Genera un plan detallado en Markdown dentro del directorio de planes.
- 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
.mden 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:
| Subagent | Propósito |
|---|---|
codebase_investigator | Analiza codebases, mapea dependencias, reverse engineering |
cli_help | Experto en comandos y configuración de Gemini CLI |
generalist_agent | Rutea tareas al subagent especializado más adecuado |
browser_agent | (Experimental) Automatiza tareas en el navegador web |
CREAR SUBAGENTS PERSONALIZADOS
- Habilita la funcionalidad en
settings.json:
{ "experimental": { "enableAgents": true }}- Crea un archivo Markdown en
.gemini/agents/(proyecto) o~/.gemini/agents/(usuario):
---name: security-auditordescription: "Encuentra vulnerabilidades de seguridad en el código"tools: - read_file - grep_searchmodel: gemini-2.5-protemperature: 0.2max_turns: 10---Eres un auditor de seguridad experto. Analiza el código buscando:
1. Inyecciones SQL y XSS2. Secrets hardcodeados3. Dependencias vulnerables4. Permisos excesivosCampos del frontmatter:
| Campo | Descripción |
|---|---|
name | Identificador único (minúsculas, guiones) |
description | Qué hace — guía al agente principal para delegarle tareas |
tools | Herramientas que puede usar (limita el alcance) |
model | Modelo específico (opcional) |
temperature | Creatividad 0.0–2.0 (opcional) |
max_turns | Límite de turnos (default: 15) |
timeout_mins | Timeout en minutos (default: 5) |
EJERCICIO: CREAR UN SUBAGENT DE DOCUMENTACIÓN
mkdir -p .gemini/agentscat > .gemini/agents/doc-writer.md << 'EOF'---name: doc-writerdescription: "Genera documentación técnica para funciones y módulos"tools: - read_file - grep_search - list_directorymodel: gemini-2.5-flashmax_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.EOFLuego 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.
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:
!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:
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.
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
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:
- Stack: HTML5 Canvas, CSS3 y Vanilla JavaScript (ES6+).
- Archivos: Genera
index.html,styles.css, ygame.js.- 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
requestAnimationFramepara 60 FPS estables.
CRITERIOS DE ÉXITO
Tu juego estará completo cuando:
- ✓ El personaje salte suavemente con física realista.
- ✓ Los obstáculos aparezcan aleatoriamente y se muevan.
- ✓ Las colisiones se detecten correctamente.
- ✓ El score aumente y se guarde el high score.
- ✓ Funcione tanto en móvil como en desktop.
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:
gemini mcp add <nombre> <comando> [args...]Ejemplo con GitHub:
gemini mcp add github npx -y @modelcontextprotocol/server-github \ -e GITHUB_PERSONAL_ACCESS_TOKEN=tu_tokenOpciones útiles:
-s, --scope—useroproject-t, --transport—stdio,sseohttp-e, --env— Variables de entorno--trust— Omitir confirmaciones (solo servidores controlados por ti)
GESTIONAR SERVIDORES
gemini mcp list # Ver servidores configuradosgemini mcp remove <nombre> # Eliminar un servidorgemini mcp enable <nombre> # Habilitargemini mcp disable <nombre> # DeshabilitarCONFIGURACIÓ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
/mcpdentro 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.
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
gemini extensions install <URL_del_repositorio>Ejemplo:
gemini extensions install https://github.com/gemini-cli-extensions/workspaceGESTIONAR EXTENSIONES
Desde la terminal:
gemini extensions list # Ver extensiones instaladasgemini extensions install # Instalar nuevaDesde 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.
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?
- Gemini CLI inyecta los nombres y descripciones de las Skills en el system prompt.
- Cuando el modelo identifica una tarea que coincide, invoca la herramienta
activate_skill. - Tú confirmas la activación en un prompt de consentimiento.
- 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):
- Proyecto:
.gemini/skills/o.agents/skills/ - Usuario:
~/.gemini/skills/o~/.agents/skills/ - 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-reviewerdescription: > 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”
- Crea la estructura:
mkdir -p .gemini/skills/code-reviewer- Crea el archivo
SKILL.md:
cat > .gemini/skills/code-reviewer/SKILL.md << 'EOF'---name: code-reviewerdescription: > 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).EOFGESTIONAR SKILLS
Desde una sesión interactiva:
/skills list— Listar skills disponibles/skills reload— Recargar definiciones/skills enable— Habilitar/skills disable— Deshabilitar
Desde la terminal:
gemini skills listgemini skills install <repo_o_directorio>gemini skills link <directorio_local>gemini skills uninstall <nombre>PROBANDO LA SKILL
/skills reloadHaz 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:
# Copiar skills a un nuevo proyectocp -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écnicatest-writer— Genera tests unitarios siguiendo las convenciones de tu proyectopr-reviewer— Revisa PRs con checklist personalizado de tu equipomigrator— 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
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:
- Global:
~/.gemini/GEMINI.md— instrucciones por defecto para todos los proyectos - Proyecto:
GEMINI.mden la raíz del repo — contexto específico del proyecto - Just-in-time: Archivos
GEMINI.mden 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.mdEsto importa el contenido de cada archivo referenciado (rutas relativas o absolutas).
EJERCICIO PRÁCTICO
- Crea un contexto de proyecto:
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- Refresca y valida:
/memory refresh/memory show- Agrega instrucciones rápidamente:
/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:
mkdir -p .gemini/notesEn tu GEMINI.md, apunta a las notas:
# Contexto del Proyecto@.gemini/notes/arquitectura.md@.gemini/notes/decisiones.md@.gemini/notes/errores-conocidos.mdPide 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.
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ía | Qué controla |
|---|---|
| General | Vim mode, modo de aprobación, auto-update |
| UI | Tema, renderizado, footer, indicador de “thinking” |
| Model | Selección de modelo, compresión de contexto, detección de loops |
| Context | Descubrimiento de memoria, filtrado de archivos, .geminiignore |
| Tools | Configuración de shell, truncado de output |
| Security | YOLO mode, aprobación de herramientas, carpetas de confianza |
| Skills | Habilitació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:
/permissions trust /ruta/a/mi/proyectoNota
Usa /settings para explorar todas las opciones disponibles. La configuración de proyecto (.gemini/settings.json) sobreescribe la configuración de usuario.