The break reminder
you can't click away

MacBreak takes the screen when it's time to rest, and gives it back when you've actually rested.

macOS 13+ · Apple Silicon & Intel · Native Swift · Free & MIT · No telemetry

0% less blinking at a screen
0 hrs average daily screen time
0% of your brain is water

Three ways to take care of yourself

Eye strain, stiffness, and dehydration are three different problems. One timer can't fix all of them.

👁

Rest your eyes

every 30 min · 30 seconds

The 20-20-20 rule, enforced. Ten different prompts so you keep reading instead of tuning it out.

🚶

Time for a walk

every 2 hours · 10 minutes

Long enough to actually leave the chair. Take a lap, stretch, go look at the sky.

💧

Drink water?

optional · every 45 min · skippable

Say yes and the timer resets. Skip, and it nudges you sooner. Your history stays local with weekly suggestions.

Not a notification. A takeover.

A banner you swat away isn't a break. MacBreak covers every display and holds it until the rest is over.

MacBreak's eye-rest overlay filling the screen with a sea-glass countdown dial.
The eye break — a dial drains, then the screen comes back on its own.
MacBreak's walk overlay with a sand-to-sage countdown dial.
The walk break — ten minutes. Your desktop is there, just out of reach.

Built different

~1,400 lines of Swift. No Electron, no runtime, no dependencies. About 10 MB of memory while it waits.

Every display, every SpaceCovers all monitors, above full-screen apps. Re-takes focus if another app grabs it.
No way to end it earlyNo Done button. The dial drains for the whole rest. The rest is the point.
Screen lock = a breakLocked for 5+ minutes? Both clocks restart. No eye break 30 seconds after you sit down.
Menu bar, not DockOne quiet icon. A countdown appears only when a break is close. No attention tax.
Snooze & pauseSnooze defers one break. Pause stops everything until you resume.
No account, no telemetryZero network code. Nothing leaves your machine, ever. You can read every line.

Coming from Safe Eyes or Stretchly?

Safe Eyes only runs on Linux. Stretchly and BreakTimer run on Mac through Electron. MacBreak is the native option.
See how they compare on macOS →

Install

Two ways in. Both take about a minute.

Homebrew
brew install --cask deepakk33/tap/macbreak
open -a MacBreak   # then tick "Start at login"
Or build from source
curl -fsSL https://raw.githubusercontent.com/deepakk33/macbreak/main/scripts/bootstrap.sh | bash

Compiles on your machine — no Gatekeeper prompt. Needs xcode-select --install, not the full Xcode.

Questions

Does it work with multiple monitors?

Yes. Every display is covered, each with its own countdown and buttons.

Is MacBreak free?

Yes. Free and open source under the MIT licence. No paid tier, no account, no ads.

Does it work on Intel Macs?

Yes. Every build is universal — Apple Silicon and Intel — and runs on macOS 13 Ventura or later.

Is there a version of Safe Eyes for Mac?

Not officially. MacBreak covers the same ground natively. Read the comparison.

How do I follow the 20-20-20 rule?

Set "Look away every" to 20 min and "Look away for" to 20 sec in Preferences. More on the rule.

Does it phone home?

No. Zero network code. Nothing leaves your machine.

How do water reminders work?

Off by default. Enable in Preferences, and every 45 min (configurable) a 15-second overlay asks "drink or skip?" Drink resets the full timer; skip brings the next one sooner. All data stays local with weekly suggestions.

What if I'm in a meeting?

Snooze, or Pause from the menu bar. Pause stops all clocks until you resume.

How do I uninstall?

brew uninstall --cask macbreak or make uninstall from source. Both stop it and remove the login agent.

Why not Electron?

A break reminder at 200 MB is its own problem. This is AppKit — ~1,400 lines of Swift, ~10 MB of memory, zero dependencies.

Rest your eyes
Look at something 20 metres away
0:10
Unclench your jaw · Drop your shoulders · Breathe out slowly