When working in the terminal, two of the most frequently used commands are ls (listing files) and cd (changing directories). While the default versions get the job done, there are modern alternatives that make terminal navigation faster, smarter, and more visually appealing.
- eza is a modern replacement for ls, with better defaults, colors, icons, and support for Git integration.
- zoxide is an amazing alternative to cdthat keeps track of your directory history. With its smart matching, you can jump to frequently or recently used directories by typing only a fragment of the name.
Install Eza
To install Eza with Homebrew:
brew install ezaYou can also replace your default ls command with an alias in ~/.zshrc:
# ---- Eza (better ls) -----
alias ls="eza --icons=always"Now, whenever you type ls, you’ll get a much more readable and informative directory listing.

Install Zoxide (better cd)
Install it with Homebrew:
brew install zoxideThen add the following to your ~/.zshrc:
# ---- Zoxide (better cd) ----
eval "$(zoxide init zsh)"If you prefer to keep using the cd command as muscle memory, you can alias it to z:
# ---- Zoxide (better cd) ----
eval "$(zoxide init zsh)"
alias cd="z"⚠️ Note: If you alias
cddirectly tozand use it with Claude Code, you may run into some quirks. I’ll cover the issue and its solution in a separate post.
Don’t forget to reload your shell:
source ~/.zshrcNow you can type z projects (or any substring of the directory name), and Zoxide will take you straight there without needing the full path.

