A macOS menu bar app that shows sunrise/sunset times and tracks how daylight changes day-to-day.
- Menu bar display - Shows daily daylight change (e.g., "+2m 14s")
- Multiple locations - Track sunrise/sunset for different cities
- Date navigation - Browse past/future dates with arrows or calendar picker
- Day comparisons - See changes vs previous day and vs last week
- City search - Find locations by name or enter coordinates manually
- Launch at Login - Optional auto-start on system boot
- Offline caching - Previously fetched data is cached in memory
The app lives in your menu bar showing the day length change:
+2m 14s
Click to see full details for all your locations:
┌─────────────────────────────────────┐
│ Sat 11 Jan 📅 < > ⚙ │
├─────────────────────────────────────┤
│ Stockholm +2m 14s │
│ 🌅 08:32 🌇 15:18 6h 46m │
│ vs previous day: │
│ ☀ 1m 9s earlier 🌙 1m 57s later │
│ vs last week: +15m 23s │
├─────────────────────────────────────┤
│ Älvdalen +2m 08s │
│ 🌅 08:45 🌇 14:52 6h 7m │
│ ... │
└─────────────────────────────────────┘
Requires Xcode 15+ or Swift 5.9+.
git clone <repo>
cd daylight
./build.sh
cp -r Daylight.app /Applications/open /Applications/Daylight.appOr just double-click the app in Finder.
- Click the menu bar text to open the dropdown
- Add locations via Settings (gear icon) → Add Location
- Navigate dates using
<>arrows or click the date for a calendar - Set primary location by clicking the star icon (determines menu bar display)
- Enable auto-start in Settings → Launch at Login
Sunrise/sunset times are fetched from sunrise-sunset.org, a free API that provides accurate solar calculation data.
# Quick build (debug)
swift build
# Release build with .app bundle
./build.shThe build script creates a signed Daylight.app bundle ready for use.
Daylight/
├── Models/ # Data structures
├── Services/ # API, persistence, geocoding
├── Views/ # SwiftUI views
├── AppDelegate.swift
├── DaylightApp.swift
└── Info.plist
- macOS 13.0 (Ventura) or later
- Internet connection (for fetching sun data)
MIT