# yazi

> Asynchronous terminal file manager written in Rust with image preview, plugin system, and cross-directory operations

Stars: 43.2k · Language: Rust · License: MIT · Categories: File Management

- Repository: https://github.com/sxyazi/yazi
- Website: https://yazi-rs.github.io
- Page: https://www.trmn.sh/tools/yazi

## Overview

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.

![Yazi terminal file manager interface demo](https://media.trmn.sh/cached/c4ef3056cd568b5947ba6bf11a1be4cb465ab4315b4a881dbaf455e629d89265.mp4)

## Alternatives

- [bat](https://www.trmn.sh/tools/bat.md): A cat clone with syntax highlighting, Git integration, and automatic paging for viewing files in the terminal. (Rust, 61.0k stars)
- [eza](https://www.trmn.sh/tools/eza.md): Modern replacement for ls with colors, Git integration, tree view, and extended file metadata display. (Rust, 23.7k stars)
- [lsd](https://www.trmn.sh/tools/lsd.md): Enhanced ls replacement with colors, icons, tree view, and additional formatting options written in Rust (Rust, 16.3k stars)
- [broot](https://www.trmn.sh/tools/broot.md): Interactive file manager and directory navigator with fuzzy search, git integration, and file operations (Rust, 13.1k stars)
- [dust](https://www.trmn.sh/tools/dust.md): A disk usage analyzer that shows directory sizes with visual bars and intelligent tree traversal (Rust, 12.6k stars)

## Guides

- [Jump between directories with zoxide](https://www.trmn.sh/guides/zoxide-smarter-cd): Install zoxide, load it in bash, zsh or fish, jump with z and zi, import your autojump or z history, and replace cd with --cmd cd.
- [Best Terminal File Managers](https://www.trmn.sh/best/terminal-file-managers): Compare terminal file managers: yazi, nnn, ranger, lf, broot and more. Differences in previews, plugins, footprint and keybindings.

---

Canonical: https://www.trmn.sh/tools/yazi
