z foo # cd into highest ranked directory matching foo
z foo bar # cd into highest ranked directory matching foo and bar
z foo / # cd into a subdirectory starting with foo
z ~/foo # z also works like a regular cd command
z foo/ # cd into relative path
z .. # cd one level up
z - # cd into previous directory
zi foo # cd with interactive selection (using fzf)
z foo<SPACE><TAB># show interactive completions (zoxide v0.8.0+, bash 4.4+/fish/zsh only)
Add this to your configuration (usually ~/.zshrc):
eval"$(zoxide init zsh)"
For completions to work, the above line must be added aftercompinit is
called. You may have to rebuild your cache by running
rm ~/.zcompdump*; compinit.
Any POSIX shell
Add this to your configuration:
eval"$(zoxide init posix --hook prompt)"
Step 3: Install fzf (optional)
fzf is a command-line fuzzy finder, used by zoxide for interactive selection.
It can be installed from here.
Note: zoxide only supports fzf v0.21.0 and above.
Step 4: Import your data (optional)
If you currently use any of the following utilities, you may want to import
your data into zoxide:
autojump
zoxide import --from autojump path/to/db
The default path varies according to your system:
OS
Path
Example
Linux
$XDG_DATA_HOME/autojump/autojump.txt or $HOME/.local/share/autojump/autojump.txt
ajeetdsouza/zoxide
zoxide
zoxide is a smarter cd command, inspired by z and autojump.
It remembers which directories you use most frequently, so you can "jump" to them in just a few keystrokes.
zoxide works on all major shells.
Getting started • Installation • Configuration • Integrations
Getting started
Read more about the matching algorithm here.
Installation
Step 1: Install zoxide
zoxide runs on most major platforms. If your platform isn't listed below, please open an issue.
Linux
To install zoxide, run this command in your terminal:
curl -sS https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | bash
Or, you can use a package manager:
cargo install zoxide --locked
conda install -c conda-forge zoxide
brew install zoxide
apk add zoxide
pacman -S zoxide
dnf copr enable atim/zoxide
dnf install zoxide
apt install zoxide
apt install zoxide
dnf install zoxide
eselect repository enable guru
emerge --sync guru
emerge app-shells/zoxide
pacman -S zoxide
nix-env -iA nixpkgs.zoxide
zypper install zoxide
apt install zoxide
apt install zoxide
apt install zoxide
xbps-install -S zoxide
macOS
To install zoxide, use a package manager:
cargo install zoxide --locked
conda install -c conda-forge zoxide
brew install zoxide
port install zoxide
Or, run this command in your terminal:
curl -sS https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | bash
Windows
To install zoxide, run this command in your command prompt:
Or, you can use a package manager:
cargo install zoxide --locked
choco install zoxide
conda install -c conda-forge zoxide
scoop install zoxide
BSD
To install zoxide, use a package manager:
cargo install zoxide --locked
pkg install zoxide
pkg install zoxide
pkgin install zoxide
Android
To install zoxide, use a package manager:
pkg install zoxide
Step 2: Add zoxide to your shell
To start using zoxide, add it to your shell.
Bash
Add this to your configuration (usually
~/.bashrc
):Elvish
Add this to your configuration (usually
~/.elvish/rc.elv
):Note: zoxide only supports elvish v0.18.0 and above.
Fish
Add this to your configuration (usually
~/.config/fish/config.fish
):zoxide init fish | source
Note: zoxide only supports fish v3.4.0 and above.
Nushell
Add this to your env file (find it by running
$nu.env-path
in Nushell):Now, add this to the end of your config file (find it by running
$nu.config-path
in Nushell):Note: zoxide only supports Nushell v0.61.0 and above.
PowerShell
Add this to your configuration (find it by running
echo $profile
in PowerShell):Xonsh
Add this to your configuration (usually
~/.xonshrc
):Zsh
Add this to your configuration (usually
~/.zshrc
):For completions to work, the above line must be added after
compinit
is called. You may have to rebuild your cache by runningrm ~/.zcompdump*; compinit
.Any POSIX shell
Add this to your configuration:
Step 3: Install fzf (optional)
fzf is a command-line fuzzy finder, used by zoxide for interactive selection. It can be installed from here.
Note: zoxide only supports fzf v0.21.0 and above.
Step 4: Import your data (optional)
If you currently use any of the following utilities, you may want to import your data into zoxide:
autojump
The default path varies according to your system:
$XDG_DATA_HOME/autojump/autojump.txt
or$HOME/.local/share/autojump/autojump.txt
/home/alice/.local/share/autojump/autojump.txt
$HOME/Library/autojump/autojump.txt
/Users/Alice/Library/autojump/autojump.txt
%APPDATA%\autojump\autojump.txt
C:\Users\Alice\AppData\Roaming\autojump\autojump.txt
z, z.lua, or zsh-z
Configuration
Flags
When calling
zoxide init
, the following flags are available:--cmd
z
andzi
commands.--cmd j
would change the commands to (j
,ji
).--cmd cd
would replace thecd
command (doesn't work on Nushell / POSIX shells).--hook <HOOK>
none
prompt
pwd
--no-cmd
z
andzi
commands.__zoxide_z
and__zoxide_zi
, should you choose to redefine them.Environment variables
Environment variables? can be used for configuration. They must be set before
zoxide init
is called._ZO_DATA_DIR
$XDG_DATA_HOME
or$HOME/.local/share
/home/alice/.local/share
$HOME/Library/Application Support
/Users/Alice/Library/Application Support
%LOCALAPPDATA%
C:\Users\Alice\AppData\Local
_ZO_ECHO
z
will print the matched directory before navigating to it._ZO_EXCLUDE_DIRS
:
$HOME:$HOME/private/*
;
$HOME;$HOME/private/*
"$HOME"
._ZO_FZF_OPTS
man fzf
for the list of options._ZO_MAXAGE
_ZO_RESOLVE_SYMLINKS
z
will resolve symlinks before adding directories to the database.Third-party integrations