https://github.com/felix-u/termato is a simple TUI pomodoro timer which can run arbitrary commands upon state change, which means you can do things such as:
$ termato --notify "notify-send 'termato: %s'"
[notification] termato: Relax - 5 minutes
the focus, short break, and long break durations are configurable. <space> pauses/unpauses and s skips to the end of the current period.
I consider termato pretty much feature-complete, but I'm open to suggestions! The codebase is ~240 lines of C99 with ncurses, so hack away :)