⚠️ This repository is maintained by one person, in their spare time, with no funding, no team, and zero external support.

Every package and update is built and published for free. If these packages save you time, please consider supporting the project.

Buy me a coffee

🖼️ Install Latest viu on Ubuntu

Command-line image viewer written in Rust

Buy me a coffee
← Back to home

What is viu?

viu is a small but powerful command-line image viewer written in Rust that displays images directly in your terminal. It adapts to your terminal's capabilities, using the best available protocol — from the high-fidelity Kitty and iTerm2 graphics protocols down to Unicode block characters as a universal fallback.

🚀 Why Latest Versions Matter: viu continuously improves support for new image formats, terminal protocols, and display options. The latest releases include AVIF support, improved Kitty protocol rendering, better GIF animation handling, and performance optimizations for large images.

⚡ Key Features of viu

🖼️ Multiple Display Protocols

Supports Kitty terminal graphics protocol, iTerm2 inline images, Sixel graphics, and Unicode block characters — automatically picks the best one for your terminal.

📦 Wide Format Support

Displays PNG, JPEG, GIF, BMP, ICO, TIFF, WebP, AVIF, and many more formats via Rust's image crate.

🎞️ GIF Animation

Plays animated GIFs directly in the terminal, looping through frames at the correct frame rate.

📏 Flexible Sizing

Control width, height, or let viu auto-fit the image to your terminal window. Useful for pipelines and scripting.

🔗 Pipe-Friendly

Reads from stdin or file arguments, making it composable with tools like curl, find, and shell pipelines.

⚡ Fast & Lightweight

Written in Rust — minimal startup time, low memory footprint, and no runtime dependencies beyond the binary.

🖥️ Supported Terminal Protocols

  • Kitty: Full-resolution pixel-perfect images (kitty, Ghostty, WezTerm)
  • iTerm2: Inline image protocol (iTerm2, WezTerm, Tabby, VSCode)
  • Sixel: Compatible with foot, Windows Terminal, and many classic terminals
  • Unicode blocks: Universal fallback — works in every terminal

📦 Installation from debian.griffo.io

Step 1: Add Repository

curl -sS https://debian.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/trusted.gpg.d/debian.griffo.io.gpg echo "deb https://debian.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | sudo tee /etc/apt/sources.list.d/debian.griffo.io.list sudo apt update
curl -sS https://debian.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | gpg --dearmor --yes -o /etc/apt/trusted.gpg.d/debian.griffo.io.gpg echo "deb https://debian.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | tee /etc/apt/sources.list.d/debian.griffo.io.list apt update

Step 2: Install viu

# Install latest viu sudo apt install viu # Verify installation viu --version
# Install latest viu apt install viu # Verify installation viu --version

🎯 Usage Examples

Basic usage:

# Display a single image viu image.png # Display multiple images viu *.jpg # Display from stdin curl -sL https://example.com/photo.jpg | viu - # Display a GIF animation viu animation.gif

Sizing options:

# Set width in terminal columns viu -w 80 image.png # Set height in terminal rows viu -h 24 image.png # Disable auto-resizing viu -s image.png

Pipeline examples:

# Browse images in a directory for f in ~/Pictures/*.jpg; do viu -w 40 "$f"; done # Use with fzf to browse and preview find . -name "*.png" | fzf --preview "viu -w 60 {}"

🚀 Why Choose debian.griffo.io?

📊 Repository Comparison:
  • Official Ubuntu: viu is not packaged in official Ubuntu repositories
  • Cargo Install: Requires Rust toolchain and compilation time
  • debian.griffo.io: Latest version (1.6.1+) available immediately via apt

📦 Package Build Repository

The Ubuntu packages are automatically built and maintained in this GitHub repository:

🔗 Related Packages

Also available from debian.griffo.io:

🎯 Perfect for: Developers previewing assets from the terminal, sysadmins checking images over SSH, users of Kitty, Ghostty, or WezTerm who want pixel-perfect image display, and anyone integrating image previews into shell scripts or tools like yazi and fzf.

💝 Support This Project

If this repository saves you time and effort, please consider supporting it!

⭐ Star on GitHub 🐦 Share on Twitter Buy me a coffee