A lightweight macOS menubar app for browsing, previewing, and managing your screenshots and screen recordings.
- Menubar access — Lives in your menubar for instant access. No dock icon.
- Auto-detection — Reads your macOS screenshot location from system preferences, or lets you pick a custom folder.
- Live updating — Watches your screenshot directory and refreshes automatically when new files appear.
- Screenshots & videos — Supports
.pngscreenshots and.movscreen recordings with video thumbnail generation and a frosted play indicator. - QuickLook preview — Select a tile and press Space to preview. Press Space again to dismiss.
- Keyboard navigation — Arrow keys navigate the grid. QuickLook updates as you move.
- Context menu — Right-click any tile for Open, Open With, Show in Finder, Copy, and Move to Trash.
- Drag & drop — Drag thumbnails directly into other apps.
- Configurable directory — Choose any folder via the settings pane; persists across launches.
| Key | Action |
|---|---|
| Space | Toggle QuickLook preview for selected item |
| Arrow keys | Navigate the thumbnail grid |
| Double-click | Open with default app |
| Right-click | Context menu (Open, Open With, Finder, Copy, Trash) |
ScreenshotPal is a hybrid SwiftUI + AppKit app:
- AppKit handles system integration —
NSStatusBarfor the menubar icon,NSPopoverfor the floating panel,NSEventmonitors for keyboard/mouse handling. - SwiftUI provides all user-facing views — the screenshot grid, thumbnails, settings pane, and empty states.
- DispatchSource watches the screenshot directory at the file-descriptor level for real-time updates.
- AVAssetImageGenerator extracts first-frame thumbnails from screen recordings.
- QLPreviewView in a non-activating
NSPanelprovides QuickLook without stealing focus from the popover.
ScreenshotPal/
├── AppDelegate.swift # Menubar icon, popover, click monitoring
├── ScreenshotPalApp.swift # SwiftUI entry point
├── Models/
│ ├── Screenshot.swift # Data model (image or video)
│ ├── ScreenshotStore.swift # State, file loading, directory watching
│ └── ScreenshotDirectoryManager.swift # OS detection, custom path persistence
├── Views/
│ ├── MenubarPopover.swift # Main UI, QuickLook, keyboard handling
│ ├── ScreenshotGrid.swift # 3-column LazyVGrid
│ ├── ScreenshotThumbnail.swift # Tile with hover, selection, context menu
│ └── SettingsView.swift # Directory picker
└── Resources/
└── Assets.xcassets/ # App icon
Open ScreenshotPal.xcodeproj in Xcode and build, or from the command line:
xcodebuild build -project ScreenshotPal.xcodeproj -scheme ScreenshotPal -configuration DebugRequires macOS 14+ and Xcode 15+.
- Launch the app — an icon appears in your menubar.
- Left-click the icon to open the screenshot browser.
- Right-click the icon to quit.
- Click the gear icon to change the screenshot directory.
Inspired by Shotty, a fantastic screenshot manager for macOS. ScreenshotPal is a free, open-source alternative built as a learning project.
App icon by bloxxk via macOS Icons.

