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
| Key | Action |
|---|---|
h/l | Parent / Enter directory |
j/k | Move down/up |
J/K | Move down/up half page |
gg/G | Go to top/bottom |
Enter | Open file |
Space | Select file |
V | Visual select mode |
d | Delete (trash) |
D | Permanently delete |
y | Yank (copy) |
x | Cut |
p | Paste |
r | Rename |
a | Create file |
A | Create directory |
/ | Search |
z | Jump (fzf integration) |
t | New tab |
~ | Go to home |
. | Toggle hidden files |
q | Quit |
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
| Feature | Yazi | ranger | lf | nnn |
|---|---|---|---|---|
| Language | Rust | Python | Go | C |
| Speed | Fastest | Slow | Fast | Fast |
| Image preview | Native | ueberzug | ueberzug | Plugins |
| Plugin system | Lua | Python | Shell | Plugins |
| Async I/O | Yes | No | No | No |
| Tabs | Yes | Yes | No | Contexts |
| Bulk rename | Yes | Yes | Yes | Yes |
| Vi bindings | Yes | Yes | Yes | Custom |
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