The Gemini CLI requires you to authenticate with Google’s AI services. On initial startup you’ll need to configure one of the following authentication methods:
You can temporarily set the environment variable in your current shell session using the following command:
export GOOGLE_CLOUD_PROJECT="YOUR_PROJECT_ID"
~/.bashrc
, ~/.zshrc
, or ~/.profile
). For example, the following command adds the environment variable to a ~/.bashrc
file:echo 'export GOOGLE_CLOUD_PROJECT="YOUR_PROJECT_ID"' >> ~/.bashrc
source ~/.bashrc
GEMINI_API_KEY
environment variable. In the following methods, replace YOUR_GEMINI_API_KEY
with the API key you obtained from Google AI Studio:
export GEMINI_API_KEY="YOUR_GEMINI_API_KEY"
For repeated use, you can add the environment variable to your .env file.
Alternatively you can export the API key from your shell’s configuration file (like ~/.bashrc
, ~/.zshrc
, or ~/.profile
). For example, the following command adds the environment variable to a ~/.bashrc
file:
echo 'export GEMINI_API_KEY="YOUR_GEMINI_API_KEY"' >> ~/.bashrc
source ~/.bashrc
:warning: Be advised that when you export your API key inside your shell configuration file, any other process executed from the shell can read it.
GOOGLE_API_KEY
environment variable. In the following methods, replace YOUR_GOOGLE_API_KEY
with your Vertex AI API key:
export GOOGLE_API_KEY="YOUR_GOOGLE_API_KEY"
~/.bashrc
, ~/.zshrc
, or ~/.profile
). For example, the following commands add the environment variables to a ~/.bashrc
file:
echo 'export GOOGLE_API_KEY="YOUR_GOOGLE_API_KEY"' >> ~/.bashrc
source ~/.bashrc
gcloud auth application-default login
For more information, see Set up Application Default Credentials for Google Cloud.
GOOGLE_CLOUD_PROJECT
and GOOGLE_CLOUD_LOCATION
environment variables. In the following methods, replace YOUR_PROJECT_ID
and YOUR_PROJECT_LOCATION
with the relevant values for your project:
export GOOGLE_CLOUD_PROJECT="YOUR_PROJECT_ID"
export GOOGLE_CLOUD_LOCATION="YOUR_PROJECT_LOCATION" # e.g., us-central1
For repeated use, you can add the environment variables to your .env file
Alternatively you can export the environment variables from your shell’s configuration file (like ~/.bashrc
, ~/.zshrc
, or ~/.profile
). For example, the following commands add the environment variables to a ~/.bashrc
file:
echo 'export GOOGLE_CLOUD_PROJECT="YOUR_PROJECT_ID"' >> ~/.bashrc
echo 'export GOOGLE_CLOUD_LOCATION="YOUR_PROJECT_LOCATION"' >> ~/.bashrc
source ~/.bashrc
:warning: Be advised that when you export your API key inside your shell configuration file, any other process executed from the shell can read it.
This is the default authentication method when running in Cloud Shell and no other method is configured.
:warning: Be advised that when you export your API key inside your shell configuration file, any other process executed from the shell can read it.
.env
FilesYou can create a .gemini/.env
file in your project directory or in your home directory. Creating a plain .env
file also works, but .gemini/.env
is recommended to keep Gemini variables isolated from other tools.
Important: Some environment variables (like DEBUG
and DEBUG_MODE
) are automatically excluded from project .env
files to prevent interference with gemini-cli behavior. Use .gemini/.env
files for gemini-cli specific variables.
Gemini CLI automatically loads environment variables from the first .env
file it finds, using the following search order:
/
, for each directory it checks:
.gemini/.env
.env
~/.gemini/.env
~/.env
Important: The search stops at the first file encountered—variables are not merged across multiple files.
Project-specific overrides (take precedence when you are inside the project):
mkdir -p .gemini
echo 'GOOGLE_CLOUD_PROJECT="your-project-id"' >> .gemini/.env
User-wide settings (available in every directory):
mkdir -p ~/.gemini
cat >> ~/.gemini/.env <<'EOF'
GOOGLE_CLOUD_PROJECT="your-project-id"
GEMINI_API_KEY="your-gemini-api-key"
EOF
When running the Gemini CLI in a non-interactive environment, you cannot use the interactive login flow. Instead, you must configure authentication using environment variables.
The CLI will automatically detect if it is running in a non-interactive terminal and will use one of the following authentication methods if available:
GEMINI_API_KEY
environment variable.GOOGLE_GENAI_USE_VERTEXAI=true
environment variable.GOOGLE_API_KEY
environment variable.gcloud auth application-default login
in your environment to configure ADC.GOOGLE_CLOUD_PROJECT
and GOOGLE_CLOUD_LOCATION
environment variables are set.If none of these environment variables are set in a non-interactive session, the CLI will exit with an error.