Distraction Free

A local, open-source content blocker for macOS and Android. No backend, no accounts, no telemetry โ€” it runs entirely on your own device.

100% local open source no account needed battery-tested
๐ŸŽ
Download for macOS
.pkg installer ยท latest release
๐Ÿค–
Download for Android
.apk ยท sideload, no Play Store

Full install steps (both take under 2 minutes): see the Installation guide.

How it works, in plain terms

Most blockers live inside your browser โ€” easy to disable, and useless against apps. This one works differently: it sits at the network level, on your device, and decides whether to let a connection through before it ever reaches an app or browser.

๐Ÿ”’ Always blocked

Adult content, gambling, piracy sites, and known ways to bypass this kind of filter (VPNs/proxies built for evasion). No toggle, no schedule โ€” always on.

๐ŸŒ™ Scheduled

Instagram, TikTok, X, Facebook, Reddit, YouTube, LinkedIn: hard-blocked 8pmโ€“9am every night. Open the rest of the day, with a manual "block it now" switch if you want extra discipline.

๐Ÿ’ฌ Always allowed

WhatsApp, Messenger, Telegram, and Botim are never touched by the schedule โ€” messaging stays messaging, not a distraction.

๐Ÿ”ฅ Streaks & stats

A day-streak counter, a rough (deliberately conservative) estimate of time/data you didn't spend on blocked sites, and a daily motivational quote โ€” not to be cute, but to make the win visible.

It's honest about its own limits: you have admin/root access to your own device, so nothing here pretends to be unbreakable by you. The "Disable protection" button in the app is a deliberate piece of friction โ€” it logs the attempt and shows a 24-hour countdown that never actually finishes. The only real way off is a manual uninstall, on purpose, outside the app.

How optimized is it?

Battery and memory use were profiled directly, not assumed โ€” a few concrete numbers:

~0%
CPU at idle (macOS filter), measured with powermetrics
0
Android wakelocks held by the app, per batterystats
3
scheduled wakeups/day (nightly toggle ร—2, blocklist refresh ร—1) โ€” everything else is passive

The filtering itself is a blocking network read that uses effectively zero CPU while idle โ€” cost tracks how much traffic you actually generate, not wall-clock time. A background 5-second UI refresh timer on macOS was found and fixed during profiling (it now only polls while the menu is actually open); on Android, a silent TCP-connection leak on dead peers was found and fixed so the app doesn't slowly degrade over a long uptime. Both fixes shipped once verified, not just assumed.

What you can expect