A faster way to navigate your filesystem
zoxide
is a blazing fast alternative to cd
, inspired by
z
and z.lua
.
It keeps track of the directories you use most frequently, and uses a ranking algorithm
to navigate to the best match.
```sh z foo # cd to highest ranked directory matching foo z foo bar # cd to highest ranked directory matching foo and bar
z foo/ # can also cd into actual directories
zi foo # cd with interactive selection using fzf ```
zoxide works across all major platforms. If your distribution isn't included in the list below, you can directly install the binary from GitHub:
sh
curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/ajeetdsouza/zoxide/master/install.sh | sh
If you would rather not run a script, you can download the binary from the Releases page and add it anywhere in your $PATH
.
| Distribution | Repository | Instructions |
| -------------- | ----------------------- | --------------------------------------------------------- |
| Any | [crates.io] | cargo install zoxide
|
| Any | [Linuxbrew] | brew install zoxide
|
| Alpine Linux | [Alpine Linux Packages] | apk add zoxide
|
| Arch Linux | [AUR] | yay -Sy zoxide-bin
|
| CentOS | [Copr] | dnf copr enable atim/zoxide
dnf install zoxide
|
| Debian Testing | [Debian Packages] | apt install zoxide
|
| Fedora | [Fedora Packages] | dnf install zoxide
|
| NixOS | [nixpkgs] | nix-env -iA nixpkgs.zoxide
|
| Parrot OS | | apt install zoxide
|
| Void Linux | [Void Linux Packages] | xbps-install -S zoxide
|
| Repository | Instructions |
| ----------- | ---------------------- |
| [crates.io] | cargo install zoxide
|
| [Homebrew] | brew install zoxide
|
| [MacPorts] | port install zoxide
|
| Repository | Instructions |
| ----------- | ---------------------- |
| [crates.io] | cargo install zoxide
|
| [Scoop] | scoop install zoxide
|
| Distribution | Repository | Instructions |
| ------------- | ------------ | ---------------------- |
| Any | [crates.io] | cargo install zoxide
|
| DragonFly BSD | [DPorts] | pkg install zoxide
|
| FreeBSD | [FreshPorts] | pkg install zoxide
|
| NetBSD | [pkgsrc] | pkgin install zoxide
|
| Repository | Instructions |
| ---------- | -------------------- |
| [Termux] | pkg install zoxide
|
fzf is a command-line fuzzy finder, used by zoxide for interactive selection. Installation instructions can be found here.
If you currently use z
, z.lua
, or zsh-z
, you may want to first import
your existing entries into zoxide
:
sh
zoxide import --from z /path/to/db
Alternatively, for autojump
:
sh
zoxide import --from autojump /path/to/db
Add the following line to your configuration file (usually ~/.bashrc
):
sh
eval "$(zoxide init bash)"
Add the following line to your configuration file (usually ~/.elvish/rc.elv
):
sh
eval $(zoxide init elvish | slurp)
Add the following line to your configuration file (usually ~/.config/fish/config.fish
):
fish
zoxide init fish | source
Initialize zoxide's Nushell script:
sh
zoxide init nushell --hook prompt | save ~/.zoxide.nu
Then, in your Nushell configuration file:
__zoxide_hook;
to the prompt
variable.startup
variable:
zoxide init nushell --hook prompt | save ~/.zoxide.nu
source ~/.zoxide.nu
Add the following line to your profile:
powershell
Invoke-Expression (& {
$hook = if ($PSVersionTable.PSVersion.Major -lt 6) { 'prompt' } else { 'pwd' }
(zoxide init --hook $hook powershell) -join "`n"
})
Add the following line to your configuration file (usually ~/.xonshrc
):
python
execx($(zoxide init xonsh), 'exec', __xonsh__.ctx, filename='zoxide')
Add the following line to your configuration file (usually ~/.zshrc
):
sh
eval "$(zoxide init zsh)"
Add the following line to your configuration file:
sh
eval "$(zoxide init posix --hook prompt)"
init
flags--cmd
: changes the prefix of predefined aliases (z
, zi
).
--cmd j
would change the aliases to j
and ji
respectively.--hook <HOOK>
: change how often zoxide increments a directory's score:
none
: never automatically add directories to zoxide.prompt
: add the current directory to zoxide at every shell prompt.pwd
: whenever the user changes directories, add the new directory to zoxide.--no-aliases
: don't define extra aliases (z
, zi
).
__zoxide_z
and __zoxide_zi
, should you choose to use them elsewhere.Be sure to set these before calling zoxide init
.
_ZO_DATA_DIR
$XDG_DATA_HOME
or $HOME/.local/share
| /home/alice/.local/share
|
| macOS | $HOME/Library/Application Support
| /Users/Alice/Library/Application Support
|
| Windows | {FOLDERID_RoamingAppData}
| C:\Users\Alice\AppData\Roaming
|_ZO_ECHO
1
, z
will print the matched directory before navigating to it._ZO_EXCLUDE_DIRS
:
| $HOME:$HOME/private/*
|
| Windows | ;
| $HOME;$HOME/private/*
|_ZO_FZF_OPTS
man fzf
for the list of options._ZO_MAXAGE
10000
._ZO_RESOLVE_SYMLINKS
1
, z
will resolve symlinks before adding directories to the database.