skills/oakoss/agent-skills/cli-power-tools

cli-power-tools

SKILL.md

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

Weekly Installs
14
GitHub Stars
4
First Seen
Feb 24, 2026
Installed on
opencode11
github-copilot11
codex11
kimi-cli11
gemini-cli11
cursor11