A Minimalist Rust CLI for Your Terminal File Workflow
If you live in the terminal, you know the dance. You cd into a directory, ls to see what's there, maybe mv or cp a few things, and then repeat. It's a series of small commands that can start to feel slow and clunky. What if you had a single, fast, keyboard-driven interface to manage all of it?
Enter Yazi. It's a terminal file manager written in Rust that aims to replace that disjointed workflow with a single, powerful tool. It's not just another file browser; it's designed to be the control center for your terminal-based file operations, and it does it with a focus on speed and minimalism.
What It Does
Yazi is a terminal file manager built with Rust. It provides a TUI (Terminal User Interface) where you can navigate directories, preview files (images, videos, code), perform batch operations, and even launch files with their default applications—all without leaving your terminal or touching your mouse. It's like a modern, CLI-integrated version of traditional GUI file explorers, but built for developers who prefer keyboard shortcuts.
Why It's Cool
The appeal of Yazi is in its design choices and performance. Being written in Rust, it's incredibly fast and memory-efficient, which you notice immediately when scrolling through large directories or previewing files. The interface is clean and stays out of your way, putting the focus on your files.
A standout feature is its asynchronous I/O operations. Everything from file operations to preview generation is non-blocking. This means you can keep navigating or issuing commands while a large copy job runs in the background. The preview system is also robust, supporting everything from text and code (with syntax highlighting) to images and video thumbnails, right in the terminal.
It's also highly customizable. You can tweak keybindings, themes, and even the rules for which preview tool to use for which file type. It feels less like a rigid application and more like a tool you can mold to fit perfectly into your personal workflow.
How to Try It
Getting started with Yazi is straightforward. You'll need the Rust toolchain installed.
- Install via Cargo:
cargo install yazi-fm - Run it by simply typing
yaziin your terminal. - Use the arrow keys to navigate. Press
hto bring up the help menu, which is the best way to start learning the keybindings.
For more detailed installation options (like using a package manager) and configuration, check out the project's GitHub repository: https://github.com/sxyazi/yazi.
Final Thoughts
Yazi feels like a logical upgrade for anyone who's tired of the back-and-forth between individual ls and cp commands. It doesn't try to do everything; it focuses on being the best possible way to manage files in the terminal. The speed from Rust and the thoughtful, async design make it feel snappy and modern. If you're looking to streamline your terminal workflow, it's definitely worth an hour of exploration. You might find it becomes a permanent part of your toolkit.
Found an interesting project? Share it with us @githubprojects.
Repository: https://github.com/sxyazi/yazi