Vigil is a lightweight macOS menu bar application that prevents the system from sleeping. Dead simple but effective.
Motivation: Learning project + desire for a lightweight alternative to Amphetamine and similar tools. No bloat, no subscriptions, no unnecessary features.
For technical architecture, see ARCHITECTURE.md.
- Menu bar icon with active/inactive states
- Dropdown popover with on/off toggle
- Create/release power assertion (idle + display sleep prevention)
- Launch at login toggle (default: OFF)
- "Remember last state" toggle (persisted across launches)
- Quit option
- App icon
- Mode presets: "Display & System" / "System Only" (segmented picker)
- Description text explaining each mode's behavior
- Timer picker (preset durations + custom)
- Auto-deactivate after timer expires
- Notification when timer expires
- App Store Connect app record ("Vigil - Stay Awake")
- Xcode Cloud CI/CD (archive + TestFlight)
- TestFlight Internal Testing (live, build verified)
- TestFlight External Testing (submitted for Beta App Review)
- Privacy manifest (PrivacyInfo.xcprivacy)
- App Store metadata (description, keywords, screenshots, age rating, privacy labels)
- Website with privacy policy and support pages
- Mac App Store submission
- Homebrew Cask formula
- Notarized DMG for direct download
- Icon design: Custom lighthouse artwork — full opacity when active, dimmed when inactive (popover hero)
- Sleep modes: Two presets — "Display & System" and "System Only" — one active at a time
- Notifications (MVP): None — icon state change is sufficient for user-initiated toggles. Notifications reserved for timer expiry (v0.3)
- Quit while active: No confirmation dialog — just quit and release
- Error UX (MVP): Silent failure — if sleep prevention can't activate, the toggle stays off. Acceptable because the underlying API virtually never fails in practice