~/home~/résumé~/blog~/contact
Share
  1. Home
  2. /
  3. Blog
  4. /
  5. Guides
  6. /
  7. Best CLI Tools for Mac, Linux, and Windows in 2026

Best CLI Tools for Mac, Linux, and Windows in 2026

CLIDeveloper ToolsProductivity

April 1, 2026

  • ›Search and Navigate Faster
  • ›See Files Differently
  • ›Upgrade Your Shell
  • ›The Utility Belt
  • ›Make It Stick With Aliases

The best CLI tools in 2026 are mostly Rust rewrites of Unix classics, and they run natively on all three platforms. fzf, ripgrep, bat, and lazygit lead the pack. Install them once, alias them over the defaults, and your terminal becomes genuinely fast.

GitHub Stars (thousands) for Top Cross-Platform CLI Tools

Search and Navigate Faster#

These four modern CLI replacements are the foundation of any cross-platform CLI setup. They replace the classics with something faster:

  • grep becomes ripgrep
  • find becomes fd
  • cd becomes zoxide
  • Interactive search becomes fzf

fzf#

The single most impactful CLI tool you can install. That is not my opinion alone. It is the consensus across every developer forum I follow. fzf is a general-purpose fuzzy finder written in Go with 67k+ GitHub stars. Pipe anything into it and get instant, interactive filtering. Press Ctrl+R and your command history becomes searchable. Open a file in vim with vim $(fzf). It ships native Windows binaries and works everywhere without configuration.

ripgrep#

ripgrep (rg) searches code 2-5x faster than grep and automatically skips files in your .gitignore. It has 49.5k stars and is written in Rust. VS Code uses it internally for workspace search. So does Claude Code. You will stop using grep -r the first day. The output is cleaner, the defaults are smarter, and the speed difference on large repos is not subtle.

fd#

A find replacement that searched 177GB of files in roughly 1.4 seconds during benchmark testing by KDAB. 34.7k stars on GitHub. Written in Rust. The syntax is actually memorable. fd "\.json$" does what find . -name "*.json" does, but faster and with colorized output. Native Windows binary included.

zoxide#

A smarter cd that learns your most-visited directories and resolves paths in under 1 millisecond. 23.9k stars. Written in Rust. Works with bash, zsh, fish, and PowerShell. Type z projects and it jumps to ~/dev/projects without you spelling out the full path. After a week, you forget cd exists.

See Files Differently#

bat#

My favorite on this entire list. bat replaces cat with syntax highlighting, line numbers, and git diff markers baked in. 50.4k stars. Rust. It integrates with fzf, fd, and ripgrep, so previewing files inside fuzzy search results just works. Install via winget, choco, or scoop on Windows. On Mac, brew install bat.

eza#

The modern ls replacement with icons, git status columns, and tree view. 13.3k stars. Rust. It is the actively maintained successor to the abandoned exa project. Themes are YAML-configurable if you care about colors. I mostly use eza --tree --level=2 --git and leave it at that.

delta#

A syntax-aware diff viewer for git with 24k+ stars. Rust. It gives you side-by-side diffs with word-level change highlighting. Set it as your default git pager and every git diff becomes readable. Two lines in your .gitconfig and it is permanent. Terminal showing bat, eza, and delta output side by side with syntax highlighting and colorized diffs

Upgrade Your Shell#

Starship#

A minimal, fast, cross-shell prompt with 46k stars. Written in Rust. It shows your git branch, Node version, Python venv, and Docker context automatically. The key detail: it works with bash, zsh, fish, PowerShell, and even cmd.exe. One prompt config across every machine. Reddit's "starter three" stack is Starship + zoxide + ripgrep, and I agree with that ranking. Biggest quality-of-life gain for the least setup.

Atuin#

Shell history stored in a searchable SQLite database instead of a flat text file. 22k stars. Rust. Optional encrypted sync across machines. You can search history by directory, by exit code, by time range. It replaces Ctrl+R with something far more powerful than the default reverse search.

lazygit#

A full terminal UI for git with 54.7k stars. Written in Go. Spacebar to stage files. A to amend. r to reword a commit message. I use this daily. If you are the kind of developer who writes prompt-driven code and commits often, lazygit cuts the ceremony down to seconds.

The Utility Belt#

Rounding out the best CLI tools list, these command line tools handle everything else: JSON, monitoring, documentation, and APIs.

jq#

The standard for JSON processing on the command line. 30.9k stars. Written in C. Pipe any API response through jq . and get formatted, colorized output. It is not new or flashy. It is correct and universal. Every platform, every package manager.

btop#

A beautiful resource monitor that replaces top and htop. 22k+ stars. Written in C++. Full TUI with CPU graphs, memory bars, process trees, and network stats in one view.

tldr#

Simplified man pages with practical examples. 52.5k stars. Community-driven. Run tldr tar and you get the five commands you actually need instead of a 3,000-line manual. I use it multiple times a day.

HTTPie#

A human-friendly curl replacement with 34k stars. Written in Python. Colorized output and auto-formatted JSON responses by default.

http GET api.github.com/users/octocat

That is the entire command. No -H "Accept: application/json" flags. No piping through jq for readability.

Install Commands by Platform

brew install fzf ripgrep fd bat eza zoxide starship atuin lazygit jq btop tldr httpie delta. Homebrew covers every tool on this list with a single install command. Run 'brew update' first to get the latest versions.
scoop install fzf ripgrep fd bat eza zoxide starship atuin lazygit jq btop tldr httpie delta. Scoop is the best Windows package manager for CLI tools because it installs to user space and does not require admin privileges. Alternative: winget or choco work for most of these.
sudo apt install fzf ripgrep fd-find bat jq. For the Rust tools not in your distro repos, use cargo install: cargo install eza zoxide starship atuin delta. lazygit has a dedicated PPA or download the binary from GitHub releases.

Make It Stick With Aliases#

Installing these terminal tools is half the job. The other half is making them your defaults so you never fall back to the slow versions. Add these to your .bashrc, .zshrc, or PowerShell $PROFILE:

  • alias cat="bat" gives you syntax highlighting on every file view
  • alias ls="eza" for icons and git status
  • alias grep="rg" because life is too short for slow search
  • alias find="fd" for readable file discovery
  • Swap cd for zoxide: alias cd="z"
  • alias top="btop" for actual readable monitoring
  • For diffs, set delta as your git pager instead of aliasing

One warning: experienced developers recommend keeping standard Unix tools in CI/CD scripts and Dockerfiles. These aliases are for interactive use. Your build pipeline should not depend on bat being installed.

Tip: Run which cat after sourcing your config to verify the alias took effect. On some systems, shell built-ins take precedence over aliases. Pick three of the best CLI tools from this list and install them today. I would start with fzf, ripgrep, and Starship. That combination changes how your terminal feels within an hour. Add the rest one per week as the muscle memory builds.

Share