Cappy is a native macOS menu bar app for fast screenshots and lightweight markup. It captures regions, full displays, or individual windows, saves PNGs automatically, and lets you annotate the latest capture with arrows, shapes, and text.
The project is intentionally small: SwiftUI for the interface, AppKit/CoreGraphics where macOS integration is required, and no third-party dependencies.
- Region, full-screen, and window capture modes
- Global shortcuts:
Shift+Command+5for region captureShift+Command+6for full-screen captureShift+Command+7for window capture
- Native menu bar access for every capture mode
- Automatic PNG output to
~/Pictures/Cappy/ - Floating post-capture thumbnail
- Annotation editor with arrows, rectangles, ovals, text, color picker, line width, undo/redo, and save
- macOS-style overlay, picker, thumbnail, and editor UI
- No external packages
- macOS 14 Sonoma or later
- Xcode 15 or later
- Swift 5.9 or later
Clone the repository:
git clone https://github.com/leop25/Cappy.git
cd CappyBuild with Swift Package Manager:
swift buildFor day-to-day development, open the package in Xcode:
open Package.swiftThen select the Cappy scheme and run it on My Mac.
Start Cappy, then use the menu bar icon or one of the global shortcuts. Screenshots are saved immediately to:
~/Pictures/Cappy/
After a capture, click the floating thumbnail to open the annotation editor.
Press Command + S to overwrite the saved PNG with the annotated version.
Cappy/
├── CappyApp.swift
├── Models/
├── Services/
├── Views/
│ ├── Annotation/
│ ├── Capture/
│ └── MenuBar/
├── Utilities/
└── Resources/
Key implementation details:
MenuBarExtrakeeps the app lightweight and out of the Dock by default.- Carbon hotkeys register global capture shortcuts without requiring Accessibility permission.
- Borderless AppKit windows provide the capture overlay and floating thumbnail.
- SwiftUI
Canvasrenders the annotation editor. - CoreGraphics captures and PNG encoding keep the capture pipeline local and dependency-free.
Cappy is an early macOS utility. The core capture and annotation workflow is working, but distribution packaging, preferences, and broader automated tests are still good areas for future polish.
Issues and pull requests are welcome. Keep changes small, native, and dependency-free unless there is a clear reason to expand the stack.
MIT License. See LICENSE.