Free native macOS distraction blocker
Block distracting apps during focus sessions. Menu bar timer, Pomodoro cycles, zero subscriptions.
Built with Swift and SwiftUI. No Electron, no web views, no bloat.
A visual rebrand. Same app, new look:
- New emerald-green shield app icon at all 10 macOS sizes
- Redesigned About banner
- Accent color refreshed from terracotta to emerald to match the new icon; break-phase tint shifted to cool slate so Focus vs Break still reads at a glance
- No feature changes from v1.0.0
See the full release notes (including SHA-256 and VirusTotal scan): v1.0.1.
Download the latest version from Releases. Unzip, move FocusWall.app to Applications, and launch.
The app includes a built-in update checker -- open About and click Check Now to see if a newer version is available.
- Live
mm:sscountdown in the menu bar - Ring-progress timer view with phase label (Focus / Short Break / Long Break)
- One-click Start/Stop from the popover
- Single mode: 1-180 min focus blocks
- Pomodoro: configurable focus / short break / long break / cycles-before-long-break
- Sessions auto-transition through break phases
- Pick from your installed apps (scans
/Applications,~/Applications,/System/Applications) - Apps that launch during a focus session are force-terminated
- Optional macOS notification each time an app is blocked
- Blocker disengages automatically during breaks and on session end
- Every completed focus block is recorded
- Popover shows today's count + total sessions + total focused minutes
- Persisted locally in UserDefaults (capped at 200 records)
- English, French, German, Spanish, Japanese, Korean, Portuguese (BR), Chinese (Simplified)
- Language picker in the About window
- One-toggle registration via
SMAppService
| Requirement | |
|---|---|
| OS | macOS 14.0 (Sonoma) or later |
| Chip | Any Mac (Apple Silicon or Intel) |
Download the latest .zip from Releases, extract it, and move FocusWall.app to your Applications folder.
Launch the app from Applications. The hourglass icon appears in your menu bar. Click it, open Settings, then add the apps you want blocked during focus sessions.
From the popover, pick Single or Pomodoro mode and click Start. The timer begins, and the blocker activates. Launching any blocklisted app will force-terminate it.
FocusWall ships in phases:
- Phase 1 (current): app blocking, Pomodoro timer, session history, settings, about, 8-language localization
- Phase 2: website blocking (privileged helper +
/etc/hostsediting) - Phase 3: recurring schedules, strict mode (can't cancel once started), macOS Focus mode integration
- Phase 4: session statistics charts, onboarding, keyboard shortcuts
This repository hosts the translation files for FocusWall. You can help translate the app into your language or improve existing translations.
- Fork this repository
- Edit an existing file in the
languages/folder, or create a new one by copyingEnglish.xml - Translate the string values (the text between
<string>tags) -- do not change thekeyattributes - Keep any
%1,%2,%@,%dplaceholders in place -- the app needs them - Submit a pull request
| Language | File | Status |
|---|---|---|
| English | English.xml |
Complete |
| French | French.xml |
Initial (community review welcome) |
| German | German.xml |
Initial (community review welcome) |
| Spanish | Spanish.xml |
Initial (community review welcome) |
| Japanese | Japanese.xml |
Initial (community review welcome) |
| Korean | Korean.xml |
Initial (community review welcome) |
| Portuguese (BR) | Portuguese.xml |
Initial (community review welcome) |
| Chinese (Simplified) | Chinese.xml |
Initial (community review welcome) |
Want to add a new language? Copy English.xml, rename it to your language name, translate the values, and submit a PR.
Please use Issues to report bugs or request features.
If FocusWall is useful to you, consider supporting development:
FocusWall is not yet notarized with Apple. On first launch you may see a Gatekeeper warning.
To fix this:
- Click Done to dismiss the dialog
- Open System Settings > Privacy & Security
- Scroll down -- you'll see a message that FocusWall was blocked
- Click Open Anyway
This only needs to be done once. After that, the app will open normally.
When you click Install Now in the About window, macOS will show a password prompt before replacing the app in /Applications. This is expected -- the app needs elevated permissions to overwrite itself.
forceTerminate() may fail silently for certain signed system apps (for example some Apple Help/Services processes). Phase 2 introduces a privileged helper that will cover those edge cases.
brew install xcodegen
git clone https://github.com/beyondthecode-bc/FocusWall.git
cd FocusWall
xcodegen generate
open FocusWall.xcodeproj
