
Asynchronous terminal file manager written in Rust with image preview, plugin system, and cross-directory operations
Yazi is a terminal file manager written in Rust that uses non-blocking async I/O for file operations. It provides a TUI interface for navigating directories, previewing files, and performing bulk file operations. The tool handles all I/O operations asynchronously while distributing CPU tasks across multiple threads.
The file manager includes built-in support for multiple image preview protocols (Kitty, iTerm2, WezTerm, Sixel) and integrates with external tools like Überzug++ and Chafa for broader terminal compatibility. It features code syntax highlighting, image decoding with pre-loading, and scrollable previews for videos, PDFs, archives, and directories. Yazi supports bulk renaming, archive extraction, visual mode selection, and cross-directory file operations.
Yazi implements a concurrent plugin system using Lua for UI customization, functional plugins, and custom previewers. It includes integrations with ripgrep, fd, fzf, and zoxide, along with Vim-like input components and auto-completion. The tool supports multi-tab workflows, Git integration through plugins, and includes a built-in package manager for installing themes and plugins. It's designed for developers and power users who need efficient file management in terminal environments.