Andrey Antukh 37cba3355d 🔧 Update opencode tooling, agents, and devenv
Update agent configurations: change commiter mode to all, rename
engineer agent to "Penpot Engineer", and remove obsolete testing agent.

Add new read-only planner agent for architecture analysis and planning.

Add four new skills: bat-cat (syntax-highlighted cat clone), fd-find
(fast file finder), jq-json-processor (JSON processor), and ripgrep
(fast text search).

Add fd-find and bat packages to devenv Dockerfile.

Update .gitignore to exclude opencode package-lock and plans directory.

Signed-off-by: Andrey Antukh <niwi@niwi.nz>
2026-04-27 00:25:23 +02:00

3.0 KiB

name, description, homepage, metadata
name description homepage metadata
ripgrep Blazingly fast text search tool - recursively searches directories for regex patterns with respect to gitignore rules. https://github.com/BurntSushi/ripgrep
clawdbot
emoji requires install
🔎
bins
rg
id kind formula bins label
brew brew ripgrep
rg
Install ripgrep (brew)
id kind package bins label
apt apt ripgrep
rg
Install ripgrep (apt)

ripgrep (rg)

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

Quick Start

# 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