home / skills / ovachiever / droid-tings / gemini-cli

gemini-cli skill

/skills/gemini-cli

This skill helps you obtain second opinions on architecture, debugging, and security reviews using the Gemini CLI for large-context analysis.

npx playbooks add skill ovachiever/droid-tings --skill gemini-cli

Review the files below or copy the command above to add this skill to your agents.

Files (7)
SKILL.md
17.7 KB
---
name: Gemini CLI
description: |
  Consult Google Gemini CLI for second opinions on architecture, debugging, and security audits. Use Gemini's 1M+
  context window for comprehensive code analysis. Compare Flash (fast) vs Pro (thorough) vs 3-Pro-Preview (cutting-edge).

  Use when: need second opinion on architectural decisions, stuck debugging after 2+ attempts, writing security-
  sensitive code, planning refactors (5+ files), approaching 70%+ context capacity, unfamiliar with tech stack,
  need peer review, or want Flash vs Pro vs 3-Pro-Preview comparison.

  Keywords: gemini-cli, google gemini, gemini command line, second opinion, model comparison, gemini-2.5-flash, gemini-2.5-pro, gemini-3-pro-preview, architectural decisions, debugging assistant, code review gemini, security audit gemini, 1M context window, AI pair programming, gemini consultation, flash vs pro, AI-to-AI prompting, peer review, codebase analysis, gemini CLI tool, shell gemini, command line AI assistant, gemini architecture advice, gemini debug help, gemini security scan, gemini code compare
license: MIT
metadata:
  version: 2.1.0
  production_tested: true
  gemini_cli_version: 0.13.0+
  last_verified: 2025-11-19
  token_savings: ~60-70%
  errors_prevented: 6+
  breaking_changes: Added Gemini 3 Pro Preview model (gemini-3-pro-preview)
---

# Gemini CLI

**Leverage Gemini's 1M+ context window as your AI pair programmer within Claude Code workflows.**

This skill teaches Claude Code how to use the official Google Gemini CLI (`gemini` command) to get second opinions, architectural advice, debugging help, and comprehensive code reviews. Based on production testing with the official CLI tool.

---

## Table of Contents

1. [Quick Start](#quick-start)
2. [When to Use Gemini Consultation](#when-to-use-gemini-consultation)
3. [Installation](#installation)
4. [Using Gemini CLI](#using-gemini-cli)
5. [Model Selection: Flash vs Pro](#model-selection-flash-vs-pro)
6. [Proactive Consultation Patterns](#proactive-consultation-patterns)
7. [AI-to-AI Prompting Best Practices](#ai-to-ai-prompting-best-practices)
8. [Common Use Cases](#common-use-cases)
9. [Integration Examples](#integration-examples)
10. [Troubleshooting & Known Issues](#troubleshooting--known-issues)

---

## Quick Start

**Prerequisites**:
- Gemini CLI installed (`npm install -g @google/gemini-cli`)
- Authenticated with Google account (run `gemini` once to authenticate)

**Basic Usage Patterns**:

```bash
# Quick question (non-interactive with -p flag)
gemini -p "Should I use D1 or KV for session storage?"

# Code review with file context (using --all-files)
gemini --all-files -p "Review this auth implementation for security issues"

# Architecture advice using Pro model
gemini -m gemini-2.5-pro -p "Best way to handle WebSockets in Cloudflare Workers?"

# Pipe file content for review
cat src/auth.ts | gemini -p "Review this authentication code for security vulnerabilities"

# Interactive mode for follow-up questions
gemini -i "Help me debug this authentication error"
```

---

## When to Use Gemini Consultation

### ALWAYS Consult (Critical Scenarios)

Claude Code should **automatically invoke Gemini** in these situations:

1. **Major Architectural Decisions**
   - Example: "Should I use D1 or KV for session storage?"
   - Example: "Durable Objects vs Workflows for long-running tasks?"
   - Why: Gemini provides complementary perspective, may prioritize different concerns
   - **Pattern**: `gemini -m gemini-2.5-pro -p "[architectural question]"`

2. **Security-Sensitive Code Changes**
   - Authentication systems
   - Payment processing
   - Data handling (PII, sensitive data)
   - API key/secret management
   - Why: Gemini 2.5 Pro excels at security audits
   - **Pattern**: `cat [security-file] | gemini -m gemini-2.5-pro -p "Security audit this code"`

3. **Large Refactors**
   - Affecting 5+ files
   - Core architecture changes
   - Database schema migrations
   - Why: Fresh perspective prevents tunnel vision
   - **Pattern**: `gemini --all-files -m gemini-2.5-pro -p "Review this refactoring plan"`

4. **Stuck Debugging (2+ Failed Attempts)**
   - Error persists after 2 debugging attempts
   - Stack trace unclear
   - Intermittent bugs
   - Why: Different reasoning approach may spot root cause
   - **Pattern**: `gemini -p "Help debug: [error message]" < error.log`

5. **Context Window Pressure (70%+ Full)**
   - Approaching token limit
   - Need to offload analysis to Gemini
   - Why: Gemini's 1M context can handle large code files
   - **Pattern**: `cat large-file.ts | gemini -p "Analyze this code structure"`

### OPTIONALLY Consult

6. **Unfamiliar Technology**
   - Using library/framework for first time
   - Experimenting with new patterns
   - Why: Gemini may have more recent training data
   - **Pattern**: `gemini -p "Best practices for [new technology]"`

7. **Code Reviews**
   - Before committing major changes
   - Pull request preparation
   - Why: Catches edge cases and improvements
   - **Pattern**: `git diff | gemini -p "Review these changes"`

---

## Installation

### 1. Install Gemini CLI

```bash
npm install -g @google/gemini-cli
```

### 2. Authenticate

```bash
gemini
```

Follow the authentication prompts to link your Google account.

### 3. Verify Installation

```bash
gemini --version
```

Should show version 0.13.0 or higher.

### 4. Test Connection

```bash
gemini -p "What is 2+2?"
```

---

## Using Gemini CLI

### Core Command Patterns

#### Non-Interactive Mode (`-p` flag)

Best for Claude Code integration:

```bash
# Direct question
gemini -p "Your question here"

# With model selection
gemini -m gemini-2.5-flash -p "Quick debugging question"
gemini -m gemini-2.5-pro -p "Complex architectural decision"

# With file context via pipe
cat src/auth.ts | gemini -p "Review this code"

# With all files in current directory
gemini --all-files -p "Analyze project structure"

# With stdin input
echo "Error: Cannot connect to database" | gemini -p "Help debug this error"
```

#### Interactive Mode (`-i` flag)

For follow-up conversations:

```bash
# Start interactive session with initial prompt
gemini -i "Let's discuss the architecture"

# Interactive with model selection
gemini -m gemini-2.5-pro -i "Help me design a database schema"
```

#### YOLO Mode (`-y` flag)

Auto-accepts all actions (use with caution):

```bash
# Dangerous: Auto-executes suggested commands
gemini -y -p "Fix all linting errors"
```

⚠️ **Warning**: YOLO mode can execute commands without confirmation. Only use in trusted environments.

---

## Model Selection: Flash vs Pro

### gemini-2.5-flash (Default)

**Characteristics**:
- Fast response time: ~5-25 seconds
- Good quality for most tasks
- Lower cost
- Safe for general questions

**Use For**:
- Code reviews
- Debugging
- General questions
- Quick consultations
- When speed matters

**Example**:
```bash
gemini -m gemini-2.5-flash -p "Review this function for performance issues"
```

### gemini-2.5-pro

**Characteristics**:
- Response time: ~15-30 seconds
- Excellent quality, thorough analysis
- Higher cost
- Best for critical decisions

**Use For**:
- Architecture decisions (critical)
- Security audits (thorough)
- Complex reasoning tasks
- Major refactoring plans
- When accuracy > speed

**Example**:
```bash
gemini -m gemini-2.5-pro -p "Security audit this authentication system"
```

### gemini-3-pro-preview (Preview - November 2025)

**Characteristics**:
- Google's newest and most intelligent AI model (announced Nov 18, 2025)
- State-of-the-art reasoning and multimodal understanding
- Outperforms Gemini 2.5 Pro on every major AI benchmark
- Supports text, image, video, audio, and PDF inputs
- Response time: TBD (in testing)
- Higher cost (preview pricing)

**Use For**:
- Most complex reasoning tasks requiring deep analysis
- Critical architectural decisions on cutting-edge projects
- Advanced multimodal analysis (diagrams, videos, complex docs)
- Benchmark-critical applications
- When absolute best quality is required (and cost is secondary)

**Example**:
```bash
gemini -m gemini-3-pro-preview -p "Deep architectural analysis of this distributed system"
cat architecture-diagram.png | gemini -m gemini-3-pro-preview -p "Analyze this system design"
```

**⚠️ Preview Status**: Model is in preview. For production-critical decisions, consider using `gemini-2.5-pro` (stable) until Gemini 3 reaches general availability.

### How to Choose

```
Quick question? → Flash
Security/architecture? → 3-Pro-Preview (cutting-edge) or 2.5-Pro (stable)
Debugging? → Flash (try Pro if stuck)
Code review? → Flash
Refactoring 5+ files? → 3-Pro-Preview or 2.5-Pro
Multimodal analysis? → 3-Pro-Preview
```

---

## Proactive Consultation Patterns

### Pattern 1: Architecture Decision

**Trigger**: User asks about technology choice
**Claude Action**: Automatically consult Gemini for second opinion

```bash
# Claude runs:
gemini -m gemini-2.5-pro -p "Compare D1 vs KV for session storage in Cloudflare Workers. Consider: read/write patterns, cost, performance, complexity."

# Then synthesizes both perspectives
```

### Pattern 2: Security Review

**Trigger**: Working on auth/payment/sensitive code
**Claude Action**: Request Gemini security audit

```bash
# Claude runs:
cat src/auth/verify-token.ts | gemini -m gemini-2.5-pro -p "Security audit this authentication code. Check for: token validation, timing attacks, injection vulnerabilities, error handling."
```

### Pattern 3: Debugging Assistance

**Trigger**: Error persists after 2 attempts
**Claude Action**: Get Gemini's perspective

```bash
# Claude runs:
echo "[error message and stack trace]" | gemini -p "Help debug this error. What's the likely root cause?"
```

### Pattern 4: Code Review

**Trigger**: Major changes ready to commit
**Claude Action**: Request comprehensive review

```bash
# Claude runs:
git diff HEAD | gemini --all-files -p "Review these changes for: correctness, edge cases, performance, security, best practices."
```

---

## AI-to-AI Prompting Best Practices

### How Claude Should Format Prompts to Gemini

**✅ GOOD: Context-Rich, Specific**
```bash
gemini -m gemini-2.5-pro -p "I'm building a Cloudflare Worker with user authentication. Should I use D1 or KV for storing session data? Consider: 1) Session reads on every request, 2) TTL-based expiration, 3) Cost under 10M requests/month, 4) Deployment complexity."
```

**❌ BAD: Vague, No Context**
```bash
gemini -p "D1 or KV?"
```

### Prompt Structure Template

```
[Context: What you're building]
[Question]
[Considerations: Key factors (numbered)]
```

### Example: Architecture Decision

```bash
gemini -m gemini-2.5-pro -p "
Context: Building a real-time collaborative editing app on Cloudflare Workers.

Question: Should I use Durable Objects or Workflows for managing document state?

Considerations:
1. Need to handle WebSocket connections (100+ simultaneous users per document)
2. Document state must be consistent across all clients
3. Need to persist changes every 5 seconds
4. Budget: <\$100/month at 1000 documents
5. Simple deployment preferred
"
```

---

## Common Use Cases

### 1. Technology Selection

```bash
# Compare two technologies
gemini -m gemini-2.5-pro -p "Compare Drizzle ORM vs raw SQL for Cloudflare D1. Consider: type safety, performance, query complexity, bundle size."
```

### 2. Security Audit

```bash
# Audit authentication code
cat src/middleware/auth.ts | gemini -m gemini-2.5-pro -p "
Security audit this authentication middleware. Check for:
1. Token validation vulnerabilities
2. Timing attack risks
3. Error handling leaks
4. CSRF protection
5. Rate limiting
"
```

### 3. Debugging Root Cause

```bash
# Analyze error logs
tail -100 error.log | gemini -p "
These errors started appearing after deploying auth changes. What's the likely root cause?

Context:
- Added JWT validation middleware
- Using @cloudflare/workers-jwt
- Errors only on /api/* routes
"
```

### 4. Code Review

```bash
# Review pull request changes
git diff main...feature-branch | gemini --all-files -p "
Review this pull request. Focus on:
1. Breaking changes
2. Edge cases not handled
3. Performance implications
4. Security concerns
"
```

### 5. Refactoring Plan

```bash
# Plan large refactor
gemini --all-files -m gemini-2.5-pro -p "
I want to refactor this Express app to Cloudflare Workers with Hono. Analyze the codebase and suggest:
1. Migration order (which routes first)
2. Potential blockers (middleware that won't work)
3. Testing strategy
4. Deployment plan
"
```

### 6. Performance Optimization

```bash
# Analyze performance
cat src/api/heavy-endpoint.ts | gemini -p "
This endpoint is slow (500ms+ response time). Identify performance bottlenecks and suggest optimizations.

Context:
- Cloudflare Worker
- Fetches data from 3 external APIs
- Processes 1000+ items
"
```

---

## Integration Examples

### Example 1: Claude Consulting Gemini Automatically

**Scenario**: User asks architectural question

```
User: "Should I use D1 or KV for storing user sessions?"

Claude (internal): This is an architectural decision. Consult Gemini for second opinion.

[Runs: gemini -m gemini-2.5-pro -p "Compare D1 vs KV for user session storage in Cloudflare Workers..."]

Claude (to user): "I've consulted Gemini for a second opinion. Here's what we both think:

My perspective: [Claude's analysis]
Gemini's perspective: [Gemini's analysis]

Key differences: [synthesis]
Recommendation: [combined recommendation]"
```

### Example 2: Security Review Before Commit

```
User: "Ready to commit these auth changes"

Claude (internal): Security-sensitive code. Request Gemini audit.

[Runs: cat src/auth/*.ts | gemini -m gemini-2.5-pro -p "Security audit..."]

Claude (to user): "I've reviewed the code and consulted Gemini for security concerns:

Gemini identified: [security issues]
Additional checks I recommend: [Claude's additions]

Safe to commit after addressing: [list]"
```

### Example 3: Debugging Assistance

```
User: "Still getting this error after trying your suggestions: [error]"

Claude (internal): Two failed attempts. Consult Gemini for fresh perspective.

[Runs: echo "[error details]" | gemini -p "Help debug..."]

Claude (to user): "Let me get a second opinion from Gemini...

Gemini suggests: [Gemini's diagnosis]
This makes sense because: [Claude's analysis]
Let's try: [combined solution]"
```

---

## Troubleshooting & Known Issues

### Issue 1: Not Authenticated

**Error**: `Error: Not authenticated`

**Solution**:
```bash
gemini
# Follow authentication prompts
```

### Issue 2: Model Not Found

**Error**: `Error: Model not found: gemini-2.5-flash-lite`

**Cause**: Model deprecated or renamed

**Solution**:
```bash
# Use stable models
gemini -m gemini-2.5-flash -p "Your question"
gemini -m gemini-2.5-pro -p "Your question"
```

### Issue 3: Rate Limit

**Error**: `Error: Rate limit exceeded`

**Solution**: Wait 1-5 minutes, then retry

**Prevention**: Space out requests

### Issue 4: Large File Context

**Error**: File too large for context

**Solution**: Use `--all-files` carefully or pipe specific sections

```bash
# Instead of:
gemini --all-files -p "Review everything"

# Do:
cat src/specific-file.ts | gemini -p "Review this file"
```

### Issue 5: Command Hangs

**Cause**: Interactive mode when expecting non-interactive

**Solution**: Always use `-p` flag for non-interactive commands

```bash
# ✅ Correct
gemini -p "Question"

# ❌ Wrong (will hang waiting for input)
gemini "Question"
```

---

## Production Best Practices

### 1. Always Use `-p` for Automation

```bash
# ✅ Good for scripts
gemini -p "Question"

# ❌ Bad for scripts (interactive)
gemini
```

### 2. Select Model Based on Criticality

```bash
# Architecture/security → Pro
gemini -m gemini-2.5-pro -p "[critical question]"

# Debugging/review → Flash
gemini -m gemini-2.5-flash -p "[general question]"
```

### 3. Provide Context in Prompts

```bash
# ✅ Good
gemini -p "Context: Building Cloudflare Worker. Question: Best auth pattern? Considerations: 1) Stateless, 2) JWT, 3) <100ms overhead"

# ❌ Bad
gemini -p "Best auth?"
```

### 4. Pipe File Content for Reviews

```bash
# ✅ Good
cat src/auth.ts | gemini -p "Review for security"

# ❌ Inefficient
gemini -p "Review src/auth.ts" # Gemini has to read file separately
```

### 5. Handle Errors Gracefully

```bash
# Add error handling
if output=$(gemini -p "Question" 2>&1); then
  echo "Gemini says: $output"
else
  echo "Gemini consultation failed, proceeding with Claude's recommendation"
fi
```

### 6. Synthesize, Don't Just Forward

**❌ BAD**: Just paste Gemini's response
```
User: "Should I use D1?"
Claude: [runs gemini] "Gemini says: [paste]"
```

**✅ GOOD**: Synthesize both perspectives
```
User: "Should I use D1?"
Claude: [runs gemini]
"I've consulted Gemini for a second opinion:

My analysis: [Claude's perspective]
Gemini's analysis: [Gemini's perspective]
Key differences: [synthesis]
Recommendation: [unified answer]"
```

---

## Version History

**2.1.0** (2025-11-19):
- Added Gemini 3 Pro Preview model (`gemini-3-pro-preview`)
- Updated model selection guidance for Gemini 3
- Added multimodal analysis use cases
- Updated model comparison matrix

**2.0.0** (2025-11-13):
- Complete rewrite for official Gemini CLI (removed gemini-coach wrapper)
- Direct CLI integration patterns
- Simplified to core use cases
- Updated command examples for `gemini` CLI v0.13.0+

**1.0.0** (2025-11-08):
- Initial release with gemini-coach wrapper
- Production testing and experimentation
- 8+ documented errors prevented

---

## Related Skills

- [google-gemini-api](../google-gemini-api/) - Gemini API integration via SDK
- [google-gemini-embeddings](../google-gemini-embeddings/) - Gemini embeddings for RAG
- [google-gemini-file-search](../google-gemini-file-search/) - Managed RAG with Gemini

---

## License

MIT - See [LICENSE](../../LICENSE)

---

## Support

- **Issues**: https://github.com/jezweb/claude-skills/issues
- **Email**: [email protected]
- **Official Gemini CLI**: https://github.com/google-gemini/gemini-cli

Overview

This skill teaches Claude Code how to consult the Google Gemini CLI as a second opinion for architecture, debugging, and security audits. It explains installation, core command patterns, and when to invoke Flash vs Pro vs 3-Pro-Preview. Use it to leverage Gemini's 1M+ context window for deep codebase analysis and model comparisons.

How this skill works

The skill shows how to run the gemini command non-interactively (-p) or interactively (-i), pipe file contents, and analyze whole repositories with --all-files. It describes model selection: gemini-2.5-flash for speed, gemini-2.5-pro for thorough audits, and gemini-3-pro-preview for cutting-edge multimodal analysis. Patterns cover automatic calls for architecture, security, refactors, and stuck debugging.

When to use it

  • Major architectural decisions (new DB, service boundaries, runtime choices)
  • Security-sensitive code (auth, payments, PII handling)
  • Large refactors affecting 5+ files or core modules
  • After 2+ failed debugging attempts or unclear stack traces
  • When project context approaches 70%+ of token capacity and you need the 1M+ window
  • When working with an unfamiliar technology or seeking a peer review

Best practices

  • Provide concise, context-rich prompts: include project context, explicit questions, and numbered considerations
  • Start with Flash for quick triage, escalate to Pro for critical audits or if Flash is inconclusive
  • Pipe only relevant files or use --all-files selectively to avoid noise and rate limits
  • Avoid YOLO (-y) in untrusted environments; never auto-execute suggestions without review
  • Synthesize Gemini responses with your own analysis before applying changes

Example use cases

  • Compare D1 vs KV for session storage with cost, latency, and deployment constraints
  • Pipe auth middleware files for a security audit using gemini-2.5-pro
  • Send error logs to gemini for a fresh root-cause hypothesis after two failed fixes
  • Run git diff through gemini --all-files to review a large pull request for edge cases
  • Analyze a slow endpoint by piping the handler file and asking for bottleneck fixes

FAQ

Which model should I try first?

Use gemini-2.5-flash for quick questions and debugging; escalate to gemini-2.5-pro for architecture and security. Use gemini-3-pro-preview only for advanced multimodal needs or highest-quality analysis.

How do I include files for review?

Pipe file contents (cat file | gemini -p "Review...") or use gemini --all-files for full-project analysis, but prefer targeted files to reduce noise.