How to Install Yazi on Ubuntu

Tech reviewed: Deepak Prasad
How to Install Yazi on Ubuntu

Yazi is a fast terminal file manager for Ubuntu and other Linux systems. You navigate folders, preview images and PDFs, search with ripgrep (rg), and jump with fzf and zoxide—all without leaving the shell. It is a common upgrade from older TUI managers like Ranger when you want async I/O and a plugin system.

This guide walks through every practical way to install Yazi on Ubuntu: the official GitHub .deb, a portable zip, Snap, Flatpak, Cargo, and the community APT repo at debian.griffo.io. I ran these steps on Ubuntu 25.04 and kept the real terminal output below so you can compare your machine. Where something bit me—wrong zip paths, a missing fd binary, a 404 from the griffo repo—you will find the fix in the same section.

If you are still picking a base OS, Debian 12 vs Ubuntu 24.04 LTS is a useful side read.

Tested on: Ubuntu 25.04 (Plucky Puffin); kernel 6.14.0-37-generic.


Quick command summary

Task Command
Install official .deb (x86_64) wget -qO yazi.deb https://github.com/sxyazi/yazi/releases/latest/download/yazi-x86_64-unknown-linux-gnu.deb && sudo apt install -y ./yazi.deb
Check version yazi --version
Install preview helpers sudo apt install -y file ffmpeg 7zip jq poppler-utils fd-find ripgrep fzf zoxide imagemagick xsel unzip
Expose fd on Ubuntu sudo ln -sf /usr/bin/fdfind /usr/local/bin/fd
Launch Yazi yazi or yazi /path/to/dir
Install via Snap sudo snap install yazi --classic
griffo repo on Ubuntu 24.04 / 25.04 Use noble in the deb line—not plucky on 25.04
Remove .deb install sudo apt purge -y yazi

What is Yazi?

Yazi (yazi means “duck” in Chinese) is a TUI file manager built in Rust with non-blocking async I/O. Compared with classic terminal file managers, it emphasizes:

  • Fast directory listing and preview loading
  • Image, video, PDF, and code previews (when helper tools are installed)
  • A Lua plugin system managed with the ya CLI
  • Integrations with fd, rg, fzf, and zoxide

You run it by typing yazi in any modern terminal emulator. Configuration lives under ~/.config/yazi/ (yazi.toml, keymap.toml, themes, and plugins).


Prerequisites

You need:

  • Ubuntu 22.04 LTS, 24.04 LTS, or newer (including non-LTS releases such as 25.04).
  • A terminal emulator (GNOME Terminal, Kitty, Alacritty, WezTerm, etc.). Long-running installs pair well with GNU Screen or tmux if you are on SSH.
  • wget or curl, and sudo for system-wide installs.
  • For the zip method: unzip (see also extracting archives in Linux if you work with tarballs alongside zips).
  • For Flatpak: sudo apt install flatpak if the flatpak command is missing.
  • For Cargo: build-essential and a Rust toolchain from rustup (see Go vs Rust if you are choosing a systems language stack).
  • Enough free disk for downloads and previews—check disk space before you aim Yazi at a huge torrent or media tree.
TIP
A Nerd Font in your terminal improves icons and spacing. Yazi works without one, but many themes and screenshots assume it.

Only file is strictly required by upstream; everything else unlocks previews and search features covered in the next section.


The official installation docs list tools Yazi calls for previews and navigation:

Tool Ubuntu package Used for
file file MIME / type detection
ffmpeg ffmpeg Video thumbnails (see install FFmpeg on Ubuntu)
7z 7zip Archive preview and extraction
jq jq JSON preview
pdftoppm / poppler poppler-utils PDF preview
fd fd-find Fast file search
rg ripgrep Content search (related: grep command examples)
fzf fzf Subtree navigation (≥ 0.53)
zoxide zoxide Directory jumping (needs fzf)
ImageMagick imagemagick Font, HEIC, JPEG XL previews
Clipboard xsel, xclip, or wl-clipboard Copy/paste integration

Install the common set in one step (you need this yourself on the zip path; the GitHub .deb pulls most of them in through apt):

bash
sudo apt update
sudo apt install -y file ffmpeg 7zip jq poppler-utils fd-find ripgrep fzf zoxide imagemagick xsel unzip

Ubuntu names fd as fdfind

This one caught me after the .deb install. The fd-find package is present, but the executable is fdfind, not fd:

bash
command -v fd || echo "fd: not on PATH"
command -v fdfind
text
fd: not on PATH
/usr/bin/fdfind

Yazi’s file search looks for fd. A one-line symlink fixes it (use which or command -v to confirm what your shell resolves):

bash
sudo ln -sf /usr/bin/fdfind /usr/local/bin/fd
command -v fd && fd --version
text
/usr/local/bin/fd
fdfind 10.2.0

The version string still says fdfind—that is normal on Ubuntu. As long as command -v fd returns a path, search inside Yazi should work.

For more on installing jq on Debian-based systems, see install jq on Ubuntu.


Install Yazi on Ubuntu

Pick one method and stick with it.

IMPORTANT
Do not stack multiple install channels (.deb plus Snap plus Cargo, and so on). You end up with several yazi binaries on disk and type -a yazi becomes a guessing game about which one your shell runs.

The Yazi project publishes .deb files on GitHub Releases for x86_64 and aarch64 (ARM64). This is the route I would use on a normal Ubuntu desktop or server. Download with wget and install the local package with apt (same idea as dpkg for a single .deb file).

On x86_64:

bash
wget -qO yazi.deb https://github.com/sxyazi/yazi/releases/latest/download/yazi-x86_64-unknown-linux-gnu.deb
sudo apt install -y ./yazi.deb

On ARM64 (aarch64):

bash
wget -qO yazi.deb https://github.com/sxyazi/yazi/releases/latest/download/yazi-aarch64-unknown-linux-gnu.deb
sudo apt install -y ./yazi.deb

On Ubuntu 25.04 the tail of apt install looked like this:

text
Get:1 /tmp/yazi.deb yazi amd64 26.5.6-1 [7,281 kB]
Selecting previously unselected package yazi.
Unpacking yazi (26.5.6-1) ...
Setting up yazi (26.5.6-1) ...

Check the build:

bash
yazi --version
ya --version
text
Yazi 26.5.6 (aa52643 2026-05-05)
Ya 26.5.6 (aa52643 2026-05-05)

Both binaries land in /usr/bin/. Bash completions go under /usr/share/bash-completion/completions/.

Do not forget the fd symlink after install if file search is empty.

Method 2: Official zip binary (manual install)

Use this when you want upstream binaries but cannot install the .deb through apt (air-gapped mirror, custom rootfs, and similar cases). You will download with wget and unpack the zip yourself—similar in spirit to pulling binaries from a tar archive, but Yazi ships a zip on GitHub.

bash
cd /tmp
wget -qO yazi.zip https://github.com/sxyazi/yazi/releases/latest/download/yazi-x86_64-unknown-linux-gnu.zip
unzip -q yazi.zip
sudo install -m 755 yazi-x86_64-unknown-linux-gnu/yazi yazi-x86_64-unknown-linux-gnu/ya /usr/local/bin/
rm -rf yazi.zip yazi-x86_64-unknown-linux-gnu

Current release zips unpack into a folder named after the architecture—not yazi-temp:

text
completions
LICENSE
README.md
ya
yazi
bash
yazi --version
text
Yazi 26.5.6 (aa52643 2026-05-05)
WARNING
Several blog posts (including older copies of the lindevs guide) run unzip -d yazi-temp and then mv yazi-temp/*/{ya,yazi} /usr/local/bin. That glob does not match today's GitHub layout. Follow the yazi-x86_64-unknown-linux-gnu/ path shown above or install fails with "No such file or directory". If you often strip junk directory names from archives, see tar --strip-components for the same class of problem on tarballs.
NOTE
The zip ships only yazi and ya. Install the optional dependencies and the fd symlink yourself.

Method 3: Third-party APT repository (debian.griffo.io)

The Yazi installation docs point to an unofficial repo maintained by dariogriffo/yazi-debian. It is handy if you want apt upgrade to track Yazi—but read the codename caveat below before you paste the repo line. You will use curl to import the signing key and apt-cache to compare package candidates.

Ubuntu 25.04: plucky gives a 404

The docs show $(lsb_release -sc) in the deb line. On Ubuntu 25.04 that expands to plucky, and apt update dies:

text
Err:9 https://debian.griffo.io/apt plucky Release
  404  Not Found
Error: The repository 'https://debian.griffo.io/apt plucky Release' does not have a Release file.
IMPORTANT
On Ubuntu 25.04 there is no plucky suite in that repo yet. Use noble instead—it worked on my 25.04 VM. On Ubuntu 24.04 LTS, noble is already the right codename.

Working setup for Ubuntu 24.04 / 25.04:

bash
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://debian.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/debian.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/debian.griffo.io.gpg] https://debian.griffo.io/apt noble main" | sudo tee /etc/apt/sources.list.d/debian.griffo.io.list
sudo apt update
sudo apt install -y yazi

apt-cache policy yazi then showed:

text
yazi:
  Candidate: 26.5.6-2+noble
     26.5.6-2+noble 500
        500 https://debian.griffo.io/apt noble/main amd64 Packages

Install output:

text
Get:1 https://debian.griffo.io/apt noble/main amd64 yazi amd64 26.5.6-2+noble [7,884 kB]
Setting up yazi (26.5.6-2+noble) ...
Yazi 26.5.6 (aa52643 2026-05-05)
WARNING
This repository is community-maintained—not Ubuntu proper, not the core Yazi project. Review the signing key before you add it on production machines.

If add-apt-repository is missing on a minimal image, see add-apt-repository command not found.

Method 4: Snap

The upstream author publishes a classic Snap:

bash
sudo snap install yazi --classic
text
yazi shipped from Ika (sxyazi) installed
Yazi 26.5.6 (aa526434 2026-05-05)
yazi is /snap/bin/yazi

Nightly track:

bash
sudo snap install yazi --classic --edge

snap info yazi on my host listed publisher Ika (sxyazi), MIT license, and the usual async I/O / image-preview blurb from the store page.

NOTE
Snap puts the binary at /snap/bin/yazi. If you ever installed another build, run type -a yazi to see which copy wins on your PATH.

Method 5: Flatpak (quick trial)

Flatpak was not installed on my minimal Ubuntu 25.04 image, so the first step was an apt install:

bash
sudo apt install -y flatpak
flatpak --version
text
Flatpak 1.16.0

Then:

bash
sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
sudo flatpak install -y flathub io.github.sxyazi.yazi
flatpak run io.github.sxyazi.yazi --version
text
Installation complete.
Yazi 25.12.29 (f31147d 2011-11-11)

That installed fine, but the Flathub build was 25.12.29 while the GitHub .deb and Snap were on 26.5.6 the same day. If you care about the newest release, skip Flatpak for daily use.

WARNING
Upstream also documents sandbox limits for the Flatpak build—plugins, clipboard, and some filesystem integrations can break. Fine for a look; not what I would run as my main file manager.

Handy alias if you keep it:

bash
alias yazi='flatpak run io.github.sxyazi.yazi'

Method 6: Install with Cargo (developers)

If you already live in Rust-land, cargo install yazi-build compiles Yazi on your machine. Budget time: on my VM the compile pass alone took 22 minutes 43 seconds. Install rustup with curl (same flags you would use for any HTTPS bootstrap script):

bash
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
source "$HOME/.cargo/env"
rustup update
sudo apt install -y build-essential pkg-config
cargo install --force yazi-build

Rust toolchain on the same host:

text
rustc 1.96.0 (ac68faa20 2026-05-25)

Near the end of the compile:

text
Compiling yazi-tty v26.5.9
   Compiling yazi-build v26.5.9
    Finished `release` profile [optimized] target(s) in 22m 43s
  Installing /home/golinuxcloud/.cargo/bin/yazi-build
   Installed package `yazi-build v26.5.9` (executable `yazi-build`)

The file manager binaries land next to it:

bash
~/.cargo/bin/yazi --version
~/.cargo/bin/ya --version
text
Yazi 26.5.6 (aa52643 2026-06-24)
Ya 26.5.6 (aa52643 2026-06-24)

Make sure ~/.cargo/bin is on your PATH (rustup usually adds this for you). If binaries are not found after login, see where to set environment variables in Linux and bashrc vs bash_profile:

bash
echo 'source "$HOME/.cargo/env"' >> ~/.bashrc
source ~/.bashrc
HINT
If the build dies with linker errors, install build-essential and pkg-config first. If it feels stuck, it is probably still compiling—watch CPU with top or check CPU utilization before you kill the job. A busy rustc process pegging one or more cores for twenty-plus minutes is normal on a small VM.

First launch and basic usage

Open Yazi in the current directory:

bash
yazi

Or jump straight into a folder:

bash
yazi ~/Downloads

Essential keys (default Vim-style layout):

Key Action
j / k or arrow keys Move down / up
h / l or left / right Parent directory / enter directory
q Quit
/ Search file names
z Toggle hidden files
y / x / p Yank (copy) / cut / paste
d Trash / delete (per your config)
? Help overlay

The first time you run it, Yazi creates ~/.config/yazi/ with default yazi.toml and keymap.toml.

"Terminal response timeout"

I tried launching Yazi inside a bare script session (no real terminal UI). It bailed immediately:

text
Terminal response timeout: The request sent by Yazi didn't receive a correct response.
Please check your terminal environment as per: https://yazi-rs.github.io/docs/faq#trt
HINT
Open Yazi from a normal terminal window—GNOME Terminal, Kitty, WezTerm, whatever you already use. Yazi asks the terminal about image and capability support at startup; headless pipes and fake TTYs cannot answer.

Shell integration (optional)

A small wrapper lets your shell cd to wherever you were when you quit Yazi:

bash
function yy() {
  local tmp="$(mktemp -t "yazi-cwd.XXXXXX")"
  yazi "$@" --cwd-file="$tmp"
  if cwd="$(cat -- "$tmp")" && [ -n "$cwd" ] && [ "$cwd" != "$PWD" ]; then
    cd -- "$cwd"
  fi
  rm -f -- "$tmp"
}

Drop that into ~/.bashrc or ~/.zshrc—see bashrc vs bash_profile if you are unsure which file your login shell reads—and use yy instead of yazi when you want the directory to stick after you press q.


Uninstall Yazi

GitHub .deb or griffo APT package

bash
sudo apt purge -y yazi
sudo apt autoremove -y

If you added the griffo repo:

bash
sudo rm -f /etc/apt/sources.list.d/debian.griffo.io.list /etc/apt/keyrings/debian.griffo.io.gpg
sudo apt update

Zip / manual install

bash
sudo rm -f /usr/local/bin/yazi /usr/local/bin/ya

Remove the fd symlink only if nothing else needs it:

bash
sudo rm -f /usr/local/bin/fd

Snap

bash
sudo snap remove yazi

Flatpak

bash
flatpak uninstall -y io.github.sxyazi.yazi

Cargo

bash
rm -f ~/.cargo/bin/yazi ~/.cargo/bin/ya ~/.cargo/bin/yazi-build
WARNING
rm -rf ~/.config/yazi wipes themes, plugins, and keymaps. Only do that when you want a completely fresh config.

Troubleshooting

Problem What to check
command not found: yazi which / command -v yazi; is /usr/bin, /snap/bin, or ~/.cargo/bin on your PATH?
griffo apt update 404 on Ubuntu 25.04 No plucky suite—use noble in the deb line, or install the GitHub .deb
Search does nothing fd-find installed? Symlink fdfind to fd (see above)
Content search missing sudo apt install ripgrep (background: grep on Linux)
PDF / video preview blank poppler-utils and ffmpeg; try sudo apt install --reinstall poppler-utils ffmpeg (FFmpeg on Ubuntu)
Old zip tutorial path fails Folder is yazi-x86_64-unknown-linux-gnu/, not yazi-temp/*/{ya,yazi}
Flatpak older than .deb Flathub release cadence lags—use GitHub .deb for the latest tag
Flatpak plugins / clipboard broken Sandbox limits—move to .deb or zip
Terminal response timeout Real terminal emulator, not script or CI; see Yazi FAQ
Two yazi binaries after an upgrade type -a yazi; remove the copy you do not want
cargo install linker errors sudo apt install build-essential pkg-config
cargo install seems hung Check CPU with top—compile can run 20+ minutes

For deeper debugging: YAZI_LOG=debug yazi.


References


Frequently Asked Questions

1. What is Yazi on Ubuntu?

Yazi is a terminal file manager written in Rust. You browse directories, preview files, and run bulk operations inside your shell with Vim-like keys instead of a graphical file manager window.

2. Is Yazi in the default Ubuntu apt repository?

On many Ubuntu releases Yazi is not in the main or universe archive yet, or the packaged version lags behind upstream. The most reliable paths are the official GitHub .deb, the prebuilt zip, Snap, or a third-party APT repo that tracks current releases.

3. What is the easiest way to install Yazi on Ubuntu?

Download the latest yazi--unknown-linux-gnu.deb from GitHub Releases and run sudo apt install ./yazi-.deb. The package installs yazi and ya and pulls in common preview dependencies through apt.

4. What is the ya command that installs with Yazi?

ya is the Yazi plugin and package manager CLI. It ships beside yazi in official binaries and is used to install plugins, themes, and flavors documented on yazi-rs.github.io.

5. Why does Yazi search or preview fail after install?

Yazi expects helper tools such as fd, ripgrep, fzf, ffmpeg, and poppler-utils. Install them with apt. On Ubuntu the fd package is often named fd-find and exposes fdfind instead of fd—you may need a symlink or PATH alias.

6. debian.griffo.io fails on Ubuntu 25.04 with a 404—what now?

That repo does not publish a plucky suite yet. Replace $(lsb_release -sc) with noble in the deb line, or skip the third-party repo and install the official GitHub .deb instead.

7. How do I uninstall Yazi from Ubuntu?

If you installed the .deb, run sudo apt purge yazi. For a manual zip install, remove /usr/local/bin/yazi and /usr/local/bin/ya. For Snap, run sudo snap remove yazi. Delete ~/.config/yazi only when you do not need your settings.

8. Should I install Yazi from Flatpak on Ubuntu?

Flatpak is fine for a quick look, but Flathub can lag behind GitHub Releases and the sandbox limits plugins and clipboard integration. Prefer the .deb or zip build for everyday use.

Summary

The path I recommend on Ubuntu is the official yazi-x86_64-unknown-linux-gnu.deb: one apt install, dependencies come along, and you get 26.5.6 with both yazi and ya in /usr/bin/. The zip route works the same version if you point at yazi-x86_64-unknown-linux-gnu/ (not the outdated yazi-temp paths floating around the web). Snap is equally current; Flatpak installed but shipped an older 25.12.29 build when I tried it. The griffo repo works on 25.04 only if you use the noble codename—plucky 404s today.

Whichever route you pick, symlink fd from fdfind on Ubuntu, launch from a real terminal, and keep one install channel on disk. Configure under ~/.config/yazi/, manage plugins with ya, and use the yy wrapper when you want your shell directory to follow you out of Yazi. For day-to-day package work on Debian-based systems, keep the apt and curl cheat sheets nearby when you add repos or fetch release keys.

Deepak Prasad

R&D Engineer

Founder of GoLinuxCloud with over a decade of expertise in Linux, Python, Go, Laravel, DevOps, Kubernetes, Git, Shell scripting, OpenShift, AWS, Networking, and Security. With extensive experience, he excels across development, DevOps, …

  • Red Hat Certified System Administrator in Red Hat OpenStack
  • Certified Kubernetes Application Developer (CKAD)
  • Red Hat Certified Specialist in Ansible Automation
  • Go (programming language)
  • Python (programming language)
  • DevOps
  • Computer Security