TUI Pomodoro Timer
A Pomodoro timer with physics. The whole thing breathes.
brew install Jaace/tap/breathe
Every progress bar, dot pulse, and digit morph runs through a Harmonica spring. Nothing snaps; everything settles.
Work, short break, and long break each have their own palette. Transitions interpolate the entire UI from one to the next over a brief overshoot.
Two outer rings encircle the main frame. A pulse sweeps outward and back on a 10-second breath cycle, lighting each ring in turn.
During break phases the progress bar steps aside for an inhale/exhale prompt and a dot grid that blooms outward on the inhale, contracts on the exhale.
Every completed phase is appended to $XDG_DATA_HOME/breathe/state.json. breathe stats renders today + last 7 days through Glamour.
Terminal bell, a macOS built-in alert (--sound glass), an arbitrary shell command (--bell-cmd), or silence (--no-bell). Your call.
| Key | Action |
|---|---|
space | pause / resume |
s | skip current phase |
r | reset current phase |
? | toggle help overlay |
q / ctrl+c | quit |
| Flag | Default | Meaning |
|---|---|---|
--work | 25m | work block duration |
--short | 5m | short break duration |
--long | 15m | long break duration |
--rounds | 4 | blocks per cycle |
--no-bell | off | silence notifications |
--sound | — | macOS built-in sound |
--bell-cmd | — | custom shell command |
--no-update-check | off | skip daily release check |
Durations accept anything time.ParseDuration takes (90s, 1h30m, etc.).
Aggregates today and the rolling last seven days from your session log and renders the report through Glamour. Counts work blocks and total focus minutes per day.
Linux and Windows users can also grab a prebuilt binary from the releases page.