TL;DR — Quick Summary

Yazi is a fast terminal file manager in Rust with async I/O, image previews, Vi-like keybindings, and a plugin system. Complete setup and usage guide.

Yazi is what a file manager feels like when built from scratch in Rust with modern async I/O. Directories with thousands of files load instantly, image previews render in-terminal, and Vi-like keybindings make navigation effortless.

Installation

# macOS
brew install yazi

# Arch Linux
sudo pacman -S yazi

# Cargo
cargo install --locked yazi-fm yazi-cli

# Nix
nix-env -i yazi

# Verify
yazi --version

Shell Wrapper (cd-on-exit)

Add to ~/.bashrc or ~/.zshrc:

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

Now use y instead of yazi — when you quit, your shell changes to the directory you navigated to.

Keybindings

KeyAction
h/lParent / Enter directory
j/kMove down/up
J/KMove down/up half page
gg/GGo to top/bottom
EnterOpen file
SpaceSelect file
VVisual select mode
dDelete (trash)
DPermanently delete
yYank (copy)
xCut
pPaste
rRename
aCreate file
ACreate directory
/Search
zJump (fzf integration)
tNew tab
~Go to home
.Toggle hidden files
qQuit

Configuration

Config directory: ~/.config/yazi/

yazi.toml

[manager]
show_hidden = false
sort_by = "natural"
sort_dir_first = true
linemode = "size"

[preview]
max_width = 1000
max_height = 1000
image_quality = 75

theme.toml

[manager]
cwd = { fg = "#94e2d5" }

[status]
separator_open = ""
separator_close = ""

Comparison

FeatureYazirangerlfnnn
LanguageRustPythonGoC
SpeedFastestSlowFastFast
Image previewNativeueberzugueberzugPlugins
Plugin systemLuaPythonShellPlugins
Async I/OYesNoNoNo
TabsYesYesNoContexts
Bulk renameYesYesYesYes
Vi bindingsYesYesYesCustom

Summary

  • Yazi is the fastest terminal file manager thanks to Rust and async I/O
  • Three-column Miller layout with real-time file previews including images
  • Vi-like keybindings for intuitive navigation
  • Plugin system (Lua) and themes for customization
  • Shell wrapper enables cd-on-exit for seamless terminal integration
  • Tabs, bulk rename, file search with fzf integration