home / skills / ovachiever / droid-tings / 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-cliReview the files below or copy the command above to add this skill to your agents.
---
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
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.
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.
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.