6.8 KiB
6.8 KiB
Gemini CLI Command Patterns
Purpose: Common command templates for Gemini CLI integration Version: v0.16.0+ Last Updated: 2025-11-18
Basic Invocation Patterns
One-Shot Queries (Headless Mode)
# Preferred syntax (positional prompt)
gemini -m gemini-3-pro-preview "Explain the observer pattern in software design"
# Alternative (deprecated -p flag, still works)
gemini -m gemini-3-pro-preview -p "Explain the observer pattern in software design"
# With stdin input
echo "function add(a, b) { return a + b; }" | gemini -m gemini-3-pro-preview "Explain this code"
Model Selection
# Use Gemini 3 Pro (default for complex reasoning)
gemini -m gemini-3-pro-preview "Design a microservices architecture"
# Use Gemini 2.5 Pro (stable, general reasoning)
gemini -m gemini-2.5-pro "Review this API design"
# Use Gemini 2.5 Flash (faster, code-focused)
gemini -m gemini-2.5-flash "Refactor this function for performance"
Version-Based Model Selection
When user requests a specific version, map to the latest model in that family:
# User says "use Gemini 3" or "use 3" → Latest 3.x Pro
gemini -m gemini-3-pro-preview "Design a distributed caching system"
# User says "use Gemini 2.5" for general tasks → 2.5 Pro
gemini -m gemini-2.5-pro "Explain the CAP theorem with examples"
# User says "use Gemini 2.5" for code editing → 2.5 Flash
gemini -m gemini-2.5-flash "Refactor this module for readability"
# No version specified → Default to latest Pro
gemini -m gemini-3-pro-preview "Research microservices best practices"
Fallback Strategy (when primary model unavailable):
# Try Gemini 3 Pro first
gemini -m gemini-3-pro-preview "Complex reasoning task" 2>&1
# If quota exhausted, fallback to 2.5 Pro (general) or 2.5 Flash (code)
if [ $? -ne 0 ]; then
# For general reasoning
gemini -m gemini-2.5-pro "Complex reasoning task"
# OR for code editing
# gemini -m gemini-2.5-flash "Complex reasoning task"
fi
Output Formatting
Text Output (Default)
gemini -m gemini-3-pro-preview "What is dependency injection?"
JSON Output (Programmatic)
gemini -m gemini-3-pro-preview --output-format json "List top 5 design patterns"
Streaming JSON (Real-time)
gemini -m gemini-3-pro-preview --output-format stream-json "Explain async/await in JavaScript"
Approval Modes & Security
Default Mode (Prompt for all actions)
# Explicit
gemini -m gemini-3-pro-preview --approval-mode default "Refactor this code"
# Implicit (no flag = default)
gemini -m gemini-3-pro-preview "Refactor this code"
Auto-Edit Mode (Auto-approve edit tools only)
gemini -m gemini-3-pro-preview --approval-mode auto_edit "Fix bugs in this file"
YOLO Mode (Auto-approve all tools)
# Long form
gemini -m gemini-3-pro-preview --approval-mode yolo "Deploy to production"
# Short form
gemini -m gemini-3-pro-preview -y "Deploy to production"
Sandbox Mode
Enable Sandbox
gemini -m gemini-3-pro-preview -s "Run untrusted code analysis"
Disable Sandbox (Default)
gemini -m gemini-3-pro-preview "Analyze trusted codebase"
Session Management
List Sessions
gemini --list-sessions
Resume Sessions
# Resume most recent session
gemini -r latest
# Resume specific session by index
gemini -r 3
# Resume and add new prompt
gemini -r latest "Continue from where we left off"
Delete Sessions
gemini --delete-session 5
Extensions & MCP
List Available Extensions
gemini -l
# or
gemini --list-extensions
Use Specific Extensions
gemini -e web_search,code_analysis "Research React best practices"
Use All Extensions (Default)
gemini "Research React best practices"
Workspace Context
Include Additional Directories
gemini --include-directories ./lib,./tests "Analyze the full project"
# Or multiple flags
gemini --include-directories ./lib --include-directories ./tests "Analyze project"
Combined Patterns
Production-Safe Code Review
gemini -m gemini-2.5-pro \
--approval-mode default \
--output-format json \
"Review this pull request for security issues"
Fast Code Refactoring
gemini -m gemini-2.5-flash \
--approval-mode auto_edit \
"Refactor these functions for better performance"
Research with Web Search
gemini -m gemini-3-pro-preview \
-e web_search \
--output-format text \
"What are the latest trends in GraphQL?"
Sandbox Testing
gemini -m gemini-2.5-pro \
-s \
--approval-mode default \
"Test this suspicious code snippet"
Claude Code Integration Patterns
Skill Invocation (via Claude)
# Basic invocation from skill
gemini -m gemini-3-pro-preview "Explain microservices"
# With explicit approval mode
gemini -m gemini-2.5-pro --approval-mode auto_edit "Fix type errors"
# With JSON output for parsing
gemini -m gemini-2.5-flash --output-format json "List API endpoints"
Error Handling Pattern
# Check CLI availability
if ! command -v gemini &> /dev/null; then
echo "Error: Gemini CLI not installed"
exit 1
fi
# Execute with error capture
gemini -m gemini-3-pro-preview "task" 2>&1 || echo "Gemini CLI failed"
Model Selection by Task Type
Complex Reasoning (General)
gemini -m gemini-3-pro-preview "Design system architecture"
Code Review & Analysis
gemini -m gemini-2.5-pro "Review this pull request"
Fast Code Editing
gemini -m gemini-2.5-flash "Fix syntax errors in this file"
Anti-Patterns (Avoid These)
# ❌ Using -p flag (deprecated)
gemini -p "prompt" # Will be removed in future
# ❌ Using -i for headless mode
gemini -i "prompt" # This starts interactive mode, not one-shot
# ❌ Hardcoding model without fallback
# Always have fallback logic when gemini-3-pro-preview unavailable
# ❌ Using YOLO mode without user confirmation
# Always require explicit user approval for YOLO mode
Best Practices
- Prefer Positional Prompts: Use
gemini "prompt"instead ofgemini -p "prompt" - Specify Model Explicitly: Always use
-mflag for predictable behavior - Use Appropriate Approval Mode: Default for untrusted tasks, auto_edit for code editing
- Enable Sandbox for Unknown Code: Use
-swhen analyzing untrusted input - Format Output for Parsing: Use
--output-format jsonwhen processing results programmatically - Resume Sessions When Needed: Use
-r latestfor multi-turn conversations - Validate CLI Availability: Always check
command -v geminibefore invocation
See Also
gemini-help.md- Full CLI referencesession-workflows.md- Session continuation patternsmodel-selection.md- Model selection guidance