zoxide

crates.io .github/workflows/release.yml

A faster way to navigate your filesystem

Table of contents

Introduction

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.

demo

Examples

```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

zq foo # echo the best match, don't cd

za /foo # add /foo to the database zr /foo # remove /foo from the database ```

Getting started

Step 1: Installing zoxide

On Arch Linux Arch Linux

sh yay -S zoxide

On CentOS

sh dnf copr enable atim/zoxide dnf install zoxide

On DragonFly BSD DPorts

sh pkg install zoxide

On Fedora 32+ Fedora

sh dnf install zoxide

On FreeBSD FreeBSD

sh pkg install zoxide

On macOS / Linux (via Homebrew / Linuxbrew) Homebrew

sh brew install zoxide

On macOS (via MacPorts) MacPorts

sh port install zoxide

On NixOS nixpkgs unstable

sh nix-env -iA nixpkgs.zoxide

On Void Linux Void Linux

sh xbps-install -S zoxide

On Windows (via Scoop) Scoop

powershell scoop install zoxide

Other (via Cargo) crates.io package

sh cargo install zoxide -f

Other (via precompiled binary) GitHub releases

Use the installation script:

sh curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/ajeetdsouza/zoxide/master/install.sh | sh

Alternatively, you can also download a precompiled binary from the releases page and add it to your PATH.

Step 2: Installing fzf (optional)

If you want to use interactive fuzzy selection, you will also need to install fzf.

Step 3: Adding zoxide to your shell

If you currently use z, z.lua, or zsh-z, you may want to first import your existing database into zoxide:

sh zoxide import /path/to/db

bash

Add the following line to your ~/.bashrc:

sh eval "$(zoxide init bash)"

fish

Add the following line to your ~/.config/fish/config.fish:

sh zoxide init fish | source

POSIX shells

Add the following line to your shell's configuration file:

sh eval "$(zoxide init posix --hook prompt)"

PowerShell

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" })

xonsh

Add the following line to your profile (usually ~/.xonshrc):

xonsh execx($(zoxide init xonsh), 'exec', __xonsh__.ctx, filename='zoxide')

zsh

Add the following line to your ~/.zshrc:

sh eval "$(zoxide init zsh)"

Configuration

init flags

Environment variables