Go to file
starsandskies 6bb3f27f6c
Edit pass of README.md (#906)
Make a pass through the README.md file to hopefully improve readability and completeness

Co-authored-by: N. Taylor Mullen <ntaylormullen@google.com>
2025-06-12 14:36:36 -04:00
.gcp refactor: rename gemini-code to gemini-cli (#822) 2025-06-07 14:27:22 -07:00
.gemini toggle off (#809) 2025-06-07 00:06:15 -07:00
.github Update package-lock.json (#738) 2025-06-04 04:05:39 +00:00
.vscode refactor: rename gemini-code to gemini-cli (#822) 2025-06-07 14:27:22 -07:00
docs Edit pass of docs/architecture.md (#971) 2025-06-12 16:44:55 +00:00
eslint-rules feat: add custom eslint rule for cross-package imports (#77) 2025-04-21 08:02:11 -07:00
packages Fix build_sandbox command (#974) 2025-06-12 17:38:10 +00:00
scripts fixes to proxy on macos: prevent curl from hanging during wait-for-proxy by adding ipv6 support and timeout (#947) 2025-06-11 11:31:38 -07:00
.gitignore refactor: rename gemini-code to gemini-cli (#822) 2025-06-07 14:27:22 -07:00
.npmrc refactor: rename gemini-code to gemini-cli (#822) 2025-06-07 14:27:22 -07:00
.prettierrc.json Run `npm run format` 2025-04-17 15:29:34 -07:00
CONTRIBUTING.md fixes to proxy on macos: prevent curl from hanging during wait-for-proxy by adding ipv6 support and timeout (#947) 2025-06-11 11:31:38 -07:00
Dockerfile restricted networking for all sandboxing methods, new seatbelt profiles, updated docs, fixes to sandbox build, debugging through sandbox (#891) 2025-06-10 08:58:37 -07:00
GEMINI.md Docs: Enhance "Writing Tests" section in GEMINI.md (#688) 2025-06-02 21:46:20 -07:00
LICENSE add LICENSE (#25) 2025-04-18 10:30:07 -07:00
Makefile Makefile for convenience (#833) 2025-06-07 22:22:32 -07:00
README.md Edit pass of README.md (#906) 2025-06-12 14:36:36 -04:00
esbuild.config.js fix version set for cli and slash commands (#892) 2025-06-11 08:25:26 -05:00
eslint.config.js Improve the performance of filename completion over large repositories. (#938) 2025-06-12 07:09:38 -07:00
learnings.md Ignore folders files (#651) 2025-06-04 04:40:46 +00:00
package-lock.json chore(deps-dev): bump esbuild from 0.23.1 to 0.25.0 (#872) 2025-06-12 06:21:50 +00:00
package.json chore(deps-dev): bump esbuild from 0.23.1 to 0.25.0 (#872) 2025-06-12 06:21:50 +00:00
tsconfig.json Fix: Prevent hang in large directories by using BFS for getFolderStru… (#470) 2025-05-22 10:47:21 -07:00

README.md

Gemini CLI

Gemini CLI CI

This repository contains the Gemini CLI tool.

Quickstart

  1. Install Node 20+.
  2. Get an API key from Google AI Studio.
  3. Set the API key in your shell using the following command, replacing YOUR_API_KEY with the API key you obtained: export GEMINI_API_KEY="YOUR_API_KEY".
  4. Run the Gemini CLI from your shell using the following command: npx https://github.com/google-gemini/gemini-cli#early-access
  5. Enjoy.

Examples

Once the CLI is running, you can start interacting with Gemini from your shell. Try a simple query:

> How can I build a web app?

Or ask it to perform a task using its tools:

> List files in the current directory.

API Key Setup

The Gemini CLI requires you to authenticate with Google's AI services. You'll need to configure one of the following authentication methods:

  1. Gemini API key:

    • Obtain your API key from Google AI Studio: https://aistudio.google.com/app/apikey
    • Set the GEMINI_API_KEY environment variable. In the following methods, replace YOUR_GEMINI_API_KEY with the API key you obtained from Google AI Studio:
      • You can temporarily set the environment variable in your current shell session using the following command:
        export GEMINI_API_KEY="YOUR_GEMINI_API_KEY"
        
      • For repeated use, you can add the environment variable to your .env file (located in the project directory or user home directory) or 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 # Or your preferred shell config file
        source ~/.bashrc # Reload the config
        
  2. Google API Key (Vertex AI Express Mode):

    • You can use a general Google Cloud API key if it has been enabled for the Gemini API or Vertex AI.
    • Set the GOOGLE_API_KEY and GOOGLE_GENAI_USE_VERTEXAI environment variables. In the following methods, replace YOUR_GEMINI_API_KEY with your Google Cloud API key:
      • You can temporarily set these environment variables in your current shell session using the following commands:
        export GOOGLE_API_KEY="YOUR_GOOGLE_API_KEY"
        export GOOGLE_GENAI_USE_VERTEXAI=true
        
      • For repeated use, you can add the environment variables to your .env file (located in the project directory or user home directory) or your shell's configuration file (like ~/.bashrc, ~/.zshrc, or ~/.profile). For example, the following commands adds the environment variables to a ~/.bashrc file:
        echo 'export GEMINI_API_KEY="YOUR_GEMINI_API_KEY"' >> ~/.bashrc # Or your preferred shell config file
        echo 'export GOOGLE_GENAI_USE_VERTEXAI=true' >> ~/.bashrc # Or your preferred shell config file
        source ~/.bashrc # Reload the config
        
  3. Vertex AI (Project and Location):

    • Ensure you have a Google Cloud project and have enabled the Vertex AI API.
    • Set up Application Default Credentials (ADC), using the following command:
      gcloud auth application-default login
      
      For more information, see Set up Application Default Credentials for Google Cloud.
    • Set the GOOGLE_CLOUD_PROJECT, GOOGLE_CLOUD_LOCATION, and GOOGLE_GENAI_USE_VERTEXAI environment variables. In the following methods, replace YOUR_PROJECT_ID and YOUR_PROJECT_LOCATION with the relevant values for your project:
      • You can temporarily set these environment variables in your current shell session using the following commands:
        export GOOGLE_CLOUD_PROJECT="YOUR_PROJECT_ID"
        export GOOGLE_CLOUD_LOCATION="YOUR_PROJECT_LOCATION" # e.g., us-central1
        export GOOGLE_GENAI_USE_VERTEXAI=true
        
      • For repeated use, you can add the environment variables to your .env file (located in the project directory or user home directory) or your shell's configuration file (like ~/.bashrc, ~/.zshrc, or ~/.profile). For example, the following commands adds the environment variables to a ~/.bashrc file:
        echo 'export GOOGLE_CLOUD_PROJECT="YOUR_PROJECT_ID"' >> ~/.bashrc # Or your preferred shell config file
        echo 'export GOOGLE_CLOUD_LOCATION="YOUR_PROJECT_LOCATION"' >> ~/.bashrc # Or your preferred shell config file
        echo 'export GOOGLE_GENAI_USE_VERTEXAI=true' >> ~/.bashrc # Or your preferred shell config file
        source ~/.bashrc # Reload the config
        

Next Steps

Gemini APIs

This project leverages the Gemini APIs to provide AI capabilities. For details on the terms of service governing the Gemini API, please refer to the Gemini API Terms of Service.