9. Temas avanzados del CLI

Objetivo del tema

Profundizar en las funciones avanzadas de Gemini CLI: personalización visual, telemetría con OpenTelemetry, token caching para optimizar costos, carpetas confiables y consideraciones empresariales.

Estas capacidades permiten adaptar el CLI a organizaciones con estándares estrictos de seguridad, observabilidad y experiencia de usuario.

9.1 Personalización de temas (Themes)

Gemini CLI incluye un conjunto de temas preinstalados que modifican colores, tipografía y distribución. Los puedes definir en settings.json dentro de la sección ui.theme. Algunos temas listados en la documentación son:

Nombre Características
Default Dark Estilo oscuro nativo, optimizado para sesiones largas y alto contraste.
GitHub Dark Replica la apariencia del IDE de GitHub ("dark dimmed").
Google Code Paleta inspirada en las herramientas de Google, con fondos claros.
Xcode Colores similares al editor de Apple, ideal para quienes trabajan en macOS.

Cambia de tema escribiendo en tu archivo de configuración:

{
  "ui": {
    "theme": "GitHub Dark",
    "hideBanner": true,
    "showLineNumbers": true
  }
}

Podemos seleccionar un theme sin tener que modificar manualmente el archivo settings.json mediante el comando /theme

seleccion theme Gemini CLI

Si necesitas un estilo totalmente personalizado, crea un tema JSON en ~/.gemini/themes y referencia su nombre en ui.customThemes.

9.2 Telemetría y OpenTelemetry

El CLI puede exportar métricas y trazas usando OpenTelemetry. Esto permite integrar el uso de Gemini en sistemas de observabilidad como Grafana, OTel Collector o paneles corporativos.

  • Activar telemetría: ajusta telemetry.enabled a true y elige el destino (por ejemplo, telemetry.target = otlp).
  • Variables clave: telemetry.otlpEndpoint, telemetry.otlpProtocol (http/protobuf, grpc) y telemetry.logPrompts para registrar prompts en texto plano si es necesario (ten en cuenta las implicancias de privacidad).
  • Métricas disponibles: gen_ai.client.token.usage (tokens usados por solicitud), gen_ai.client.operation.duration (duración de operaciones), entre otras.
  • Integración SRE: puedes enviar la telemetría a un colector OTEL local (telemetry.target = "local") y luego reenviarla a tu plataforma centralizada.

Ejemplo de configuración básica:

{
  "telemetry": {
    "enabled": true,
    "target": "otlp",
    "otlpEndpoint": "http://collector:4317",
    "otlpProtocol": "grpc",
    "logPrompts": false
  }
}

Si prefieres no enviar ningún tipo de estadística, puedes deshabilitar la telemetría y también poner privacy.usageStatisticsEnabled en false.

9.3 Token caching y optimización de costos

Gemini CLI soporta estrategias de caching para evitar repetir solicitudes y así reducir el consumo de tokens. Algunas recomendaciones:

  • Activa model.summarizeToolOutput para resumir respuestas largas en lugar de volver a ejecutar una herramienta cada vez.
  • Utiliza /compress o /memory refresh para mantener el contexto conciso y disminuir el costo de cada interacción.
  • Al trabajar en pipelines, guarda la salida en JSON y reutiliza partes relevantes sin volver a solicitar al modelo.
  • Define advanced.excludedEnvVars para evitar que variables volátiles invaliden caches.

La documentación oficial también sugiere monitorear el consumo mediante la telemetría y establecer límites en entornos empresariales.

9.4 Carpetas confiables (Trusted Folders)

Para proteger tu sistema, Gemini CLI requiere confirmar qué directorios son confiables antes de ejecutar herramientas sensibles. Las decisiones se almacenan en ~/.gemini/trustedFolders.json y pueden venir del IDE integrado.

  1. Al entrar a un nuevo proyecto, el CLI pregunta si quieres confiar en la carpeta. Las opciones suelen ser: permitir, solo lectura, denegar.
  2. Si usas la integración con IDE, la preferencia del IDE tiene prioridad.
  3. Revisa y edita manualmente trustedFolders.json para actualizar reglas en lote.

Combina carpetas confiables con el sandbox (--sandbox) para establecer límites claros de acceso en entornos corporativos.

9.5 Modo empresarial / Enterprise

Gemini CLI incluye configuraciones pensadas para empresas:

  • Distribución centralizada: usa /etc/gemini-cli/settings.json o GEMINI_CLI_SYSTEM_SETTINGS_PATH para forzar políticas globales (telemetría, carpetas confiables por defecto, aprobaciones).
  • Autenticación delegada: integra con Vertex AI y Application Default Credentials para evitar claves personales en pipelines.
  • Sandbox obligatorio: configura tu system-settings.json para que el CLI siempre arranque en modo sandbox, reduciendo riesgos ante scripts automatizados.
  • Telemetría a OTLP: canaliza eventos hacia tu stack de observabilidad y detecta usos anómalos.
  • Integración IDE + Trusted Folders: sincroniza el nivel de confianza entre IDE y CLI para mantener auditorías consistentes.

Un ejemplo de system-settings.json corporativo podría lucir así:

{
  "general": {
    "checkpointing": {
      "enabled": true
    }
  },
  "ui": {
    "theme": "Default Dark",
    "hideBanner": true
  },
  "telemetry": {
    "enabled": true,
    "target": "otlp",
    "otlpEndpoint": "http://otel-agent:4317"
  },
  "privacy": {
    "usageStatisticsEnabled": true
  },
  "tools": {
    "sandbox": "docker"
  }
}

Conclusión: al dominar estos temas avanzados puedes adaptar Gemini CLI a flujos exigentes: apariencias personalizadas, monitoreo centralizado, controles de seguridad refinados y despliegues empresariales cohesionados. Piensa cada ajuste como parte de una estrategia integral entre experiencia de uso, seguridad y cumplimiento.