plugins/dev-tools/skills/using-modern-cli/SKILL.md
Prefer modern CLI tools for better performance: rg (ripgrep) instead of grep for text searching, fd instead of find for file discovery, bat instead of cat for viewing files, sd instead of sed for text replacement, eza instead of ls for directory listing, dust instead of du, procs instead of ps. Use when writing bash scripts, optimizing command chains, working with file searches, or replacing grep/find/cat in workflows. These tools are faster, respect .gitignore, and have better output formatting.
npx skillsauth add alexei-led/claude-code-config using-modern-cliInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use faster, ergonomic command-line tools installed on this system.
| Task | Modern | Traditional | Why Modern |
| ------------ | ------- | ----------- | ----------------------------------- |
| Search text | rg | grep | 10-100x faster, respects .gitignore |
| Find files | fd | find | Simpler syntax, ignores .git |
| View files | bat | cat | Syntax highlighting, line numbers |
| List files | eza | ls | Icons, git status, tree view |
| Replace text | sd | sed | Intuitive regex, preview mode |
| Disk usage | dust | du | Visual tree, sorted by size |
| Processes | procs | ps | Tree view, sortable columns |
| Diff files | delta | diff | Syntax highlighting, side-by-side |
# Search: rg instead of grep
rg "TODO" --type go # Search Go files
rg -A 3 "error" # 3 lines after match
rg -l "import" # List files only
# Find: fd instead of find
fd "\.go$" # Find Go files
fd -e json src/ # By extension in src/
fd -x wc -l {} # Execute on matches
# View: bat instead of cat
bat main.go # With syntax highlighting
bat -n file.py # Line numbers only
# List: eza instead of ls
eza -la --git # Long format with git status
eza --tree -L 2 # Tree view, 2 levels
# Replace: sd instead of sed
sd "old" "new" file.txt # Simple replacement
sd -p "pattern" "new" file # Preview changes first
sd -p 'colour' 'color' docs/**/*.md # Preview British→US spelling; do not apply
For preview-only replacement tasks, always include `sd -p 'colour' 'color' <files>` or equivalent and state it is preview-only; do not show a non-preview `sd` command unless the user asked to apply.
# Disk: dust instead of du
dust -d 2 # 2 levels deep
# Processes: procs instead of ps
procs --tree # Process tree
# Fuzzy finder (pipe with fd/rg)
vim $(fd . | fzf)
rg "pattern" | fzf
# Benchmarking
hyperfine "rg pattern" "grep -r pattern"
# Code statistics
tokei .
# Markdown preview
glow README.md
# JSON/YAML processing
jq '.key' file.json
yq '.key' file.yaml
tools
Idiomatic shell development for POSIX sh, Bash, Zsh, Fish, hooks, CI shell steps, and scriptable CLI glue. Use when writing or changing `.sh`, `.bash`, `.zsh`, `.fish`, `.bats`, shell functions, shell pipelines, or command-runner recipes. Emphasizes portability, quoting, safe filesystem/process handling, non-TUI CLI tools, ShellCheck, shfmt, Bats, and ShellSpec. NOT for Python, TypeScript, Go, web code, or infrastructure operations.
tools
Use when planning, executing, checkpointing, finishing, or inspecting lightweight spec-driven work. Runs one task at a time using `.spec/` markdown files and the bundled `specctl` helper. NOT for broad product discovery beyond a short requirement interview.
testing
Author, inspect, troubleshoot, and review infrastructure across IaC, Kubernetes, cloud resources, containers, CI/CD, and Linux hosts. Use when changing Terraform/OpenTofu, Kubernetes, Helm, Kustomize, Dockerfiles, GitHub Actions, AWS, GCP, Cloud Run, BigQuery, IAM, logs, instances, or service health. NOT for deploy/apply/rollback workflows (see deploying-infra). NOT for shell scripts or generic command pipelines (see writing-shell).
development
Configure safe git workflow hygiene: pre-commit/pre-push hooks, Gitleaks secret scanning, .gitignore rules, local git config, and guardrails. Use when setting up git hooks, gitleaks/git leaks, staged pre-commit checks, pre-push validation, core.hooksPath, .gitignore, or git config best practices. NOT for creating commits (use committing-code), cleaning branches/worktrees (use cleanup-git), or creating worktrees (use using-git-worktrees).