Google Gemini CLI for second opinions, architectural advice, code reviews, security audits. Leverage 1M+ context for comprehensive codebase analysis via command-line tool.
57
72%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./plugins/gemini-cli/skills/gemini-cli/SKILL.mdLeverage 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.
Prerequisites:
bun add -g @google/gemini-cli)gemini once to authenticate)Core Command Patterns:
# Quick question (non-interactive with -p flag)
gemini -p "Should I use D1 or KV for session storage?"
# Code review with file context
cat src/auth.ts | gemini -p "Review this authentication code for security vulnerabilities"
# Architecture advice using Pro model
gemini -m gemini-2.5-pro -p "Best way to handle WebSockets in Cloudflare Workers?"
# With all files in directory
gemini --all-files -p "Review this auth implementation for security issues"
# Interactive mode for follow-up questions
gemini -i "Help me debug this authentication error"Critical: Always use -p flag for non-interactive commands in automation/scripts.
Claude Code should automatically invoke Gemini in these situations:
Major Architectural Decisions
gemini -m gemini-2.5-pro -p "[architectural question]"Security-Sensitive Code Changes
cat [security-file] | gemini -m gemini-2.5-pro -p "Security audit this code"Stuck Debugging (2+ Failed Attempts)
gemini -p "Help debug: [error message]" < error.logLarge Refactors (5+ Files)
gemini --all-files -m gemini-2.5-pro -p "Review this refactoring plan"Context Window Pressure (70%+ Full)
cat large-file.ts | gemini -p "Analyze this code structure"bun add -g @google/gemini-cligeminiFollow the authentication prompts to link your Google account.
gemini --version # Should show 0.13.0+
gemini -p "What is 2+2?" # Test connectiongemini -m gemini-2.5-flash -p "Review this function for performance issues"gemini -m gemini-2.5-pro -p "Security audit this authentication system"Quick question? → Flash
Security/architecture? → Pro
Debugging? → Flash (try Pro if stuck)
Refactoring 5+ files? → ProCRITICAL FINDING: Flash and Pro can give opposite recommendations on the same question (both valid, different priorities). Flash prioritizes performance, Pro prioritizes consistency/correctness. For details, load references/models-guide.md.
# 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
"# Compare technologies with context
gemini -m gemini-2.5-pro -p "
Context: Building Cloudflare Worker with user authentication.
Question: Should I use D1 or KV for storing session data?
Considerations:
1. Session reads on every request
2. TTL-based expiration
3. Cost under 10M requests/month
4. Deployment complexity
"# Analyze error logs with context
tail -100 error.log | gemini -p "
These errors started after deploying auth changes. What's the likely root cause?
Context:
- Added JWT validation middleware
- Using @cloudflare/workers-jwt
- Errors only on /api/* routes
"For more use cases: Load references/models-guide.md for performance optimization, refactoring plans, and code reviews.
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. Consider: read/write patterns, cost, performance, complexity."]
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]"Key Pattern: Synthesize both perspectives, don't just forward Gemini's response.
Error: Error: Not authenticated
Solution:
gemini # Follow authentication promptsError: Error: Model not found: gemini-2.5-flash-lite
Cause: Model deprecated or renamed (flash-lite doesn't exist)
Solution: Use stable models only:
gemini -m gemini-2.5-flash -p "Your question"
gemini -m gemini-2.5-pro -p "Your question"Cause: Interactive mode when expecting non-interactive
Solution: Always use -p flag for non-interactive commands
# ✅ Correct
gemini -p "Question"
# ❌ Wrong (will hang waiting for input)
gemini "Question"For more troubleshooting: Load references/models-guide.md for rate limits, large file context issues, and performance tips.
Load reference files in these scenarios:
references/models-guide.md when:references/prompting-strategies.md when:references/gemini-experiments.md when:Note: helper-functions.md is obsolete (references old gemini-coach wrapper, not the official gemini CLI).
-p for Automation# ✅ Good for scripts
gemini -p "Question"
# ❌ Bad (interactive)
gemini# Architecture/security → Pro
gemini -m gemini-2.5-pro -p "[critical question]"
# Debugging/review → Flash
gemini -m gemini-2.5-flash -p "[general question]"# ✅ Good: Context + Question + Considerations
gemini -p "Context: Building Cloudflare Worker. Question: Best auth pattern? Considerations: 1) Stateless, 2) JWT, 3) <100ms overhead"
# ❌ Bad: Vague
gemini -p "Best auth?"# ✅ Efficient
cat src/auth.ts | gemini -p "Review for security"
# ❌ Less efficient
gemini -p "Review src/auth.ts"❌ BAD: Just paste Gemini's response
Claude: [runs gemini] "Gemini says: [paste]"✅ GOOD: Synthesize both perspectives
Claude: "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]"if output=$(gemini -p "Question" 2>&1); then
echo "Gemini says: $output"
else
echo "Gemini consultation failed, proceeding with Claude's recommendation"
fi2.1.0 (2025-12-15):
2.0.0 (2025-11-13):
gemini CLI v0.13.0+1.0.0 (2025-11-08):
MIT - See LICENSE
secondsky/claude-skills
8837836
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.