Yazi — Blazing Fast Terminal File Manager in Rust
Yazi is a blazing fast terminal file manager written in Rust, based on async I/O. Preview images and videos in terminal, fuzzy search, batch operations, plugin system, and seamless integration with tools like fzf, zoxide, and rg.
What it is
Yazi is a terminal file manager written in Rust, built on async I/O for speed. It supports image and video previews directly in the terminal, fuzzy search, batch rename operations, and a plugin system. It integrates with tools like fzf, zoxide, and ripgrep.
Developers and power users who navigate large project directories from the terminal will find Yazi faster and more feature-rich than traditional file managers like ranger or lf.
How it saves time or tokens
Yazi's async architecture means file listings and previews load without blocking the UI. Tab support, bookmarks, and fuzzy search reduce the number of keystrokes needed to navigate complex directory trees. Batch rename with regex replaces shell one-liners.
How to use
- Install Yazi via your package manager or cargo.
- Launch with
yaziin your terminal. - Navigate with vim-like keybindings (h/j/k/l).
- Customize via
~/.config/yazi/configuration files.
# Install on macOS
brew install yazi
# Install via cargo
cargo install --locked yazi-fm yazi-cli
# Launch
yazi
Example
Yazi supports shell integration for changing directories on exit:
# Add to ~/.bashrc or ~/.zshrc
function y() {
local tmp="$(mktemp -t 'yazi-cwd.XXXXXX')" cwd
yazi "$@" --cwd-file="$tmp"
if cwd="$(command cat -- "$tmp")" && [ -n "$cwd" ] && [ "$cwd" != "$PWD" ]; then
builtin cd -- "$cwd"
fi
rm -f -- "$tmp"
}
Related on TokRepo
- Automation tools — CLI tools for developer productivity
- Featured workflows — Discover popular developer tools
Common pitfalls
- Image preview requires a terminal emulator with graphics protocol support (Kitty, iTerm2, or Sixel-capable terminals).
- The plugin system uses Lua. Check plugin compatibility with your Yazi version before installing.
- Some keybindings conflict with tmux defaults. Adjust your tmux prefix or Yazi keymap accordingly.
Frequently Asked Questions
Yazi is significantly faster than ranger due to its Rust implementation and async I/O. Ranger is written in Python and can feel slow in large directories. Yazi also offers native image previews without external dependencies in supported terminals.
Yes. Yazi can preview images, videos, PDFs, and archives directly in the terminal. It supports Kitty graphics protocol, iTerm2 inline images, and Sixel for compatible terminal emulators.
Yes. Yazi has a Lua-based plugin system. Community plugins add features like git status indicators, archive extraction, and custom preview renderers.
Yazi works in any terminal for basic file management. For image previews, use Kitty, iTerm2, WezTerm, or any terminal supporting Sixel or the Kitty graphics protocol.
Yes. Yazi integrates with fzf for fuzzy file finding, zoxide for smart directory jumping, and ripgrep for content search. These integrations are configurable in the Yazi keymap.
Citations (3)
- Yazi GitHub— Yazi is a blazing fast terminal file manager written in Rust
- Yazi Documentation— Supports async I/O, image preview, and plugin system
- Yazi Tips— Integrates with fzf, zoxide, and ripgrep
Related on TokRepo
Discussion
Related Assets
Conda — Cross-Platform Package and Environment Manager
Install, update, and manage packages and isolated environments for Python, R, C/C++, and hundreds of other languages from a single tool.
Sphinx — Python Documentation Generator
Generate professional documentation from reStructuredText and Markdown with cross-references, API autodoc, and multiple output formats.
Neutralinojs — Lightweight Cross-Platform Desktop Apps
Build desktop applications with HTML, CSS, and JavaScript using a tiny native runtime instead of bundling Chromium.