yazi logo

yazi

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.

Alternatives & related tools

add a badge to your README

Maintain yazi? Show that it's featured on trmn. The badge links back to this page.

Featured on trmn
Markdown
[![Featured on trmn](https://www.trmn.sh/badge/yazi.svg)](https://www.trmn.sh/tools/yazi?utm_source=badge)
HTML
<a href="https://www.trmn.sh/tools/yazi?utm_source=badge"><img src="https://www.trmn.sh/badge/yazi.svg" alt="Featured on trmn" height="20"></a>