A curated collection of modern CLI tools that replace slow, verbose Unix defaults with fast, ergonomic alternatives. Built for developers who value speed and for AI coding assistants that benefit from concise, structured output.
Most tools in this collection are written in Rust or Go, making them 10-100x faster than traditional Unix utilities:
| Traditional | Modern | Speedup | Why |
|---|---|---|---|
grep -r |
rg |
10-100x | Parallelized, respects .gitignore, smart defaults |
find |
fd |
5-10x | Parallelized, intuitive syntax, ignores hidden files |
cat |
bat |
~1x | Same speed, but adds syntax highlighting |
pip install |
uv |
10-100x | Rust-based resolver, parallel downloads, caching |
When working with AI coding tools (Claude Code, Codex CLI, Gemini CLI, Amp, Aider), output verbosity directly impacts:
- Context window usage - verbose output wastes tokens
- Response accuracy - noise obscures signal
- Speed - more tokens = slower responses
These tools produce structured, minimal output by default:
# Bad: grep dumps everything, no structure
grep -r "function" .
# 500+ lines of noisy output
# Good: rg respects .gitignore, groups by file
rg "function" --type js
# Clean, grouped output - 10x fewer lines
# Bad: find lists everything including .git, node_modules
find . -name "*.py"
# Hundreds of irrelevant results
# Good: fd ignores junk by default
fd -e py
# Only relevant files
# Bad: tree dumps entire directory structure
tree
# 1000+ lines for any real project
# Good: broot lets you explore interactively
br
# Navigate without dumping everything
# Bad: diff shows line-by-line noise
diff old.js new.js
# Hard to see what actually changed
# Good: difft shows semantic changes
difft old.js new.js
# Shows actual code structure changesSimpler syntax, sane defaults, and better UX:
# Find & replace
sed 's/old/new/g' file # Cryptic
sd 'old' 'new' file # Intuitive
# Directory navigation
cd ~/Projects/work/repo/src # Tedious
z repo # Smart jump
# JSON processing
cat data.json | python -c "..." # Verbose
jq '.users[].name' data.json # Purpose-built
# YAML processing (K8s, Docker Compose, GitHub Actions)
yq '.services | keys' docker-compose.yml.\windows\setup.ps1
# Or import directly via winget
winget import -i windows\winget-dev-tools.json./macos/setup.sh
# Or use Brewfile directly
brew bundle --file=macos/Brewfile| Tool | Replaces | Command | Key Benefit |
|---|---|---|---|
| ripgrep | grep | rg |
Fastest grep, respects .gitignore |
| fd | find | fd |
Intuitive syntax, smart defaults |
| fzf | - | fzf |
Fuzzy find anything |
| zoxide | cd | z |
Learns your frequent directories |
| broot | tree/ls | br |
Interactive tree navigation |
| ast-grep | grep | ast-grep |
Search code by AST structure |
| Tool | Replaces | Command | Key Benefit |
|---|---|---|---|
| bat | cat | bat |
Syntax highlighting, line numbers |
| eza | ls | eza |
Git status, icons, tree view |
| delta | diff | delta |
Beautiful side-by-side diffs |
| difftastic | diff | difft |
AST-aware semantic diffs |
| Tool | Replaces | Command | Key Benefit |
|---|---|---|---|
| jq | - | jq |
Query/transform JSON |
| yq | - | yq |
Query/transform YAML/TOML |
| sd | sed | sd |
Intuitive find & replace |
| Tool | Replaces | Command | Key Benefit |
|---|---|---|---|
| lazygit | git cli | lazygit |
Visual git TUI |
| gh | - | gh |
GitHub from terminal |
| tokei | cloc/wc | tokei |
Fast code statistics |
| Tool | Replaces | Command | Key Benefit |
|---|---|---|---|
| dust | du | dust |
Visual disk usage sorted by size |
| bottom | top/htop | btm |
Cross-platform system monitor |
| tealdeer | man/tldr | tldr |
Instant command examples |
| xh | curl | xh |
HTTPie-compatible, Rust speed |
| ouch | tar/unzip | ouch |
Universal decompression |
| Tool | Replaces | Command | Key Benefit |
|---|---|---|---|
| uv | pip/venv | uv |
10-100x faster Python packaging |
| just | make | just |
Simple command runner |
| procs | ps | procs |
Better process viewer |
| Tool | Command | Purpose |
|---|---|---|
| starship | - | Cross-shell prompt |
| atuin | atuin |
Shell history sync |
| hyperfine | hyperfine |
Command benchmarking |
Install with --optional flag (Windows) or -o flag (macOS).
Note: ouch requires Scoop on Windows (scoop install ouch) or cargo install ouch.
Test that tools are installed and working:
# Quick check (requires just)
just verify
# With performance benchmarks
just benchmark
# Or run scripts directly:
# Windows
.\tests\verify.ps1 -Benchmark
# macOS/Linux
./tests/verify.sh --benchmarkSample output:
╔════════════════════════════════════════╗
║ Dev Shell Tools - Verification Test ║
╚════════════════════════════════════════╝
=== Tool Installation Check ===
[OK] ripgrep (rg) - ripgrep 14.1.0
[OK] fd (fd) - fd 10.1.0
...
=== Performance Benchmarks ===
ripgrep vs grep:
rg: 12ms
grep: 156ms
Speedup: 13x faster
[core]
pager = delta
[interactive]
diffFilter = delta --color-only
[delta]
navigate = true
side-by-side = true[diff]
external = difftZoxide - add to your shell config:
# PowerShell ($PROFILE)
Invoke-Expression (& { (zoxide init powershell | Out-String) })# Zsh (~/.zshrc) or Bash (~/.bashrc)
eval "$(zoxide init zsh)" # or bashBroot - run once to install shell function:
br --installThis project includes 7 skills that teach Claude Code to use these modern tools automatically.
Copy skills to your global Claude directory:
# Unix/macOS
cp -r skills/* ~/.claude/skills/
# Windows (PowerShell)
Copy-Item -Recurse skills\* $env:USERPROFILE\.claude\skills\| Skill | Purpose | Tools |
|---|---|---|
safe-file-reader |
View files without permission prompts | bat, eza, cat, head, tail |
structural-search |
AST-aware code search | ast-grep |
data-processing |
Query JSON/YAML data | jq, yq |
code-stats |
Codebase analysis | tokei, difft |
git-workflow |
Enhanced git operations | lazygit, gh, delta |
python-env |
Fast Python packaging | uv |
task-runner |
Project commands | just |
Add to your Claude settings (~/.claude/settings.json):
{
"permissions": {
"allow": [
"Bash(bat:*)", "Bash(eza:*)", "Bash(cat:*)", "Bash(head:*)", "Bash(tail:*)",
"Bash(ast-grep:*)", "Bash(sg:*)", "Bash(jq:*)",
"Bash(tokei:*)", "Bash(difft:*)", "Bash(delta:*)"
],
"ask": [
"Bash(yq:*)",
"Bash(uv:*)",
"Bash(gh:*)",
"Bash(lazygit:*)",
"Bash(just:*)"
]
}
}Note: Read-only tools are auto-approved. Tools that can modify state (yq -i, uv, gh, lazygit, just) prompt for confirmation. For fully permissive mode, move ask entries to allow.
dev-shell-tools/
├── README.md # This file
├── AGENTS.md # AI assistant guidelines
├── justfile # Cross-platform task runner
├── skills/ # Claude Code skills
│ ├── safe-file-reader/
│ ├── structural-search/
│ ├── data-processing/
│ ├── code-stats/
│ ├── git-workflow/
│ ├── python-env/
│ └── task-runner/
├── tests/
│ ├── verify.ps1 # Windows verification
│ └── verify.sh # macOS/Linux verification
├── windows/
│ ├── setup.ps1 # PowerShell installer
│ └── winget-dev-tools.json
└── macos/
├── setup.sh # Bash installer
└── Brewfile # Homebrew bundle
MIT