2025-05-14 20:51:17 +00:00
# Gemini CLI
Initial commit of Gemini Code CLI
This commit introduces the initial codebase for the Gemini Code CLI, a command-line interface designed to facilitate interaction with the Gemini API for software engineering tasks.
The code was migrated from a previous git repository as a single squashed commit.
Core Features & Components:
* **Gemini Integration:** Leverages the `@google/genai` SDK to interact with the Gemini models, supporting chat history, streaming responses, and function calling (tools).
* **Terminal UI:** Built with Ink (React for CLIs) providing an interactive chat interface within the terminal, including input prompts, message display, loading indicators, and tool interaction elements.
* **Tooling Framework:** Implements a robust tool system allowing Gemini to interact with the local environment. Includes tools for:
* File system listing (`ls`)
* File reading (`read-file`)
* Content searching (`grep`)
* File globbing (`glob`)
* File editing (`edit`)
* File writing (`write-file`)
* Executing bash commands (`terminal`)
* **State Management:** Handles the streaming state of Gemini responses and manages the conversation history.
* **Configuration:** Parses command-line arguments (`yargs`) and loads environment variables (`dotenv`) for setup.
* **Project Structure:** Organized into `core`, `ui`, `tools`, `config`, and `utils` directories using TypeScript. Includes basic build (`tsc`) and start scripts.
This initial version establishes the foundation for a powerful CLI tool enabling developers to use Gemini for coding assistance directly in their terminal environment.
---
Created by yours truly: __Gemini Code__
2025-04-16 04:41:08 +00:00
2025-05-14 20:51:17 +00:00
[](https://github.com/google-gemini/gemini-cli/actions/workflows/ci.yml)
2025-04-21 22:47:53 +00:00
2025-06-24 22:31:40 +00:00

2025-06-25 10:12:31 +00:00
This repository contains the Gemini CLI, a command-line AI workflow tool that connects to your
tools, understands your code and accelerates your workflows.
With the Gemini CLI you can:
- Query and edit large codebases in and beyond Gemini's 1M token context window.
- Generate new apps from PDFs or sketches, using Gemini's multimodal capabilities.
- Automate operational tasks, like querying pull requests or handling complex rebases.
- Use tools and MCP servers to connect new capabilities, including [media generation with Imagen,
2025-06-25 13:04:42 +00:00
Veo or Lyria](https://github.com/GoogleCloudPlatform/vertex-ai-creative-studio/tree/main/experiments/mcp-genmedia)
2025-06-25 10:12:31 +00:00
- Ground your queries with the [Google Search ](https://ai.google.dev/gemini-api/docs/grounding )
2025-07-21 21:54:44 +00:00
tool, built into Gemini.
2025-06-25 10:12:31 +00:00
2025-05-30 19:20:12 +00:00
## Quickstart
2025-05-16 03:04:33 +00:00
2025-07-21 21:45:24 +00:00
You have two options to install Gemini CLI.
### With Node
2025-07-05 02:44:23 +00:00
1. **Prerequisites:** Ensure you have [Node.js version 20 ](https://nodejs.org/en/download ) or higher installed.
2025-06-23 00:19:13 +00:00
2. **Run the CLI:** Execute the following command in your terminal:
2025-06-21 23:18:23 +00:00
2025-06-23 00:19:13 +00:00
```bash
npx https://github.com/google-gemini/gemini-cli
```
2025-06-21 23:18:23 +00:00
2025-06-25 09:46:05 +00:00
Or install it with:
```bash
npm install -g @google/gemini -cli
2025-07-14 16:21:40 +00:00
```
Then, run the CLI from anywhere:
```bash
2025-06-25 16:03:07 +00:00
gemini
2025-06-25 09:46:05 +00:00
```
2025-07-21 21:45:24 +00:00
### With Homebrew
1. **Prerequisites:** Ensure you have [Homebrew ](https://brew.sh/ ) installed.
2. **Install the CLI** Execute the following command in your terminal:
```bash
brew install gemini-cli
```
Then, run the CLI from anywhere:
```bash
gemini
```
### Common Configuration steps
2025-06-25 04:15:45 +00:00
3. **Pick a color theme**
2025-06-25 21:41:52 +00:00
4. **Authenticate:** When prompted, sign in with your personal Google account. This will grant you up to 60 model requests per minute and 1,000 model requests per day using Gemini.
2025-06-23 00:19:13 +00:00
You are now ready to use the Gemini CLI!
2025-07-01 19:16:40 +00:00
### Use a Gemini API key:
2025-06-23 00:19:13 +00:00
2025-07-02 23:58:38 +00:00
The Gemini API provides a free tier with [100 requests per day ](https://ai.google.dev/gemini-api/docs/rate-limits#free-tier ) using Gemini 2.5 Pro, control over which model you use, and access to higher rate limits (with a paid plan):
2025-06-23 00:19:13 +00:00
1. Generate a key from [Google AI Studio ](https://aistudio.google.com/apikey ).
2. Set it as an environment variable in your terminal. Replace `YOUR_API_KEY` with your generated key.
```bash
export GEMINI_API_KEY="YOUR_API_KEY"
```
2025-05-30 19:20:12 +00:00
2025-07-01 19:16:40 +00:00
3. (Optionally) Upgrade your Gemini API project to a paid plan on the API key page (will automatically unlock [Tier 1 rate limits ](https://ai.google.dev/gemini-api/docs/rate-limits#tier-1 ))
2025-07-07 18:43:27 +00:00
### Use a Vertex AI API key:
2025-07-12 07:23:09 +00:00
The Vertex AI API provides a [free tier ](https://cloud.google.com/vertex-ai/generative-ai/docs/start/express-mode/overview ) using express mode for Gemini 2.5 Pro, control over which model you use, and access to higher rate limits with a billing account:
2025-07-07 18:43:27 +00:00
1. Generate a key from [Google Cloud ](https://cloud.google.com/vertex-ai/generative-ai/docs/start/api-keys ).
2. Set it as an environment variable in your terminal. Replace `YOUR_API_KEY` with your generated key and set GOOGLE_GENAI_USE_VERTEXAI to true
```bash
export GOOGLE_API_KEY="YOUR_API_KEY"
export GOOGLE_GENAI_USE_VERTEXAI=true
```
3. (Optionally) Add a billing account on your project to get access to [higher usage limits ](https://cloud.google.com/vertex-ai/generative-ai/docs/quotas )
2025-06-25 04:15:45 +00:00
For other authentication methods, including Google Workspace accounts, see the [authentication ](./docs/cli/authentication.md ) guide.
2025-06-23 20:02:52 +00:00
2025-05-30 19:20:12 +00:00
## Examples
2025-06-25 10:12:31 +00:00
Once the CLI is running, you can start interacting with Gemini from your shell.
2025-05-30 19:20:12 +00:00
2025-06-25 10:12:31 +00:00
You can start a project from a new directory:
```sh
2025-06-25 16:03:07 +00:00
cd new-project/
gemini
2025-06-25 10:12:31 +00:00
> Write me a Gemini Discord bot that answers questions using a FAQ.md file I will provide
2025-05-30 19:20:12 +00:00
```
2025-06-25 10:12:31 +00:00
Or work with an existing project:
2025-05-30 19:20:12 +00:00
2025-06-25 10:12:31 +00:00
```sh
2025-06-25 16:03:07 +00:00
git clone https://github.com/google-gemini/gemini-cli
cd gemini-cli
gemini
2025-06-25 10:12:31 +00:00
> Give me a summary of all of the changes that went in yesterday
2025-05-30 19:20:12 +00:00
```
2025-06-23 21:55:24 +00:00
### Next steps
- Learn how to [contribute to or build from the source ](./CONTRIBUTING.md ).
- Explore the available ** [CLI Commands ](./docs/cli/commands.md )**.
2025-07-15 09:50:54 +00:00
- If you encounter any issues, review the ** [troubleshooting guide ](./docs/troubleshooting.md )**.
2025-06-23 21:55:24 +00:00
- For more comprehensive documentation, see the [full documentation ](./docs/index.md ).
- Take a look at some [popular tasks ](#popular-tasks ) for more inspiration.
2025-07-15 07:25:35 +00:00
- Check out our ** [Official Roadmap ](./ROADMAP.md )**
2025-06-23 07:07:18 +00:00
2025-06-25 19:00:36 +00:00
### Troubleshooting
2025-07-15 09:50:54 +00:00
Head over to the [troubleshooting guide ](docs/troubleshooting.md ) if you're
2025-06-25 19:00:36 +00:00
having issues.
2025-06-23 07:07:18 +00:00
## Popular tasks
### Explore a new codebase
Start by `cd` ing into an existing or newly-cloned repository and running `gemini` .
```text
> Describe the main pieces of this system's architecture.
```
```text
> What security mechanisms are in place?
```
2025-07-28 15:54:09 +00:00
```text
> Provide a step-by-step dev onboarding doc for developers new to the codebase.
```
```text
> Summarize this codebase and highlight the most interesting patterns or techniques I could learn from.
```
```text
> Identify potential areas for improvement or refactoring in this codebase, highlighting parts that appear fragile, complex, or hard to maintain.
```
```text
> Which parts of this codebase might be challenging to scale or debug?
```
```text
> Generate a README section for the [module name] module explaining what it does and how to use it.
```
```text
> What kind of error handling and logging strategies does the project use?
```
```text
> Which tools, libraries, and dependencies are used in this project?
```
2025-06-23 07:07:18 +00:00
### Work with your existing code
```text
> Implement a first draft for GitHub issue #123.
```
```text
> Help me migrate this codebase to the latest version of Java. Start with a plan.
```
### Automate your workflows
Use MCP servers to integrate your local system tools with your enterprise collaboration suite.
```text
> Make me a slide deck showing the git history from the last 7 days, grouped by feature and team member.
```
```text
> Make a full-screen web app for a wall display to show our most interacted-with GitHub issues.
```
### Interact with your system
```text
> Convert all the images in this directory to png, and rename them to use dates from the exif data.
```
```text
2025-07-05 15:33:42 +00:00
> Organize my PDF invoices by month of expenditure.
2025-06-23 07:07:18 +00:00
```
2025-06-29 13:41:58 +00:00
### Uninstall
Head over to the [Uninstall ](docs/Uninstall.md ) guide for uninstallation instructions.
2025-06-25 19:32:25 +00:00
## Terms of Service and Privacy Notice
2025-06-02 16:42:24 +00:00
2025-06-25 19:32:25 +00:00
For details on the terms of service and privacy notice applicable to your use of Gemini CLI, see the [Terms of Service and Privacy Notice ](./docs/tos-privacy.md ).