fzf vs zoxide
Which should you use? A side-by-side look at what each one does, who it suits, what it costs, how hard it is to set up, and where each falls short.
Open source · MIT
A fast command-line tool for picking items from any list by typing a few letters.
Open source · MIT
A faster way to change directories that learns the folders you visit most.
The short answer
Choose fzf if you need…
- Command-line users who often search file names or command history
- People who write shell scripts and want interactive menus
- Vim or Neovim users who want fuzzy selection inside the editor
- Developers who want a single portable binary with no runtime dependencies
Choose zoxide if you need…
- Developers who move between many project folders in a terminal
- People who regularly type long paths and want shorter jumps
- Users of bash, zsh, fish, PowerShell, or xonsh who want one tool across shells
- People who want an interactive picker for folders via fzf
Side-by-side
| fzf | zoxide | |
|---|---|---|
| Type | Dev tool | Dev tool |
| Price | Free and open source | Free and open source |
| Licence | MIT | MIT |
| GitHub stars | 83.9k | 40.4k |
| Setup difficulty | Beginner | Beginner |
| How you get it | Install with a package manager | Install with a package manager |
| Main language | Go | Rust |
| Last code update | 8 days ago | 4 days ago |
What each one is
fzf
fzf is a fuzzy finder that runs in the terminal. You pipe a list into it, such as files, command history, or processes, type a few characters, and it narrows the list to matches so you can pick one. It also ships shell integrations for key bindings and fuzzy completion, and can be used as a building block in scripts.
zoxide
zoxide is a replacement for the cd command that remembers which directories you use most often. You type a few letters of a folder name and it jumps there, instead of typing the full path. It is inspired by the tools z and autojump and works with all major shells, according to the project's description.
Best for
fzf
- Command-line users who often search file names or command history
- People who write shell scripts and want interactive menus
- Vim or Neovim users who want fuzzy selection inside the editor
- Developers who want a single portable binary with no runtime dependencies
zoxide
- Developers who move between many project folders in a terminal
- People who regularly type long paths and want shorter jumps
- Users of bash, zsh, fish, PowerShell, or xonsh who want one tool across shells
- People who want an interactive picker for folders via fzf
Strengths
fzf
- Distributed as a single binary for easy installation
- Designed to process large lists quickly, per the README
- Integrates with Bash, Zsh, Fish, Nushell, Vim, and Neovim
zoxide
- Installs as a single binary and is available through many package managers, including winget, Homebrew, and cargo
- Supports many shells, as stated in the README
- Has an optional interactive selection mode using fzf
Not ideal for
fzf
- People who prefer graphical point-and-click file managers, since fzf is terminal-only
- Users on systems where they cannot install a binary or use a package manager, since setup relies on those routes
- Anyone wanting a full-featured search engine for large indexed corpora; fzf filters lists in memory
zoxide
- People who rarely use the terminal, since the benefit comes from repeated use and the directory history it builds
- Users who need a cd replacement that behaves exactly like the built-in command in every edge case, since it ranks directories by frequency and recency rather than by typed path
Trade-offs
fzf
- Terminal-only, so it has no graphical interface
- Full value comes from shell integration, which requires editing your shell configuration
zoxide
- Its jumps depend on a history it builds over time, so results are less predictable when you are new to it
- Some features, such as tab completion, are limited to specific shells (bash 4.4+, fish, and zsh, per the README)
- The README is truncated here, so setup details for each shell were not fully verified
Getting started
fzf
Install with Homebrew (macOS or Linux)
brew install fzfInstall with Mise
mise use -g fzf@latestzoxide
Install via Cargo (any platform with Rust)
cargo install zoxide --lockedInstall via Homebrew (macOS/Linux)
brew install zoxideFrequently asked questions
What is the difference between fzf and zoxide?
fzf: A fast command-line tool for picking items from any list by typing a few letters. zoxide: A faster way to change directories that learns the folders you visit most. fzf suits command-line users who often search file names or command history, while zoxide suits developers who move between many project folders in a terminal.
Are fzf and zoxide free?
fzf: Free and open source. zoxide: Free and open source.
Is fzf or zoxide more popular?
fzf has more GitHub stars (83.9k) than zoxide (40.4k). Popularity isn't the same as fit — check which one matches your use case above.
What are other alternatives to fzf and zoxide?
Other options people compare them with include gum, Oh my tmux!, Oh My Posh, asdf, inshellisense.
Keep comparing
Built from our catalogue entries for both products: open-source details come from each project's README (AI-assisted, refreshed weekly) and GitHub data; AI-tool details are editorial. Spotted something wrong? Let us know from either product's page.