Descubre un nuevo nivel de interactividad en la CLI de Gemini

15 DE OCTUBRE DE 2025
Gal Zahavi Software Engineer
Jack Wotherspoon Developer Advocate

Nos complace anunciar una mejora en la CLI de Gemini que hace que tu flujo de trabajo sea más potente y familiar. Actualizamos la terminal para que puedas ejecutar comandos complejos e interactivos, como vim para editar, top para supervisar o incluso un git rebase interactivo (i), todo directamente dentro de la CLI de Gemini. Ya no tienes que usar una terminal separada o lidiar con una CLI auténtica que no responde a los comandos interactivos. Todo queda en su lugar.

Mantener todo en contexto

Esto es importante porque ahora todo se mantiene dentro del contexto de la CLI de Gemini. Antes, habrías tenido que salir de la CLI de Gemini para ejecutar comandos de shell interactivos. Y algo más importante aún: estos comandos se ejecutaban fuera del contexto de la CLI de Gemini. Al introducir la compatibilidad con pseudoterminales (PTY), los comandos que requieren capacidades enriquecidas, como editores de texto, monitores de sistema o dependencia de códigos de control de terminales, ahora se pueden ejecutar desde dentro de la CLI de Gemini y de su contexto.

Cómo funciona: serialización del estado de la terminal

Ahora, cuando ejecutas un comando de shell, la CLI de Gemini genera un nuevo proceso dentro de una pseudoterminal en segundo plano, aprovechando la biblioteca node-pty. La PTY funciona como intermediario, proporcionando la interfaz necesaria para que el sistema operativo reconozca la sesión como una terminal. Esto permite que las aplicaciones y los comandos se ejecuten como se diseñaron de forma natural.

Entonces, ¿cómo aparece en tu pantalla esta terminal virtual que se ejecuta en segundo plano? Piensa en que es como una transmisión de video por Internet. Nuestro nuevo serializador toma una instantánea de la pseudoterminal en cada momento, capturando cada fragmento de texto, cada color e incluso la posición del cursor. Recibes estas instantáneas y puedes ver e interactuar con la aplicación de la terminal en tiempo real. No es solo una transmisión de texto; es una transmisión en vivo.

Gemini CLI - interactive shell

Interacción bidireccional completa

Esta nueva arquitectura hace posible la comunicación bidireccional. Agregamos nuevas capacidades para escribir entradas en la terminal e incluso redimensionarlas sobre la marcha. Cuando escribes, las pulsaciones de las teclas se envían al proceso en ejecución, y cuando cambias el tamaño de la ventana, la aplicación dentro del shell de Gemini adapta su diseño, al igual que en una terminal nativa. Puedes concentrarte en la terminal si presionas ctrl+f.

También mejoramos nuestro procesamiento de salidas para renderizar correctamente salidas de terminal coloridas, de modo que puedas disfrutar de tus herramientas de línea de comandos favoritas en todo su esplendor.

Primeros pasos con el shell interactivo

El nuevo shell interactivo está habilitado de forma predeterminada en la CLI de Gemini a partir de la versión 0.9.0.

Actualiza a la última versión con el siguiente comando:

npm install -g @google/gemini-cli@latest

Para obtener más información, consulta la documentación oficial de la CLI de Gemini.

Estos son algunos ejemplos del tipo de comandos que ahora puedes ejecutar con el shell interactivo:

  • Edita código con vim, nvim o nano.
  • Administra tus confirmaciones con comandos git interactivos.
  • Utiliza REPL interactivos para tus idiomas favoritos.
  • Ejecuta aplicaciones de terminal de pantalla completa como htop o mc.
  • Navega sin esfuerzos por secuencias de comandos de configuración interactivas, como npm init o ng new.
  • Responde a las indicaciones interactivas de ciertos comandos de gcloud.

Este es un paso importante para nuestra integración del shell y estamos trabajando activamente para perfeccionar el procesamiento de entradas en todas las plataformas. Te recomendamos que dejes tus comentarios en nuestro repositorio de GitHub si encuentras alguna inconsistencia.

¡Haz una prueba y cuéntanos tu opinión!