PomoCLI is a minimalist command-line interface (CLI) Pomodoro Timer application written in C. It is designed to be extremely lightweight and integrates native desktop notifications (Linux & macOS) to help you stay focused and productive.
Screencast_20260730_082947.webm
- Automatic Pomodoro Loop: Structured cycles consisting of Focus, Short Rest, and Long Rest sessions.
- Native OS Notifications:
- Linux: Uses the
notify-sendutility. - macOS: Uses AppleScript (
osascript) with the default notification sound.
- Linux: Uses the
- Extremely Lightweight: Written in pure C without any external dependencies.
By default, the application is configured with the following settings (in seconds/minutes depending on the multiplier mul):
- Focus Time: 25 time units (governed by the
focusvariable). - Short Rest: 5 time units (governed by the
restvariable). - Long Rest: 15 time units (governed by the
lrestvariable). - Session Cycle: After every 4 Focus sessions (governed by the
fsesivariable), you will get 1 Long Rest session.
To change these settings, you can edit their values in main.c. For example, changing the mul variable to 60 will convert the time units into minutes. For a detailed guide, please refer to the Time Customization section below.
Before running the application, make sure you have:
- C Compiler:
gccorclang. - Notification System:
- Linux: Ensure the
libnotifypackage (fornotify-send) is installed (usually pre-installed on most desktop distributions). - macOS: No additional installation needed, as it uses the built-in
osascriptutility.
- Linux: Ensure the
If you want to customize the focus duration, rest duration, or the time multiplier (e.g., from seconds to minutes), you can edit the configuration line in main.c:
int focus = 25, rest = 5, lrest = 15, mul = 1, fsesi = 4;Variable Explanations:
focus: Focus session duration (default:25).rest: Short rest session duration (default:5).lrest: Long rest session duration (default:15).mul: Time multiplier. Changemul = 60to convert the time units above to minutes (default is1for seconds to facilitate testing).fsesi: Number of focus sessions before starting a long rest (default:4).