yazi

πŸ’₯ Blazing fast terminal file manager written in Rust, based on async I/O.

41,282 stars Rust Markdown Skills API Spec #android#asyncio#cli#command-line
AI Prompts & Specs

Repository: sxyazi/yazi


Stars: 36583

README.md

<div align="center">
<sup>Special thanks to:</sup><br>

| <a href="https://go.warp.dev/yazi" target="_blank"><img alt="Warp sponsorship" width=350 src="https://github.com/warpdotdev/brand-assets/blob/main/Github/Sponsor/Warp-Github-LG-02.png"><br><b>Warp, built for coding with multiple AI agents</b><br><sup>Available for macOS, Linux and Windows</sup></a> |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

</div>

Yazi - ⚑️ Blazing Fast Terminal File Manager

Yazi (means "duck") is a terminal file manager written in Rust, based on non-blocking async I/O. It aims to provide an efficient, user-friendly, and customizable file management experience.

πŸ’‘ A new article explaining its internal workings: Why is Yazi Fast?

- πŸš€ Full Asynchronous Support: All I/O operations are asynchronous, CPU tasks are spread across multiple threads, making the most of available resources.
- πŸ’ͺ Powerful Async Task Scheduling and Management: Provides real-time progress updates, task cancellation, and internal task priority assignment.
- πŸ–ΌοΈ Built-in Support for Multiple Image Protocols: Also integrated with Überzug++ and Chafa, covering almost all terminals.
- 🌟 Built-in Code Highlighting and Image Decoding: Combined with the pre-loading mechanism, greatly accelerates image and normal file loading.
- πŸ”Œ Concurrent Plugin System: UI plugins (rewriting most of the UI), functional plugins, custom previewer/preloader/spotter/fetcher; Just some pieces of Lua.
- ☁️ Virtual Filesystem: Remote file management, custom search engines.
- πŸ“‘ Data Distribution Service: Built on a client-server architecture (no additional server process required), integrated with a Lua-based publish-subscribe model, achieving cross-instance communication and state persistence.
- πŸ“¦ Package Manager: Install plugins and themes with one command, keeping them up-to-date, or pin them to a specific version.
- 🧰 Integration with ripgrep, fd, fzf, zoxide
- πŸ’« Vim-like input/pick/confirm/which/notify component, auto-completion for cd paths
- 🏷️ Multi-Tab Support, Cross-directory selection, Scrollable Preview (for videos, PDFs, archives, code, directories, etc.)
- πŸ”„ Bulk Renaming, Archive Extraction, Visual Mode, File Chooser, Git Integration, Mount Manager
- 🎨 Theme System, Mouse Support, Trash Bin, Custom Layouts, CSI u, OSC 52
- ... and more!

https://github.com/sxyazi/yazi/assets/17523360/92ff23fa-0cd5-4f04-b387-894c12265cc7

Project status

Public beta, can be used as a daily driver.

Yazi is currently in heavy development, expect breaking changes.

Documentation

- Usage: https://yazi-rs.github.io/docs/installation
- Features: https://yazi-rs.github.io/features

Discussion

- Discord Server (English mainly): https://discord.gg/qfADduSdJu
- Telegram Group (Chinese mainly): https://t.me/yazi_rs

Image Preview

| Platform | Protocol | Support |
| ---------------------------------------------------------------------------- | -------------------------------------- | -------------------------------------- |
| kitty (>= 0.28.0) | [Kitty unicode placeholders][kgp] | βœ… Built-in |
| iTerm2 | [Inline images protocol][iip] | βœ… Built-in |
| WezTerm | [Inline images protocol][iip] | βœ… Built-in |
| Konsole | [Kitty old protocol][kgp-old] | βœ… Built-in |
| foot | [Sixel graphics format][sixel] | βœ… Built-in |
| Ghostty | [Kitty unicode placeholders][kgp] | βœ… Built-in |
| Windows Terminal (>= v1.22.10352.0) | [Sixel graphics format][sixel] | βœ… Built-in |
| st with Sixel patch | [Sixel graphics format][sixel] | βœ… Built-in |
| Warp (macOS/Linux only) | [Inline images protocol][iip] | βœ… Built-in |
| Tabby | [Inline images protocol][iip] | βœ… Built-in |
| VSCode | [Inline images protocol][iip] | βœ… Built-in |
| Rio (>= 0.3.9) | [Kitty unicode placeholders][kgp] | βœ… Built-in |
| Black Box | [Sixel graphics format][sixel] | βœ… Built-in |
| Bobcat | [Inline images protocol][iip] | βœ… Built-in |
| X11 / Wayland | Window system protocol | β˜‘οΈ [Überzug++][ueberzug] required |
| Fallback | [ASCII art (Unicode block)][ascii-art] | β˜‘οΈ [Chafa][chafa] required (>= 1.16.0) |

See https://yazi-rs.github.io/docs/image-preview for details.

<!-- Protocols -->

[kgp]: https://sw.kovidgoyal.net/kitty/graphics-protocol/#unicode-placeholders
[kgp-old]: https://github.com/sxyazi/yazi/blob/main/yazi-adapter/src/drivers/kgp_old.rs
[iip]: https://iterm2.com/documentation-images.html
[sixel]: https://www.vt100.net/docs/vt3xx-gp/chapter14.html
[ascii-art]: https://en.wikipedia.org/wiki/ASCII_art

<!-- Dependencies -->

[ueberzug]: https://github.com/jstkdng/ueberzugpp
[chafa]: https://hpjansson.org/chafa/

Special Thanks

<img alt="RustRover logo" align="right" width="200" src="https://resources.jetbrains.com/storage/products/company/brand/logos/RustRover.svg">

Thanks to RustRover team for providing open-source licenses to support the maintenance of Yazi.

Active code contributors can contact @sxyazi to get a license (if any are still available).

License

Yazi is MIT-licensed. For more information check the LICENSE file.