💥 Blazing fast terminal file manager written in Rust, based on async I/O.
Find a file
copilot-swe-agent[bot] 6b8b1e160c
fix(nix): use cargoLock with static.crates.io CDN to fix 403 errors
Revert cargoHash back to cargoLock (no hash updates needed on cargo
update) and use extraRegistries to override the download URL to
static.crates.io CDN, avoiding the rate-limited crates.io API endpoint
that returns intermittent 403 errors.

This is the same fix as NixOS/nixpkgs#524985 but applied locally via
extraRegistries override, so it works without updating nixpkgs.

See: https://github.com/rust-lang/crates.io/issues/13482
2026-05-28 03:37:09 +00:00
.cargo fix: avoid appending a newline when reading clipboard contents (#3059) 2025-08-14 11:26:46 +08:00
.github fix: mock OS-level reaping on Windows to avoid child processes potentially detached (#3922) 2026-04-30 18:50:51 +08:00
assets fix: handle file URIs in the desktop entry (#3827) 2026-03-31 10:50:12 +08:00
nix fix(nix): use cargoLock with static.crates.io CDN to fix 403 errors 2026-05-28 03:37:09 +00:00
scripts chore: bump to v26.5.6 (#3935) 2026-05-06 02:02:39 +08:00
snap feat: introduce the concept of Uri (#3049) 2025-08-13 01:38:43 +08:00
yazi-actor feat: drag and drop (#4005) 2026-05-28 11:15:45 +08:00
yazi-adapter feat: drag and drop (#4005) 2026-05-28 11:15:45 +08:00
yazi-binding feat: drag and drop (#4005) 2026-05-28 11:15:45 +08:00
yazi-boot feat: image preview with Überzug++ on Niri (#3990) 2026-05-23 11:02:40 +08:00
yazi-build fix: get rid of the Cargo curse (#3952) 2026-05-10 00:57:57 +08:00
yazi-cli feat!: new virtual terminal backend (#3989) 2026-05-22 17:00:06 +08:00
yazi-codegen fix: make the input component sync and reactive (#3949) 2026-05-09 09:26:07 +08:00
yazi-config fix: restrict preview cache directory permissions (#3984) 2026-05-22 18:56:19 +08:00
yazi-core feat: drag and drop (#4005) 2026-05-28 11:15:45 +08:00
yazi-dds feat!: new virtual terminal backend (#3989) 2026-05-22 17:00:06 +08:00
yazi-emulator feat!: new virtual terminal backend (#3989) 2026-05-22 17:00:06 +08:00
yazi-ffi chore: bump to v26.5.6 (#3935) 2026-05-06 02:02:39 +08:00
yazi-fm feat: drag and drop (#4005) 2026-05-28 11:15:45 +08:00
yazi-fs feat!: new virtual terminal backend (#3989) 2026-05-22 17:00:06 +08:00
yazi-macro feat!: new virtual terminal backend (#3989) 2026-05-22 17:00:06 +08:00
yazi-packing fix: wrong intersection check in preview and spot rendering (#3736) 2026-03-04 15:36:13 +08:00
yazi-parser feat: drag and drop (#4005) 2026-05-28 11:15:45 +08:00
yazi-plugin feat: drag and drop (#4005) 2026-05-28 11:15:45 +08:00
yazi-proxy chore: bump to v26.5.6 (#3935) 2026-05-06 02:02:39 +08:00
yazi-runner feat: drag and drop (#4005) 2026-05-28 11:15:45 +08:00
yazi-scheduler feat: drag and drop (#4005) 2026-05-28 11:15:45 +08:00
yazi-sftp feat: make Action a deserializer (#3841) 2026-04-02 19:15:36 +08:00
yazi-shared feat: drag and drop (#4005) 2026-05-28 11:15:45 +08:00
yazi-shim feat: drag and drop (#4005) 2026-05-28 11:15:45 +08:00
yazi-term feat: drag and drop (#4005) 2026-05-28 11:15:45 +08:00
yazi-tty feat: drag and drop (#4005) 2026-05-28 11:15:45 +08:00
yazi-tui feat: terminal drag and drop protocol (#3999) 2026-05-25 10:30:04 +08:00
yazi-vfs feat!: new virtual terminal backend (#3989) 2026-05-22 17:00:06 +08:00
yazi-watcher feat!: new virtual terminal backend (#3989) 2026-05-22 17:00:06 +08:00
yazi-widgets feat!: new virtual terminal backend (#3989) 2026-05-22 17:00:06 +08:00
.envrc refactor(nix): add shell completion and avoid impure (#293) 2023-10-22 08:10:53 +08:00
.gitignore ci: validate form 2025-02-21 20:07:34 +08:00
.luarc.json feat!: upgrade Lua to 5.5 (#3633) 2026-01-29 01:08:22 +08:00
Cargo.lock feat: drag and drop (#4005) 2026-05-28 11:15:45 +08:00
Cargo.toml feat: terminal drag and drop protocol (#3999) 2026-05-25 10:30:04 +08:00
CHANGELOG.md feat: drag and drop (#4005) 2026-05-28 11:15:45 +08:00
CODE_OF_CONDUCT.md fix!: eliminate the x- prefix in mime-types (#1927) 2024-11-21 15:06:07 +08:00
CONTRIBUTING.md docs: update contributing guidelines 2026-05-25 09:31:04 +08:00
cspell.json feat: drag and drop (#4005) 2026-05-28 11:15:45 +08:00
flake.lock feat: drag and drop (#4005) 2026-05-28 11:15:45 +08:00
flake.nix fix: wrong intersection check in preview and spot rendering (#3736) 2026-03-04 15:36:13 +08:00
LICENSE fix: typo of LICENSE file (#201) 2023-09-21 23:11:51 +08:00
LICENSE-ICONS feat!: redesign icons (#1086) 2024-05-25 22:56:08 +08:00
README.md feat: drag and drop (#4005) 2026-05-28 11:15:45 +08:00
rustfmt.toml fix: warnings should be output to stderr instead of stdout (#1669) 2024-09-21 20:12:35 +08:00
stylua.toml feat: make mimetype matching more robust (#3082) 2025-08-19 15:17:32 +08:00

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 Rename/Create, Archive Extraction, Visual Mode, File Chooser, Git Integration, Mount Manager
  • 🎨 Theme System, Mouse Support, Drag and Drop, 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

Discussion

Image Preview

Platform Protocol Support
kitty (>= 0.28.0) Kitty unicode placeholders Built-in
iTerm2 Inline images protocol Built-in
WezTerm Inline images protocol Built-in
Konsole Kitty old protocol Built-in
foot Sixel graphics format Built-in
Ghostty Kitty unicode placeholders Built-in
Windows Terminal (>= v1.22.10352.0) Sixel graphics format Built-in
st with Sixel patch Sixel graphics format Built-in
Warp (macOS/Linux only) Inline images protocol Built-in
Tabby Inline images protocol Built-in
VSCode Inline images protocol Built-in
Rio (>= 0.3.9) Kitty unicode placeholders Built-in
Black Box Sixel graphics format Built-in
Bobcat Inline images protocol Built-in
X11 / Wayland Window system protocol ☑️ Überzug++ required
Fallback ASCII art (Unicode block) ☑️ Chafa required (>= 1.16.0)

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

Special Thanks

RustRover logo

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.