How to Install and Use Yazi in Linux for Blazing-Fast Terminal File Management

Terminal file managers like Ranger, Midnight Commander, and lf have long served developers who prefer navigating directory hierarchies without reaching for a graphical mouse. However, as file trees grow to include tens of thousands of assets and high-resolution images, Python-based managers like Ranger often suffer from synchronous blocking, leading to perceptible UI stutters when scrolling or rendering previews. To address this performance bottleneck, modern Linux environments are rapidly adopting Yazi. Written in Rust and built upon the Tokio asynchronous runtime, Yazi is a blazing-fast terminal file manager that combines non-blocking async I/O, high-performance image and PDF previews, and intuitive Vim-like keybindings.

Why Yazi Outperforms Traditional Terminal File Managers

Yazi was architected from the ground up for modern hardware and multi-core processing:

  • Full Asynchronous I/O: Directory loading, file size calculations, and preview generation run concurrently in background threads without freezing the user interface.
  • Native Terminal Image Previews: Integrates directly with modern terminal graphics protocols (Kitty graphics protocol, Sixel, and Überzug++) to display high-resolution image, video frame, and PDF previews in the terminal window.
  • Vim-Style Navigation: Natural movement using standard h, j, k, and l directional motions.
  • Integrated Search and Filtering: Native integration with ripgrep and fd for instant recursive filename search and in-file text content grep.
  • Extensible Lua Plugin Architecture: Customise keymaps, preview handlers, and status bars using lightweight Lua scripts.

Installing Yazi Across Linux Distributions

Because Yazi is written in Rust, it can be deployed via distribution package repositories, Cargo, or precompiled standalone binaries.

Method 1: Package Manager Installation (Arch & Fedora)

On Arch Linux and Manjaro:

sudo pacman -S yazi

On Fedora (via Copr or native repositories):

sudo dnf copr enable atim/yazi
sudo dnf install -y yazi

Method 2: Installing via Cargo (Universal)

If you have Rust and Cargo configured:

cargo install --locked yazi-fm yazi-cli

Method 3: Downloading Standalone Precompiled Binaries

For Debian, Ubuntu, and CentOS systems without Rust build chains:

VERSION=$(curl -s https://api.github.com/repos/sxyazi/yazi/releases/latest | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\\1/')
wget "https://github.com/sxyazi/yazi/releases/download/${VERSION}/yazi-x86_64-unknown-linux-musl.zip"
unzip yazi-x86_64-unknown-linux-musl.zip
sudo mv yazi-x86_64-unknown-linux-musl/yazi /usr/local/bin/
sudo mv yazi-x86_64-unknown-linux-musl/ya /usr/local/bin/
sudo chmod +x /usr/local/bin/yazi /usr/local/bin/ya

Installing Recommended Preview Utilities

To enable rich media previews for images, video thumbnails, and PDF documents, install auxiliary CLI tools:

sudo apt install -y ffmpegthumbnailer 7zip jq poppler-utils fd-find ripgrep fzf

Basic Navigation and File Operations in Yazi

Launch the manager simply by typing yazi in your terminal:

yazi

The interface presents a clean three-column Miller columns layout:

  • Left Column: Parent directory hierarchy.
  • Middle Column: Current working folder contents.
  • Right Column: Live contextual preview pane (displaying syntax-highlighted code, rendered images, archive contents, or EXIF metadata).

Essential Keybindings

Key Action
h / l Move up to parent directory / Enter selected folder
j / k Navigate down / Navigate up through file list
Space Toggle multi-file selection marker
y / x Yank (copy) / Cut selected files
p Paste copied or cut files into current directory
d Send selected files to system Trash
a Create new file (append a trailing slash / to create a folder)
r Rename selected file
q Quit Yazi

Advanced Searching and Shell Integration

Yazi integrates deep searching directly into directory trees:

1. Incremental Filtering and Fuzzy Finding

  • Press f to initiate live fuzzy searching across the current directory using fzf.
  • Press / to filter items within the current folder view as you type.
  • Press s to execute a recursive file content search using ripgrep.

2. Shell Directory Hopping Wrapper

To have your active shell change its working directory to whatever folder you are viewing when you quit Yazi, add this shell function to ~/.bashrc or ~/.zshrc:

function y() {
    local tmp="$(mktemp -t "yazi-cwd.XXXXXX")"
    yazi "$@" --cwd-file="$tmp"
    if cwd="$(cat -- "$tmp")" && [ -n "$cwd" ] && [ "$cwd" != "$PWD" ]; then
        builtin cd -- "$cwd"
    fi
    rm -f -- "$tmp"
}

Running y opens Yazi, and pressing q leaves you in your browsed folder seamlessly.

Get the best tech tips delivered straight to your inbox.

Join thousands of readers mastering Apple, Google, Microsoft, and Linux.