v0.9.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, with multi-selection (Shift / Ctrl-⌘ click, rubber-band drag) for batch actions.

Find by name

Press F for a fuzzy search across the folder — a floating match list in single view, or a live thumbnail filter in the grid.

Manage in place

Rename (R) and move to Trash (Delete) — single or a whole selection — each behind a confirmation. Glanvu tracks changes on disk and refreshes itself.

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, ICO, QOI, EXR (HDR), DDS, PNM, farbfeld, TGA and SVG — all decoded by pure-Rust codecs, no system C libraries. Plus multi-page PDF viewing, via the industry-standard PDFium renderer.

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.

File info  I
Find by name  F
Thumbnail grid  Tab
Directory explorer  Enter
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.9.0 — download directly or build from source.

macOS

macOS 12 Monterey and later
Apple Silicon · Intel (x86_64)

Build from source

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

Windows

Windows 10 / 11
x64

Download .zip

Scoop · Build from source

Coming soon winget · Chocolatey

The macOS app is ad-hoc signed but not notarized. On first launch, open System Settings → Privacy & Security and click Open Anyway. On Windows, click More info → Run anyway when SmartScreen prompts.

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.