Utility Pro
Overview
Masters the command-line environment by turning raw text and unstructured data into actionable insights. Combines Rust-powered search tools (ripgrep, fd, bat), structured data shells (Nushell), JSON manipulation (jq/yq), and modern HTTP clients (xh) for high-performance CLI workflows.
Core philosophy: Replace legacy text-parsing pipelines (grep/awk/sed chains) with purpose-built tools that understand structure. ripgrep understands gitignore rules, fd understands file types, jq understands JSON, and Nushell understands tables.
When to use: Codebase-wide search and analysis, multi-file refactoring, JSON/YAML transformation pipelines, API debugging, directory navigation, log parsing, disk usage auditing, dependency tracing.
When NOT to use: GUI-based tasks, complex application logic (write a script instead), tasks requiring interactive prompts.
Quick Reference
| Pattern |
Tool / Command |
Key Points |
| Text search |
rg "pattern" -g "*.tsx" |
10-100x faster than grep, respects .gitignore |
| File search |
fd -e pdf or fd "pattern" |
Fast alternative to find with smart defaults |
| Syntax-highlighted read |
bat file.ts |
Cat with syntax highlighting and git integration |
| Directory jump |
z project-name |
Remembers frequently visited directories |
| Fuzzy search |
fzf or CTRL-T / CTRL-R |
Interactive selection for files and history |
| Tree view |
eza --tree --level=2 |
Metadata-rich ls replacement with tree support |
| JSON query |
jq '.items[] | select(.active)' |
Full functional programming for JSON |
| YAML query |
yq '.config.database' file.yml |
jq-like syntax for YAML files |
| HTTP request |
xh POST api.example.com/v1/data key=value |
Colorized, user-friendly HTTP client |
| Multi-file refactor |
fd -e tsx -x sed -i 's/Old/New/g' {} |
Find files then execute transforms |
| Structured shell |
ls | where size > 1mb | sort-by size |
Nushell tables instead of text parsing |
| Log parsing |
rg "ERROR" --json | jq 'select(.type == "match") | .data.lines.text' |
Combine ripgrep JSON output with jq filters |
| File preview with search |
fzf --preview 'bat --color=always {}' |
Browse files with syntax-highlighted preview |
| Find recently changed |
fd --changed-within 1h |
Find files modified within a time window |
| Export count by file |
rg -c "pattern" -g "*.ts" | sort -t: -k2 -rn |
Count matches per file, sorted by frequency |
| JSON format conversion |
yq -o json config.yml |
Convert between YAML, JSON, CSV, and other formats |
| Advanced regex search |
rg -P "(?<=function\s)\w+" --only-matching |
PCRE2 for lookahead/lookbehind patterns |
| Git-aware file listing |
eza -la --git --icons |
Show file metadata with inline git status |
Tool Overview
| Category |
Modern Tool |
Replaces |
Key Advantage |
| Text search |
ripgrep (rg) |
grep, ag, git grep |
Speed, .gitignore awareness, Unicode |
| File search |
fd |
find |
Smart defaults, regex, parallelism |
| File viewer |
bat |
cat, less |
Syntax highlighting, git diff markers |
| Directory jump |
zoxide (z) |
cd, autojump |
Frecency-based ranking, fzf fallback |
| Fuzzy finder |
fzf |
manual piping |
Universal selector for any list |
| File listing |
eza |
ls, tree |
Tree view, git status, icons |
| JSON processing |
jq |
awk, python oneliners |
Typed, functional JSON transforms |
| YAML processing |
yq |
sed on YAML |
jq-compatible syntax for YAML |
| HTTP client |
xh |
curl, httpie |
HTTPie syntax, Rust speed, single binary |
| Structured shell |
Nushell |
bash + awk/sed |
Typed tables, native format conversion |
Common Mistakes
| Mistake |
Correct Pattern |
Using grep instead of ripgrep for codebase search |
Use rg which is 10-100x faster and respects .gitignore by default |
Piping ls output into grep for file filtering |
Use fd for file discovery, or eza -D / eza --ignore-glob for listing |
Writing complex awk scripts for structured data |
Use Nushell or jq which natively understand JSON, CSV, and YAML |
Running rm -rf in scripts without a dry-run step |
Always add a verification or dry-run step before destructive operations |
| Using capturing groups in regex when not needed |
Prefer non-capturing groups (?:...) for better performance in large-scale scans |
Searching node_modules or .git directories |
Use rg which skips these by default, or configure exclusions explicitly |
Forgetting select(.type == "match") on rg --json |
ripgrep JSON emits begin, match, context, end, and summary message types |
Using curl with verbose flag syntax |
Use xh which provides colorized output and HTTPie-compatible request-item syntax |
Parsing text output between tools with cut/tr |
Use Nushell pipelines that preserve structured data through every stage |
Anchoring regex with .* at the start |
Anchor with ^ when possible; unanchored .* causes expensive backtracking |
Installation
All tools are available via common package managers. Most are single statically linked binaries.
| Tool |
macOS (Homebrew) |
Linux (apt/cargo) |
| ripgrep |
brew install ripgrep |
apt install ripgrep or cargo install ripgrep |
| fd |
brew install fd |
apt install fd-find or cargo install fd-find |
| bat |
brew install bat |
apt install bat or cargo install bat |
| zoxide |
brew install zoxide |
cargo install zoxide |
| fzf |
brew install fzf |
apt install fzf |
| eza |
brew install eza |
cargo install eza |
| jq |
brew install jq |
apt install jq |
| yq |
brew install yq |
snap install yq or go install |
| xh |
brew install xh |
cargo install xh |
| Nushell |
brew install nushell |
cargo install nu |
Shell integration (add to shell config after installing):
| Tool |
Shell Integration Required |
| zoxide |
eval "$(zoxide init zsh)" (or bash/fish equivalent) |
| fzf |
Source keybinding and completion scripts from fzf install |
Delegation
- Large-scale codebase search and analysis: Use
Explore agent to run ripgrep queries, trace dependencies, and map code patterns
- Multi-file refactoring workflows: Use
Task agent to coordinate fd, sed, and verification steps across an entire project
- Pipeline architecture for data transformation: Use
Plan agent to design structured pipelines combining jq, Nushell, and API tools
References
- Modern Unix Toolbox -- ripgrep, fd, bat, zoxide, fzf, eza, terminal setup
- Advanced Regex and jq -- named captures, lookahead/lookbehind, jq filters, integrated pipelines
- Nushell Structured Data -- table paradigm, API interaction, scripting, Unix interop
1---
2name: cli-power-tools
3description: 'Performs advanced CLI operations, structured data transformation, and Unix forensics with modern Rust-powered tools. Use when searching codebases with ripgrep, transforming JSON or YAML with jq, refactoring across files with sed and fd, debugging APIs with httpie, or navigating directories with zoxide.'
4license: MIT
5metadata:
6 author: oakoss
7 version: '1.0'
8 source: 'https://github.com/BurntSushi/ripgrep'
9user-invocable: false
10---
11
12# Utility Pro
13
14## Overview
15
16Masters the command-line environment by turning raw text and unstructured data into actionable insights. Combines Rust-powered search tools (ripgrep, fd, bat), structured data shells (Nushell), JSON manipulation (jq/yq), and modern HTTP clients (xh) for high-performance CLI workflows.
17
18**Core philosophy:** Replace legacy text-parsing pipelines (grep/awk/sed chains) with purpose-built tools that understand structure. ripgrep understands gitignore rules, fd understands file types, jq understands JSON, and Nushell understands tables.
19
20**When to use:** Codebase-wide search and analysis, multi-file refactoring, JSON/YAML transformation pipelines, API debugging, directory navigation, log parsing, disk usage auditing, dependency tracing.
21
22**When NOT to use:** GUI-based tasks, complex application logic (write a script instead), tasks requiring interactive prompts.
23
24## Quick Reference
25
26| Pattern | Tool / Command | Key Points |
27| ------------------------ | ------------------------------------------------------------------------ | -------------------------------------------------- |
28| Text search | `rg "pattern" -g "*.tsx"` | 10-100x faster than grep, respects `.gitignore` |
29| File search | `fd -e pdf` or `fd "pattern"` | Fast alternative to `find` with smart defaults |
30| Syntax-highlighted read | `bat file.ts` | Cat with syntax highlighting and git integration |
31| Directory jump | `z project-name` | Remembers frequently visited directories |
32| Fuzzy search | `fzf` or `CTRL-T` / `CTRL-R` | Interactive selection for files and history |
33| Tree view | `eza --tree --level=2` | Metadata-rich ls replacement with tree support |
34| JSON query | `jq '.items[] \| select(.active)'` | Full functional programming for JSON |
35| YAML query | `yq '.config.database' file.yml` | jq-like syntax for YAML files |
36| HTTP request | `xh POST api.example.com/v1/data key=value` | Colorized, user-friendly HTTP client |
37| Multi-file refactor | `fd -e tsx -x sed -i 's/Old/New/g' {}` | Find files then execute transforms |
38| Structured shell | `ls \| where size > 1mb \| sort-by size` | Nushell tables instead of text parsing |
39| Log parsing | `rg "ERROR" --json \| jq 'select(.type == "match") \| .data.lines.text'` | Combine ripgrep JSON output with jq filters |
40| File preview with search | `fzf --preview 'bat --color=always {}'` | Browse files with syntax-highlighted preview |
41| Find recently changed | `fd --changed-within 1h` | Find files modified within a time window |
42| Export count by file | `rg -c "pattern" -g "*.ts" \| sort -t: -k2 -rn` | Count matches per file, sorted by frequency |
43| JSON format conversion | `yq -o json config.yml` | Convert between YAML, JSON, CSV, and other formats |
44| Advanced regex search | `rg -P "(?<=function\s)\w+" --only-matching` | PCRE2 for lookahead/lookbehind patterns |
45| Git-aware file listing | `eza -la --git --icons` | Show file metadata with inline git status |
46
47## Tool Overview
48
49| Category | Modern Tool | Replaces | Key Advantage |
50| ---------------- | -------------- | --------------------- | ---------------------------------------- |
51| Text search | ripgrep (`rg`) | grep, ag, git grep | Speed, `.gitignore` awareness, Unicode |
52| File search | fd | find | Smart defaults, regex, parallelism |
53| File viewer | bat | cat, less | Syntax highlighting, git diff markers |
54| Directory jump | zoxide (`z`) | cd, autojump | Frecency-based ranking, fzf fallback |
55| Fuzzy finder | fzf | manual piping | Universal selector for any list |
56| File listing | eza | ls, tree | Tree view, git status, icons |
57| JSON processing | jq | awk, python oneliners | Typed, functional JSON transforms |
58| YAML processing | yq | sed on YAML | jq-compatible syntax for YAML |
59| HTTP client | xh | curl, httpie | HTTPie syntax, Rust speed, single binary |
60| Structured shell | Nushell | bash + awk/sed | Typed tables, native format conversion |
61
62## Common Mistakes
63
64| Mistake | Correct Pattern |
65| ----------------------------------------------------- | ---------------------------------------------------------------------------------- |
66| Using `grep` instead of `ripgrep` for codebase search | Use `rg` which is 10-100x faster and respects `.gitignore` by default |
67| Piping `ls` output into `grep` for file filtering | Use `fd` for file discovery, or `eza -D` / `eza --ignore-glob` for listing |
68| Writing complex `awk` scripts for structured data | Use Nushell or `jq` which natively understand JSON, CSV, and YAML |
69| Running `rm -rf` in scripts without a dry-run step | Always add a verification or dry-run step before destructive operations |
70| Using capturing groups in regex when not needed | Prefer non-capturing groups `(?:...)` for better performance in large-scale scans |
71| Searching `node_modules` or `.git` directories | Use `rg` which skips these by default, or configure exclusions explicitly |
72| Forgetting `select(.type == "match")` on `rg --json` | ripgrep JSON emits begin, match, context, end, and summary message types |
73| Using `curl` with verbose flag syntax | Use `xh` which provides colorized output and HTTPie-compatible request-item syntax |
74| Parsing text output between tools with `cut`/`tr` | Use Nushell pipelines that preserve structured data through every stage |
75| Anchoring regex with `.*` at the start | Anchor with `^` when possible; unanchored `.*` causes expensive backtracking |
76
77## Installation
78
79All tools are available via common package managers. Most are single statically linked binaries.
80
81| Tool | macOS (Homebrew) | Linux (apt/cargo) |
82| ------- | ---------------------- | ------------------------------------------------ |
83| ripgrep | `brew install ripgrep` | `apt install ripgrep` or `cargo install ripgrep` |
84| fd | `brew install fd` | `apt install fd-find` or `cargo install fd-find` |
85| bat | `brew install bat` | `apt install bat` or `cargo install bat` |
86| zoxide | `brew install zoxide` | `cargo install zoxide` |
87| fzf | `brew install fzf` | `apt install fzf` |
88| eza | `brew install eza` | `cargo install eza` |
89| jq | `brew install jq` | `apt install jq` |
90| yq | `brew install yq` | `snap install yq` or `go install` |
91| xh | `brew install xh` | `cargo install xh` |
92| Nushell | `brew install nushell` | `cargo install nu` |
93
94Shell integration (add to shell config after installing):
95
96| Tool | Shell Integration Required |
97| ------ | --------------------------------------------------------- |
98| zoxide | `eval "$(zoxide init zsh)"` (or bash/fish equivalent) |
99| fzf | Source keybinding and completion scripts from fzf install |
100
101## Delegation
102
103- **Large-scale codebase search and analysis**: Use `Explore` agent to run ripgrep queries, trace dependencies, and map code patterns
104- **Multi-file refactoring workflows**: Use `Task` agent to coordinate fd, sed, and verification steps across an entire project
105- **Pipeline architecture for data transformation**: Use `Plan` agent to design structured pipelines combining jq, Nushell, and API tools
106
107## References
108
109- [Modern Unix Toolbox](references/modern-unix-toolbox.md) -- ripgrep, fd, bat, zoxide, fzf, eza, terminal setup
110- [Advanced Regex and jq](references/advanced-regex-and-jq.md) -- named captures, lookahead/lookbehind, jq filters, integrated pipelines
111- [Nushell Structured Data](references/nushell-structured-data.md) -- table paradigm, API interaction, scripting, Unix interop