Navigating large directory hierarchies and inspecting complex file systems directly from the Linux command line often feels sluggish with traditional terminal file managers. Legacy tools can freeze when loading directories containing thousands of files or when generating asset previews. Yazi solves this by reimagining terminal file management around modern asynchronous architecture.
Written in Rust and built upon the Tokio asynchronous runtime, Yazi delivers lightning-fast directory loading, non-blocking I/O operations, built-in multi-column Miller columns navigation, and native graphical image, video, and PDF previews rendered directly within terminal emulators.
Why Choose Yazi Over Traditional Terminal File Managers?
While utilities like Ranger, Midnight Commander, and vifm laid the foundation for CLI file navigation, Yazi introduces significant modern architectural improvements:
- Full Asynchronous Architecture: All filesystem reading, directory sizing, and thumbnail rendering tasks occur on background worker threads. The user interface remains responsive at 60 FPS even when parsing tens of thousands of items.
- Native Terminal Image Previews: Integrates directly with modern terminal graphics protocols—including Kitty Graphics, Sixel, and iTerm2—to render crisp image, vector, and video thumbnails without external window pop-ups.
- Vim-Inspired Navigation: Provides intuitive modal keybindings (
h/j/k/l) with visual mode multi-selection, incremental search, and tabs. - Integrated Search and Filter Engines: Integrates natively with
fzffor fuzzy path jumping,ripgrepfor contents searching, andfdfor instant directory traversals.
How to Install Yazi Across Linux Distributions
Yazi can be installed via package managers or compiled directly via Cargo.
Arch Linux and Manjaro
Yazi is available directly in Arch Linux’s official repositories:
sudo pacman -S yazi
Ubuntu, Debian, and Linux Mint
On Debian and Ubuntu systems, you can install pre-compiled binaries via cargo, Homebrew, or GitHub releases:
# Installing via Cargo (Rust toolchain)
cargo install --locked yazi-fm yazi-cli
Alternatively, download the latest .deb package or pre-built binary tarball from the official GitHub releases page, extract it, and move the binary to /usr/local/bin/.
Fedora and RHEL Derivatives
Install via the community COPR repository or Cargo:
sudo dnf copr enable atim/yazi
sudo dnf install yazi
Installing Recommended Companion Utilities
To unlock Yazi’s full capabilities—such as rich file previews, media extraction, and instant search—install these companion dependencies:
# On Ubuntu/Debian:
sudo apt install ffmpegthumbnailer 7zip jq poppler-utils fd-find ripgrep fzf zoxide imagemagick
These external tools allow Yazi to extract PDF text, generate video frames, unpack compressed archives, and render image metadata instantly within the preview pane.
Launching and Navigating Yazi
To start the file manager, execute:
yazi
Or launch it directly inside a specific project path:
yazi ~/Documents/Projects
Yazi presents a sleek three-column Miller layout:
- Left Column: Parent directory overview.
- Middle Column: Active working directory contents.
- Right Column: Real-time preview pane showing file text, image thumbnails, archive contents, or metadata.
Core Keybindings Reference
| Keybinding | Action | Description |
|---|---|---|
h / j / k / l |
Navigation | Move left (parent), down, up, and right (enter folder or open file). |
Space |
Toggle Selection | Select or deselect items for bulk file operations. |
v |
Visual Mode | Enter visual selection mode to highlight contiguous blocks of files. |
y / x / p |
Yank / Cut / Paste | Standard file copy, move, and paste operations. |
d |
Delete / Trash | Send selected files to system trash or permanently remove them. |
a / r |
Create / Rename | Create a new file/folder or rename the currently highlighted item. |
f |
Fuzzy Filter | Launch real-time fzf filtering to jump to files within the folder. |
s |
Search Content | Launch ripgrep to find matching text inside files in real time. |
t |
New Tab | Open a new directory workspace tab at the top of the interface. |
q |
Quit | Exit Yazi and return to your terminal prompt. |
Shell Integration: Changing Directory on Exit
By default, exiting a terminal file manager leaves your active shell in whichever directory you launched the tool from. To make your shell automatically follow Yazi’s current working directory upon quitting, add this wrapper function to your ~/.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"
}
After reloading your shell profile (source ~/.bashrc), running y launches Yazi, and pressing q instantly leaves your terminal inside whichever directory you navigated to.
Customising Yazi Configuration and Themes
Yazi stores its configuration files in ~/.config/yazi/:
yazi.toml: General behaviour, preview rules, and external opener configurations.keymap.toml: Custom keybindings and action mappings.theme.toml: UI colours, border styling, and file type icons.
Because configuration is modular, you can easily define custom file associations, bind custom external scripts, and customise syntax highlighting themes to match your terminal setup.