Yazi: The Terminal File Manager That Made Me Ditch Ranger for Good

I didn’t think I’d care about a terminal file manager again. For years, I’d been fine with cd and ls and the occasional fuzzy finder. But then Claude Code and similar AI tools took over my workflow, and suddenly I was living in the terminal 80% of my day.

You know the feeling. You tweak your shell prompt, set up tmux, install fzf, pick a color scheme that doesn’t hurt your eyes after five hours. Everything gets smoother. But file management? Still a drag. Jumping between terminal and Finder feels like switching languages mid-sentence.

That’s when I stumbled on yazi — an open-source terminal file manager written in Rust, with 37k+ GitHub stars as of early 2025. A year ago it was around 15k, so growth has been absurdly fast. I tried it for three days, then uninstalled my old go-to ranger with zero regrets.


So what’s the big deal?

Yazi’s name comes from the Chinese onomatopoeia for a duck’s quack (ya-zi). Cute, but under the hood it’s anything but silly. The whole thing is built on asynchronous I/O, which means file operations don’t lock up the interface. Ever opened a directory with 10,000 files in ranger and watched it hang for a few seconds? Yazi feels instant. Even while loading, you can still navigate and select files — the list populates in the background. Background tasks (like copying huge folders) show a progress bar in the corner, and you can cancel them anytime.

All file operations are non-blocking. That single design choice makes the daily experience dramatically different.

Visual previews right in the terminal This was the killer feature for me. Yazi supports multiple image protocols: Kitty, iTerm2, Überzug++, Chafa. Move your cursor over a photo — boom, it shows in the right preview pane. No need to alt-tab to Quick Look. Videos get a thumbnail of the first frame. PDFs show page previews. Code files highlight syntax automatically. Suddenly, you’re doing almost everything from the terminal without ever leaving it.

I recall once needing to check a bunch of screenshots for a project. Instead of opening Finder, scrolling, double-clicking each image, closing the Preview app — I just arrowed through files in yazi, and saw each one instantly. It saved maybe 20 seconds per file, but over a hundred files, that’s half an hour. Not bad for a free tool.

Lua plugin system Yazi’s extensibility feels modern. You can write UI plugins or functional plugins in Lua — no need to touch the Rust source. The community already has a bunch of ready-made plugins: custom previewers, preloaders, file sniffers. For example, if you want a specific file extension to open with a particular tool for preview, it’s a few lines of Lua. Compared to ranger’s Python scripting, the API feels cleaner and more approachable.

Tied into the modern CLI ecosystem Yazi integrates with ripgrep, fd, fzf, and zoxide out of the box. Search content with ripgrep, find files with fd, fuzzy-match with fzf, smart-jump directories with zoxide. All wired up from day one. Vim keybindings: j/k to move, gg/G to jump, v for visual mode. If you already use Vim, the learning curve is basically flat. Multi-tab support, batch rename, Git status indicators, trash bin, even mouse support — it covers pretty much everything I need.


A quick comparison with other terminal file managers

Before yazi, many people (including me) used ranger. Ranger is solid, but it’s Python-based and gets sluggish with large directories. There’s also lf (a simpler Go alternative) and nnn (super minimal, mostly keyboard-driven). None of them offer the same level of integrated preview or async performance. Yazi feels like the first terminal file manager that doesn’t compromise — it’s fast, extensible, and visually rich without being bloated.

As of April 2025, yazi’s GitHub repo has over 800 contributors and a very active Discord community. Issues get responded to within hours. Development pace is high — major features land every few weeks.


Installation and first setup

If you’re on macOS, it’s dead simple:

brew install yazi --HEAD 

Then install the companion tools for full functionality:

brew install ffmpeg sevenzip jq fd ripgrep fzf zoxide imagemagick 

Without these, some previews and searches won’t work — ffmpeg for video thumbnails, imagemagick for image resizing, fd for file finding, etc. A worthy one-line investment.

Configuration files live in ~/.config/yazi/. You can tweak themes, keybindings, and plugins there. The official documentation and community configs give you a solid starting point.

One trick I absolutely recommend: add a shell function so when you quit yazi with q, the shell automatically cds to the last directory you were in. It turns yazi into a graphical cd — you browse, pick a folder, and your shell follows. Once you try it, you’ll wonder how you lived without it.


The bottom line

Yazi isn’t just another terminal file manager. It solves a real pain point: the friction of switching contexts between terminal and GUI for file operations. If you spend most of your day in a terminal — whether you’re a developer, sysadmin, or power user — it’s worth the 10 minutes to set it up.

Sometimes the best productivity boost isn’t a fancy new tool. It’s a tool that makes the boring stuff feel fast again.