2025-05-14 13:51:17 -07: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-15 21:41:08 -07:00
2025-05-14 13:51:17 -07:00
[](https://github.com/google-gemini/gemini-cli/actions/workflows/ci.yml)
2025-04-21 15:47:53 -07:00
2025-06-24 15:31:40 -07:00

2025-06-25 18:12:31 +08: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 06:04:42 -07:00
Veo or Lyria](https://github.com/GoogleCloudPlatform/vertex-ai-creative-studio/tree/main/experiments/mcp-genmedia)
2025-06-25 18:12:31 +08:00
- Ground your queries with the [Google Search ](https://ai.google.dev/gemini-api/docs/grounding )
tool, built in to Gemini.
2025-05-30 12:20:12 -07:00
## Quickstart
2025-05-15 20:04:33 -07:00
2025-07-04 20:44:23 -06:00
1. **Prerequisites: ** Ensure you have [Node.js version 20 ](https://nodejs.org/en/download ) or higher installed.
2025-06-22 20:19:13 -04:00
2. **Run the CLI: ** Execute the following command in your terminal:
2025-06-21 16:18:23 -07:00
2025-06-22 20:19:13 -04:00
```bash
npx https://github.com/google-gemini/gemini-cli
```
2025-06-21 16:18:23 -07:00
2025-06-25 17:46:05 +08:00
Or install it with:
```bash
npm install -g @google/gemini -cli
2025-06-25 10:03:07 -06:00
gemini
2025-06-25 17:46:05 +08:00
```
2025-06-24 21:15:45 -07:00
3. **Pick a color theme **
2025-06-25 16:41:52 -05: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-22 20:19:13 -04:00
You are now ready to use the Gemini CLI!
2025-07-01 14:16:40 -05:00
### Use a Gemini API key:
2025-06-22 20:19:13 -04:00
2025-07-02 16:58:38 -07: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-22 20:19:13 -04: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 12:20:12 -07:00
2025-07-01 14:16:40 -05: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 11:43:27 -07:00
### Use a Vertex AI API key:
The Vertex AI provides [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:
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-24 21:15:45 -07:00
For other authentication methods, including Google Workspace accounts, see the [authentication ](./docs/cli/authentication.md ) guide.
2025-06-23 13:02:52 -07:00
2025-05-30 12:20:12 -07:00
## Examples
2025-06-25 18:12:31 +08:00
Once the CLI is running, you can start interacting with Gemini from your shell.
2025-05-30 12:20:12 -07:00
2025-06-25 18:12:31 +08:00
You can start a project from a new directory:
```sh
2025-06-25 10:03:07 -06:00
cd new-project/
gemini
2025-06-25 18:12:31 +08:00
> Write me a Gemini Discord bot that answers questions using a FAQ.md file I will provide
2025-05-30 12:20:12 -07:00
```
2025-06-25 18:12:31 +08:00
Or work with an existing project:
2025-05-30 12:20:12 -07:00
2025-06-25 18:12:31 +08:00
```sh
2025-06-25 10:03:07 -06:00
git clone https://github.com/google-gemini/gemini-cli
cd gemini-cli
gemini
2025-06-25 18:12:31 +08:00
> Give me a summary of all of the changes that went in yesterday
2025-05-30 12:20:12 -07:00
```
2025-06-23 17:55:24 -04:00
### Next steps
- Learn how to [contribute to or build from the source ](./CONTRIBUTING.md ).
- Explore the available * * [CLI Commands ](./docs/cli/commands.md )**.
- If you encounter any issues, review the * * [Troubleshooting guide ](./docs/troubleshooting.md )**.
- For more comprehensive documentation, see the [full documentation ](./docs/index.md ).
- Take a look at some [popular tasks ](#popular-tasks ) for more inspiration.
2025-06-23 15:07:18 +08:00
2025-06-26 03:00:36 +08:00
### Troubleshooting
Head over to the [troubleshooting ](docs/troubleshooting.md ) guide if you're
having issues.
2025-06-23 15:07:18 +08: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?
```
### 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-06 00:33:42 +09:00
> Organize my PDF invoices by month of expenditure.
2025-06-23 15:07:18 +08:00
```
2025-06-29 19:11:58 +05:30
### Uninstall
Head over to the [Uninstall ](docs/Uninstall.md ) guide for uninstallation instructions.
2025-06-25 12:32:25 -07:00
## Terms of Service and Privacy Notice
2025-06-02 09:42:24 -07:00
2025-06-25 12:32:25 -07: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 ).