Classic commands, reimagined in Rust & Go
The beloved Unix toolkit is being rewritten for the modern era. These tools honor the Unix philosophy while delivering blazing performance, beautiful output, and sensible defaults. Welcome to the future of the terminal.
Written in Rust and Go, these tools leverage parallelism, SIMD, and modern hardware to dramatically outperform their predecessors.
Syntax highlighting, colors, icons, and thoughtful formatting make output instantly readable and a joy to work with.
Rust's ownership model eliminates buffer overflows, use-after-free, and data races at compile time.
Sensible behavior out of the box. Respects .gitignore, human-readable sizes, and modern conventions.
Find, view, and transform text at lightning speed
grep The fastest grep around. Respects .gitignore, searches recursively by default, and uses smart case sensitivity. A must-have for any developer.
# Search recursively
rg "pattern"
# Search specific file types
rg -t rust "fn main"
# Show context lines
rg -C 3 "TODO" brew install ripgrep or cargo install ripgrep cat
A cat clone with wings. Syntax highlighting, line numbers, Git integration,
and automatic paging. Makes reading code a pleasure.
# View with syntax highlighting
bat file.rs
# Show line numbers only
bat -n file.py
# Plain output (for piping)
bat -p file.json brew install bat or cargo install bat sed An intuitive find & replace CLI. Uses regex syntax you already know (not sed's arcane syntax), and supports replacements across multiple files.
# Simple replacement
sd 'before' 'after' file.txt
# Regex capture groups
sd '(\d+)' '$1.0' data.txt
# In-place on multiple files
sd -i 'old' 'new' *.md brew install sd or cargo install sd A general-purpose fuzzy finder. Enhances shell history, file finding, and virtually any list-based selection. Integrates beautifully with other tools.
# Fuzzy find files
fzf
# With preview
fzf --preview 'bat --color=always '
# Search history (Ctrl+R)
# Kill process (Ctrl+T) brew install fzf The essential JSON processor. Filter, transform, and query JSON data from the command line. Indispensable for API work and configuration.
# Pretty print JSON
cat data.json | jq '.'
# Extract field
jq '.name' package.json
# Filter array
jq '.[] | select(.active)' users.json brew install jq hexdump A colorful hex viewer. Displays binary files with byte categories highlighted in different colors. Much more readable than traditional hex dumps.
# View binary file
hexyl binary.exe
# Limit bytes shown
hexyl -n 256 file.bin
# Skip to offset
hexyl --skip 512 file.dat brew install hexyl or cargo install hexyl Watch your system resources in style
top/htop A cross-platform graphical process/system monitor. Beautiful TUI with CPU, memory, disk, network, and process views. Vim keybindings available.
# Launch bottom
btm
# Basic mode
btm -b
# With custom config
btm --config ~/.config/bottom/bottom.toml brew install bottom or cargo install bottom ps
A modern replacement for ps. Colorful output, tree view, Docker awareness,
and pager support by default.
# List all processes
procs
# Tree view
procs --tree
# Watch mode
procs --watch brew install procs or cargo install procs nethogs Network utilization by process. See which processes are consuming bandwidth, with remote addresses and connection information.
# Monitor bandwidth (needs sudo)
sudo bandwhich
# Show raw mode
sudo bandwhich --raw brew install bandwhich or cargo install bandwhich time A command-line benchmarking tool. Statistical analysis, warmup runs, export to various formats, and comparison between multiple commands.
# Benchmark a command
hyperfine 'rg pattern'
# Compare commands
hyperfine 'grep -r pattern' 'rg pattern'
# With warmup
hyperfine --warmup 3 'cargo build' brew install hyperfine or cargo install hyperfine cloc Count lines of code quickly. Extremely fast, supports many languages, and provides detailed breakdowns by file type.
# Count lines in current dir
tokei
# Specific directory
tokei src/
# Exclude directories
tokei --exclude node_modules brew install tokei or cargo install tokei Better diffs and Git workflows
diff A syntax-highlighting pager for git, diff, and grep output. Side-by-side view, line numbers, and beautiful themes. Makes reviewing changes a pleasure.
# Configure as git pager
[core]
pager = delta
[interactive]
diffFilter = delta --color-only
# Or use directly
diff file1 file2 | delta brew install git-delta or cargo install git-delta git A simple terminal UI for Git. Stage chunks interactively, browse history, manage branches, and handle conflicts visually. Git without memorizing flags.
# Launch lazygit
lazygit
# In a specific repo
lazygit -p /path/to/repo
# With custom config
lazygit -ucf ~/.config/lazygit/config.yml brew install lazygit or go install github.com/jesseduffield/lazygit@latest git Blazing fast terminal UI for Git. Similar to lazygit but written in Rust for maximum performance. Excellent for large repositories.
# Launch gitui
gitui
# With custom key bindings
gitui -t ~/.config/gitui/theme.ron brew install gitui or cargo install gitui GitHub's official CLI. Create PRs, manage issues, trigger workflows, and browse repos without leaving the terminal. Essential for GitHub users.
# Create a PR
gh pr create
# View PR status
gh pr status
# Clone and enter repo
gh repo clone owner/repo brew install gh diff A structural diff tool that understands syntax. Compares files based on their AST, not just text, leading to more meaningful diffs for code.
# Compare files
difft old.rs new.rs
# Use as git diff
git config --global diff.external difft
# Side by side
difft --display side-by-side old.py new.py brew install difftastic or cargo install difftastic Modern shells and beautiful prompts
A minimal, fast, and customizable prompt for any shell. Shows git status, language versions, container info, and more. One config works everywhere.
# Add to .zshrc
eval "$(starship init zsh)"
# Add to .bashrc
eval "$(starship init bash)"
# Configure in starship.toml
[git_branch]
symbol = "๐ฟ " brew install starship or cargo install starship bash/zsh A new type of shell. Everything is structured data, not just text. Built-in data manipulation, modern syntax, and cross-platform consistency.
# List files as table
ls | where size > 1mb
# Parse JSON directly
open package.json | get dependencies
# System info as data
sys | get host.name brew install nushell or cargo install nu tmux/screen A modern terminal multiplexer. Intuitive UI, WebAssembly plugin system, and sensible defaults. No more memorizing obscure key combinations.
# Start zellij
zellij
# With layout
zellij --layout default
# Attach to session
zellij attach my-session brew install zellij or cargo install zellij Magical shell history. Sync history across machines, full-text search with fuzzy finding, and analytics on your command usage. Never lose a command again.
# Search history
atuin search docker
# Interactive history (Ctrl+R)
# Syncs automatically
# Stats about your usage
atuin stats brew install atuin or cargo install atuin Helpful tools for everyday tasks
man
Simplified, community-driven man pages. See practical examples immediately instead of
wading through verbose documentation. The tealdeer client is written in Rust.
# Quick help for tar
tldr tar
# Update local cache
tldr --update
# List all pages
tldr --list brew install tealdeer or cargo install tealdeer make
A handy command runner. Like make but focused on running commands rather than building.
No tabs-vs-spaces issues, better syntax, and cross-platform.
# justfile
build:
cargo build --release
test:
cargo test
deploy: build test
./deploy.sh brew install just or cargo install just curl/httpie Friendly HTTP client. HTTPie-compatible syntax with Rust performance. Colorized output, intuitive syntax for headers and data, and built-in JSON support.
# GET request
xh httpbin.org/get
# POST JSON
xh POST api.example.com/users name=John
# With headers
xh GET api.example.com Authorization:token brew install xh or cargo install xh Blazing fast terminal file manager. Async I/O, image preview, extensive customization, and Vim-like keybindings. Navigate your filesystem at the speed of thought.
# Launch yazi
yazi
# Start in directory
yazi /path/to/dir
# With custom config
yazi --config ~/.config/yazi brew install yazi or cargo install yazi-fm Modern network tools and diagnostics
dig A command-line DNS client. Colorful output, supports DNS-over-TLS and DNS-over-HTTPS, and provides modern formatting for DNS queries.
# Query A records
dog example.com
# Query MX records
dog example.com MX
# Use DoH
dog example.com --https @cloudflare brew install dog or cargo install dog ping Ping with a graph. Visualize ping times over time in your terminal. Great for monitoring network stability and comparing multiple hosts.
# Ping with graph
gping google.com
# Multiple hosts
gping google.com cloudflare.com
# Custom interval
gping -n 0.5 8.8.8.8 brew install gping or cargo install gping python -m http.server A tiny HTTP server for quick file sharing. Colored output, QR code for mobile access, upload support, and directory listings. Zero config needed.
# Serve current directory
miniserve .
# With upload support
miniserve --upload-files .
# Show QR code
miniserve --qrcode . brew install miniserve or cargo install miniserve Get started with the most popular modern tools in one command:
# Install via Homebrew
brew install eza bat ripgrep fd dust bottom sd git-delta fzf zoxide starship
Not sure which command to use? Caro understands both classic Unix and modern tools.
Ask in natural language and get the right commandโwhether it's grep or ripgrep.