You type cd a dozen times a day. Navigate to deeply nested directories, type the same paths over and over, fight with tab completion that doesn't know where you actually want to go. There has to be a better way.
There is. It's called zoxide, and it learns.
What It Is
zoxide is a replacement for cd that tracks your directory usage and ranks paths by frequency and recency. Instead of typing full paths, you give it fragments of where you want to go. It figures out the rest.
After a week of use, z proj takes you to /home/user/development/projects/current. z conf jumps to /etc/nginx/conf.d. z log lands you in /var/log/nginx or /home/user/.config/app/logs depending on which you visit more.
It's written in Rust, inspired by z and autojump, but faster and with better defaults.
Why It's Worth Your Time
Most "smart cd" tools require you to learn their quirks. zoxide just works. The matching algorithm is intuitive — you can use partial paths, multiple keywords, even regex when needed. z foo bar finds directories containing both "foo" and "bar" anywhere in the path.
But here's what sold me: the interactive mode. zi (zoxide + fzf) shows you a fuzzy-searchable list of matches. No guessing, no typing fragments and hoping. You see your options, pick the right one, done.
The tool supports every shell worth using — bash, zsh, fish, PowerShell, even Nushell. Installation is dead simple on every platform. One command, add a line to your shell config, restart. That's it.
Hands On
Installation is straightforward:
# Linux/macOS
curl -sSfL https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | sh
# Or use your package manager
# Ubuntu/Debian: apt install zoxide
# Arch: pacman -S zoxide
# macOS: brew install zoxide
Add to your shell (for zsh, add to ~/.zshrc):
eval "$(zoxide init zsh)"
Restart your shell. Now use cd normally for a few days. zoxide watches and learns silently.
After it has some data, the magic begins:
z downloads # Jump to most-used downloads directory
z proj web # Find project containing "web"
zi # Interactive selection with fzf
z .. # Works like regular cd too
The more you use it, the smarter it gets. Directories you visit daily rise to the top. Paths you haven't touched in months fade into the background.
You can import data from other tools if you're already using autojump, z, or fasd. The migration is painless.
Honest Verdict
This is one of those tools that makes you wonder how you worked without it. The learning curve is zero — you use z exactly like cd until you discover the shortcuts. The performance is excellent. The integrations with file managers and editors mean the benefits extend beyond the terminal.
The only downside: you'll get frustrated using other people's machines that don't have it installed. That's a good problem to have.
zoxide is for anyone who spends time in the terminal and values efficiency over typing. If you navigate directories more than occasionally, install it today. You'll thank yourself by next week.
Go Try It
Start with the basic installation. Use cd normally for a few days to build up the database. Then try z instead of cd with partial directory names.
Once you see how well it works, install fzf for the interactive zi command. That's where the real magic happens.
GitHub: https://github.com/ajeetdsouza/zoxide
Installation: curl -sSfL https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | sh
Compiled by AI. Proofread by caffeine. ☕