ripgrep
Use when searching text in files, codebases, books, or documents. Use when finding files by pattern, searching large files that are too big to read fully, extracting specific content from many files, or when grep/find is too slow. Triggers on "search for", "find occurrences", "look for pattern", "se
By ratacat · 399 installs
npx skills add ratacat/claude-skills --skill ripgrep
Source repository · Upstream listing
Ripgrep (rg) Fast Text Search Tool
Overview
Ripgrep is a line oriented search tool that recursively searches directories for regex patterns. It's 10 100x faster than grep and respects .gitignore by default. Use it instead of grep, find, or manually reading large files.
Core principle: When you need to find text in files, use ripgrep. Don't read entire files into context when you can search them.
When to Use
Use ripgrep when:
Searching for text patterns across a codebase or directory
Finding all occurrences of a function, variable, or string
Searching through books, documentation, or large text files
Files are too large to read fully into context
Looking for specific content in many files at once
Finding files that contain (or don't contain) certain patterns
Extracting matching lines for analysis
Don't use when:
You need the full file content (use Read tool)
Simple glob pattern matching for filenames only (use Glob tool)
You need structured data extraction (consider jq, awk)
Quick Reference
Task Command
Basic search rg "pattern" [path]
Case insensitive rg i "pattern"
Smart case (auto) rg S "pattern"
Whole word only rg w "word"
Fixed string (no regex) rg F "literal.string"
Show context lines rg C 3 "pattern" (3 before & after)
Show line numbers rg n "pattern" (default in tty)
Only filenames rg l "pattern"
Files without match rg files without match "pattern"
Count matches rg c "pattern"
Only matching part rg o "pattern"
Invert match rg v "pattern"
Multiline search rg U "pattern. \nmore"
File Filtering
By File Type
Ripgrep has built in file type definitions. Use t to include, T to exclude:
Common types: py , js , ts , rust , go , java , c , cpp , rb , php , html , css , json , yaml , md , txt , sh
By Glob Pattern
By File Size
Directory Control
Context Options
Output Formats
Regex Patterns
Ripgrep uses Rust regex syntax by default:
Multiline Matching
Replacement (Preview Only)
Ripgrep can show what replacements would look like (doesn't modify files):
Searching Special Files
Compressed Files
Binary Files
Large Files
For files too large to read into context:
Performance Tips
1. Be specific with paths Don't search from root when you know the subdir
2. Use file types t py is faster than g " .py"
3. Use fixed strings F when you don't need regex
4. Limit depth max depth when you know structure
5. Let gitignore work Don't use no ignore unless needed
6. Use word boundaries w is optimized
Common Patterns
Find function definitions
Find imports/requires
Find TODO/FIXME comments
Find error handling
Find class definitions
Search in books/documents
Combining with Other Tools
Exit Codes
Code Meaning
0 Matches found
1 No matches found
2 Error occurred
Useful for scripting:
Common Mistakes
Mistake Fix
Pattern has special chars Use F for fixed strings or escape: rg "foo\.bar"
Can't find hidden files Add hidden or uu
Missing node modules Add no ignore (but it's usually right to skip)
Regex too complex Try P for PCRE2 with lookahead/lookbehind
Output too long Use m N to limit, or l for just filenames
Binary file skipped Add binary or a for text mode
Need to see full line Remove o (only matching) flag
When to Prefer Other Tools
Task Better Tool
Structured JSON queries jq
Column based text processing awk
Stream editing/substitution sed (actually modifies files)
Find files by name only fd or find
Simple file listing ls or glob
Full file content needed Read tool