README
ΒΆ
π Pomodoro Timer
A beautiful, terminal-based Pomodoro timer built with Go and Bubble Tea. Stay focused and productive with customizable work sessions, breaks, and desktop notifications.


β¨ Features
- π¨ Beautiful TUI - Clean, colorful terminal interface
- β‘ Interactive & CLI modes - Use interactively or with command-line flags
- β―οΈ Pause/Resume - Full control over your sessions
- π Desktop notifications - Get notified when sessions complete
- π Sound alerts - Audio notifications for session changes
- π Progress tracking - Visual progress bar and session counter
- π― Customizable - Set your own work/break durations and session counts
- β¨οΈ Keyboard shortcuts - Efficient navigation and control
π Installation
Prerequisites
- Go 1.19 or higher
- Linux/macOS (for notifications)
notify-send(usually pre-installed on Linux)paplay(for sound notifications - optional)
Install from source
git clone https://github.com/binoymanoj/pomo.git
cd pomo
go build -o pomo
sudo mv pomo /usr/local/bin/
Install with go install
go install github.com/binoymanoj/pomo@latest
π Usage
Interactive Mode
Simply run the command to enter interactive setup mode:
pomo
Navigate with Tab or arrow keys, enter your preferences, and press Enter to start!
Command Line Mode
For quick sessions, use command-line flags:
# Basic usage
pomo -t 25m -b 5m
# Custom session count
pomo -t 30m -b 10m -s 6
# Longer sessions
pomo -t 1h30m -b 15m -s 3
Duration Formats
The timer accepts various duration formats:
Minutes 25m, 30m Standard minute format
Hours 1h, 2h30m Hour and hour+minute format
Seconds 90s, 300s Second format
Numbers only 25, 45 Defaults to minutes
β¨οΈ Keyboard Controls
Setup Screen
Tab / β - Navigate to next field
Shift+Tab / β - Navigate to previous field
Enter - Start timer with current settings
Ctrl+C / Q - Quit application
Timer Screen
Space / P - Pause/Resume timer
Q / Ctrl+C - Quit application
π§ Command Line Options
Usage:
pomo Interactive mode
pomo -t <duration> -b <duration> [-s <sessions>]
Flags:
-t, --timer <duration> Work session duration (e.g., 25m, 1h30m, 45s)
-b, --break <duration> Break duration (e.g., 5m, 10m)
-s, --sessions <number> Number of sessions (default: 4)
-h, --help Show help message
π Examples
Quick Start Examples
# Classic Pomodoro (25min work, 5min break, 4 sessions)
pomo -t 25m -b 5m
# Extended sessions for deep work
pomo -t 45m -b 15m -s 3
# Short bursts for quick tasks
pomo -t 15m -b 3m -s 8
# Long focus sessions
pomo -t 1h30m -b 20m -s 2
Interactive Mode
# Launch interactive setup
pomo
# Follow the prompts:
# Work Duration: [25m]
# Break Duration: [5m]
# Sessions: [4]
π¨ Preview
Setup Screen
π
Pomodoro Timer Setup
βββββββββββββββββββββββββββββββ
β Work Duration: 25m β
βββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββ
β Break Duration: 5m β
βββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββ
β Sessions: 4 β
βββββββββββββββββββββββββββββββ
Tab/ββ: Navigate β’ Enter: Start β’ Ctrl+C: Quit
Format: 25m, 1h30m, 90s
Timer Screen
π
Focus Time
Session 1 of 4
ββββββββββββββββββββββββββββββ 80%
πͺ 12:30 remaining
Space/P: Pause/Resume β’ Q: Quit
π Notifications
The timer provides both visual and audio feedback:
- Desktop notifications - System notifications when sessions complete
- Sound alerts - Audio cues for session transitions (requires paplay)
- Visual indicators - Progress bars and time remaining display
- Session tracking - Current session number and total progress
π οΈ Dependencies
This project uses the following excellent Go libraries:
- Bubble Tea - TUI framework
- Lip Gloss - Styling
- Bubbles - TUI components
- pflag - POSIX/GNU-style flags
π€ Contributing
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
Development Setup
git clone https://github.com/binoymanoj/pomo.git
cd pomo
go mod tidy
go run main.go
π License
This project is licensed under the MIT License - see the LICENSE file for details.
Documentation
ΒΆ
There is no documentation for this package.