zoxide
A smarter cd command that remembers your directories
Built by @ajeetdsouza on GitHub. This page was written by @iluxav from public sources, last updated for v0.10.0 (2026-07-04), and may lag behind new releases.
Maintain zoxide? Claim itJump to directories you use often by typing part of their name, or pick one interactively, in most shells.
What you can do with it
Pick a directory interactively from the matches with `zi`, or with Space-Tab completions.
Good to know
Needs fzf (v0.21.0 or newer at this release); Space-Tab completions only in Bash 4.4+, Fish and Zsh.
Use zoxide in Bash, Zsh, Fish, Nushell, PowerShell, Elvish, Xonsh or any POSIX shell.
Good to know
Nushell v0.73.0+ and Elvish v0.18.0+ at this release.
Import your directory history from autojump, z, z.lua or zsh-z.
Good to know
From autojump only paths are imported, not scores.
Rename the commands or replace `cd` itself with `zoxide init --cmd cd`.
Good to know
Replacing `cd` does not work on Nushell or POSIX shells at this release.
Configure the database location, excluded directories, fzf options and aging with `_ZO_*` environment variables.
Get warnings about common setup mistakes, such as zoxide being initialized in the wrong place, from a built-in doctor.
Good to know
Bash and Zsh at this release.
Before you upgrade
Newest firstUse `zoxide import <tool>` (for example `zoxide import autojump`) instead of `zoxide import --from <tool> <path>`.
In Bash, POSIX shells and Zsh, `z` now honors `$CDPATH`.
Read the evidence
Nushell users need Nushell v0.106.0 or newer.
Show 4 older
In Bash, selecting a Space-Tab completion now changes directory immediately.
Read the evidence
Install fzf v0.51.0 or newer for interactive selection.
Read the evidence
The interactive selector now opens even when only one directory matches (`--select-1` was removed from the default fzf options).
Set `$_ZO_DATA_DIR` to an absolute path; relative paths are no longer accepted.
Release history 6
Import your directory history from atuin.
Details
`zoxide import` takes the source as a subcommand (`zoxide import atuin`, `zoxide import autojump`) instead of `--from`, finds database files on its own and skips `$_ZO_EXCLUDE_DIRS`. In Bash, POSIX shells and Zsh, `z` honors `$CDPATH`.
Also: Fish Space-Tab completions show and run the selected command; Nushell's init script can be loaded with `use`.
v0.10.0; RISC-V Linux builds are new.
Seeded by @iluxav with Claude Code (canido)
Keep using zoxide after upgrading to Fish 4.1.
Details
Fish v4.1.0+ is supported; Zsh accepts multi-digit `z +N`/`z -N`; Android ARMv7 builds.
v0.9.9.
Seeded by @iluxav with Claude Code (canido)
Use zoxide in Tcsh.
Details
Tcsh support; `zoxide add --score`; a doctor for POSIX shells; Nushell completions. In Bash, choosing a Space-Tab completion now changes directory right away. The minimum fzf version is v0.51.0.
v0.9.8; interactive selection needs fzf v0.51.0 or newer.
Seeded by @iluxav with Claude Code (canido)
Find out why zoxide is not recording directories, with a built-in doctor in Bash and Zsh.
Details
Bash and Zsh get a doctor that diagnoses common setup issues; Nushell v0.102.0 is supported; ksh uses the POSIX implementation.
v0.9.7.
Seeded by @iluxav with Claude Code (canido)
Use zoxide in the Korn shell.
Details
Ksh support; `z -- dir` style queries in Bash, Fish and Zsh; excluded directories are removed from the database lazily. The fzf selector no longer gets `--select-1`, and `$_ZO_DATA_DIR` must be an absolute path. Groups v0.9.5 and v0.9.6.
Also: Installer flags `--bin-dir`, `--man-dir`, `--arch` and `--sudo`.
v0.9.6; Nushell v0.94.0+ supported.
Seeded by @iluxav with Claude Code (canido)
Starting point
Jump to a directory you visit often by typing part of its name with `z`.
Details
State before the covered window: `z foo` jumps to the highest ranked matching directory, `zi` picks one interactively with fzf, `z foo<SPACE><TAB>` shows completions, `zoxide import` brings in data from autojump, z, z.lua or zsh-z, `--cmd` renames the commands, and `_ZO_*` variables configure it.
v0.9.0 and earlier; set up with `zoxide init <shell>` in the shell config.
Seeded by @iluxav with Claude Code (canido)