Yazi: Blazing-Fast Terminal File Manager for Power Users

What is Yazi?

Yazi is a fast, modern terminal-based file manager built in Rust, designed to be a sleek and efficient alternative to traditional terminal file managers like ranger, nnn, or lf. It offers an intuitive Vim-like interface, extreme performance, and a wide range of features including file previews, batch operations, and asynchronous search.

What makes Yazi stand out is its use of Rust’s memory safety and performance features, which makes it lightning-fast and highly reliable. It’s also highly customizable, supports image and file previews, and integrates smoothly with Unix-based workflows — making it ideal for power users who spend a lot of time in the terminal.

Yazi supports cross-platform operation (Linux, macOS, and even Windows via WSL), and is being increasingly adopted by developers, sysadmins, and enthusiasts looking for a high-performance TUI (Terminal User Interface) file navigator.


What are the Major Use Cases of Yazi?

Yazi is particularly useful in several high-productivity environments where terminal usage is common. Here are its main use cases:

1. Efficient File Navigation

  • Quickly browse and open files or directories with a lightning-fast Vim-style interface.

2. Preview Files Inline

  • Instantly view previews of text, images, PDFs, or media directly in the terminal.

3. Batch File Operations

  • Move, copy, delete, or rename multiple files using intuitive keybindings and selection tools.

4. Asynchronous Search and Filtering

  • Find files or folders quickly using fuzzy searching or regex, even in massive directories.

5. Scripting and Integration

  • Integrate with shell scripts, dotfiles, and terminal workflows to create customized automation.

6. Git and Version Control Integration

  • View Git status for files and integrate with Git commands from within the file manager.

7. Tiling Window Workflow

  • Perfect for users in tmux, Alacritty, or Kitty terminal environments where keyboard-first workflows dominate.

How Yazi Works (with Architecture)

Yazi is written in Rust, leveraging its speed, concurrency, and safety features. It uses tui-rs for rendering the UI in the terminal and interfaces with your system’s shell and file system asynchronously, avoiding performance bottlenecks.

Yazi Architecture Overview:

[User Input (Keybindings)]
     ↓
[UI Layer (tui-rs)]
     ↓
[Command Parser & Executor]
     ↓
[Filesystem Engine (Rust Async)]
 ├─ File Read/Write
 ├─ Metadata Extraction
 ├─ Preview Generator
 └─ Git/External Tool Integration
  • UI Layer: Renders the terminal interface using crossterm and tui-rs.
  • Command Layer: Handles keystrokes, parses commands, and executes built-in or custom actions.
  • File Engine: Uses async Rust to handle file system events and preview generation.
  • Plugin/Script System: Enables extensibility with shell scripts or external tools.

Yazi keeps UI and operations highly responsive even while handling large folders or disk-intensive tasks.


What is the Basic Workflow of Yazi?

The Yazi workflow is streamlined for keyboard-centric users. Here’s how it generally operates:

  1. Launch Yazi
    • Run yazi in the terminal to open the file manager.
  2. Navigate with Vim-like Keys
    • Use h (back), l (enter), j/k (move down/up), gg/G (top/bottom) for rapid navigation.
  3. Preview Files
    • Hover over files to see previews of content, images, or PDFs in the preview pane.
  4. Select and Act
    • Use spacebar to select, then y to copy, d to delete, m to move, and p to paste.
  5. Search and Filter
    • Use / to start a search, : for command-line mode, and ? for help.
  6. Customize Your Setup
    • Edit configuration files (~/.config/yazi/yazi.toml) to remap keys or change themes.
  7. Chain Commands with Scripts
    • Extend Yazi by linking to shell commands, file openers, or previewers for new formats.

Step-by-Step Getting Started Guide for Yazi

Step 1: Install Yazi

On Linux (via Cargo):
cargo install --locked yazi
On macOS (using Homebrew):
brew install yazi
On Arch Linux:
pacman -S yazi
On Windows (via Scoop or WSL):
scoop install yazi

Step 2: Launch Yazi

Just type:

yazi

Navigate with hjkl, open folders with l, go back with h.

Step 3: Preview File Types

Yazi automatically previews text, images, markdown, and even video files with the right tools:

  • Text: Built-in
  • Image: Requires ueberzugpp or viu
  • Video/PDF: Configure using yazi.toml

Step 4: Customize Yazi Configuration

Edit ~/.config/yazi/yazi.toml:

[manager]
preview = true
scrolloff = 5

[opener]

image = “viu” pdf = “pdftotext”

You can define how each file type is opened or previewed.

Step 5: Use Bookmarks and Plugins

  • Press m to bookmark a directory.
  • Use : to enter command mode for running shell commands.

Step 6: Integrate with Shell or Scripts

Link Yazi with keybindings or file pickers in tools like fzf, zoxide, or tmux.

Step 7: Learn and Explore

Press ? in the UI to open the keymap help. Visit the official GitHub for themes, plugins, and advanced scripting.