v0.5.0  ·  Free & open source

The viewer
that just opens.

Fast, keyboard-driven image viewer and converter for Linux, macOS and Windows. GPU-accelerated. Instant load. No clutter — just your images, now.

Apache 2.0 — your images stay yours.

Glanvu image viewer showing photos, diagrams and technical images

Everything you need.
Nothing you don't.

Instant load

Images open in milliseconds. GPU-accelerated decode means no waiting, no progress bar — even large files feel immediate.

Keyboard-first

Walk folders, zoom, pan, rotate, go fullscreen — all from the keyboard. Press H for the full cheatsheet, any time.

Thumbnail grid

Press Tab for a scrollable overview of the whole folder. Navigate with arrow keys, jump to any image instantly.

Real batch pipeline

Convert, resize, crop, rotate, re-quality and rename entire folders in parallel. One command. Thousands of files. Headless — no GPU needed.

Wide format support

JPEG, PNG, WebP, GIF, BMP, TIFF — all decoded by pure-Rust codecs. No system C libraries. No install surprises.

Truly cross-platform

One Rust codebase. Native performance on Linux, macOS and Windows. No Electron, no runtime, no compromise.

Built for every workflow.

From casual browsing to power-user navigation — one tool, every use case.

Directory explorer  Enter
Thumbnail grid  Tab
Slideshow  S
Full cheatsheet  H

A real batch pipeline.

glanvu convert decodes, transforms and re-encodes entire folders in parallel — headless, no display, no GPU.

  • Fixed pipeline: crop → rotate → resize → encode
  • Parallel execution via Rayon — all CPU cores
  • Refuses to overwrite inputs or collide outputs
  • Rename patterns: {stem}, {n:04}
Terminal
$ glanvu convert \
    --to webp --resize 2000x2000 \
    --out web/ photos/*.jpg
photo_001.jpg → web/photo_001.webp
photo_002.jpg → web/photo_002.webp
photo_003.jpg → web/photo_003.webp
converted 127, failed 0

$ glanvu convert \
    --to jpg --quality 85 \
    --crop 0,0,800x600 --rotate 90 \
    scan.png
scan.png → scan.jpg

$ glanvu convert \
    --to webp --rename "trip_{n:03}" \
    --out out/ *.jpg
IMG_4231.jpg → out/trip_001.webp
IMG_4232.jpg → out/trip_002.webp
...

Built to last.

Clean architecture. Strict by default. No shortcuts.

Pure Rust, zero system deps

All Phase 1 decoders are pure-Rust crates. No libjpeg, libpng or libwebp linked at runtime. Consistent behavior everywhere, zero install surprises.

GPU-free headless core

The image engine and viewer state have zero GPU dependencies. The batch CLI runs on any server, CI machine, or embedded system with no display.

Strict by default

The workspace enforces unsafe_code = deny and clippy::all = warn. No exceptions without review. Clean-room, independent implementation.

Built for extension

RAW, AVIF, DICOM, CAD, 3D formats and gigapixel images on the roadmap. Each codec added behind a sandboxed plugin layer — no blast radius into the core.

glanvu-core Decode · convert · metadata — headless, reusable anywhere
glanvu-viewer-core Folder nav · thumbnails · grid · explorer — no GPU
glanvu wgpu viewer + CLI — GPU/window layer only

Get Glanvu.

Version v0.5.0 — download directly or build from source.

macOS

macOS 12 Monterey and later
Apple Silicon (arm64)

Download .zip

Build from source (Intel / Rosetta 2)

Homebrew brew tap glanvu/glanvu brew install --cask glanvu

Windows

Windows 10 / 11
x64

Download .zip

Scoop · Build from source

Coming soon winget · Chocolatey

Star the repo on GitHub to get release notifications when packaged installers ship.

Stay in the loop.

One email when the first packaged release for your platform is ready. No spam.