mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-02-01 14:44:29 +00:00
Signed-off-by: Nils Breunese <nils@breun.nl> Co-authored-by: Jack Wotherspoon <jackwoth@google.com>
394 lines
12 KiB
Markdown
394 lines
12 KiB
Markdown
# Gemini CLI
|
|
|
|
[](https://github.com/google-gemini/gemini-cli/actions/workflows/ci.yml)
|
|
[](https://github.com/google-gemini/gemini-cli/actions/workflows/chained_e2e.yml)
|
|
[](https://www.npmjs.com/package/@google/gemini-cli)
|
|
[](https://github.com/google-gemini/gemini-cli/blob/main/LICENSE)
|
|
[](https://codewiki.google/github.com/google-gemini/gemini-cli?utm_source=badge&utm_medium=github&utm_campaign=github.com/google-gemini/gemini-cli)
|
|
|
|

|
|
|
|
Gemini CLI is an open-source AI agent that brings the power of Gemini directly
|
|
into your terminal. It provides lightweight access to Gemini, giving you the
|
|
most direct path from your prompt to our model.
|
|
|
|
Learn all about Gemini CLI in our [documentation](https://geminicli.com/docs/).
|
|
|
|
## 🚀 Why Gemini CLI?
|
|
|
|
- **🎯 Free tier**: 60 requests/min and 1,000 requests/day with personal Google
|
|
account.
|
|
- **🧠 Powerful Gemini 3 models**: Access to improved reasoning and 1M token
|
|
context window.
|
|
- **🔧 Built-in tools**: Google Search grounding, file operations, shell
|
|
commands, web fetching.
|
|
- **🔌 Extensible**: MCP (Model Context Protocol) support for custom
|
|
integrations.
|
|
- **💻 Terminal-first**: Designed for developers who live in the command line.
|
|
- **🛡️ Open source**: Apache 2.0 licensed.
|
|
|
|
## 📦 Installation
|
|
|
|
### Pre-requisites before installation
|
|
|
|
- Node.js version 20 or higher
|
|
- macOS, Linux, or Windows
|
|
|
|
### Quick Install
|
|
|
|
#### Run instantly with npx
|
|
|
|
```bash
|
|
# Using npx (no installation required)
|
|
npx @google/gemini-cli
|
|
```
|
|
|
|
#### Install globally with npm
|
|
|
|
```bash
|
|
npm install -g @google/gemini-cli
|
|
```
|
|
|
|
#### Install globally with Homebrew (macOS/Linux)
|
|
|
|
```bash
|
|
brew install gemini-cli
|
|
```
|
|
|
|
#### Install globally with MacPorts (macOS)
|
|
|
|
```bash
|
|
sudo port install gemini-cli
|
|
```
|
|
|
|
#### Install with Anaconda (for restricted environments)
|
|
|
|
```bash
|
|
# Create and activate a new environment
|
|
conda create -y -n gemini_env -c conda-forge nodejs
|
|
conda activate gemini_env
|
|
|
|
# Install Gemini CLI globally via npm (inside the environment)
|
|
npm install -g @google/gemini-cli
|
|
```
|
|
|
|
## Release Cadence and Tags
|
|
|
|
See [Releases](./docs/releases.md) for more details.
|
|
|
|
### Preview
|
|
|
|
New preview releases will be published each week at UTC 2359 on Tuesdays. These
|
|
releases will not have been fully vetted and may contain regressions or other
|
|
outstanding issues. Please help us test and install with `preview` tag.
|
|
|
|
```bash
|
|
npm install -g @google/gemini-cli@preview
|
|
```
|
|
|
|
### Stable
|
|
|
|
- New stable releases will be published each week at UTC 2000 on Tuesdays, this
|
|
will be the full promotion of last week's `preview` release + any bug fixes
|
|
and validations. Use `latest` tag.
|
|
|
|
```bash
|
|
npm install -g @google/gemini-cli@latest
|
|
```
|
|
|
|
### Nightly
|
|
|
|
- New releases will be published each day at UTC 0000. This will be all changes
|
|
from the main branch as represented at time of release. It should be assumed
|
|
there are pending validations and issues. Use `nightly` tag.
|
|
|
|
```bash
|
|
npm install -g @google/gemini-cli@nightly
|
|
```
|
|
|
|
## 📋 Key Features
|
|
|
|
### Code Understanding & Generation
|
|
|
|
- Query and edit large codebases
|
|
- Generate new apps from PDFs, images, or sketches using multimodal capabilities
|
|
- Debug issues and troubleshoot with natural language
|
|
|
|
### Automation & Integration
|
|
|
|
- Automate operational tasks like querying pull requests or handling complex
|
|
rebases
|
|
- Use MCP servers to connect new capabilities, including
|
|
[media generation with Imagen, Veo or Lyria](https://github.com/GoogleCloudPlatform/vertex-ai-creative-studio/tree/main/experiments/mcp-genmedia)
|
|
- Run non-interactively in scripts for workflow automation
|
|
|
|
### Advanced Capabilities
|
|
|
|
- Ground your queries with built-in
|
|
[Google Search](https://ai.google.dev/gemini-api/docs/grounding) for real-time
|
|
information
|
|
- Conversation checkpointing to save and resume complex sessions
|
|
- Custom context files (GEMINI.md) to tailor behavior for your projects
|
|
|
|
### GitHub Integration
|
|
|
|
Integrate Gemini CLI directly into your GitHub workflows with
|
|
[**Gemini CLI GitHub Action**](https://github.com/google-github-actions/run-gemini-cli):
|
|
|
|
- **Pull Request Reviews**: Automated code review with contextual feedback and
|
|
suggestions
|
|
- **Issue Triage**: Automated labeling and prioritization of GitHub issues based
|
|
on content analysis
|
|
- **On-demand Assistance**: Mention `@gemini-cli` in issues and pull requests
|
|
for help with debugging, explanations, or task delegation
|
|
- **Custom Workflows**: Build automated, scheduled and on-demand workflows
|
|
tailored to your team's needs
|
|
|
|
## 🔐 Authentication Options
|
|
|
|
Choose the authentication method that best fits your needs:
|
|
|
|
### Option 1: Login with Google (OAuth login using your Google Account)
|
|
|
|
**✨ Best for:** Individual developers as well as anyone who has a Gemini Code
|
|
Assist License. (see
|
|
[quota limits and terms of service](https://cloud.google.com/gemini/docs/quotas)
|
|
for details)
|
|
|
|
**Benefits:**
|
|
|
|
- **Free tier**: 60 requests/min and 1,000 requests/day
|
|
- **Gemini 3 models** with 1M token context window
|
|
- **No API key management** - just sign in with your Google account
|
|
- **Automatic updates** to latest models
|
|
|
|
#### Start Gemini CLI, then choose _Login with Google_ and follow the browser authentication flow when prompted
|
|
|
|
```bash
|
|
gemini
|
|
```
|
|
|
|
#### If you are using a paid Code Assist License from your organization, remember to set the Google Cloud Project
|
|
|
|
```bash
|
|
# Set your Google Cloud Project
|
|
export GOOGLE_CLOUD_PROJECT="YOUR_PROJECT_ID"
|
|
gemini
|
|
```
|
|
|
|
### Option 2: Gemini API Key
|
|
|
|
**✨ Best for:** Developers who need specific model control or paid tier access
|
|
|
|
**Benefits:**
|
|
|
|
- **Free tier**: 1000 requests/day with Gemini 3 (mix of flash and pro)
|
|
- **Model selection**: Choose specific Gemini models
|
|
- **Usage-based billing**: Upgrade for higher limits when needed
|
|
|
|
```bash
|
|
# Get your key from https://aistudio.google.com/apikey
|
|
export GEMINI_API_KEY="YOUR_API_KEY"
|
|
gemini
|
|
```
|
|
|
|
### Option 3: Vertex AI
|
|
|
|
**✨ Best for:** Enterprise teams and production workloads
|
|
|
|
**Benefits:**
|
|
|
|
- **Enterprise features**: Advanced security and compliance
|
|
- **Scalable**: Higher rate limits with billing account
|
|
- **Integration**: Works with existing Google Cloud infrastructure
|
|
|
|
```bash
|
|
# Get your key from Google Cloud Console
|
|
export GOOGLE_API_KEY="YOUR_API_KEY"
|
|
export GOOGLE_GENAI_USE_VERTEXAI=true
|
|
gemini
|
|
```
|
|
|
|
For Google Workspace accounts and other authentication methods, see the
|
|
[authentication guide](./docs/get-started/authentication.md).
|
|
|
|
## 🚀 Getting Started
|
|
|
|
### Basic Usage
|
|
|
|
#### Start in current directory
|
|
|
|
```bash
|
|
gemini
|
|
```
|
|
|
|
#### Include multiple directories
|
|
|
|
```bash
|
|
gemini --include-directories ../lib,../docs
|
|
```
|
|
|
|
#### Use specific model
|
|
|
|
```bash
|
|
gemini -m gemini-2.5-flash
|
|
```
|
|
|
|
#### Non-interactive mode for scripts
|
|
|
|
Get a simple text response:
|
|
|
|
```bash
|
|
gemini -p "Explain the architecture of this codebase"
|
|
```
|
|
|
|
For more advanced scripting, including how to parse JSON and handle errors, use
|
|
the `--output-format json` flag to get structured output:
|
|
|
|
```bash
|
|
gemini -p "Explain the architecture of this codebase" --output-format json
|
|
```
|
|
|
|
For real-time event streaming (useful for monitoring long-running operations),
|
|
use `--output-format stream-json` to get newline-delimited JSON events:
|
|
|
|
```bash
|
|
gemini -p "Run tests and deploy" --output-format stream-json
|
|
```
|
|
|
|
### Quick Examples
|
|
|
|
#### Start a new project
|
|
|
|
```bash
|
|
cd new-project/
|
|
gemini
|
|
> Write me a Discord bot that answers questions using a FAQ.md file I will provide
|
|
```
|
|
|
|
#### Analyze existing code
|
|
|
|
```bash
|
|
git clone https://github.com/google-gemini/gemini-cli
|
|
cd gemini-cli
|
|
gemini
|
|
> Give me a summary of all of the changes that went in yesterday
|
|
```
|
|
|
|
## 📚 Documentation
|
|
|
|
### Getting Started
|
|
|
|
- [**Quickstart Guide**](./docs/get-started/index.md) - Get up and running
|
|
quickly.
|
|
- [**Authentication Setup**](./docs/get-started/authentication.md) - Detailed
|
|
auth configuration.
|
|
- [**Configuration Guide**](./docs/get-started/configuration.md) - Settings and
|
|
customization.
|
|
- [**Keyboard Shortcuts**](./docs/cli/keyboard-shortcuts.md) - Productivity
|
|
tips.
|
|
|
|
### Core Features
|
|
|
|
- [**Commands Reference**](./docs/cli/commands.md) - All slash commands
|
|
(`/help`, `/chat`, etc).
|
|
- [**Custom Commands**](./docs/cli/custom-commands.md) - Create your own
|
|
reusable commands.
|
|
- [**Context Files (GEMINI.md)**](./docs/cli/gemini-md.md) - Provide persistent
|
|
context to Gemini CLI.
|
|
- [**Checkpointing**](./docs/cli/checkpointing.md) - Save and resume
|
|
conversations.
|
|
- [**Token Caching**](./docs/cli/token-caching.md) - Optimize token usage.
|
|
|
|
### Tools & Extensions
|
|
|
|
- [**Built-in Tools Overview**](./docs/tools/index.md)
|
|
- [File System Operations](./docs/tools/file-system.md)
|
|
- [Shell Commands](./docs/tools/shell.md)
|
|
- [Web Fetch & Search](./docs/tools/web-fetch.md)
|
|
- [**MCP Server Integration**](./docs/tools/mcp-server.md) - Extend with custom
|
|
tools.
|
|
- [**Custom Extensions**](./docs/extensions/index.md) - Build and share your own
|
|
commands.
|
|
|
|
### Advanced Topics
|
|
|
|
- [**Headless Mode (Scripting)**](./docs/cli/headless.md) - Use Gemini CLI in
|
|
automated workflows.
|
|
- [**Architecture Overview**](./docs/architecture.md) - How Gemini CLI works.
|
|
- [**IDE Integration**](./docs/ide-integration/index.md) - VS Code companion.
|
|
- [**Sandboxing & Security**](./docs/cli/sandbox.md) - Safe execution
|
|
environments.
|
|
- [**Trusted Folders**](./docs/cli/trusted-folders.md) - Control execution
|
|
policies by folder.
|
|
- [**Enterprise Guide**](./docs/cli/enterprise.md) - Deploy and manage in a
|
|
corporate environment.
|
|
- [**Telemetry & Monitoring**](./docs/cli/telemetry.md) - Usage tracking.
|
|
- [**Tools API Development**](./docs/core/tools-api.md) - Create custom tools.
|
|
- [**Local development**](./docs/local-development.md) - Local development
|
|
tooling.
|
|
|
|
### Troubleshooting & Support
|
|
|
|
- [**Troubleshooting Guide**](./docs/troubleshooting.md) - Common issues and
|
|
solutions.
|
|
- [**FAQ**](./docs/faq.md) - Frequently asked questions.
|
|
- Use `/bug` command to report issues directly from the CLI.
|
|
|
|
### Using MCP Servers
|
|
|
|
Configure MCP servers in `~/.gemini/settings.json` to extend Gemini CLI with
|
|
custom tools:
|
|
|
|
```text
|
|
> @github List my open pull requests
|
|
> @slack Send a summary of today's commits to #dev channel
|
|
> @database Run a query to find inactive users
|
|
```
|
|
|
|
See the [MCP Server Integration guide](./docs/tools/mcp-server.md) for setup
|
|
instructions.
|
|
|
|
## 🤝 Contributing
|
|
|
|
We welcome contributions! Gemini CLI is fully open source (Apache 2.0), and we
|
|
encourage the community to:
|
|
|
|
- Report bugs and suggest features.
|
|
- Improve documentation.
|
|
- Submit code improvements.
|
|
- Share your MCP servers and extensions.
|
|
|
|
See our [Contributing Guide](./CONTRIBUTING.md) for development setup, coding
|
|
standards, and how to submit pull requests.
|
|
|
|
Check our [Official Roadmap](https://github.com/orgs/google-gemini/projects/11)
|
|
for planned features and priorities.
|
|
|
|
## 📖 Resources
|
|
|
|
- **[Official Roadmap](./ROADMAP.md)** - See what's coming next.
|
|
- **[Changelog](./docs/changelogs/index.md)** - See recent notable updates.
|
|
- **[NPM Package](https://www.npmjs.com/package/@google/gemini-cli)** - Package
|
|
registry.
|
|
- **[GitHub Issues](https://github.com/google-gemini/gemini-cli/issues)** -
|
|
Report bugs or request features.
|
|
- **[Security Advisories](https://github.com/google-gemini/gemini-cli/security/advisories)** -
|
|
Security updates.
|
|
|
|
### Uninstall
|
|
|
|
See the [Uninstall Guide](docs/cli/uninstall.md) for removal instructions.
|
|
|
|
## 📄 Legal
|
|
|
|
- **License**: [Apache License 2.0](LICENSE)
|
|
- **Terms of Service**: [Terms & Privacy](./docs/tos-privacy.md)
|
|
- **Security**: [Security Policy](SECURITY.md)
|
|
|
|
---
|
|
|
|
<p align="center">
|
|
Built with ❤️ by Google and the open source community
|
|
</p>
|