🍅 Implementation of the Pomodoro Technique using figlet(6), cowsay(1), and lolcat 🐮


  • Sends desktop notifications.
  • Can't stop. SIGTSTP (Ctrl-Z) is trapped. Pomodoros are uninterruptible.
  • Traps SIGINT to make Ctrl-C abandon pomodoros.
  • Silly mode (or is it stern?) is enabled with -s (can be specified multiple times).
  • Avoids using clear so the terminal doesn't flash.
  • Hides the cursor.
  • Disables echoing of stdin.
  • Keeps the cow at the bottom of your terminal.
  • Prints some stats when exiting: when pomodoros started and ended and the length of breaks (can be redirected to a file).


I recommend creating an alias such as

alias pomo='muccadoro | tee -ai ~/pomodoros.txt'

Usage notes

The first positional argument is the amount of minutes one pomodoro should take (default: 25). If you want 20-minute pomodoros, use muccadoro 20, for example. The program exits after four pomodoros have been completed and a longer break should be taken.

Saving summaries to a file

You may want to keep a record of how many pomodoros you did and when (and for how long) you took breaks. This is supported by simply redirecting stdout:

muccadoro >> ~/pomodoros.txt

If you want to save the summary but also have it printed to stdout, use:

muccadoro | tee -ai ~/pomodoros.txt

The -i (--ignore-interrupts) flag of tee makes sure the summary is correctly processed in case the pipeline was killed with Ctrl-C (which is the intended way to quit when doing less than four pomodoros).


Get it from the Snap Store

Search for another snap, or go back to the homepage.