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.

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 zoxide to your shell:

Bash: 
Add this to your configuration (usually ~/.bashrc):
eval "$(zoxide init bash)"

Fish:
Add this to your configuration (usually ~/.config/fish/config.fish):
zoxide init fish | source

Zsh:
Add this to your configuration (usually ~/.zshrc):
eval "$(zoxide init zsh)"

For completions to work, the above line must be added after compinit is 
called. You may have to rebuild your cache by running 
rm ~/.zcompdump*; compinit.

more data in the github page.
