TiloBox
Back to directory
zoxide project preview

zoxide

A shell directory jumper that ranks previously visited paths and resolves short queries to frequent destinations.

LicenseMIT
GitHub stars38.8k
Last commit1 weeks ago
Tags5 topics
CliDirectory NavigationRustShellOpen Source
Overview

Why consider zoxide?

zoxide is a smarter cd command written in Rust that learns your most frequently used directories to enable instant navigation. It integrates with all major shells and fuzzy finders to streamline daily terminal workflows.

Guided learning

Learn zoxide by building

Practical setup notes, real use cases, and copy-ready examples in one focused guide.

4 min read 4 sections
In this guide4 sections

Navigating Directories with zoxide: A Smarter cd Alternative

Changing directories is one of the most frequent activities in command-line environments. Traditional navigation relies on standard cd commands, requiring engineers to type lengthy paths repeatedly throughout the workday. As presented on the zoxide GitHub repository, zoxide is an open-source CLI utility that functions as a smarter cd command supporting all major shells. It keeps track of the folders you visit most often, letting you jump directly to any directory using simple abbreviations.

According to the official zoxide README, zoxide is a smarter cd command inspired by z and autojump that remembers frequently used directories, allowing developers to jump across deep project structures with minimal keystrokes.

How zoxide Ranks and Tracks Directories

Unlike static bookmarks or shell aliases that require manual creation and maintenance, zoxide dynamically builds an internal database of your directory usage patterns. Based on the zoxide man page, zoxide keeps track of the directories you use most frequently, and uses a ranking algorithm to navigate to the best match. This frecency algorithm combines how often a path is visited with how recently it was accessed to prioritize relevant targets.

Every time you change directories in an active shell session, zoxide records the transition and adjusts directory scores accordingly. As explained in the zoxide-add documentation, If the directory is not already in the database, this command creates a new entry for it with a default score of 1, otherwise, it increments the existing score by 1. Older or infrequently visited locations gradually decay in weight, keeping your navigation list accurate over time.

According to the project Cargo.toml specification, zoxide is built in Rust with the 2024 edition and provides a high-performance command-line utility. Because the binary executes in sub-millisecond time, directory tracking introduces zero perceptible latency to shell prompts.

Installing zoxide on Your System

Installing zoxide is straightforward across diverse operating systems and package distributions. As documented in the zoxide installation guide, The recommended way to install zoxide across Linux and WSL environments is via the official install script.

Run the official install script:

sh
1curl -sSfL https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | sh

After downloading the binary, you must configure your shell to load the zoxide hook on startup. According to the zoxide-init manual, To initialize zoxide on Bash, add the initialization command to the end of your config file usually ~/.bashrc. Once evaluated, restarting your shell session activates the quick navigation commands.

sh
1eval "$(zoxide init bash)"

Common Navigation Workflows and Commands

Common navigation patterns supported by zoxide include:

sh
1z foo # cd into highest ranked directory matching foo
2z foo bar # cd into highest ranked directory matching foo and bar
3z foo / # cd into a subdirectory starting with foo
4
5z ~/foo # z also works like a regular cd command
6z foo/ # cd into relative path
7z .. # cd one level up
8z - # cd into previous directory
9
10zi foo # cd with interactive selection (using fzf)
11
12z foo<SPACE><TAB> # show interactive completions (bash 4.4+/fish/zsh only)

History Migration and Ecosystem Integration

For developers transitioning from existing shell tooling or command loggers, zoxide provides built-in import utilities. According to the zoxide v0.10.0 release notes, The zoxide import command supports fetching history and directory entries from atuin. This enables users to seed their jump index instantly from historical terminal sessions without starting from an empty database.

As specified in the zoxide MIT License, zoxide is distributed under the permissive terms of the MIT License. This permissive license ensures developers and system administrators can deploy and adapt the tool freely across personal, enterprise, and containerized development workstations.

Related tools

More options with a similar category or technology profile.

zoxide FAQs

zoxide is listed as a Developer Tools tool on TiloBox. Review the overview, features, and official documentation on this page to decide whether it solves your specific workflow.

Start with the project's GitHub repository for supported installation and deployment instructions. Test the setup with representative data or a small project before rolling it out more widely.

zoxide is listed under the MIT license. Read the complete license text and the project's notices before using, modifying, or distributing the software.

Production readiness depends on your requirements. Review maintenance activity, security practices, documentation, backup and upgrade procedures, and compatibility with your stack; then validate it in a non-production environment.

zoxide is listed as an alternative to Autojump. Compare the core workflow, deployment model, integrations, and licensing against your must-have requirements before switching.