A native macOS menu bar app that automatically captures screenshots at regular intervals with optional annotations, compression, and custom quality settings.
Recommended settings: 1280px, 40% compression
- Menu bar integration - Quick access from anywhere
- Automated intervals - 30 seconds to 1 hour intervals
- Play/Pause control - Easy start/stop
- Auto-resume - Continues capturing after app restart
- Manual annotations - Popup prompts for custom notes per screenshot
- Preset annotations - Set once, apply to all screenshots automatically
- Stylish overlays - Professional semi-transparent text boxes on images
- Skip option - Press ESC to save without annotation
- Resolution options
- Original (full resolution)
- High (1920px)
- Medium (1280px)
- Low (960px)
- Very Low (640px)
- Minimal (480px)
- Compression slider - 10% to 100% JPEG quality
- File size estimation - Real-time preview of output size
- Actual pixel-accurate resizing - True dimensions, not retina-scaled
- Configurable save location - Choose any folder
- Timestamp filenames - Optional date/time in filename
- Camera sound toggle - Enable/disable capture sound
- Persistent settings - All preferences saved automatically
- macOS 14.0 or later
- Xcode 15.0 or later (for building)
- Apple Silicon (M1 series) or Intel Mac
-
Clone or download the project
-
Open in Xcode
open AutoScreenshot.xcodeproj
-
Select your development team
- Select project in sidebar
- Go to "Signing & Capabilities"
- Choose your Apple ID/team from dropdown
-
Build and run
- Press β+R or click Run button
- App appears in menu bar (camera icon)
Note: App Sandbox is already disabled in the project to allow file system access.
- Click camera icon in menu bar
- Choose save location with "Choose..." button
- Select interval (e.g., 5 minutes)
- Configure quality settings (optional)
- Press Start button
- Enable "Enable annotation prompts"
- After each screenshot, a window appears
- Type 1-2 sentences
- Press
Cmd+Enterto save orESCto skip
- Enable "Use preset annotation"
- Enter text in preset field (e.g., "Working on project X")
- Press Start
- Text automatically applied to all screenshots - no interruptions!
- Disable both toggles
- Screenshots saved immediately without any text overlay
In annotation window:
Cmd + Enter- Save with annotationESC- Skip annotation
Intervals:
- 30 seconds
- 1 minute
- 5 minutes
- 10 minutes
- 15 minutes
- 20 minutes
- 30 minutes
- 1 hour
Image Quality:
- Choose resolution (Original to 480px)
- Adjust compression (10-100%)
- View estimated file size
File Sizes (approximate):
- Original + 100%: ~3 MB
- Medium (1280px) + 70%: ~500 KB
- Minimal (480px) + 30%: ~30-50 KB
- Capture - Uses macOS native
screencapturecommand - Annotation - Optionally adds text overlay with styled background
- Resize - Scales to selected resolution using bitmap rendering
- Compress - Converts to JPEG with chosen quality
- Save - Writes to your specified folder
- SwiftUI - Modern native macOS UI
- Bitmap rendering - Pixel-accurate resizing (not retina-scaled)
- JPEG compression - Efficient file sizes
- Timer-based - Reliable interval triggering
- UserDefaults - Settings persistence
AutoScreenshot/
βββ AutoScreenshotApp.swift # Main app code
βββ Info.plist # App configuration
βββ Assets.xcassets/ # App icons
Solution: Disable App Sandbox
- Project settings β Signing & Capabilities
- Remove "App Sandbox" capability
Fixed in latest version - Now uses bitmap-based rendering for accurate pixel dimensions
Fixed in latest version - Improved annotation window layout
Solution: Disable App Sandbox (see above)
Settings stored in UserDefaults:
- Interval
- Save directory
- Image quality
- Compression level
- Annotation preferences
- Screenshot count
- Minimal CPU usage when idle
- Low memory footprint (~50-100 MB)
- No background processes when paused
- Efficient JPEG compression reduces disk usage
- Time-lapse projects - Document progress over hours/days
- Productivity tracking - Visual log of work sessions
- Tutorial creation - Capture step-by-step workflows
- Client reporting - Show project development
- Personal diary - Visual timeline with notes
- Focus sessions - Automatic documentation without interruption
Potential future features:
- Multiple display selection
- Cloud sync integration
- Screenshot preview thumbnails
- Custom keyboard shortcuts
- Export as video/GIF
- Scheduled start/stop times
- No data collection - Everything stored locally
- No network access - Fully offline
- User-controlled - You choose where files are saved
- No telemetry - No analytics or tracking
MIT License - Feel free to modify and distribute
Built with Swift and SwiftUI for macOS
For issues or questions, check the troubleshooting section or review the code comments.
Tip: For long recording sessions, use lower quality settings (640px + 50% compression) to save disk space while maintaining readability.