// the find
sxyazi/yazi
💥 Blazing fast terminal file manager written in Rust, based on async I/O.
Yazi is a terminal file manager built in Rust with async I/O at its core — think ranger or lf, but with genuinely non-blocking I/O and a Lua plugin system that lets you rewrite almost everything. It's for developers who live in the terminal and are tired of file managers that freeze while loading large directories or previewing files.
The async architecture is real, not marketing — directory reads, previews, and task management run concurrently without blocking the UI, which you notice immediately on network mounts or large dirs. The image preview coverage is impressive: it handles every major protocol (Kitty, Sixel, iTerm2 inline) plus Überzug++ as fallback, so it works across nearly every terminal. The Lua plugin system exposes enough internals that you can genuinely rewire the UI and behavior rather than just adding commands — the split between yazi-actor, yazi-binding, and yazi-config in the codebase shows this is architecturally deliberate, not an afterthought. The built-in package manager with version pinning (`ya pack`) means plugin installs are reproducible, which ranger never solved cleanly.
Still in public beta with explicit breaking change warnings — the config format and plugin API have shifted before and will again, so any serious configuration investment carries maintenance cost. The Lua plugin API is powerful but the documentation lags the implementation; if you need something beyond the official plugin examples, you're reading Rust source. Windows support exists but is a second-class citizen — image preview doesn't work on Windows Terminal until v1.22, and several features quietly degrade. The client-server DDS (Data Distribution Service) for cross-instance communication is architecturally interesting but introduces state persistence complexity that will surprise users who expect a simple file manager to just quit cleanly.