Standup is a native macOS menu bar app that reminds you to stand up after a configurable focus period. It tracks continuous screen-session time locally, resets when the screen sleeps, the screen locks or unlocks, or you reset manually, and shows a full-screen glass reminder overlay when the target is reached.
- Native SwiftUI menu bar app with no external runtime dependency.
- Configurable focus target.
- Local screen-session tracking that keeps counting while the user session stays awake.
- Local debug log for state transitions at
~/Library/Logs/Standup/standup.log. - Full-screen reminder overlay with reset, Escape reset, auto-reset countdown, and later reminders.
- Optional Start at Login support through macOS login item APIs.
- macOS 13 or newer.
- Swift 5.8 or newer.
swift test
./build.sh
open build/Standup.appbuild.sh creates build/Standup.app and copies the bundled icon and animation resources into the app bundle.
Current GitHub release ZIPs are ad-hoc signed development builds. They are not Developer ID signed or notarized yet, so macOS Gatekeeper may block the first launch after download.
After confirming that the ZIP came from the project release page and that its checksum matches the release notes, technical users can install the app into /Applications and remove the download quarantine attribute:
sudo xattr -dr com.apple.quarantine /Applications/Standup.app
open /Applications/Standup.appFor broad distribution, Standup should use Developer ID signing and notarization instead of asking users to remove quarantine manually.
Standup is local-only in the current codebase. It does not include an app network client, telemetry, accounts, or cloud sync. It reads macOS idle and power assertion state to distinguish recent input from quiet screen time, stores the target timing preference in local user defaults, writes a small rotating debug log on the Mac, requests notification permission, and can register itself as a login item when the user enables Start at Login.
Security reporting is documented in SECURITY.md. The implementation-level security model is documented in docs/security.md.
See CONTRIBUTING.md. Keep tests and docs in sync with behavior changes.
Standup is open source under the MIT License.