Native macOS app for the 20-20-20 eye break rule.
Features • Download • Usage • Requirements • Building from Source • Project Structure
Twenty is a menu bar app that helps reduce eye strain with the 20-20-20 method: every 20 minutes, take a 20-second break and look at a distant point.
The app is lightweight, native, and designed to stay out of your way while still enforcing healthy screen habits.
- Configurable break interval (default: 20 minutes)
- Configurable break duration (default: 20 seconds)
- Live countdown in the menu bar
- Start break instantly from the menu
- Full-screen animated overlay
- Multi-display support
- Text countdown or circular progress mode
- Optional quotes during breaks
PostponeandSkipactions (with optional forced break mode by hiding skip)
- Optional non-blocking behavior in fullscreen apps
- Optional notification-only mode instead of overlay
- Temporary pause from menu bar (20m, 30m, 1h, 2h, 5h)
- Launch at login
Download the latest build from the GitHub Releases page:
After download:
- Open the release asset (
.dmgor.zip, depending on the release). - Move
Twenty.apptoApplications. - Launch the app from
Applicationsor Spotlight.
If Gatekeeper warns on first launch, right-click the app and choose Open.
- macOS
- Xcode (for local build from source)
- Launch Twenty.
- The app appears in the menu bar with the remaining time.
- When the timer reaches zero, a break is triggered.
- During break, choose:
Postponeto snoozeSkipto ignore (if enabled)
- Configure behavior from
Preferences.
| Tab | Options |
|---|---|
| General | Launch at login, notification sound |
| Pause | Interval, break duration, snooze duration, hide skip button |
| Display | Notification mode, circular progress, fullscreen behavior, quotes |
| About | Version info, GitHub link, support link |
git clone https://github.com/AMSTAGU/Twenty.git
cd Twentyopen Twenty.xcodeproj- Select scheme:
Twenty - Press
Cmd + R
xcodebuild -project Twenty.xcodeproj \
-scheme Twenty \
-configuration Release \
-derivedDataPath buildGenerated app path:
build/Build/Products/Release/Twenty.app
Twenty/
├── TwentyApp.swift
├── Managers/
│ ├── TimerManager.swift
│ ├── SettingsManager.swift
│ ├── OverlayManager.swift
│ ├── FullscreenDetector.swift
│ └── QuoteManager.swift
├── Views/
│ ├── MenuBarView.swift
│ ├── SettingsView.swift
│ ├── Settings/
│ └── Overlay/
├── Assets.xcassets/
└── docs/readme/
Twenty runs locally and does not require a remote backend for core functionality.
- Fork the repository.
- Create a branch:
git checkout -b codex/feature-name- Commit your changes.
- Open a Pull Request.
Made by AMSTAGU

