In this post I share a selection of cross-platform command-line tools that you can use interchangeably on PowerShell, CMD, WSL2, macOS and Linux. These are modern, fast and lightweight utilities that replace or greatly improve classic tools like ls, cd, find or even command history.
They not only speed up everyday tasks, but also offer a more consistent user experience across systems. They don’t depend on specific shells like Bash or Zsh, and work the same whether you use PowerShell, Terminal, Alacritty, VSCode or any modern environment. As I discover new CLI utilities that fit this cross-platform, no-heavy-dependencies approach, I’ll keep adding them.
Note
This post became a bit outdated right after being written. I’m leaving it here as a reference, but I strongly recommend checking out this GitHub repository:
devcli - Automates the installation and configuration of your CLI environment on Linux, macOS, WSL2 and Windows.
Introduction
These are the tools we’ll explore:
lsd→ modern replacement forls, with colors, icons and elegant formatting.zoxide→ smart alternative tocd, based on frequency (how long since you last visited a directory)fd→ replacement forfind, much simpler and faster.fzf→ interactive fuzzy finder for navigating any list (files, history, processes…).
lsd: ls on steroids
lsd LSDeluxe** is a modern, stylized version of the classic Unix/Linux ls command, with support for colors, Nerd Font icons, and tree view.
On macOS (Homebrew) or Linux with Debian/Ubuntu:
# On macOS
brew install lsd
# On Linux
sudo apt install lsd
On Windows:
winget install lsd-rs.lsd
After installation I always add an alias to ls, both for PowerShell and CMD. Check out how I do it in this other post, search for PowerShell/LSDeluxe.
Usage example
lsd -l --group-dirs=first
zoxide: the new cd
zoxide replaces cd with a smart navigation system based on your habits. It remembers the directories you visit most frequently and lets you jump to them with a simple command.
On macOS / Linux (Homebrew):
brew install zoxide
On Debian/Ubuntu:
sudo apt install zoxide
On Windows:
winget install ajeetdsouza.zoxide
Shell initialization
PowerShell:
zoxide init pwsh | Invoke-Expression
Zsh:
eval "$(zoxide init zsh)"
Bash:
eval "$(zoxide init bash)"
zoxide usage example
z proyectos
fd: replacement for find
fd is a more intuitive and faster alternative to find. It has a minimalist, color-aware syntax with search by name, extension, content and more.
On macOS / Linux:
brew install fd
On Debian/Ubuntu:
sudo apt install fd-find
On Windows:
winget install sharkdp.fd
Usage example
fd main -e cpp
fzf: universal fuzzy finder
fzf is an interactive search tool that lets you select items from a list with fuzzy search. Ideal for navigating files, history, processes, Git buffers, etc.
On macOS / Linux:
brew install fzf
On Debian/Ubuntu:
sudo apt install fzf
On Windows:
winget install sharkdp.fd
Usage example
cat $(fd . -t f | fzf)
Conclusion
These tools transform the terminal experience across all your operating systems. They’re fast, consistent and cross-platform. You can use them in your scripts, your PowerShell profiles, .zshrc, or even inside WSL2 or CMD.
The combination of zoxide, lsd, fd and fzf provides a solid foundation for a modern, productive and portable shell. I’ll keep expanding this list with new recommended tools as I incorporate them into my workflow.