Free and open source for Windows 10 and 11

The apps your files should open with.

Glint opens images, Flick plays video, and Leaf reads PDF and Word documents. Each one opens the moment you double-click a file, keeps its interface out of your way, and can be controlled from the command line. That last part makes them a natural fit next to Claude Code.

  • Written in Rust
  • MIT licensed
  • No account, no telemetry
  • Version 0.1.0
Glint showing a pixel-art platformer scene at a crisp 500 percent zoom. Flick paused on Big Buck Bunny, with a clip from 1:31 to 1:47 marked on the timeline. Leaf showing the Wikipedia article about leaves in night mode, with search results for chlorophyll in the sidebar.
These are real screenshots. Each app captured its own window with its built-in snap command.

Glint · images

See every pixel exactly as it is.

Glint is an image viewer made for game sprites and screenshots. It measures zoom in real screen pixels and snaps to whole steps such as 200%, 300% and 400%, so pixel art never turns blurry. When you need to check a change, it compares two images and tells you precisely how different they are.

meadow.png — Glint Live demo
meadow.png · 459 × 220 · PNG Point at a pixel —

Try it: scroll over the image to zoom, drag to move around, and point at any pixel to read its colour. Switch to Diff or Swipe to compare the scene with a palette-swapped copy. G grid 0 fit 1–9 zoom M next mode

Pixel art stays crisp.

Small sprites open at the largest whole-number scale that fits the window, and a pixel grid fades in from 600%. Smooth scaling is one key away when you want it.

It opens almost anything.

PNG, JPEG, GIF, WebP, Aseprite, DDS, EXR and a dozen more formats are built in, and AVIF, HEIC, PSD and camera RAW go through ImageMagick. Glint recognises files by their contents, so a JPEG named .png still opens.

It understands sprite sheets.

The sprite-sheet panel slices any grid, can detect the grid from the gaps between sprites, numbers every cell and previews the cells as an animation. Aseprite files play with their tags.

Comparisons come with numbers.

Diff, side-by-side, onion-skin and swipe modes show what changed, and Glint reports the count of differing pixels, the largest channel change, RMSE and PSNR. In Explorer you can select two images and choose “Compare with Glint”.

Glint at 1000 percent zoom with the pixel grid over a pixel-art character.
At 1000% the pixel grid appears, and every pixel of the character stays perfectly square.
Glint's swipe compare mode with metrics in the bottom bar.
Swipe mode in the real app. The bottom bar reports 96,023 differing pixels and a PSNR of 17.5 dB, the same numbers the demo above computes.

Flick · video

Play anything, then cut exactly the part you want.

Flick is a video player built on libmpv, so it plays every format that mpv and FFmpeg understand, with hardware decoding. Its controls fade away while a video plays. When you mark a clip or draw a crop, Flick reports both as exact ffmpeg arguments that you or an agent can run straight away.

bunny.mp4 — Flick Live demo
0:00 / 0:20
pwsh — flick state

            
The command Flick hands you

            

Try it: press play, then press [ and ] to mark a clip. The clip loops so you can check it. Press C and drag over the video to draw a crop. The state and the ffmpeg command update as you go. Space play , . step a frame ← → 1 second L loop

The interface stays calm.

A slim control bar fades out while a video plays and returns when you move the mouse. Flick remembers where you stopped in every file and keeps the display awake while you watch.

It is built for cutting.

You can step frame by frame, loop a marked clip while you check it, and draw crop regions measured in real video pixels. flick state reports all of it as JSON.

Links and subtitles just work.

Paste a link with CtrlV and Flick plays it. Subtitles next to the video load automatically, and you can drop an .srt file onto the window to add one.

Edits show up on their own.

When a file changes on disk, Flick reloads it at the same position, so a re-encode appears without you lifting a finger. flick contact tiles a whole video into one image.

Flick with a clip from 1:31 to 1:47 marked on the timeline.
The real app with a clip marked from 1:31 to 1:47. The clip label sits at the right of the control bar.
Flick with a 672 by 800 crop region drawn around the bunny.
A crop region of 672 × 800 pixels. Flick reports it as crop=672:800:360:180.

Leaf · PDF and Word

Read documents comfortably, by day or by night.

Leaf renders PDFs with pdfium, the engine inside Chrome, and opens Word documents as a single clean column that wraps to the window. Its search finds words even when they are hyphenated across a line break, and the text you copy comes out as proper paragraphs.

Leaf.docx — Leaf Live demo

Try it: the search already found “photosynthesis” four times, including once where the word is split across two lines. Type another word, press Enter to step through the matches, select a few lines and copy them, or press D for night mode. CtrlF find Enter next match D night mode

Search finds what you meant.

Every match is highlighted and listed with its surrounding text, and ticks on the scrollbar show where the matches are. A word broken as “exam-” and “ple” still matches “example”.

Copied text is clean.

Leaf joins line breaks back into paragraphs and rejoins hyphenated words, so a quote pasted into an email or a prompt reads like the original sentence.

Night mode keeps photos real.

Pressing D turns pages dark for reading at night, while photos and figures keep their true colours instead of being inverted.

It reloads while you write.

When a LaTeX or Typst build, a script or Claude rewrites the file, Leaf reloads it in place. It also remembers your page and zoom for every document.

A PDF page rendered by Leaf in normal mode.
The same page rendered by Leaf in night mode, with the photos still in colour.
leaf renderleaf render --dark
This is Leaf's real output for a PDF page. The left side comes from leaf render and the right side from leaf render --dark. Drag the handle and notice that the text and background change while the photographs stay exactly as they were.

Always ready

Double-click a file, and it's already open.

When you close the window, the app keeps running quietly in the system tray, and it starts with Windows. The next file you double-click opens straight away, with no splash screen and no waiting. Glint opens an image in under 100 milliseconds.

Double-click a file to open it.

Nothing is open yet

Choose a file on the left.

Built for working with agents

You point at it. Claude does the rest.

Every app can describe what is on screen as JSON, including your selection, marks, page and zoom, and every app can be controlled from a script. You mark something in the viewer, an agent like Claude Code reads it and does the work, and the viewer reloads to show you the result.

claude

> trim the part I marked in flick and crop it to the box

● Bash(flick state)

⎿ clip -ss 00:01:31.500 -to 00:01:47.200 · region crop=672:800:360:180

● Bash(ffmpeg -ss 00:01:31.500 -to 00:01:47.200 -i bunny.mp4 -vf crop=672:800:360:180 apple.mp4)

⎿ apple.mp4 · 15.7 s · 672×800

● Bash(flick open apple.mp4)

● Done. The new clip is 15.7 seconds long, cropped to the bunny, and it's playing in Flick now.

glint

state
Reports the file, zoom, visible area and the pixel under the cursor.
snap
Saves exactly what the viewer shows as a PNG.
compare
Prints AE, RMSE and PSNR, then opens compare mode.
edit
Crops, trims, scales or converts an image, with undo.

flick

state
Reports the position, clip marks, crop region and tracks.
ctl
Seeks, pauses or loops the running player.
frame
Saves any single frame without opening the player.
contact
Tiles frames from a whole video into one image.

leaf

state
Reports the page, zoom, selection and search.
text
Prints PDF text page by page, or a Word file as Markdown.
find
Lists every match with its page and context.
render
Renders a page or a region of it as a PNG.

One family

Three apps that feel like one.

Download

Make them your defaults.

All three apps are free and open source. They run on Windows 10 and 11 (64-bit), and each one installs on its own in a few seconds.

Glint Images and sprite sheets Download Glint Version 0.1.0 · 12.5 MB · Source
Flick Video and audio Download Flick Version 0.1.0 · 49 MB · Source
Leaf PDF and Word documents Download Leaf Version 0.1.0 · 10.6 MB · Source
  1. Unzip the download. You can unzip it anywhere, for example in your Downloads folder.
  2. Double-click Install.cmd. The app installs for your user account only, adds its command to your PATH and starts in the tray.
  3. Approve the one prompt if you like. Windows asks once whether the app may become your default. If you agree, it takes over its file types the next time you sign in.

The apps are not code-signed yet, so Windows SmartScreen may say that it “protected your PC”. Click More info and then Run anyway. Every line of code is public on GitHub, and you can remove an app at any time with Uninstall.cmd.

Build from source instead
git clone https://github.com/ethanma03/glint
cd glint
pwsh scripts\install.ps1   # builds, installs and registers file types
pwsh scripts\update.ps1    # later: pulls, rebuilds and reinstalls

You need Rust and the GitHub CLI. Flick and Leaf download libmpv and pdfium during their first build. The same steps work for flick and leaf.