Yazi

Yazi logo

Yazi is a blazing fast terminal file manager written in Rust, designed to provide an efficient, user-friendly, and highly customizable file management experience. Utilizing non-blocking asynchronous I/O, Yazi maximizes performance and resource utilization, making it an excellent choice for power users and developers alike.

Key Features

  • πŸš€ Full Asynchronous Support: All I/O operations in Yazi are asynchronous. CPU tasks are distributed across multiple threads, ensuring optimal use of system resources and improving overall performance.
  • πŸ’ͺ Powerful Async Task Scheduling and Management: Yazi provides real-time progress updates, task cancellation, and internal task priority assignment, making task management seamless and efficient.
  • πŸ–ΌοΈ Built-in Support for Multiple Image Protocols: Yazi supports a variety of image protocols, including Überzug++, ensuring compatibility with almost all terminal emulators.
  • 🌟 Built-in Code Highlighting and Image Decoding: This feature, combined with a pre-loading mechanism, significantly accelerates the loading of images and normal files.
  • πŸ”Œ Concurrent Plugin System: Yazi supports UI plugins, functional plugins, custom previewers, preloaders, and fetchers, all built with Lua scripts, providing extensive customization and functionality.
  • πŸ“‘ Data Distribution Service: Built on a client-server architecture without needing an additional server process, this service supports cross-instance communication and state persistence through a Lua-based publish-subscribe model.
  • πŸ“¦ Package Manager: Install plugins and themes with a single command, keep them up to date, or pin them to specific versions for stability.
  • 🧰 Integration with Popular Tools: Yazi integrates with fd, rg, fzf, zoxide, and more, enhancing its capabilities and making it more versatile.
  • πŸ’« Vim-like Input/Select/Which/Notify Component: Provides auto-completion for cd paths, making navigation quicker and more intuitive.
  • 🏷️ Multi-Tab Support and Cross-Directory Selection: Navigate multiple directories efficiently with scrollable previews for various file types including videos, PDFs, archives, directories, and code files.
  • πŸ”„ Bulk Renaming and Visual Mode: These features make managing multiple files easier and more efficient.
  • 🎨 Theme System: Customize the appearance of Yazi with themes. Supports mouse interactions and a trash bin for deleted files.
  • πŸ—οΈ Custom Layouts and CSI u Support: Tailor Yazi to fit your specific needs and workflow.

Image Preview Support

Yazi supports a wide range of platforms and protocols for image previews:

PlatformProtocolSupport
kittyKitty unicode placeholdersβœ… Built-in
KonsoleKitty old protocolβœ… Built-in
iTerm2Inline images protocolβœ… Built-in
WezTermInline images protocolβœ… Built-in
Mintty (Git Bash)Inline images protocolβœ… Built-in
footSixel graphics formatβœ… Built-in
GhosttyKitty old protocolβœ… Built-in
Black BoxSixel graphics formatβœ… Built-in
VSCodeInline images protocolβœ… Built-in
TabbyInline images protocolβœ… Built-in
HyperInline images protocolβœ… Built-in
X11 / WaylandWindow system protocolβ˜‘οΈ Überzug++ required
FallbackASCII art (Unicode block)β˜‘οΈ Chafa required

For detailed information on image preview support, visit the Yazi documentation.

Documentation and Community

For comprehensive guides and documentation, visit the Yazi documentation. Join the community discussions on Discord (English) or Telegram (Chinese):

Similar Projects

Rustfinity.com

Links

  1. Home
  2. Learn Rust
  3. Get Started
  4. Practice Rust
  5. Challenges
  6. Tutorials
  7. Blog
  8. Open source
  9. Learn Gleam

Socials

  1. GitHub
  2. X

Legal

  1. Privacy Policy
  2. Terms of Service