Viuwa is a simple terminal ANSI image viewer trying to maintain bare-minimum compatibility with the wasm32-wasi target made for fun.
It would use exclusively ANSI escape codes to display images in the terminal if only standard ANSI was updated anytime in the last decade.
Kitty, Sixel, and Iterm2 protocols are not supported, There are better tools such as viu or timg for cross-protocol terminal image viewing, please go and give them love, this is not a serious project.
Pull requests implementing different protocols are allowed as long as they don't break minimal wasm32-wasi+ANSI compatibility.
cargo install viuwa
or for latest version
git clone https://github.com/WanderLanz/Viuwa.git && cd Viuwa && cargo install --path .
wasm
file is also available in the releases section (with rayon
feature disabled).
rayon
: Enables both parallel image resizing and conversions to ANSI. This is enabled by default.
viuwa [image]
viuwa [image] --inline
viuwa --help
VIUWA_QUIET
: If set totrue
, viuwa will not print any messages or warnings.VIUWA_FILTER
: Set the filter type to use when resizing the image. Possible values areNearest
,Triangle
,CatmullRom
,Gaussian
,Lanczos3
. Defaults toNearest
.VIUWA_COLOR
: Set the color type of the output ansi image. Possible values areTruecolor
,256
,Gray
, and256Gray
. Defaults toTruecolor
.VIUWA_CORRECT
: Set the luma correction level for 256 color mode, allows more pixels to be converted to grayscale for better contrast. 0-100, Defaults to100
.
With inline flag:
VIUWA_INLINE
: If set totrue
, viuwa will inline the resulting ANSI image instead of using a tui.VIUWA_WIDTH
: Set width of inlined ANSI image, else does nothing.VIUWA_HEIGHT
: Set height of inlined ANSI image, else does nothing.
inlined w/ nearest filter
tui w/ triangle filter
tui help
- On wasm, ANSI raw mode sequences are commonly ignored, so you may need to press enter to send input to the program.
- Some wasm runtimes may kill the program waiting for user input. May cause terminal to be left in a weird state.
This project is licensed under MIT or Apache-2.0.
You are free and welcome to contribute to this project. See CONTRIBUTING.md for more information.