Objetivo del tema
Personalizar Gemini CLI para distintos proyectos y perfiles de trabajo, conociendo el formato de settings.json, las opciones más relevantes y las estrategias para combinar configuraciones locales, globales y de línea de comandos.
La configuración oficial se actualizará durante 2025 con un esquema reorganizado; este repaso se basa en la versión vigente en la documentación estable.
Gemini CLI lee ajustes persistentes desde archivos JSON escalonados. El orden de precedencia va de menor a mayor (los niveles superiores sobrescriben a los inferiores):
| Nivel | Ubicación por defecto | Uso recomendado |
|---|---|---|
| System defaults | /etc/gemini-cli/system-defaults.json (Linux), C:\ProgramData\gemini-cli\system-defaults.json (Windows), /Library/Application Support/GeminiCli/system-defaults.json (macOS) |
Valores base definidos por administradores. Puede redefinirse con GEMINI_CLI_SYSTEM_DEFAULTS_PATH. |
| User settings | ~/.gemini/settings.json |
Preferencias del usuario actual (tema, editor, modelo por defecto). |
| Project settings | .gemini/settings.json en la raíz del proyecto |
Configura el CLI para un repositorio específico; ideal para estandarizar herramientas y contexto. |
| System overrides | /etc/gemini-cli/settings.json (o ruta definida en GEMINI_CLI_SYSTEM_SETTINGS_PATH) |
Capas de control corporativo: fuerza políticas que priman sobre las demás. |
| Variables de entorno | .gemini/.env, ~/.gemini/.env o exportes manuales |
Ajustes temporales o secretos (API keys, proxies, sandbox). |
| Argumentos CLI | Flags de ejecución (por ejemplo gemini --proxy ...) |
Control inmediato para una sesión puntual. |
El archivo settings.json usa una estructura jerárquica por categorías (general, ui, model, etc.). Puedes interpolar variables de entorno en cualquier string usando $VAR o ${VAR}.
{
"general": {
"vimMode": true,
"preferredEditor": "code"
},
"ui": {
"theme": "GitHub",
"hideBanner": true,
"customWittyPhrases": [
"Connecting to AGI",
"Listo para revisar tu repo"
]
},
"tools": {
"sandbox": "docker",
"exclude": ["write_file"]
},
"model": {
"name": "gemini-1.5-pro-latest",
"maxSessionTurns": 10
},
"context": {
"fileName": ["CONTEXT.md", "GEMINI.md"],
"loadFromIncludeDirectories": true
}
}
El CLI migrará automáticamente configuraciones antiguas al nuevo formato en los próximos lanzamientos. Revisa la sección “Configuration v1” si mantienes entornos legados.
Las opciones disponibles abarcan desde preferencias visuales hasta integraciones corporativas. A continuación agrupamos las más utilizadas:
general.vimMode, define general.preferredEditor, ajusta el tema (ui.theme) o esconde elementos como ui.hideBanner, ui.hideFooter y ui.showLineNumbers.model.name, limita el historial mediante model.maxSessionTurns y activa resúmenes automáticos de herramientas con model.summarizeToolOutput.context.fileName), los directorios incluidos (context.includeDirectories) o la profundidad de descubrimiento (context.discoveryMaxDirs). Usa /memory show y /memory refresh para validar el resultado.tools.sandbox (por ejemplo docker), registra comandos de descubrimiento personalizados o excluye herramientas sensibles (tools.exclude).telemetry.enabled, telemetry.target, telemetry.otlpEndpoint y controla el uso de estadísticas anónimas mediante privacy.usageStatisticsEnabled.ui.accessibility.screenReader o aprovecha la bandera --screen-reader para ajustar la TUI.En ejecuciones puntuales, combina la configuración persistente con flags como:
--proxy para establecer un proxy corporativo.--telemetry, --telemetry-target y --telemetry-otlp-endpoint para redirigir la instrumentación.--approval-mode y --allowed-tools para reforzar políticas de seguridad.--include-directories para sumar rutas contextuales sin editar archivos.Cuando trabajes con endpoints de Vertex AI, recuerda que las variables
GOOGLE_CLOUD_PROJECTyGOOGLE_CLOUD_LOCATIONsiguen activas desde el tema de autenticación y complementan la configuración del modelo.
Para equipos y organizaciones es habitual combinar varios niveles de configuración:
.gemini/settings.json, contextos y scripts en cada repositorio. Complementa con un archivo .gemini/.env para variables sensibles que el CLI cargará automáticamente.export GEMINI_CONTEXT_DEBUG=true
gemini --debug
GEMINI_CLI_SYSTEM_SETTINGS_PATH o distribuir un system-defaults.json endurecido..gemini/sandbox.Dockerfile para incluir dependencias propias y construye la imagen al vuelo:
FROM gemini-cli-sandbox
# Agrega paquetes o configuraciones corporativas aquí
BUILD_SANDBOX=1 gemini -s
~/.gemini/GEMINI.md), de proyecto y de subdirectorios. Ajusta context.discoveryMaxDirs si el repositorio es muy grande.Cuando necesites depurar una configuración:
gemini --debug para inspeccionar la carga de archivos y variables.
/memory show (para contexto) y revisa el contenido de ~/.config/gemini/logs si habilitaste telemetría local.
Conclusión: dominar los archivos settings.json, las variables de entorno y los flags de ejecución te permite crear perfiles precisos para cada escenario: desde desarrollos personales hasta pipelines empresariales. El siguiente paso es aplicar estas configuraciones a los flujos de uso cotidiano del CLI.