Self Control

The idea SelfControl proved.
Rebuilt for what iPhone allows.

SelfControl is a Mac classic precisely because its block survives a restart, an uninstall, even you changing your mind. No app can copy that trick on iPhone, and there's a specific, unavoidable reason why.

An honest answer first: there's no real SelfControl for iPhone, and there can't be one. SelfControl is Mac-only, released back in 2012, and licensed under the GPL. Apple's App Store doesn't allow GPL-licensed code at all, so an official port was ruled out before iOS's own restrictions even come into play.

Even without the license issue, the technical mechanism wouldn't survive the move. SelfControl works by editing your Mac's system-level hosts file directly, something iOS's sandboxing model was specifically built to prevent any third-party app from doing.

How SelfControl actually works on Mac

You set a timer and a blocklist, then it edits your hosts file. Once running, sites on the list become unreachable at the network level, from one minute up to a full 24 hours.

The timer itself can't be stopped early, by design. Restarting the Mac doesn't clear it, and neither does deleting the app. There's no button, setting, or password inside the app that ends it before time is up.

It's resistant to casual undoing, not literally unbreakable. A known, documented limitation is that a technically capable user can directly edit the hosts file by hand to restore access, which shows the timer is uncrackable through the app itself, even if the underlying mechanism has an edge case.

Why there's no real port to iOS

The license rules it out first. SelfControl is GPL-licensed open-source software, and Apple's App Store guidelines don't allow GPL code, independent of any technical question.

iOS sandboxing rules out the mechanism anyway. Every iOS app runs in a sandbox that prevents it from modifying system files or reading another app's data, which is exactly what SelfControl's hosts-file trick depends on.

Apple's own Screen Time API for developers is deliberately limited. Third-party blockers built on FamilyControls, ManagedSettings, and DeviceActivity run inside heavily restricted, read-only extensions with no persistent internet access. Apps aren't even told which specific apps you selected to block, since that information is hidden behind cryptographic tokens for privacy.

There's a specific gap that matters most in practice. Even a Screen-Time-based blocker with its own in-app passcode can typically be disabled through the "Apps with Screen Time Access" toggle in iOS Settings, a gap Apple's own built-in Screen Time doesn't have in the same way, since that can be locked behind its own separate passcode.

Tool Closest to SelfControl's model Watch out for
Freedom Locked Mode sessions that can't be stopped early Requires starting a session rather than a permanent default
One Sec / ScreenZen Friction before opening, not a hard block Doesn't remove access, just adds a pause
Forest Session-based commitment device Built around timed sessions, not all-day blocking
Fella Default-blocked with no in-app toggle Still uses Apple's Screen Time frameworks like all iOS blockers

Where Fella fits

Same philosophy, different mechanism. Fella can't replicate SelfControl's restart-proof hosts-file lock, no iOS app can, but it removes the same thing SelfControl removes: an easy in-the-moment way to undo the block.

No pause, no snooze, no toggle in the app itself. Chosen apps stay blocked by default every day, and instead of a single fixed timer, you get one 5-minute emergency unlock a day that locks itself back up automatically.

SelfControl for iPhone FAQ

Not a direct port. SelfControl is a Mac-only, GPL-licensed application, and Apple's App Store doesn't allow GPL-licensed code, which rules out an official port regardless of iOS's technical restrictions.

SelfControl blocks by editing your Mac's system-level hosts file, something iOS's sandboxing model doesn't allow any third-party app to do. iOS apps are restricted from modifying system files or other apps' data, which is exactly the mechanism SelfControl depends on.

You set a timer and a blocklist of sites or mail servers, and SelfControl edits your Mac's hosts file to block them. Once running, the block survives a restart or even deleting the app itself, and there is no built-in way to stop it early.

The timer itself can't be stopped early through the app. However, a known limitation is that a technically capable user can still directly edit the hosts file by hand to restore access, so it isn't absolutely unbreakable, just resistant to casual undoing.

Community recommendations commonly point to Freedom as the closest paid alternative, with One Sec, ClearSpace, Forest, and ScreenZen suggested as free options, alongside dedicated apps like Block Distracting Websites built specifically as SelfControl-inspired iOS tools.

Not exactly. Every iPhone app blocker runs on Apple's Screen Time frameworks rather than a system-level hosts file edit, and even Screen-Time-based blockers can be disabled through the Apps with Screen Time Access toggle in Settings, unlike SelfControl's restart-proof, delete-proof lock on Mac.

Fella shares the same core idea, removing the in-the-moment override, rather than the exact mechanism. Chosen apps stay blocked by default with no toggle inside the experience, and one 5-minute emergency unlock a day replaces SelfControl's fixed timer with a smaller, daily allowance instead.