Skip to main content

Image Preview Protocols

Yazi supports multiple terminal image protocols. The best protocol depends on your terminal emulator and tmux setup.

Protocol Support Matrix

TerminalProtocolNativetmux ReadyNotes
Kittykitty (icat)Needs allow-passthroughFastest protocol; lossless
iTerm2iterm2Uses inline images
WezTermkittyImplements Kitty protocol natively
KonsolesixelNeeds allow-passthroughKDE's terminal
footsixelWayland-native terminal
GhosttykittyEmerging terminal with Kitty protocol
Any terminalÜberzug++❌ (wrapper)Python-based fallback for non-native terminals

Kitty Protocol vs. Sixel

FeatureKitty (icat)Sixel
Image qualityLossless (PNG data)Lossless (vector-like)
TransparencyLimited
SpeedVery fastModerate
Terminal supportKitty, WezTerm, GhosttyKonsole, foot, Xterm
tmux compatibilityWith allow-passthroughWith allow-passthrough

tmux Pass-Through

Both Kitty and Sixel require tmux pass-through to function inside tmux sessions:

# ~/.tmux.conf
set -g allow-passthrough on
set -ga update-environment TERM
set -ga update-environment TERM_PROGRAM
warning

Without allow-passthrough on, image previews will silently fail inside tmux.

Überzug++ Fallback

Überzug++ is a Python wrapper that draws images as terminal overlay elements. Use it when your terminal lacks native protocol support.

pip install ueberzug

Yazi auto-detects Überzug++ when no native protocol is available.

ProsCons
Works in almost any terminalSlower than native protocols
tmux compatibleRequires Python + dependencies
No terminal config neededOverlay can flicker on resize

See Also