A focus timer that lives in the macOS menu bar. Pick a focus length and a
break length,
press play. No account, no cloud, no tasks to manage.
Download the DMG from Releases and drag BeFocused to Applications.
The app is ad-hoc signed, so macOS blocks the first launch. Clear the quarantine flag once and it opens from then on:
xattr -dr com.apple.quarantine /Applications/BeFocused.appThis works even where Privacy settings are locked by policy. See DISTRIBUTION.md for the alternatives, including signing with a Developer ID.
- Countdown in the menu bar, or just the icon if you would rather not watch it
- Focus and break lengths from one minute up, edited without disturbing a running interval
- Start, pause, reset and skip from the popover, the right-click menu, or a global keyboard shortcut
- A system sound when an interval ends, previewed in settings, with separate toggles for focus and break
- Do Not Disturb for the length of every focus interval, off again the moment you pause
- Auto-continue into the next interval, or let each one wait for you
- Launch at login
- Survives sleep: an interval that expires while the Mac is asleep ends on wake and plays its sound, but the next one waits, because you were away
macOS has no public setting for Focus, so BeFocused runs two Shortcuts you make
once. In Shortcuts, create a shortcut whose only action is Set Focus, set to
Do Not Disturb, Turn On, Until Turned Off, and name it BeFocused On. Make a
second one that turns it off, named BeFocused Off.
The Focus tab in Settings reports whether it found them. Everything else in the app works without them.
Needs macOS 14 or later, Xcode 26 and XcodeGen. No package dependencies, so a clone builds offline.
make run # debug build, launches it in the menu bar
make test # 54 unit tests
make install # release build into /Applications
make dmg # signed disk image in dist/The Xcode project is generated from project.yml and is not committed. Run
make gen after adding files, or open BeFocused.xcodeproj to work in Xcode.
Set SIGN_IDENTITY and TEAM_ID to build with a Developer ID; make notarize
submits and staples. Both optional.
| What | Where | Leaves the Mac |
|---|---|---|
| Durations, sound, toggles | UserDefaults, com.aliaksei.BeFocused |
never |
| The two Focus shortcuts | your own Shortcuts library | with iCloud, if you sync Shortcuts |
| Anything else | there is nothing else | — |
No analytics, no network calls, no crash reporting.
The timer stores an end date rather than counting down, so it stays correct across sleep, high load and scheduling delays. The menu bar item keeps one fixed width, because the menu bar re-lays out asynchronously and any resize leaves the popover anchored to the item's old slot, visibly jumping sideways.
No tasks, statistics, long-break cycles, sync, or user-recordable keyboard shortcuts. The global shortcuts are fixed at ⇧⌘R and ⇧⌘B, which is what dropping the third-party dependency cost.
MIT
