13. Integración con IDEs

Objetivo del tema

Conectar Gemini CLI con tus editores preferidos mediante el companion plugin oficial. Veremos requisitos, instalación, flujos de trabajo y cómo desarrollar tu propia integración siguiendo la IDE Companion Spec.

Esta integración permite compartir diffs, comandos y memorias entre el REPL y el IDE sin perder sincronía.

13.1 ¿Qué ofrece la integración?

  • Visor de diffs interactivo: aceptar/rechazar cambios sin salir del editor.
  • Comandos rápidos (/edit, /review) accesibles desde paletas internas.
  • Sincronización de archivos (el CLI reconoce ediciones manuales y viceversa).
  • Indicadores de estado (sandbox activo, carpeta confiable, contexto cargado).
  • Soporte para memorias: paneles en el IDE muestran GEMINI.md y notas guardadas.

El companion plugin se comunica con el CLI mediante JSON-RPC. Cuando aceptas un diff el IDE envía ide/diffAccepted; al rechazarlo envía ide/diffRejected. El CLI espera estos eventos antes de continuar.

13.2 Instalación del companion plugin

La guía oficial describe varios escenarios:

IDE Instalación recomendada
VSCode Ejecuta /ide install vscode desde el CLI o busca “Gemini CLI Companion” en el marketplace. Luego reinicia VSCode.
VSCode Insiders Proceso similar; el CLI detecta la versión y ofrece el instalador adecuado.
Neovim Instala la extensión comunitaria compatible (por ejemplo, a través de lazy.nvim) y configura el servidor MCP y discovery file según la documentación.
Otros IDEs Instala manualmente desde su marketplace o desarrolla tu plugin con la companion spec.

Si el CLI no dispone de un instalador automático, mostrará un mensaje para instalarlo manualmente.

13.3 Requisitos de configuración

  • Mismo directorio: abre la carpeta del proyecto en el IDE y ejecuta el CLI desde la misma ruta. Si difiere, recibirás “Directory mismatch”.
  • Workspace activo: algunos IDEs no permiten la integración si no hay un workspace abierto (aparece “Please open a workspace folder”).
  • Trusted folders: el companion respeta las decisiones de confianza (ver Tema 9). Ajusta con /permissions si el plugin no puede escribir.
  • Sandbox: si usas sandbox, el plugin lo indica en la UI y todos los comandos se ejecutan dentro del contenedor.
  • Discovery file: el plugin crea un archivo JSON de descubrimiento para exponer herramientas. Asegúrate de que la ruta sea accesible para el CLI.

13.4 Flujos de trabajo

13.4.1 Revisar y aplicar cambios

/edit src/main.ts
# El CLI genera un diff y abre la vista en el IDE
# Acepta o rechaza; el plugin informa al CLI para continuar

Tras aceptar, el archivo queda actualizado tanto en la terminal como en el editor.

13.4.2 Ejecutar comandos desde el IDE

  • El companion expone un panel o paleta (“Gemini: Run Command”).
  • Puedes lanzar prompts, consultar memorias o pedir diffs sin volver al REPL.
  • Los resultados se muestran en paneles dedicados o en la terminal integrada.

13.4.3 Sincronización continua

  • El CLI detecta cambios guardados manualmente en el IDE.
  • Las memorias guardadas con /memory add se reflejan en el panel del companion.
  • Los indicadores del plugin informan qué modelo y modo está activo.

13.5 Desarrollar tu propio plugin

Si tu IDE favorito no tiene soporte, puedes implementar la companion spec:

  • Arranca un servidor MCP con tus herramientas y contextos.
  • Registra comandos y administra diffs enviando ide/diffAccepted/ide/diffRejected.
  • Controla el ciclo de vida: iniciar/terminar servidor y discovery file al activar/desactivar el plugin.
  • Sigue las recomendaciones de seguridad (sandbox, trusted folders) y documenta cómo instalar tu plugin.

Para publicar un plugin, aplica versiones semánticas, changelog y pruebas automatizadas, similar a la publicación de extensiones.

Conclusión: la integración con IDEs convierte a Gemini CLI en un asistente integrado: diffs controlados, comandos rápidos y memorias sincronizadas sin dejar tu editor. Instala el companion, verifica los requisitos y combina la terminal con tu IDE favorito para optimizar cada iteración.