Skip to content
A command-line application to view images from the terminal written in Rust.
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
img Update May 6, 2019
src Apply rustfmt May 11, 2019
.gitignore Rename app to viu Apr 12, 2019
Cargo.lock Release 0.2.1 May 7, 2019
Cargo.toml Release 0.2.1 May 7, 2019
LICENSE-MIT Add LICENSE-MIT Apr 12, 2019 Restore original functionality; make new one a flag May 11, 2019



A small command-line application to view images from the terminal written in Rust. It uses lower half blocks (▄ or \u2584) to fit 2 pixels into a single cell by adjusting foreground and background colours accordingly.

Features (see Usage):

  • Animated GIF support
  • Accept media through stdin
  • Custom dimensions


From source

Installation from source requires a local Rust environment.

git clone

# Build & Install
cd viu/
cargo install --path .

# Use
viu img/giphy.gif

Or without cloning:

cargo install viu


A precompiled binary can be downloaded from the release page.


Arch Linux

There is an AUR package available for Arch Linux.





Ctrl-C was pressed to stop the GIFs.


  • viu img/giphy.gif
  • viu img/*

The shell will expand the wildcard above and viu will display all the images in the folder one after the other. For a more informative output when dealing with folders the flag -n could be used.

When viu receives only one file and it is GIF, it will be displayed over and over until Ctrl-C is pressed. However, when couple of files are up for display (second example) the GIF will be displayed only once.

Aspect Ratio

If no flags are supplied to viu it will try to get the size of the terminal where it was invoked. If it succeeds it will fit the image and preserve the aspect ratio. The aspect ratio will be changed only if both options -w and -h are used together.

Command line options
    viu [FLAGS] [OPTIONS] <FILE>...

    -m, --mirror        Display a mirror of the original image
    -t, --transparent   Display transparent pixels in the color of the terminal
    -n, --name          Output the name of the file before displaying
    -v, --verbose       Output what is going on

    -h, --height <height>    Resize the image to a provided height
    -w, --width <width>      Resize the image to a provided width

    <FILE>...    The image to be displayed


  • Reimplement STDIN image support based on #7
  • Use crossterm to add Windows support and remove magic terminal escape sequences
  • Tests
You can’t perform that action at this time.