open source · python · mit

focus timer that lives in your terminal, not in a browser tab.

pomodoro timer for people who already live in the terminal. saves sessions, tags them, shows a github-style heatmap of the days you actually showed up. sits in your macOS menu bar if you want it to.

$ tempo start --tag uni --duration 25
╭─── tempo ───────────────────────────────────────────╮
                                                              
   UNI  • today · 4th session • target 25:00              
                                                              
          ╭──╮ ╭──╮   ╭──╮ ╷                               
          ├──┤ ╰─╮│ ██ │  │ │                               
          ╰──╯ ╶──╯    ──╯ ╵                               
                                                              
       ████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░      
                                                              
              52%  •  running                               
           q quit   p pause   + add 5 min                   
                                                              
╰──────────────────────────────────────────────────────────────╯

focus sessions with tags

tag each session (uni, code, reading). pause, resume, or add 5 minutes mid-session without losing progress.

github-style heatmap

90 days at a glance. every day you showed up is a green square. miss a day, streak ends. works on the same part of your brain as the github contribution graph, which, fine.

macOS menu bar companion

pip install "tempo[menubar]" then tempo-bar. a 🍅 lives in your menu bar with a live countdown. click to start, pause, or peek at today's stats.

streaks

current and longest streak shown on every tempo stats. today counts if you ran at least one session. miss yesterday, it resets. anyway.

your data, plain jsonl

sessions live at ~/.tempo/sessions.jsonl. portable, diff-friendly, queryable with jq. no cloud, no account, nothing to cancel.

and the dashboard is in your terminal.

$ tempo stats --window week

╭──────────────────────────── last 7d ─────────────────────────────╮
                                                                  
         11h 40min   18        5 days     7 days              
         FOCUS       SESSIONS  STREAK     BEST                
                                                                  
╰──────────────────────────────────────────────────────────────────╯

╭───────────────────────────── by tag ─────────────────────────────╮
  uni        5h 10min  ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇               
  code       4h 25min  ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇                  
  reading    2h 05min  ▇▇▇▇▇▇▇▇▇▇                             
╰──────────────────────────────────────────────────────────────────╯

╭────────────────────────── last 90 days ──────────────────────────╮
│  mon ▇▇  ▇▇ ▇▇ ▇▇  ▇▇ ▇▇ ▇▇ ▇▇ ▇▇ ▇▇ ▇▇
 ▇▇ ▇▇ ▇▇ ▇▇ ▇▇  ▇▇ ▇▇ ▇▇ ▇▇ ▇▇ ▇▇
│  wed ▇▇ ▇▇  ▇▇ ▇▇ ▇▇ ▇▇ ▇▇ ▇▇ ▇▇ ▇▇ ▇▇ ▇▇
▇▇  ▇▇ ▇▇ ▇▇ ▇▇ ▇▇ ▇▇  ▇▇ ▇▇ ▇▇ ▇▇
│  fri ▇▇ ▇▇ ▇▇ ▇▇ ▇▇  ▇▇ ▇▇ ▇▇ ▇▇ ▇▇ ▇▇ ▇▇
 ▇▇  ▇▇ ▇▇  ▇▇ ▇▇  ▇▇ ▇▇ ▇▇ ▇▇
│  sun ▇▇  ▇▇  ▇▇ ▇▇  ▇▇ ▇▇  ▇▇ ▇▇ ▇▇
│                                                                  │
│     less   ▇▇ ▇▇ ▇▇ ▇▇  more                                  │
╰──────────────────────────────────────────────────────────────────╯

install

the one command

pip install git+https://github.com/f4rkh4d/tempo

python 3.9+, macos and linux. pypi upload is on the list, not done yet.

menu bar extra (mac)

pip install "tempo[menubar] @ \
git+https://github.com/f4rkh4d/tempo"
tempo-bar

gives you the tempo-bar command with the little tomato.