Terminal-based Pomodoro timer with TUI and sound notifications
Project description
pomo-tui
A terminal-based Pomodoro timer with a real-time ASCII digital clock. Designed for developers who want to stay focused without leaving the terminal.
✨ Features
- Real-time ASCII digital clock display
- Pomodoro workflow with WORK / BREAK cycles
- tmux-friendly terminal behavior
- stable key polling
- resize-aware redraw
- compact help text for small panes
- Color-coded phases
- 🔴 WORK
- 🔵 BREAK
- 🟡 PAUSED
- Keyboard control
p: pause / resumeN: skip to next phaseR: reset the whole sessionCtrl + C: quit
- Terminal bell notification on phase change
- Safe fallback rendering on small terminal windows
- Fully terminal-based with no GUI dependency
🚀 Installation
pip
pip install pomo-tui
pipx
pipx install pomo-tui
🎯 Usage
Start with the default Pomodoro flow:
pomo
Run a custom session:
pomo --work 25 --break 5 --cycles 4
Run continuously until interrupted:
pomo --cycles 0
| Option | Description | Default |
|---|---|---|
--work |
Work duration in minutes | 25 |
--break |
Break duration in minutes | 5 |
--cycles |
Number of work/break cycles, 0 = infinite |
0 |
Keyboard controls
| Key | Action |
|---|---|
p |
Pause / Resume |
N |
Move immediately to next phase |
R |
Reset the whole session |
Ctrl + C |
Quit |
Notes
--workand--breakmust be positive integers--cyclesmust be a non-negative integer- Very small terminals automatically fall back to compact text rendering
- In tmux, use the keys directly in the running app pane
- The status area shows the current cycle and adapts to pane resizing
🛠️ Development Setup
git clone https://github.com/newbie1223/pomodoro-cli.git
cd pomodoro-cli
python3 -m venv .venv
source .venv/bin/activate
pip install -e .[test]
pytest
If your environment does not support extras installation yet, use:
pip install -e .
pip install pytest
pytest
Project structure
pomodoro_cli/
├── __init__.py
├── __main__.py
├── app.py
├── cli.py
├── config.py
└── models.py
tests/
└── test_app.py
app.py: application lifecycle and curses UI flowcli.py: argument parsing and app constructionconfig.py: constants and ASCII digit definitionsmodels.py: enums and session state models
📦 Package Information
- Package name:
pomo-tui - CLI command:
pomo - Version:
1.3.0 - Python requirement:
>=3.9
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pomo_tui-1.3.0.tar.gz.
File metadata
- Download URL: pomo_tui-1.3.0.tar.gz
- Upload date:
- Size: 8.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
395ad053775ab4763bfd490c01f63156aa8721dd174406f3d3b725b3d98d76c0
|
|
| MD5 |
9a59a012f6d3fd10e9040ad6fe1e4c3b
|
|
| BLAKE2b-256 |
26c5e1ac8590a403c597bd43906891ed640d2587e8f2c620eeabcd75ab4155e3
|
File details
Details for the file pomo_tui-1.3.0-py3-none-any.whl.
File metadata
- Download URL: pomo_tui-1.3.0-py3-none-any.whl
- Upload date:
- Size: 8.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
05c95933b8d287435b056d1f038206ff757660781738dd5b5939811a613edb5f
|
|
| MD5 |
6db8dd78ca41afac1659798b9a93ac34
|
|
| BLAKE2b-256 |
def4e6375249423944387918a2cde670ea7e75b05ed7035892b753c5c6dbaf72
|