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
iTerm2iterm2✅❌Uses inline images
WezTermkitty✅❌Implements Kitty protocol natively
Konsolesixel✅Needs allow-passthroughKDE's terminal
footsixel✅❌Wayland-native terminal
Ghosttykitty✅❌Emerging 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)
Transparency✅Limited
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​