Minimalist macOS menu bar focus timer with configurable Pomodoro cycles, full-screen break overlays, and lightweight daily progress tracking.
Download · Features · Build From Source · Contributing · License
Mora is currently a preview release. The core timer, break, sound, progress, idle auto-pause, and shortcut flows are present, but signing, notarization, and polish are still being shaped.
Latest release: Mora 1.4
- Download: Mora-1.4.dmg
- Version:
1.4(CFBundleVersion5) - macOS: 13+
- Architecture: universal macOS build (
arm64+x86_64) - SHA-256:
47764e264c96a1780f5ad3af00fdb8fc1677c8bdb11f23c375c26d30ef51821f
Open the DMG and drag Mora.app into /Applications.
This build is not Developer ID signed or notarized yet. macOS may block the first launch; if you trust this build, allow it from System Settings > Privacy & Security.
- Menu bar first: start, pause, resume, restart, and quit without managing an app window.
- Configurable focus, short-break, and long-break durations with 25/5/15 defaults.
- Full-screen break overlays on every display with countdown and skip/dismiss controls.
- Daily progress for today's circles, four-step mora progress, and banked moras.
- Progress corrections from the menu panel: add or remove a circle, or reset today.
- Launch at login toggle in Settings.
- Chimes for focus end, break end, and cycle completion, with a sound toggle.
- Global shortcuts for the main timer commands.
- Optional idle auto-pause for keyboard/mouse inactivity, with an enable toggle and configurable threshold in Settings.
- Return-from-idle prompt when you come back after an auto-pause, with resume, restart-block, and stay-paused choices.
| Shortcut | Action |
|---|---|
Shift + Command + S |
Start or resume |
Shift + Command + P |
Pause |
Shift + Command + R |
Restart work session |
Shift + Command + K |
Skip break |
Current menu bar panel: today's circles/moras, live countdown, timer controls, break actions, and quit.
Mora stores timer state, progress, and preferences locally in macOS UserDefaults.
Idle auto-pause uses local keyboard/mouse inactivity signals. Mora does not include analytics, accounts, cloud sync, or telemetry upload.
- Not notarized yet, so first launch may require manual approval in macOS security settings.
- Detecting keyboard inactivity for idle auto-pause may require granting Accessibility permission.
- Launch at login registration may fail for unsigned development builds; use an installed release build.
- Error handling and edge-case polish are still WIP.
Requirements:
- macOS 13+
- Xcode 26+ / Swift 6.2+
- SwiftPM dependency resolution for
HotKey
Recommended local run:
swift package resolveopen Mora.xcodeproj- Run the
Morascheme from Xcode.
Developer smoke path:
./script/build_and_run.shFor app-like behavior, prefer Xcode, ./script/build_and_run.sh, or an installed .app bundle over raw swift run.
swift testThe Xcode project also includes the Mora and MoraSnapshotTests schemes.
- Swift 6.2+
- AppKit + SwiftUI menu bar app
- Combine for state propagation
HotKeyfor global shortcutsUserDefaultsfor lightweight local persistence
- Polish the
v1.0preview release path: signing, notarization, and repeatable DMG packaging. - Add progress summaries and usability polish from real usage feedback.
Contributions are welcome! Whether it's a bug report, a feature idea, or a pull request — every bit helps.
- Read the Contributing Guide for setup and workflow.
- Check open issues or open a new one to discuss your idea.
- Fork, branch, and send a PR.
Please also see our Code of Conduct.
Distributed under the MIT License.
- HotKey — global keyboard shortcuts.
- Built with SwiftUI, AppKit, and Combine.
If Mora helps you stay focused, consider giving it a ⭐ — it helps others find the project.
