PomoBloom is a clean, minimal macOS Pomodoro timer with a friendly tomato timer icon, menu bar controls, configurable intervals, custom sounds, and optional Dock icon hiding.
- Focus, short rest, and long rest timers
- Configurable long-rest interval count
- Daily focus interval goal
- Start, pause, reset, and skip controls
- Menu bar status item with quick actions
- Optional Dock icon hiding for menu-bar-first use
- Auto-start options for rest and focus sessions
- macOS notifications at session boundaries
- Separate completion sounds for focus, short rest, and long rest
- Custom audio file selection
- Native SwiftUI macOS interface
- macOS 14 or later
- Xcode command line tools or Xcode
- Swift 6 compatible toolchain
Download the latest standalone DMG from the Releases page.
To install:
- Download the newest
PomoBloom-*.dmgfile. - Open the DMG.
- Drag
PomoBloom.appinto theApplicationsshortcut. - Launch PomoBloom from Applications.
The release app is self-contained. No separate runtime or package manager is required.
From the project root:
./script/build_and_run.shThis builds a release app bundle at:
dist/PomoBloom.app
To build without launching:
./script/build_and_run.sh bundleTo install into /Applications:
./script/build_and_run.sh installTo create a distributable DMG:
./script/create_dmg.shThe app is a Swift Package Manager macOS app. Source files are organized by responsibility:
Sources/PomoBloom/App: app entry point and app-level stateSources/PomoBloom/Models: timer and sound value modelsSources/PomoBloom/Stores: user settings and Pomodoro timer stateSources/PomoBloom/Services: notifications and sound playbackSources/PomoBloom/Support: small macOS helpers and formattersSources/PomoBloom/Views: SwiftUI views and controls
The icon is generated locally by:
swift script/generate_icon.swift AssetsPomoBloom is licensed under the GNU General Public License v3.0. See LICENSE.