A simple and customizable Pomodoro (focus timer) CLI tool written in Go.
Stay productive using the Pomodoro Technique directly from your terminal — start work sessions, take breaks, get notified when time is up, and track your focus streaks over time.
✅ MVP
- Start timer (pomodoro, short break, long break).
- Configurable durations (via CLI args).
- Show countdown in real time or progress updates (e.g., every minute).
- ASCII progress bar during timer.
- Simple logging of completed sessions (store in a local JSON/CSV file).
- View today’s stats.
- Notify user when session ends (desktop notification, sound, or terminal output).
🛠️ Stretch Features
- CLI args or interactive prompts.
- Streak tracking.
- TUI mode (e.g., live countdown in a curses UI).
- Idle detection or pause/resume (advanced).
- GitHub-style heatmap of productivity (using focus stats --week).
Clone and build:
git clone https://github.com/colineckert/focus
cd focus
go build -o focus
mv focus /usr/local/bin/focus
focus --help
Start a Pomodoro session (25 min default)
focus start
🍅 Focus session started: 25 minutes
[#####.............] 15:30 remaining
Start a Pomodoro session (custom duration)
focus start --duration 45
Start a short break (5 min)
focus break
Start a long break (15 min)
focus break --long
View session stats
focus stats