explaingit

metin-aksu/miviewer

Analysis updated 2026-05-18

17SwiftAudience · generalComplexity · 1/5Setup · easy

TLDR

A fast, minimal macOS image viewer that lets you browse every picture in a folder using the keyboard.

Mindmap

mindmap
  root((miViewer))
    What it does
      Folder aware image viewer
      Wrap around navigation
      Zoom and pan
    Tech stack
      Swift
      SwiftUI
    Use cases
      Browse folder images
      Set as default viewer
      Drag and drop opening
    Audience
      Mac users
      Photo browsers

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Browse all images in a folder using arrow keys without opening a full photo app.

USE CASE 2

Zoom into photos at 100 percent or fit them to the window and pan around.

USE CASE 3

Set miViewer as the default app for opening images on macOS.

USE CASE 4

Quickly preview screenshots or downloaded images by dragging them onto the window.

What is it built with?

SwiftSwiftUI

How does it compare?

metin-aksu/mivieweralbertofettucini/councilc-limlim/dday_in_mac_menubar
Stars171717
LanguageSwiftSwiftSwift
Setup difficultyeasyeasyeasy
Complexity1/52/51/5
Audiencegeneralpm foundergeneral

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 5min

First launch needs a right click Open to bypass the unnotarized app warning.

In plain English

miViewer is a small macOS app for looking at images one at a time, built to be fast and simple. When you open a single image, it automatically finds every other image in that same folder and lets you move between them using the keyboard or a small bar of on screen buttons at the bottom of the window. Navigation wraps around, so after reaching the last image in a folder it loops back to the first one, and the same happens going backward from the first image. Files are sorted in what the README calls natural order, meaning a file named img2 comes before img10 rather than being sorted as plain text. You can zoom in and out, jump straight to 100 percent (actual pixel size), or fit the image to the window, and when zoomed in you can pan around by scrolling. The app supports every image format that macOS itself recognizes, including JPEG, PNG, HEIC, GIF, TIFF, and WebP. It remembers your window size and full screen state between launches, and you can also open an image simply by dragging it onto the window. There is no sandboxing, which the README explains is what allows the app to read other images in the same folder without asking for extra permission each time. miViewer is built with SwiftUI and works as a universal binary, meaning it runs natively on both Apple Silicon and Intel Macs, and requires macOS 14 (Sonoma) or later. It can be installed through Homebrew with a custom tap, or downloaded directly as a DMG file from the releases page. The README notes the app is signed with a Developer ID but not yet notarized, so macOS may show a warning the first time you open it, which can be bypassed through the right click Open menu or the Privacy and Security settings. The documentation is also provided in Turkish alongside English.

Copy-paste prompts

Prompt 1
Help me build a SwiftUI macOS app that browses images in a folder like miViewer.
Prompt 2
Explain how natural sorting like img2 before img10 works in Swift.
Prompt 3
Show me how to distribute a signed but non-notarized macOS app the way miViewer does.

Frequently asked questions

What is miviewer?

A fast, minimal macOS image viewer that lets you browse every picture in a folder using the keyboard.

What language is miviewer written in?

Mainly Swift. The stack also includes Swift, SwiftUI.

How hard is miviewer to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is miviewer for?

Mainly general.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.