A macOS menu bar app that chimes on the hour. Also has a built-in Pomodoro timer.
You look up and it is 4pm. This app prevents that.
Current release: v1.0.2
Hourly chime: Plays a short sound at regular intervals during your work hours. Configurable frequency: 15 min, 30 min, 1 hour, or 2 hours. Configurable work hours and days. Shows next chime time and hours remaining in your day.
Pomodoro timer: 25-min work sessions, 5-min short breaks, 15-min long break after 4 sessions. Live countdown in the menu bar. Skip breaks when you are in the zone.
Menu bar only. No dock icon, no window. Click the bell to see controls, start a Pomodoro, mute for an hour, or open settings.
- Split the app into smaller files for menu logic, scheduling, settings, sound, and notifications
- Fixed chime suppression across day boundaries
- Replaced AppleScript notifications with
UNUserNotificationCenter - Added a small checks target for schedule behavior
- Cleaned up Pomodoro state handling and settings editing
Download from Releases, unzip, drag to Applications.
On first launch, macOS may block it because it is not from the App Store. Right-click the app, select "Open", then click "Open" in the dialog. One-time thing.
git clone https://github.com/a692570/HourlyChime.git
cd HourlyChime
swift build -c release
swift run -c release HourlyChimeChecks
.build/release/HourlyChime| Key | Action |
|---|---|
⌘, |
Settings |
⌘P |
Start Pomodoro |
⌘M |
Mute for 1 hour |
⌘T |
Test sound |
⌘Q |
Quit |
Click the bell icon, then "Settings..." or press ⌘,.
- Days: Pick which days to enable
- Hours: When to start and stop chiming
- Frequency: How often, 15m / 30m / 1h / 2h
- Launch at Login: Toggle from the menu
Preferences are stored at ~/Library/Preferences/com.abhishek.hourlychime.plist.
- SwiftUI for the settings window
- AppKit for menu bar integration
- AVFoundation for sound playback
- ServiceManagement for launch at login
- UserNotifications for alerts
The app is split into focused files instead of one large source file.
Project layout:
HourlyChime/
├── Package.swift
├── Sources/
│ ├── HourlyChime/main.swift
│ ├── AppDelegate.swift
│ ├── AppMenuBuilder.swift
│ ├── ChimeSchedule.swift
│ ├── ChimeSettings.swift
│ ├── NotificationManager.swift
│ ├── PomodoroSessionManager.swift
│ ├── SettingsView.swift
│ ├── SettingsViewModel.swift
│ ├── SettingsWindowController.swift
│ ├── SoundPlayer.swift
│ └── Formatters.swift
└── Tests/
└── HourlyChimeChecks/main.swift
No menu bar icon: Check the overflow area. Make sure you are on macOS 13.0+.
No sound: Check system volume. Try "Test Sound" from the menu. Verify you are within work hours.
Notifications missing: System Settings > Notifications > enable for HourlyChime.
Uninstalling:
killall HourlyChime
rm -rf /Applications/HourlyChime.app
rm ~/Library/Preferences/com.abhishek.hourlychime.plistMIT
Abhishek Sharma (@a692570)