Installation
To use Yazi, you must have the following prerequisites installed:
file(for file type detection)
Yazi can beoptionally extended with other command-line tools to enable additional features.
- nerd-fonts (recommended)
ffmpeg(for video thumbnails)- 7-Zip (for archive extraction and preview, requires non-standalone version)
jq(for JSON preview)poppler(for PDF preview)fd(for file searching)rg(for file content searching)fzf(for quick file subtree navigation, >= 0.53.0)zoxide(for historical directories navigation, requiresfzf)resvg(for SVG preview)- ImageMagick (for Font, HEIC, and JPEG XL preview, >= 7.1.1)
xclip/wl-clipboard/xsel(for Linux clipboard support)
Upgrade these dependencies to their newest version if certain functionality is not working as expected.
Packaging status
Most packages on this page are maintained by the community, and theymay not always be the latest. Please check their versions before installation:
Arch Linux
sudo pacman-S yazi ffmpeg 7zip jq poppler fd ripgrep fzf zoxide resvg imagemagick
If you want to use the latest Git version, you can install it fromAUR orArch Linux CN:
paru-S yazi-git ffmpeg 7zip jq poppler fd ripgrep fzf zoxide resvg imagemagick
You can also install theofficial nightly release binary fromAUR,which is built from the latest code within the past 6 hours:
paru-S yazi-nightly-bin ffmpeg 7zip jq poppler fd ripgrep fzf zoxide resvg imagemagick
Nix
ANix package for Yazi is available.
# NixOS:
nix-env-iA nixos.yazi
# Not NixOS:
nix-env-iA nixpkgs.yazi
Or add the following to your configuration:
# configuration.nix
environment.systemPackages=with pkgs;[
(yazi.override{
_7zz= _7zz-rar;# Support for RAR extraction
})
];
You can also manage Yazi's configuration usinghome-manager, here is a configuration template example:
Demonstrate configuring Yazi with home-manager
{pkgs,...}:let
yazi-plugins= pkgs.fetchFromGitHub{
owner="yazi-rs";
repo="plugins";
rev="...";
hash="sha256-...";
};
in{
programs.yazi={
enable=true;
enableZshIntegration=true;
shellWrapperName="y";
settings={
mgr={
show_hidden=true;
};
preview={
max_width=1000;
max_height=1000;
};
};
plugins={
chmod="${yazi-plugins}/chmod.yazi";
full-border="${yazi-plugins}/full-border.yazi";
toggle-pane="${yazi-plugins}/toggle-pane.yazi";
starship= pkgs.fetchFromGitHub{
owner="Rolv-Apneseth";
repo="starship.yazi";
rev="...";
sha256="sha256-...";
};
};
initLua=''
require("full-border"):setup()
require("starship"):setup()
'';
keymap={
mgr.prepend_keymap=[
{
on="T";
run="plugin toggle-pane max-preview";
desc="Maximize or restore the preview pane";
}
{
on=["c""m"];
run="plugin chmod";
desc="Chmod on selected files";
}
];
};
};
}
Nix flakes
The upstream repository provides a flake so that Nix users can easily keep up with the bleeding edge. A basicflake.nix setup to get you started:
{
inputs={
nixpkgs.url="github:NixOS/nixpkgs/nixos-23.11";
home-manager={
url="github:nix-community/home-manager/release-23.11";
inputs.nixpkgs.follows="nixpkgs";
};
yazi.url="github:sxyazi/yazi";
};
outputs={ nixpkgs, home-manager, yazi,...}:{
# To install Yazi system-wide:
nixosConfigurations={
nixos= nixpkgs.lib.nixosSystem{
modules=[
({ pkgs,...}:{
environment.systemPackages=[
(yazi.packages.${pkgs.system}.default.override{
_7zz= pkgs._7zz-rar;# Support for RAR extraction
})
];
})
];
};
};
# To install it for a specific user:
homeConfigurations={
"alice@nixos"= home-manager.lib.homeManagerConfiguration{
pkgs= nixpkgs.legacyPackages.x86_64-linux;
modules=[
({ pkgs,...}:{
home.packages=[
(yazi.packages.${pkgs.system}.default.override{
_7zz= pkgs._7zz-rar;# Support for RAR extraction
})
];
})
];
};
};
};
}
If you want to override the package inside nixpkgs with the one from the flake, you can use overlays:
nixpkgs.overlays=[ yazi.overlays.default];
A module is also available for both NixOS and home-manager:
programs.yazi={
enable=true;
# You can omit this if you use overlays
package= yazi.packages.${pkgs.system}.default.override{
_7zz= pkgs._7zz-rar;# Support for RAR extraction
};
};
Cache
Pre-built artifacts are served athttps://yazi.cachix.org, so that Nix users don't have to build Yazi on their machine.You can make use of it by adding the following options tonix.settings, either in your NixOS or home-manager configuration:
extra-substituters=["https://yazi.cachix.org"];
extra-trusted-public-keys=["yazi.cachix.org-1:Dcdz63NZKfvUCbDGngQDAZq6kOroIrFoyO064uvLh8k="];
Note that the cache will only be appliedafter you rebuild your Nix config. If you want to ensure that the cache gets applied right away, add the options above to your flake'snixConfig attribute.
If you're having any problems, refer to thisentry from Cachix's FAQ.
Homebrew
First, make sure that Homebrew is fully up-to-date withbrew update.
Then you can install Yazi (and the optional dependencies):
brewinstall yazi ffmpeg sevenzip jq poppler fd ripgrep fzf zoxide resvg imagemagick font-symbols-only-nerd-font
If you prefer to use the most recent code, use the--HEAD flag when installing Yazi.
brewinstall yazi--HEAD
MacPorts
sudo portinstall yazi ffmpeg 7zip jq poppler fd ripgrep fzf zoxide ImageMagick
Void Linux
sudo xbps-install-S yazi ffmpeg 7zip jq poppler fd ripgrep fzf zoxide resvg ImageMagick
NetBSD
pkgininstall yazi ffmpeg7 p7zip jq poppler fd ripgrep fzf zoxide ImageMagick
Windows
Yazi relies onfile(1) to detect the mime-type of the file, and the easiest and most reliable way to get it on Windows is to install Git for Windows and use thefile.exe that comes with it.
- Install Git for Windows by runningthe official installer, or through your package manager of choice.
- To allow Yazi to use
file(1), add<Git_Installed_Directory>\usr\bin\file.exeto yourYAZI_FILE_ONEenvironment variable, which differs depending on how you installed Git:- If you installed Git with the installer, it would be
C:\Program Files\Git\usr\bin\file.exe. - If you installed Git with Scoop, it would be
C:\Users\<Username>\scoop\apps\git\current\usr\bin\file.exe.
- If you installed Git with the installer, it would be
- Restart your terminal.
This isthe ONLY way we recommend. We do not recommend installfile via Scoop or Chocolatey, since they cannot handle Unicode filenames (such asoliver-sjöström.jpg) properly and lack some required parameters.
Most users already have Git installed, and Yazi is also hosted via Git, so this usually isn't an issue. But if you really don't have/want to install it, themime-ext.yazi plugin can help, which use a extension database instead of relying on thefile(1) binary.
Install with Scoop
scoopinstall yazi
# Install the optional dependencies (recommended):
scoopinstall ffmpeg 7zip jq poppler fd ripgrep fzf zoxide resvg imagemagick
Install with WinGet
wingetinstall sxyazi.yazi
# Install the optional dependencies (recommended):
wingetinstall Gyan.FFmpeg 7zip.7zip jqlang.jq oschwartz10612.Poppler sharkdp.fd BurntSushi.ripgrep.MSVC junegunn.fzf ajeetdsouza.zoxide ImageMagick.ImageMagick
resvg is not yet on WinGet, install with Scoop or manually download fromresvg.
Debian based Linux
In Debian/Ubuntu, you currently need tomanually build Yazi ordownload our official binary release.
You can install the optional dependencies with:
aptinstall ffmpeg 7zip jq poppler-utils fd-find ripgrep fzf zoxide imagemagick
Note that these dependencies are quite old on some Debian/Ubuntu versions and may cause Yazi to malfunction. In that case, you will need to manually build them from the latest source.
If you know how to package Yazi for Debian/Ubuntu and would like to help us submit it, pleasefile an issue.
Fedora/Centos Stream 9+/RHEL 9+
This uses anunofficial COPR repository maintained byPeter Li.
dnf coprenable lihaohong/yazi
dnfinstall yazi
dnf will install recommended dependencies automatically. To install only Yazi:
dnf coprenable lihaohong/yazi
dnfinstall yazi--setopt=install_weak_deps=False
Ifdnf complains about "No such command: copr", rundnf install dnf-plugins-core and then rerun the commands above.
Snapcraft
You can install Yazi from theSnap Store with:
sudo snapinstall yazi--classic
If you want to keep up with the bleeding edge, get the nightly version with:
sudo snapinstall yazi--classic--edge
Flatpak
The Flatpak edition comes with many limitations due to sandboxing - see itsREADME for details.
Power users are recommended to transition to an alternative installation to avoid unexpected breakages.
Afterinstallation, you can run Yazi in the terminal with:
flatpak run io.github.sxyazi.yazi
You may want to create a shell alias:
aliasyazi="flatpak run io.github.sxyazi.yazi"
See the Flatpak edition'sREADME for more information.
AOSC OS
sudo omainstall yazi ffmpeg p7zip jq poppler fd ripgrep fzf zoxide imagemagick
x-cmd
xenv use yazi ffmpeg 7zz jq fd rg fzf zoxide magick
Official binaries
You can download the latest official binaries from GitHub Releases:https://github.com/sxyazi/yazi/releases
On this page, we offer GNU/Musl builds to meet the needs of different users.
This page also includes anightly release, which is built from the latest code within the past 6 hours.
crates.io
Yazi is available asyazi-fm andyazi-cli oncrates.io. Due toCargo's limitations, they must be installed viayazi-build.
To install Yazi, setup the latest stable Rust toolchain viarustup:
curl--proto'=https'--tlsv1.2-sSf https://sh.rustup.rs|sh
rustup update
Now you can installyazi-build viacargo, which will in turn installyazi-fm andyazi-cli:
cargoinstall--force yazi-build
Or install the latest Git version of Yazi:
cargoinstall--force--git https://github.com/sxyazi/yazi.git yazi-build
If it fails to build, please check ifmake andgcc is installed on your system.
Build from source
Setup the latest stable Rust toolchain viarustup:
curl--proto'=https'--tlsv1.2-sSf https://sh.rustup.rs|sh
rustup update
Clone the repository and build Yazi:
- non-Windows
- Windows
git clone https://github.com/sxyazi/yazi.git
cd yazi
cargo build--release--locked
git clone https://github.com/sxyazi/yazi.git
cd yazi
cargo build--profile release-windows--locked
Then, addyazi andya to your$PATH:
- non-Windows
- Windows
mv target/release/yazi target/release/ya /usr/local/bin/
move target\release-windows\yazi.exe"%ProgramFiles%\yazi.exe"
move target\release-windows\ya.exe"%ProgramFiles%\ya.exe"
If it fails to build, please check ifmake andgcc is installed on your system.
Build from source in debug mode
Building Yazi in debug mode is for debugging purposes only, as it can speed up the build and provide more stack trace information.
It should not be used for daily purposes, as debug mode significantly reduces performance!
Setup the latest stable Rust toolchain viarustup:
curl--proto'=https'--tlsv1.2-sSf https://sh.rustup.rs|sh
rustup update
Clone the repository and build Yazi:
git clone https://github.com/sxyazi/yazi.git
cd yazi
cargo build--locked
Then, runyazi in debug mode:
- Unix-like
- PowerShell
YAZI_LOG=debugRUST_BACKTRACE=1 ./target/debug/yazi
$env:YAZI_LOG ="debug";$env:RUST_BACKTRACE = 1;.\target\debug\yazi.exe
If it fails to build, please check ifmake andgcc is installed on your system.