Documentation/Configuration
Configuration Guide

Configuration & Settings

Customize Gemini CLI to fit your workflow. Learn about configuration files, environment variables, and all available settings.

Configuration Methods

Config Files
JSON/YAML configuration files
  • • ~/.config/gemini/config.json
  • • Project-specific configs
  • • JSON or YAML format
  • • Version controlled
Environment Variables
Shell environment configuration
  • • GEMINI_API_KEY
  • • GEMINI_MODEL
  • • System-wide settings
  • • CI/CD friendly
CLI Commands
Interactive configuration
  • • gemini config set
  • • gemini config get
  • • Runtime overrides
  • • Command-line flags

Configuration File Setup

Configuration File Locations

User Configuration

Personal settings that apply to all projects for the current user.

# Create user config directory
mkdir -p ~/.config/gemini

# Create config file
cat > ~/.config/gemini/config.json << 'EOF'
{
  "auth": {
    "apiKey": "your-api-key-here",
    "method": "api-key"
  },
  "models": {
    "default": "gemini-pro",
    "temperature": 0.7,
    "maxTokens": 2048
  },
  "output": {
    "format": "markdown",
    "color": true,
    "streaming": true
  }
}
EOF

Configuration Reference

Authentication
API keys, OAuth, and credentials
SettingTypeDescriptionDefault
auth.apiKeystringGoogle AI Studio API key-
auth.methodenumapi-key, oauth, service-accountapi-key
auth.tokenRefreshbooleanAuto-refresh OAuth tokenstrue
auth.credentialsFilestringPath to service account JSON-
Models & AI
Model selection and AI parameters
SettingTypeDescriptionDefault
models.defaultstringDefault model to usegemini-pro
models.temperaturenumberCreativity level (0.0-1.0)0.7
models.maxTokensnumberMaximum response length2048
models.topPnumberNucleus sampling parameter0.9
Output & Display
Formatting and display options
SettingTypeDescriptionDefault
output.formatenumtext, markdown, json, yamlmarkdown
output.colorbooleanEnable colored outputtrue
output.streamingbooleanStream responses as they generatetrue
output.verbosebooleanShow detailed informationfalse
Performance
Caching, timeouts, and optimization
SettingTypeDescriptionDefault
cache.enabledbooleanEnable response cachingtrue
cache.ttlnumberCache TTL in seconds3600
network.timeoutnumberRequest timeout in ms30000
network.retriesnumberNumber of retry attempts3

Environment Variables

Environment variables provide a convenient way to configure Gemini CLI, especially in automated environments like CI/CD pipelines.

Available Environment Variables
Complete list of supported environment variables
VariableConfig EquivalentDescription
GEMINI_API_KEYauth.apiKeyGoogle AI Studio API key
GEMINI_MODELmodels.defaultDefault model to use
GEMINI_TEMPERATUREmodels.temperatureDefault temperature setting
GEMINI_MAX_TOKENSmodels.maxTokensMaximum tokens per response
GEMINI_TIMEOUTnetwork.timeoutRequest timeout in milliseconds
GEMINI_CONFIG_FILE-Path to custom config file
GEMINI_CACHE_DIRcache.directoryCache directory path
GEMINI_LOG_LEVELlogging.levelLogging level (debug, info, warn, error)
Setting Environment Variables
# Temporary (current session)
export GEMINI_API_KEY="your-api-key"
export GEMINI_MODEL="gemini-pro"
export GEMINI_TEMPERATURE="0.8"

# Permanent (add to ~/.bashrc or ~/.zshrc)
echo 'export GEMINI_API_KEY="your-api-key"' >> ~/.bashrc
echo 'export GEMINI_MODEL="gemini-pro"' >> ~/.bashrc
source ~/.bashrc

Advanced Configuration

Configuration Profiles
Use different configurations for different environments
# Create development profile
gemini config profile create development
gemini config set models.temperature 0.9 --profile development

# Create production profile  
gemini config profile create production
gemini config set models.temperature 0.3 --profile production

# Switch profiles
gemini config profile use development

# List profiles
gemini config profile list
Configuration Validation
Validate your configuration for errors
# Validate current configuration
gemini config validate

# Validate specific config file
gemini config validate --file ./custom-config.json

# Check configuration completeness
gemini config check

# Show effective configuration
gemini config show --resolved
Configuration Schema
JSON schema for configuration validation
# Generate configuration schema
gemini config schema > gemini-config.schema.json

# Validate against schema
npm install -g ajv-cli
ajv validate -s gemini-config.schema.json -d your-config.json

Configuration Migration

Migration Commands
# Check if migration is needed
gemini config migrate --check

# Migrate configuration to latest format
gemini config migrate --backup

# Migrate specific file
gemini config migrate --file old-config.json --output new-config.json

# Show migration preview
gemini config migrate --dry-run

Configuration Best Practices

Best Practices
  • Use project-specific configs for teams
  • Store sensitive data in environment variables
  • Version control your config files
  • Use profiles for different environments
  • Document custom configurations
  • Validate configs before deployment
Avoid These Mistakes
  • Don't commit API keys to version control
  • Don't use overly high temperature values
  • Don't set timeout values too low
  • Don't ignore configuration validation errors
  • Don't use production configs in development
  • Don't modify global configs without testing
Configuration Complete!
You now know how to configure Gemini CLI for optimal performance and workflow integration.