A tiny open-source macOS menu bar app for keeping the machine awake during long-running work.
Click the eye in the menu bar and toggle Enable Wakelock. While enabled, the app uses native IOKit power assertions to prevent idle display sleep and idle system sleep.
macOS public power assertions may still sleep for lid close, Apple menu sleep, low battery, and other system sleep reasons. True no-display clamshell override without an external display is not available through the public IOKit assertion API alone.
- Menu bar only, no persistent window
- Native IOKit power assertions
- State-aware menu bar icon: open eye when active, closed/slashed eye when inactive
- Battery guard with configurable auto-disable threshold
- Launch-at-login toggle in the menu
- Minimal commands:
Enable Wakelock,Disable Wakelock,Quit - Branded AppKit popover with bundled Syne, Inter, and JetBrains Mono fonts
- Geometric Vigil eye app icon
- SwiftPM build, test, run, and release scripts
./script/build_and_run.shThe built app bundle is staged at dist/Vigil.app.
swift test./script/package_release.shThe release script builds the Vigil eye icon, stages dist/release/Vigil.app, signs it with the configured Developer ID identity, verifies the signature, and creates:
dist/Vigil-1.0.0-notarization.zipdist/Vigil-1.0.0.dmg
Set NOTARY_PROFILE=auc-notary or NOTARYTOOL_PROFILE=<profile> to submit and staple notarization.
A cask template lives at packaging/homebrew/vigil.rb. Replace the release URL/checksum after publishing a notarized DMG.
Vigil does not collect analytics, store user data, or make network requests.
MIT
