Skip to main content

Advanced AI-powered CLI tool for code analysis using Gemini

Project description

🚀 Gemini CLI Tool

Advanced AI-powered CLI tool for intelligent code analysis, generation, and optimization using Gemini Code Agent (via AI Studio or API)

License: MIT Python 3.8+ GitHub Stars


📋 Table of Contents


🎯 About

Gemini CLI Tool is a production-ready, standalone command-line utility that leverages Google's Gemini AI models to provide intelligent code analysis, generation, refactoring, and optimization capabilities. Unlike traditional code analysis tools, this CLI tool uses advanced AI reasoning to understand context, suggest improvements, and generate production-quality code.

Key Highlights

AI-Powered Analysis - Deep code understanding using Gemini's advanced reasoning
Production Ready - Enterprise-grade error handling and stability
🔧 Versatile - Code generation, analysis, optimization, refactoring, testing, documentation
🌐 Cross-Platform - Works on Windows, macOS, Linux
📦 Easy Installation - Install via pip and use immediately
🔐 Secure - API keys handled safely with environment variables


🔗 Origin & Attribution

This project was inspired by and significantly improves upon the excellent work in ast-grep/claude-skill

What's Different

Aspect Original This Project
Environment Claude Code IDE Standalone CLI
Core Tech AST-based text search Gemini AI reasoning
Focus Structural code search AI-driven code analysis & generation
Distribution IDE skill PyPI package + Docker
Use Cases Pattern finding Code generation, refactoring, optimization

Key Improvements

Standalone CLI Tool - Works in any terminal, no IDE required
Gemini AI Integration - Direct Gemini API with Function Calling
Production Features - Configuration management, batch processing, multiple output formats
Enhanced Capabilities - Test generation, performance optimization, security analysis
Better UX - Professional error messages, progress indicators, JSON output
Full Documentation - Examples, API reference, troubleshooting guide


✨ Features

Core Commands

Command Description Example
analyze Review code for quality/security/performance issues gemini analyze app.py --focus security
generate Create code from natural language description gemini generate --description "async iterator"
refactor Suggest intelligent refactoring improvements gemini refactor legacy.py --style modern
optimize Improve code for performance or memory gemini optimize algorithm.py --target performance
explain Generate detailed code documentation gemini explain complex.py --detail detailed
bugs Find potential bugs and security issues gemini bugs module.py
test Automatically generate comprehensive tests gemini test service.py --framework pytest
config Manage API keys and settings gemini config set api_key YOUR_KEY

Advanced Capabilities

🔹 Batch Processing - Analyze multiple files at once
🔹 Custom Output Formats - JSON, Markdown, Plain Text
🔹 Streaming Responses - Real-time output for long-running tasks
🔹 Caching - Intelligent result caching to reduce API calls
🔹 CI/CD Integration - Export results for pipeline integration
🔹 Docker Support - Containerized deployment


📦 Installation

System Requirements

  • Python 3.8 or higher
  • pip or conda
  • Google Gemini API Key (Get one here)

Option 1: Install from PyPI (Recommended)

pip install gemini-cli-tool

Option 2: Install from Source

git clone https://github.com/onthefox/gemini-cli-tool.git
cd gemini-cli-tool
pip install -e .

Option 3: Docker

docker build -t gemini-cli-tool .
docker run -e GEMINI_API_KEY=your_key gemini-cli-tool analyze file.py

🚀 Quick Start

Authentication Options

Before you start, choose one of the following authentication methods:

Option 1: Browser OAuth Login (Recommended - No API key needed)

gemini-cli  # Will prompt you to authenticate via browser
# Your credentials will be cached locally at ~/.gemini/oauth_creds.json

Option 2: Gemini API Key

export GEMINI_API_KEY="your-api-key-here"

Option 3: Vertex AI Credentials

export GOOGLE_CLOUD_PROJECT="your-project-id"
export GOOGLE_CLOUD_LOCATION="your-location"

1. Set Your API Key

# Option A: Environment variable
export GEMINI_API_KEY="your-api-key-here"

# Option B: Store in config
gemini config set api_key "your-api-key-here"

2. Analyze Code

gemini analyze main.py --focus quality

3. Generate Code

gemini generate --description "A function that validates email addresses" \
  --requirements "Use regex" "Raise ValueError on invalid input" "Include type hints"

4. View Results

gemini analyze app.py --output results.json --focus security
cat results.json

📖 Usage Guide

Analyzing Code

# Quality analysis (default)
gemini analyze code.py

# Security-focused analysis
gemini analyze code.py --focus security

# Performance analysis
gemini analyze code.py --focus performance

# Save to file
gemini analyze code.py --output analysis.md

Generating Code

# Generate with description
gemini generate --description "Sort algorithm implementation" \
  --language python

# With specific requirements
gemini generate --description "API client" \
  --requirements "Use async/await" "Implement retry logic" "Add logging"

# Save output
gemini generate --description "..." --output generated.py

Refactoring

# General refactoring
gemini refactor old_code.py

# Follow specific style guide
gemini refactor code.py --style "PEP8"

# Output to new file
gemini refactor code.py --output refactored.py

Optimization

# Performance optimization
gemini optimize slow.py --target performance

# Memory optimization
gemini optimize large_data.py --target memory

# Output with explanations
gemini optimize code.py --output optimized.py

Finding Bugs

# Find all issues
gemini bugs application.py

# Detailed security report
gemini bugs api.py --focus security

# JSON output for CI/CD
gemini bugs code.py --output bugs.json

Generating Tests

# Generate pytest tests (default)
gemini test module.py

# Generate unittest
gemini test module.py --framework unittest

# Generate Jest for JavaScript
gemini test app.js --language javascript --framework jest

⚙️ Configuration

Configuration File

Configuration is stored at ~/.gemini-cli/config.ini:

[gemini]
api_key = your-api-key-here
model = gemini-2.0-flash
temperature = 0.7
timeout = 30

Environment Variables

# API Key (required)
export GEMINI_API_KEY="your-api-key"

# Model selection (optional)
export GEMINI_MODEL="gemini-2.0-pro"

# Temperature control (optional)
export GEMINI_TEMPERATURE="0.5"

Available Models

  • gemini-3.0-pro 🏆 (Most powerful, best reasoning - Nov 2025 release)
  • gemini-2.5-pro 🧠 (Advanced reasoning, multimodal, coding)
  • gemini-2.5-flash ⚡ (Fast & efficient, ideal for everyday tasks - default)

💡 Examples

Example 1: Code Quality Review

# Analyze a Python module
gemini analyze myapp/utils.py --focus quality

# Output includes:
# - Code smells detected
# - Complexity issues
# - Best practice violations
# - Refactoring suggestions

Example 2: Generate Production Code

gemini generate \
  --description "Async database connection pool with retry logic" \
  --language python \
  --requirements \
    "Use asyncpg for PostgreSQL" \
    "Implement exponential backoff" \
    "Add comprehensive logging" \
    "Include type hints" \
    "Write docstrings"

Example 3: Security Audit

# Find security vulnerabilities
gemini bugs api/handlers.py --focus security

# Output identifies:
# - SQL injection risks
# - XSS vulnerabilities
# - Unsafe cryptography
# - Authentication issues

Example 4: Batch Analysis

# Analyze multiple files
for file in src/*.py; do
  gemini analyze "$file" >> results.md
done

🔧 Advanced Features

Streaming Output

gemini analyze code.py --stream

JSON Output for Automation

gemini analyze code.py --output-format json --output results.json
cat results.json | jq '.issues[] | select(.severity=="critical")'

CI/CD Integration

# GitHub Actions Example
name: Code Analysis
on: [push]
jobs:
  analyze:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Install Gemini CLI
        run: pip install gemini-cli-tool
      - name: Analyze Code
        env:
          GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}
        run: gemini analyze src/ --output-format json

🐛 Troubleshooting

API Key Issues

# Verify API key is set
echo $GEMINI_API_KEY

# Check config file
cat ~/.gemini-cli/config.ini

# Update API key
gemini config set api_key "new-key-here"

Connection Issues

# Test connectivity
gemini --version

# Enable verbose logging
gemini analyze code.py --verbose

# Check API status
curl https://ai.google.dev/

Out of Memory

# Analyze smaller files
gemini analyze small_file.py

# Use streaming mode
gemini analyze large_file.py --stream

🤝 Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit changes (git commit -m 'Add amazing feature')
  4. Push to branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Development Setup

git clone https://github.com/onthefox/gemini-cli-tool.git
cd gemini-cli-tool
pip install -e ".[dev]"
pytest

📄 License

MIT License - see LICENSE file for details

Attribution

This project builds upon the excellent foundation of ast-grep/claude-skill (also MIT licensed).


📞 Support


🌟 Show Your Support

If you find this tool useful, please consider:

  • ⭐ Starring the repository
  • 🔗 Sharing with colleagues
  • 💬 Providing feedback
  • 🐛 Reporting issues
  • 🤝 Contributing improvements

Made with ❤️ by the community

📦 Publishing

For information about publishing this package to PyPI, see PUBLISHING.md.

The project is configured with:

  • Automated GitHub Actions workflow for PyPI publishing
  • Trusted Publishers (OpenID Connect / OIDC) for secure, credential-free authentication
  • Comprehensive publishing guide with setup instructions and troubleshooting

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gemini_cli_tool-0.2.0.tar.gz (9.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gemini_cli_tool-0.2.0-py3-none-any.whl (8.2 kB view details)

Uploaded Python 3

File details

Details for the file gemini_cli_tool-0.2.0.tar.gz.

File metadata

  • Download URL: gemini_cli_tool-0.2.0.tar.gz
  • Upload date:
  • Size: 9.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.14

File hashes

Hashes for gemini_cli_tool-0.2.0.tar.gz
Algorithm Hash digest
SHA256 2295f5442a10249786a3de3bf174bc73b588b6712cd9247f3b3cfa317bcc9e6c
MD5 dfb62f49fd369b9259606d3eda095c79
BLAKE2b-256 2f46e6620b65ecf965eb366029eb03cdb15455b8f086ac682e4b5bcb1a60283e

See more details on using hashes here.

File details

Details for the file gemini_cli_tool-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for gemini_cli_tool-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2ea57316f54cc8124902080c2ee3a12e3a15aeedfe7a873a9976edd30af751ea
MD5 ccf35505b34d40df068c761e6b535cd4
BLAKE2b-256 6b5c4a3c27419fe68cd0257414084c7c2382aae0c64c50670590029bb51000a5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page