Search Functionality
Learn how to effectively use Gemini CLI's search capabilities to find information, code, and resources quickly.
Basic Search Commands
Simple text search:
gemini search "function definition"
gemini find "error handling"
File-specific search:
gemini search --file "*.js" "async function"
gemini search --ext py "class definition"
Directory search:
gemini search --dir src/ "component"
gemini search --path ./lib "utility function"
Advanced Search Options
Pattern Matching
# Regex search
gemini search --regex "function\s+\w+\("
# Wildcard search
gemini search --glob "*test*.js"
# Case-insensitive
gemini search --ignore-case "ERROR"
Content Type Filters
# Code files only
gemini search --code "import statement"
# Documentation files
gemini search --docs "API reference"
# Configuration files
gemini search --config "database connection"
Search Scope
# Include/exclude patterns
gemini search --include "*.ts,*.js" "interface"
gemini search --exclude "node_modules,dist" "function"
# Max depth
gemini search --max-depth 3 "component"
Contextual Search
Search with surrounding context:
# Show 3 lines before and after match
gemini search --context 3 "error handling"
# Show 5 lines before, 2 after
gemini search --before 5 --after 2 "function"
Semantic search:
gemini search --semantic "database connection logic"
gemini search --meaning "user authentication flow"
Related code search:
gemini search --related "getUserProfile function"
gemini search --similar "error handling pattern"
Interactive Search
Launch interactive search mode:
gemini search --interactive
gemini isearch # Shorthand
Interactive search features:
- • Real-time search as you type
- • Preview file contents
- • Navigate results with arrow keys
- • Open files directly in your editor
- • Refine search with filters
Keyboard shortcuts in interactive mode:
↑↓ Navigate results
Enter Open file
Tab Preview
Ctrl+F Add filter
Esc Exit
F1 Help
Search Output Formats
Output Format Options
# Default format
gemini search "function"
# JSON output
gemini search --json "class" | jq '.results[]'
# CSV output
gemini search --csv "import" > results.csv
# Markdown report
gemini search --markdown "TODO" > todos.md
Detailed Output
# Show file statistics
gemini search --stats "function"
# Include git blame info
gemini search --blame "bug fix"
# Show file metadata
gemini search --metadata "config"
Search Configuration
Configure search defaults:
gemini config set search.defaultContext 3
gemini config set search.ignoreCase true
gemini config set search.excludePatterns "node_modules,dist"
Search configuration file:
{ "search": { "defaultContext": 3, "ignoreCase": true, "excludePatterns": ["node_modules", "dist", ".git"], "includePatterns": ["*.js", "*.ts", "*.py", "*.md"], "maxResults": 100, "semanticSearch": true } }
Search Tips and Tricks
Efficient Search Strategies
- • Start with broad terms, then narrow down
- • Use file extensions to limit scope
- • Combine multiple search terms with AND/OR
- • Use quotes for exact phrase matching
- • Exclude common files to reduce noise
Common Search Patterns
# Find all TODOs
gemini search "TODO|FIXME|HACK" --regex
# Find unused imports
gemini search --semantic "unused import statements"
# Find API endpoints
gemini search "app\.(get|post|put|delete)" --regex
# Find hardcoded strings
gemini search '"[^"]*"' --regex --exclude "*.json"
Performance Optimization
- • Use specific file patterns to reduce search scope
- • Exclude large directories like node_modules
- • Use parallel search for large codebases
- • Cache search results for repeated queries
- • Index your codebase for faster searches
Integration with Other Tools
Editor integration:
# Open results in VS Code
gemini search "function" --editor code
# Open in vim
gemini search "class" --editor vim
Pipeline integration:
# Pipe to other commands
gemini search "TODO" | gemini "Summarize these TODO items"
gemini search --json "function" | jq '.results[].file' | sort | uniq
Next Steps
Ready to explore more advanced Gemini CLI features: