Skip to main content

What is Yazi

Yazi (鸭子, meaning duck in Chinese) is a terminal file manager written in Rust. It combines modern async I/O with a plugin system, image preview, and a task manager — all running inside your terminal.

Why the name?

Yazi is named after the duck (鸭子, yā zi), a bird that swims gracefully above water while paddling furiously below — much like Yazi's async engine working in the background while the UI stays responsive.

Key Features at a Glance

FeatureDescription
Async I/ONon-blocking file operations powered by tokio — copy, move, search, and archive operations never freeze the UI
Lua Plugin SystemExtend Yazi with Lua scripts; plugins can intercept events, render UI widgets, and communicate over IPC
Image PreviewSupports kitty protocol, iTerm2, WezTerm, sixel, and Überzug++ — preview images, video thumbnails, PDFs, and more
Multi-TabOpen multiple tabs, rename them, swap them, and persist sessions across restarts
Built-in Task ManagerView and manage async tasks — copy, move, delete, plugin tasks, and shell processes — with real-time progress
DDS (Data Distribution Service)Pub-sub communication between Yazi instances on the same machine — useful for multi-pane workflows
Shell Wrapper (y)A shell function that runs Yazi and changes the shell's working directory to Yazi's last directory on exit
Flavor SystemPre-made theme packages with automatic dark/light mode detection

Prerequisites

Yazi requires the file command for file type detection. The following tools are optional but enable specific features:

ToolEnables
fileRequired — file type detection and preview
ffmpegVideo thumbnail generation
7-ZipArchive preview and extraction
jqJSON file preview
popplerPDF preview (via pdftoppm)
fdFile searching (s key)
ripgrepFile content searching (S key)
fzfQuick file subtree navigation (>= 0.53.0)
zoxideHistorical directory navigation (z key)
Nerd FontsIcon display in file lists and UI
info

Yazi is not a file manager that runs as a daemon or requires a server. Each Yazi process is independent, though DDS enables them to communicate when multiple instances are open.

Getting Help