Skip to content

Repository files navigation

EyeBreak πŸ‘οΈ

Your eyes deserve a break.

Smart 20-20-20 reminders for macOS. Lives in your menu bar. Triggers TV static when it's time to rest.

Download License: MIT Swift Platform Product Hunt

Download Β· Website Β· Report Bug Β· Request Feature

EyeBreak Hero

Why EyeBreak?

Staring at screens all day causes digital eye strain β€” headaches, dry eyes, blurred vision. The 20-20-20 rule (every 20 min, look 20 feet away for 20 seconds) is clinically proven to help, but reminders are easy to dismiss.

EyeBreak takes a different approach: when break time comes, your screen fills with TV static. No countdown to stare at, no pretty animation. Just a boring screen that makes you look away naturally.


Features

πŸ†“ Free Forever

  • βœ… Smart 20-20-20 reminders
  • βœ… TV static break overlay
  • βœ… Menu bar timer with arc progress
  • βœ… Pause, snooze, skip controls
  • βœ… Auto-start on login
  • βœ… Arabic + English (auto-detect)
  • βœ… Auto-update from GitHub
  • βœ… ~100 KB, zero dependencies

⭐ Pro (Coming Soon)

  • πŸ“Š Weekly statistics & charts
  • πŸ”Š Custom alert sounds
  • 🎨 Overlay customization
  • πŸ… Pomodoro mode
  • πŸ“… Monthly PDF reports
  • πŸ’° One-time $4.99 (no subscription)

Screenshots

Menu Bar Settings Break Overlay

Installation

Option 1: Download DMG (recommended)

  1. Download the latest DMG
  2. Open the DMG and drag EyeBreak to /Applications
  3. Right-click the app β†’ Open (first time only β€” due to macOS security)

Option 2: Homebrew (coming soon)

brew install --cask eyebreak

Option 3: Build from Source

git clone https://github.com/MayadahAA/EyeBreak.git
cd EyeBreak
make run

Requirements

Requirement Version
macOS 13 (Ventura) or later
Swift 5.9+ (for building)
Disk ~1 MB

Usage

  1. Launch β€” an eye icon appears in your menu bar
  2. Click to view the timer, stats, and settings
  3. Work normally β€” EyeBreak runs quietly in the background
  4. Break time β€” your screen fills with TV static for 20 seconds
  5. Press ESC anytime to skip a break

Architecture

EyeBreak uses an Open Core model. The free version in this repo is fully functional and open source. Pro features are distributed as signed DMG builds.

EyeBreak/
β”œβ”€β”€ Sources/EyeBreak/       # Core app (free, open source)
β”‚   β”œβ”€β”€ EyeBreakApp.swift           # Entry point
β”‚   β”œβ”€β”€ TimerManager.swift          # Timer + stats engine
β”‚   β”œβ”€β”€ SettingsManager.swift       # UserDefaults + login item
β”‚   β”œβ”€β”€ NotificationManager.swift   # macOS notifications
β”‚   β”œβ”€β”€ BreakOverlayWindow.swift    # TV static NSPanel
β”‚   β”œβ”€β”€ MenuBarView.swift           # SwiftUI popover
β”‚   β”œβ”€β”€ Strings.swift               # AR + EN localization
β”‚   β”œβ”€β”€ ProManager.swift            # Pro stub (free build)
β”‚   └── UpdateManager.swift         # GitHub Releases checker
β”œβ”€β”€ Resources/Info.plist            # App bundle metadata
β”œβ”€β”€ scripts/                        # Build + release tooling
β”œβ”€β”€ website/                        # Landing page (GitHub Pages)
└── docs/                           # Documentation + screenshots

Tech stack: Swift 5.9 Β· SwiftUI Β· AppKit Β· UserNotifications Β· ServiceManagement Β· Combine Β· Swift Package Manager

Zero external dependencies.


Development

# Build release
make

# Build + launch
make run

# Install to /Applications
make install

# Demo mode (10-second timer for testing)
open build/EyeBreak.app --args --demo

# Create distribution DMG
bash scripts/create-dmg.sh

Roadmap

  • v1.0 β€” Initial release: menu bar app, TV static, AR/EN
  • v1.1 β€” Pro features: weekly stats, custom sounds, Pomodoro
  • v1.2 β€” Homebrew Cask distribution
  • v1.3 β€” Apple Notarization (no security warnings)
  • v2.0 β€” iOS companion app (Shortcut integration)

See CHANGELOG.md for version history.


Contributing

Contributions welcome! Please read CONTRIBUTING.md first.

Quick guide:

  1. Fork the repo
  2. Create a feature branch (git checkout -b feat/amazing-feature)
  3. Commit (git commit -m 'feat: add amazing feature')
  4. Push (git push origin feat/amazing-feature)
  5. Open a Pull Request

Support


License

EyeBreak is released under the MIT License.


Built with ❀️ by MayadahAA

Made using Claude Code Β· Inspired by the 20-20-20 rule

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages