Saltar al contenido
> 💻 🧠 Código 1001 > Gemini CLI > 💡 Gemini CLI — Cheatsheet (Guía rápida)

💡 Gemini CLI — Cheatsheet (Guía rápida)

  • por

🚀 Comenzando

Instalación

Instalar globalmente:

npm install -g @google/gemini-cli

Ejecutar sin instalar:

npx @google/gemini-cli

Autenticación con una clave API de Gemini

Autentícate con una clave API antes del primer uso. Consulta la guía de autenticación en el repositorio oficial para más detalles.

  1. Obtén tu clave: Consigue una clave API en Google AI Studio.
  2. Configura la clave: Hazla accesible para el CLI de una de estas maneras: Método 1 — Variable de entorno del shell
    Añade en tu perfil de shell (por ejemplo ~/.bashrc, ~/.zshrc): export GEMINI_API_KEY="TU_GEMINI_API_KEY" Método 2 — Archivo .env
    Crea un archivo .env en ~/.gemini/ para uso global o en ./.gemini/ para un proyecto específico. El CLI lo cargará automáticamente: # En .gemini/.env GEMINI_API_KEY="TU_GEMINI_API_KEY"

📖 Invocación básica

Modo interactivo (REPL):
Inicia una sesión conversacional:

gemini

Modo no interactivo:
Pasa un prompt y obtén una sola respuesta:

gemini -p "Resume los puntos principales del archivo adjunto. @./summary.txt"

Piping hacia el CLI:

echo "Cuenta hasta 10" | gemini

Modo sandbox:
Ejecuta herramientas en un entorno seguro (requiere Docker o Podman):

gemini --sandbox -p "tu prompt"

Otros flags:

  • -m, --model <model>: Usar un modelo específico.
  • -i, --prompt-interactive <prompt>: Iniciar sesión interactiva con un prompt inicial.
  • -d, --debug: Activar salida de depuración.
  • --yolo: Auto-aprobar todas las llamadas a herramientas.
  • --checkpointing: Guardar snapshot del proyecto antes de modificar archivos. Usa /restore para revertir cambios.

(Consulta el listado completo de flags en la documentación oficial.)


⚙️ Configuración

Archivos de settings (settings.json)

Personaliza el CLI creando un settings.json. El orden de precedencia es:

  1. Proyecto: .gemini/settings.json (sobrescribe usuario y sistema).
  2. Usuario: ~/.gemini/settings.json (sobrescribe sistema).
  3. Sistema: /etc/gemini-cli/settings.json (prioridad más baja).

Ejemplo settings.json:

{
  "theme": "GitHub",
  "autoAccept": false,
  "sandbox": "docker",
  "vimMode": true,
  "checkpointing": { "enabled": true },
  "fileFiltering": { "respectGitIgnore": true },
  "usageStatisticsEnabled": true,
  "includeDirectories": ["../shared-library", "~/common-utils"],
  "chatCompression": { "contextPercentageThreshold": 0.6 },
  "customThemes": {
    "MyCustomTheme": {
      "name": "MyCustomTheme",
      "type": "custom",
      "Background": "#181818",
      "Foreground": "#F8F8F2",
      "LightBlue": "#82AAFF",
      "AccentBlue": "#61AFEF",
      "AccentPurple": "#C678DD",
      "AccentCyan": "#56B6C2",
      "AccentGreen": "#98C379",
      "AccentYellow": "#E5C07B",
      "AccentRed": "#E06C75",
      "Comment": "#5C6370",
      "Gray": "#ABB2BF"
    }
  }
}

Opciones destacadas:

  • autoAccept: Auto-aprobar llamadas a herramientas de solo lectura seguras.
  • sandbox: Aislar ejecución de herramientas (true, "docker", "podman").
  • vimMode: Habilitar edición estilo Vim para el prompt.
  • checkpointing: Habilitar /restore para deshacer cambios en archivos.
  • includeDirectories: Definir workspace multi-directorio.
  • chatCompression: Configurar compresión automática del historial de chat.
  • customThemes: Definir temas personalizados.
  • usageStatisticsEnabled: Poner false para desactivar estadísticas de uso.

(Ver la guía de configuración para todos los detalles.)


Archivos de contexto (GEMINI.md)

Usa GEMINI.md para dar instrucciones al modelo y adaptar el comportamiento al proyecto. Usa /init para generar un GEMINI.md inicial.

Carga jerárquica:
El CLI combina GEMINI.md desde varias ubicaciones; archivos más específicos sobreescriben los generales. Orden de carga:

  1. Contexto global: ~/.gemini/GEMINI.md (instrucciones aplicables a todos tus proyectos).
  2. Contexto del proyecto/ancestros: El CLI busca desde tu directorio actual hacia la raíz del proyecto GEMINI.md.
  3. Contexto de subdirectorios: También escanea subdirectorios para instrucciones específicas de componentes.

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

Modularizar contexto con imports:
Puedes organizar GEMINI.md importando otros archivos Markdown con la sintaxis @file.md. Solo soporta .md.

Ejemplo GEMINI.md con imports:

# Contexto principal del proyecto: Mi App Asombrosa

## Instrucciones generales
- Todo código Python debe cumplir PEP 8.
- Usa indentación de 2 espacios para archivos nuevos.

## Guías por componente
@./src/frontend/react-style-guide.md
@./src/backend/fastapi-style-guide.md

(Ver la guía completa de archivos de contexto.)


Ignorar archivos con .geminiignore

Crea .geminiignore en la raíz del proyecto para excluir archivos y carpetas de las herramientas de Gemini, similar a .gitignore.

Ejemplo .geminiignore:

/backups/
*.log
secret-config.json

🛠️ Trabajando con herramientas

Algunas herramientas incorporadas

  • Herramientas de sistema de ficheros: interactuar con archivos y directorios — list_directory(path="/src"), glob(pattern="src/**/*.ts"), read_file(path="/path/to/file.txt"), write_file(file_path="/path/to/new_file.js", content="console.log('hello');"), replace(file_path="...", old_string="...", new_string="..."), search_file_content(pattern="myFunction", include="*.js").
  • Shell Tool: ejecutar comandos shell. Usar con precaución. Para restringir, usa excludeTools en settings.json, por ejemplo: "excludeTools": ["run_shell_command(rm)"].
  • Web Tools: recuperar contenido y buscar en línea — google_web_search(query="Gemini API rate limits"), web_fetch(prompt="Summarize https://my-blog.com/article").
  • Memory Tool: guardar y recordar información entre sesiones — save_memory(fact="Mi framework CSS preferido es Tailwind CSS.").

Herramientas personalizadas vía servidores MCP

Extiende el CLI con tus propias herramientas ejecutando servidores MCP (Model Context Protocol). Administra servidores vía settings.json o gemini mcp <add|list|remove>.

Capacidades:

  • Soporte OAuth 2.0 para conectar servidores remotos de forma segura.
  • Retornos con contenido multimodal (texto, imágenes).
  • Exponer prompts predefinidos como comandos slash en el CLI.

Ejemplo de configuración mcpServers:

"mcpServers": {
  "myPythonServer": {
    "command": "python",
    "args": ["-m", "my_mcp_server", "--port", "8080"],
    "cwd": "./mcp_tools/python",
    "env": {
      "DATABASE_URL": "$DB_URL_FROM_ENV"
    },
    "timeout": 15000,
    "trust": false,
    "includeTools": ["safe_tool_1", "safe_tool_2"],
    "excludeTools": ["dangerous_tool"]
  }
}

Transporte (elige uno):

  • command, args, cwd: lanzar proceso local vía stdio.
  • url: endpoint SSE (ej. http://localhost:8080/sse).
  • httpUrl: endpoint HTTP streaming (ej. http://localhost:8080/mcp).

Opcional:

  • env: variables de entorno (usa $VAR_NAME para referenciar).
  • headers: cabeceras HTTP para url/httpUrl.
  • timeout: tiempo de espera en ms (por defecto: 10 min).
  • trust: omitir confirmaciones de herramientas para este servidor.
  • includeTools/excludeTools: whitelist/blacklist de herramientas (exclude prevalece).

(Toma en cuenta el documento de soporte OAuth para MCP servers si usas OAuth.)


⚡ Comandos principales

Comandos slash útiles (/)

ComandoDescripción
/compressReemplaza todo el contexto del chat por un resumen para ahorrar tokens.
/copyCopiar la última respuesta al portapapeles.
/mcpListar servidores MCP configurados y sus herramientas.
/clearLimpiar la pantalla y el contexto (Ctrl+L también funciona).
/toolsListar herramientas disponibles.
/extensionsListar extensiones activas.
/statsMostrar uso de tokens y ahorros.
/memory showMostrar el contexto combinado de todos los GEMINI.md.
/memory refreshRecargar todos los GEMINI.md.
/chat save <tag>Guardar la conversación actual con una etiqueta.
/chat resume <tag>Reanudar una conversación guardada.
/chat listListar etiquetas de conversaciones guardadas.
/restoreListar o restaurar un checkpoint del proyecto.
/authCambiar método de autenticación actual.
/bugReportar un bug del Gemini CLI.
/helpMostrar ayuda y comandos.
/themeCambiar tema visual del CLI.
/quitSalir del Gemini CLI.
/ideGestionar integración con tu IDE (ej. install, enable).
/settingsAbrir editor para settings.json.
/vimAlternar modo Vim para edición de input.
/initGenerar GEMINI.md inicial para un proyecto.
/directoryGestionar directorios en un workspace multi-directorio (por ejemplo add, show).

Comandos de contexto (@)

Referencia archivos o directorios en tu prompt. El CLI respeta .gitignore y .geminiignore. También puedes referenciar imágenes, PDFs, audio y vídeo.

  • Incluir un solo archivo: > Explícame este código. @./src/main.js
  • Incluir una imagen: > Describe lo que ves en esta captura. @./ux-mockup.png
  • Incluir un directorio entero (recursivo): > Refactoriza el código en este directorio a async/await. @./src/

Comandos de Shell (!)

Ejecuta comandos shell directamente desde el CLI.

  • Ejecutar un comando único: > !git status
  • Alternar modo Shell persistente:
    Escribe ! solo para entrar en modo shell persistente; escribe ! otra vez para salir.

Atajos de teclado

AtajoDescripción
Ctrl+LLimpiar pantalla.
Ctrl+VPegar texto o imagen desde el portapapeles.
Ctrl+YAlternar modo YOLO (auto-aprobar todas las llamadas a herramientas).
Ctrl+XAbrir el prompt actual en un editor externo.

✨ Funciones avanzadas

Integración IDE (VS Code)

  • Contexto del workspace: obtiene tus archivos recientes, posición del cursor y texto seleccionado.
  • Diff nativo: ver y aprobar cambios directamente en el diff del editor.
  • Comandos: /ide install para instalar integración, /ide enable para habilitarla.

Comandos personalizados

Crea comandos personalizados usando archivos TOML. Guárdalos en ~/.gemini/commands/ (global) o <proyecto>/.gemini/commands/ (por proyecto). Pueden usarse para exponer prompts reutilizables.

Ejemplo ~/.gemini/commands/test/gen.toml:

# Invocado como: /test:gen "Crea un test para el botón de login"
description = "Genera un unit-test basado en la descripción."
prompt = """
Eres un ingeniero de pruebas experto. Basado en el siguiente requisito, escribe un unit-test completo usando Jest.

Requisito: {{args}}
"""

Extensiones

Crea extensiones para añadir funcionalidad. Colócalas en <workspace>/.gemini/extensions/ o ~/.gemini/extensions/. Cada extensión es un directorio con gemini-extension.json que puede configurar MCP servers, herramientas y archivos de contexto.

Ejemplo gemini-extension.json:

{
  "name": "my-extension",
  "version": "1.0.0",
  "mcpServers": {
    "my-server": {
      "command": "node my-server.js"
    }
  },
  "contextFileName": "GEMINI.md",
  "excludeTools": ["run_shell_command"]
}

(Ver la guía de extensiones para más detalles.)


Checkpointing & Restore

Con checkpointing activado, el CLI guarda un snapshot del proyecto antes de que las herramientas modifiquen archivos.

Activar con flag o en settings.json:

gemini --checkpointing

Restaurar a un estado anterior:

# Listar checkpoints disponibles
/restore

# Restaurar un checkpoint específico
/restore <checkpoint_file_name>

Si quieres, puedo convertir esta traducción en un archivo Markdown listo para subir al repositorio o al blog. ¿Lo dejo en Markdown y te lo muestro?

Etiquetas:

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *