mrkeyoor.com_
Fri 16 Oct 18:54 UTC
Dev Toolsevaluationupdated 16 Oct 2026

zoxide review

Zoxide remembers directories you visit and lets you return by typing short pieces of their paths. It adds commands to your shell so you can revisit a project without remembering or retyping its full location.

+112stars / 7d
Verdict

Our zoxide run installed 59 packages in 6 seconds, then passed its build and all 32 tests, making the source setup an easy recommendation for developers who revisit the same directories. Use the default z command alongside cd and add fzf if you want to choose between matches. Prefer explicit paths or a scoped picker when similar client workspaces make the wrong destination costly.

We ran it

Lab card: what happened when we ran zoxideScreenshot of zoxide (crates.io/crates/zoxide)
Install✓ · 6s59 packages
Build✓ · 24s
Tests✓ · 24s32 passed · 0 failed of 32 (cargo test)
Repo74 files~3,655 lines of source · 0.9 MB · 5 CI workflows · tests dir

Answers from our run

Does zoxide build from source?

Dependencies installed in 6 seconds (59 packages), and the build succeeded in 24 seconds. We cloned commit 86b443c into a clean Debian container with 3 CPUs and no project-specific setup.

Do zoxide's tests pass?

Yes: 32 of 32 passed when we ran the project's own test command (cargo test). Some failures need services or credentials a bare container does not have.

Who should not use zoxide?

Developers who need shortcuts confined to the current client or tmux project: open issue 1325 describes similar directory layouts sending jumps into another workspace.

What are the alternatives to zoxide?

z, autojump, fzf. Our zoxide run installed 59 packages in 6 seconds, then passed its build and all 32 tests, making the source setup an easy recommendation for developers who revisit the same directories.

Setup5/56-second install and passing build; shell initialization still required
Docs5/5Shell-specific setup, matching rules, exclusions, and imports explained
Community5/540,130 stars with October push and current shell issue discussion
Maturity4/532 tests passed; shell hooks and workspace scoping still need care

Discussed on

  1. hnZoxide: A Better CD Command324 points
  2. hnA smarter CD command. Supports all major shells33 points
  3. hnZoxide: Smarter CD command, inspired by z and autojump4 points
  4. hnZoxide – smart, fuzzy-matching cd alternative written in Rust3 points

Who it’s for

Developers who repeatedly switch between familiar repositories and want short queries instead of full paths.
People moving among Bash, Fish, Zsh, or PowerShell who want the same directory-jumping tool with shell-specific setup.
Existing autojump, z, or Atuin users who want to import their history instead of teaching a new tool every destination.

Who it’s NOT for

Developers who need shortcuts confined to the current client or tmux project: open issue 1325 describes similar directory layouts sending jumps into another workspace.
People who mainly browse unfamiliar directories: zoxide ranks remembered locations, while a filesystem picker can show places you haven't visited.
Teams pinned to Nushell older than v0.106.0: the current README explicitly requires that version or newer.
Warp users choosing it for Space+Tab completion: the README says that completion isn't supported in Warp.
Anyone expecting interactive selection without fzf: zi requires the optional fuzzy finder, currently v0.51.0 or newer.

Setup reality

Our fresh Debian sandbox installed commit 86b443c in 6 seconds, adding 59 packages. The build passed in 24 seconds. Cargo test passed in 24 seconds: 32 passed and 0 failed. We ran it on October 5, 2026, with 3 CPUs and 12 GB of RAM in an unprivileged lab-rust:1 container without secrets.

Basic use needs the binary, a writable directory-history location, and initialization in your shell configuration. No account, API key, or hosted service is required. Set environment options before initialization. Interactive selection needs fzf v0.51.0 or newer.

Zsh initialization belongs after compinit, Nushell requires v0.106.0 or newer, and Warp doesn't support Space+Tab completion. The README warns that Debian and Ubuntu packages may lag upstream. Our passing source build doesn't verify every shell or measure prompt startup time.

Short names work best for places you already visit

Type z client api and zoxide chooses the highest-ranked remembered directory matching those words in that order. You can leave a deeply nested project and return without recalling its full path. That's the reason to use it: a working week spent revisiting familiar repositories. A newly cloned project still needs an ordinary visit or imported history before learned shortcuts become useful. Keep cd for explicit paths while you learn what zoxide remembers.

The Rust checkout in our lab contained 74 files and roughly 3,655 lines of source. That is a manageable amount of code for a developer considering a contribution or investigating a shell integration. The limited scope also helps explain the appeal: this tool remembers destinations and chooses among them. It doesn't ask you to reorganize your projects or adopt a file manager to shorten a repeated trip.

What happened when we ran it

Our run installed zoxide at commit 86b443c in 6 seconds, adding 59 packages. The build succeeded in 24 seconds, and cargo test finished in another 24 seconds with 32 passed and 0 failed. Those results support recommending the source route to someone comfortable with Rust tooling. They establish that the measured checkout installed, compiled, and passed its suite in our environment.

Our measurement setup used a fresh Debian sandbox with 3 CPUs and 12 GB of RAM, running image lab-rust:1. We ran the checkout there on October 5, 2026. The container was unprivileged and held no secrets. The run gives us no shell-startup timing or navigation benchmark. It also doesn't establish that every supported shell behaves identically. Treat the passing suite as evidence about this commit and environment when deciding how much confidence to place in it.

Zsh initialization belongs after compinit

Bash users append eval "$(zoxide init bash)" to their shell configuration. Zsh users put its corresponding initialization after compinit. The shell setup instructions also cover PowerShell and Nushell, whose current minimum is v0.106.0. Basic navigation needs no account, API credential, or hosted service. Interactive selection through zi requires fzf v0.51.0 or newer, so the optional dependency becomes necessary if you want a menu when a query is ambiguous.

The 6-second installation in our sandbox doesn't remove that configuration work. Environment settings must precede initialization, and existing completion behavior matters. Warp supplies its own completions and doesn't support zoxide's Space+Tab completion. The README also warns that Debian and Ubuntu packages can lag upstream. Check the package version before copying current instructions, particularly for Nushell. I'd keep the default z command initially, rather than replacing cd through the available initialization flag.

Similar project paths can send you to the wrong workspace

Zoxide's matching algorithm checks query terms without regard to case and requires them in path order. It ranks matches using visit frequency and recency. That makes a short query convenient when you have a clear favorite, but switching between clients with matching directory layouts changes what the favorite should be. Add a distinguishing project name to the query, or use zi to inspect the candidates before choosing.

Our 32 passing tests don't resolve that workflow choice. In issue 1325, a user describes separate tmux projects with similar subdirectories and asks for a session-scoped default base directory. The request remained open on October 16. Someone who must stay inside the current client's tree has a concrete reason to prefer an explicit path or a directory picker scoped to that tree. A successful jump can still land in an unwanted workspace.

Exclude private paths before initializing zoxide

On Linux, the default database lives under $XDG_DATA_HOME/zoxide or ~/.local/share/zoxide. Set _ZO_EXCLUDE_DIRS before initialization to keep selected paths out, and use _ZO_DATA_DIR to choose another database location. These settings matter on shared accounts or machines containing client directories whose names you don't want retained. _ZO_RESOLVE_SYMLINKS changes how paths enter the history, so decide whether your working names or their resolved targets should be remembered.

The checkout occupied 0.9 MB before installation. That figure doesn't measure the installed binary or your eventual history database, and the 59 packages belong to our sandbox installation result. There's no basis here for a runtime memory claim. The lab also found 5 CI workflow files, a tests directory, and no Dockerfile. For a local shell utility, the absent container recipe doesn't change my recommendation. The initialization behavior is the part you'll live with.

October activity supports trying it, while alternatives serve different habits

The repository's last push was October 14, 2026. GitHub listed 40,130 stars and 152 open issues and PRs when checked on October 16. Release v0.10.0 shipped on July 4 with Atuin import support and shell fixes. Current issue activity includes the workspace-scoping request and a Nushell startup-hook report. Together, the push and discussion show ongoing development, while the reports give you specific behavior to check in your own shell.

Choose rupa/z if Bash or Zsh and its script-based approach already fit your habits. Autojump adds shortcuts for opening directories in a file manager. For finding unfamiliar directories, fzf's Alt-C picker is a better starting point than learned history. Zoxide earns a place when repeated navigation is the annoyance: our build passed in 24 seconds, and the configuration is small enough to inspect. Leave cd available for the destination that must be exact.

Alternatives

ProjectWhat it isPick it when
zA Bash and Zsh script that ranks visited directories by frequency and recency.pick this instead when you want a script you can source and only need Bash or Zsh.
autojumpA learned directory navigator with shortcuts for child directories and opening a file manager.pick this instead when opening remembered folders in a graphical file manager is part of your workflow.
fzf gh↗A general terminal picker whose Alt-C binding lets you select a directory.pick this instead when you want to browse directory candidates, including unfamiliar locations, rather than rely on visit rankings.

What people are saying

  1. [github-trending] ajeetdsouza/zoxide

Sources

  1. Zoxide README: shell setup and configuration
  2. Zoxide matching and ranking algorithm
  3. Zoxide v0.10.0 release notes
  4. Issue 1325: project-scoped default base directory request
  5. Issue 1323: Nushell startup PWD hook report
  6. z: usage and shell requirements
  7. autojump: directory and file-manager shortcuts
  8. fzf: directory selection with Alt-C

More dev tools reviews

compose-samples · librepods · sqlmap · coucou · world-execute-me-dsh-pv · mcp-extensions · the whole board →