Ripgrep

Blazingly fast text search tool - recursively searches directories for regex patterns with respect to gitignore rules.

Audits

Pass

Install

openclaw skills install ripgrep

ripgrep (rg)

Fast, smart recursive search. Respects .gitignore by default.

Quick Start

Basic search

# Search for "TODO" in current directory
rg "TODO"

# Case-insensitive search
rg -i "fixme"

# Search specific file types
rg "error" -t py       # Python files only
rg "function" -t js    # JavaScript files

Common patterns

# Whole word match
rg -w "test"

# Show only filenames
rg -l "pattern"

# Show with context (3 lines before/after)
rg -C 3 "function"

# Count matches
rg -c "import"

Advanced Usage

File type filtering

# Multiple file types
rg "error" -t py -t js

# Exclude file types
rg "TODO" -T md -T txt

# List available types
rg --type-list

Search modifiers

# Regex search
rg "user_\d+"

# Fixed string (no regex)
rg -F "function()"

# Multiline search
rg -U "start.*end"

# Only show matches, not lines
rg -o "https?://[^\s]+"

Path filtering

# Search specific directory
rg "pattern" src/

# Glob patterns
rg "error" -g "*.log"
rg "test" -g "!*.min.js"

# Include hidden files
rg "secret" --hidden

# Search all files (ignore .gitignore)
rg "pattern" --no-ignore

Replacement Operations

# Preview replacements
rg "old_name" --replace "new_name"

# Actually replace (requires extra tool like sd)
rg "old_name" -l | xargs sed -i 's/old_name/new_name/g'

Performance Tips

# Parallel search (auto by default)
rg "pattern" -j 8

# Skip large files
rg "pattern" --max-filesize 10M

# Memory map files
rg "pattern" --mmap

Common Use Cases

Find TODOs in code:

rg "TODO|FIXME|HACK" --type-add 'code:*.{rs,go,py,js,ts}' -t code

Search in specific branches:

git show branch:file | rg "pattern"

Find files containing multiple patterns:

rg "pattern1" | rg "pattern2"

Search with context and color:

rg -C 2 --color always "error" | less -R

Comparison to grep

  • Faster: Typically 5-10x faster than grep
  • Smarter: Respects .gitignore, skips binary files
  • Better defaults: Recursive, colored output, line numbers
  • Easier: Simpler syntax for common tasks

Tips

  • rg is often faster than grep -r
  • Use -t for file type filtering instead of --include
  • Combine with other tools: rg pattern -l | xargs tool
  • Add custom types in ~/.ripgreprc
  • Use --stats to see search performance

Documentation

GitHub: https://github.com/BurntSushi/ripgrep User Guide: https://github.com/BurntSushi/ripgrep/blob/master/GUIDE.md