Yazi

Active

Overview

Yazi is a terminal‑based file manager written in Rust that runs inside a terminal emulator and provides a dual‑pane, keyboard‑driven interface for browsing and managing files. It targets developers and power users who prefer working in the terminal and want fast navigation, previews, and scripting capabilities without leaving the shell.

Yazi distinguishes itself by using fully asynchronous I/O so that directory listing, copying, and previewing do not block the UI, even in large directories. It supports native image previews via protocols such as Kitty Graphics, Sixel, iTerm2 Inline Images, and Ghostty, and includes a Lua plugin system with a built‑in package manager that lets users extend behavior and integrate with external tools.

Key Features

  • Fully async I/O - All file operations run non‑blocking on background threads so the UI remains responsive even in large directories.
  • Native image previews - Displays images inline using Kitty, Sixel, iTerm2, or Ghostty protocols, with Uberzug++ as a fallback.
  • Vim‑style keybindings - Uses hjkl navigation, visual mode, yank/cut/paste, and marks similar to Vim for quick keyboard‑driven workflows.
  • Multi‑tab and task management - Allows multiple directory tabs and background file operations with real‑time progress and cancellation.
  • Lua plugin system - Extends functionality via Lua plugins and a built‑in package manager for custom commands and integrations.
  • Configurable sorting and linemode - Supports multiple sort methods (alphabetical, natural, size, mtime, etc.) and customizable line modes for file metadata.
  • Trash and restore operations - Provides soft delete to trash and tools to restore or permanently delete files using trash‑cli.
  • Shell integration and cwd persistence - Can be wrapped in a shell function so that exiting Yazi returns the user to the last‑visited directory.

Platforms & Requirements

Yazi runs on Linux, macOS, and Windows as a terminal application that requires a compatible terminal emulator supporting its image‑preview protocols (such as Kitty, iTerm2, or Ghostty) for full preview functionality. On Linux it can also fall back to Uberzug++ for image previews, while on Windows and macOS support depends on the terminal’s protocol implementation. It has no GUI installer and is typically installed via package managers or from source, which may require Rust tooling for compilation.

Integrations & Ecosystem

  • Lua plugin system
  • trash‑cli for trash management
  • fzf for fuzzy directory search
  • Kitty Graphics Protocol for image previews
  • Sixel for image previews
  • iTerm2 Inline Images for image previews
  • Ghostty for image previews
  • Uberzug++ as fallback image preview backend

Alternatives

AppDifference
rangerRanger is a Python‑based terminal file manager with similar dual‑pane layout but synchronous I/O and fewer built‑in previews.
nnnnnn is a minimal, C‑based file manager focused on speed and low resource usage, with fewer visual features and no native image previews.
lflf is a Go‑based terminal file manager emphasizing simplicity and scripting, without built‑in image previews or Lua plugins.
vifmvifm is a Vim‑like file manager with strong Vim keybinding support but less emphasis on async operations and modern preview protocols.

Reputation

Yazi is widely regarded as a fast, modern terminal file manager that leverages Rust and async I/O to deliver smooth performance even in large directories. Users praise its native image previews, Vim‑style keybindings, and extensibility via Lua plugins, which make it attractive to developers and terminal‑centric workflows.

Critics note that its feature set and preview capabilities depend heavily on terminal support for Kitty, Sixel, or iTerm2 protocols, which can limit usability on some setups. Some users also report a steeper configuration curve compared with simpler managers like nnn or lf, especially when customizing keymaps and plugins.

Sources (8)
  1. https://blog.starmorph.com/blog/yazi-terminal-file-manager-guide
  2. https://yazi-rs.github.io/docs/quick-start/
  3. https://www.youtube.com/watch?v=iKb3cHDD9hw
  4. https://yazi-rs.github.io/docs/resources/
  5. https://www.josean.com/posts/how-to-use-yazi-file-manager
  6. https://www.markpitblado.me/blog/setting-up-the-yazi-file-manager/
  7. https://yazi-rs.github.io/docs/configuration/yazi/
  8. https://github.com/sxyazi/yazi