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: