Skip to content

Latest commit

 

History

61 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

Twenty Logo

Twenty

Native macOS app for the 20-20-20 eye break rule.

Latest Release Platform macOS Swift 5

FeaturesDownloadUsageRequirementsBuilding from SourceProject Structure

Twenty Demo


Overview

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.

Features

Core Timer

  • Configurable break interval (default: 20 minutes)
  • Configurable break duration (default: 20 seconds)
  • Live countdown in the menu bar
  • Start break instantly from the menu

Break Experience

  • Full-screen animated overlay
  • Multi-display support
  • Text countdown or circular progress mode
  • Optional quotes during breaks
  • Postpone and Skip actions (with optional forced break mode by hiding skip)

Smart Behavior

  • 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

Releases

Download the latest build from the GitHub Releases page:

After download:

  1. Open the release asset (.dmg or .zip, depending on the release).
  2. Move Twenty.app to Applications.
  3. Launch the app from Applications or Spotlight.

If Gatekeeper warns on first launch, right-click the app and choose Open.

Requirements

  • macOS
  • Xcode (for local build from source)

Usage

  1. Launch Twenty.
  2. The app appears in the menu bar with the remaining time.
  3. When the timer reaches zero, a break is triggered.
  4. During break, choose:
  • Postpone to snooze
  • Skip to ignore (if enabled)
  1. Configure behavior from Preferences.

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

Building from Source

Clone

git clone https://github.com/AMSTAGU/Twenty.git
cd Twenty

Open in Xcode

open Twenty.xcodeproj

Build and Run

  • Select scheme: Twenty
  • Press Cmd + R

Command Line Build

xcodebuild -project Twenty.xcodeproj \
  -scheme Twenty \
  -configuration Release \
  -derivedDataPath build

Generated app path: build/Build/Products/Release/Twenty.app

Project Structure

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/

Privacy

Twenty runs locally and does not require a remote backend for core functionality.

Contributing

  1. Fork the repository.
  2. Create a branch:
git checkout -b codex/feature-name
  1. Commit your changes.
  2. Open a Pull Request.

Made by AMSTAGU

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages