Back to Skills
    🦞

    ripgrep

    Blazingly fast text search tool - recursively searches directories

    By @arnarsson
    View on GitHub
    SKILL.md
    ---
    name: ripgrep
    description: Blazingly fast text search tool - recursively searches directories for regex patterns with respect to gitignore rules.
    homepage: https://github.com/BurntSushi/ripgrep
    metadata: {"clawdbot":{"emoji":"🔎","requires":{"bins":["rg"]},"install":[{"id":"brew","kind":"brew","formula":"ripgrep","bins":["rg"],"label":"Install ripgrep (brew)"},{"id":"apt","kind":"apt","package":"ripgrep","bins":["rg"],"label":"Install ripgrep (apt)"}]}}
    ---
    
    # ripgrep (rg)
    
    Fast, smart recursive search. Respects `.gitignore` by default.
    
    ## Quick Start
    
    ### Basic search
    ```bash
    # 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
    ```bash
    # 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
    ```bash
    # 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
    ```bash
    # 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
    ```bash
    # 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
    
    ```bash
    # 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
    
    ```bash
    # 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:**
    ```bash
    rg "TODO|FIXME|HACK" --type-add 'code:*.{rs,go,py,js,ts}' -t code
    ```
    
    **Search in specific branches:**
    ```bash
    git show branch:file | rg "pattern"
    ```
    
    **Find files containing multiple patterns:**
    ```bash
    rg "pattern1" | rg "pattern2"
    ```
    
    **Search with context and color:**
    ```bash
    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