pomoflow
A Pomodoro timer that runs in your terminal. Start a session, focus on what you need to do, and let pomoflow keep track of the time and your progress.
What is the Pomodoro technique?
You work in focused blocks of time (usually 25 minutes), then take a short break. After a few blocks, take a longer break. The idea is simple: it is easier to stay focused for 25 minutes than to sit down and "study until you're done." pomoflow handles the timing so you only have to focus on the work.
Installation
Requires Python 3.11 or newer.
pip install pomoflow
Or, if you use pipx to keep CLI tools isolated:
pipx install pomoflow
Quick start
# Start a 25-minute session
pomoflow start
# Label the session so you remember what you were doing
pomoflow start --task "Chapter 3 — Calculus"
# Custom duration
pomoflow start --minutes 50
During a session, you will see a live progress bar in the terminal. Press Ctrl+C at any time to stop early. When the session ends, your desktop will show a notification and the terminal will ring a bell.
All commands
start — begin a focus session
pomoflow start
pomoflow start --task "Physics revision"
pomoflow start --minutes 45 --task "Essay draft"
| Option | Short | Default | Description |
|---|---|---|---|
--minutes |
-m |
from config | Session duration in minutes |
--task |
-t |
(none) | Label for this session |
config — adjust your default durations
# See current settings
pomoflow config
# Change the default session length
pomoflow config --pomodoro 50
# Change break lengths
pomoflow config --short-break 10 --long-break 20
# Go back to defaults
pomoflow config --reset
| Option | Default |
|---|---|
--pomodoro |
25 min |
--short-break |
5 min |
--long-break |
15 min |
history — see your recent sessions
pomoflow history
# Show more entries
pomoflow history --limit 20
stats — see how you have been doing
# Summary for the last 7 days
pomoflow stats
# Last 30 days
pomoflow stats --days 30
Shows total sessions, total focus time, completion rate, current streak, and a per-day breakdown.
Data
pomoflow saves your sessions and config to ~/.pomoflow/. Nothing is sent anywhere.
~/.pomoflow/
├── history.json # session log
└── config.json # your preferences
Development
git clone https://github.com/guialmm/pomoflow.git
cd pomoflow
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
pre-commit install --hook-type commit-msg
pre-commit install
Run tests:
pytest
Contributing
See CONTRIBUTING.md.
Changelog
See CHANGELOG.md.
License
MIT — guialmm
Metadata
Release files for pomoflow 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pomoflow-0.1.0.tar.gz | 14.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pomoflow-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 24.8 kB
Release files / pomoflow-0.1.0.tar.gz
| Download URL | pomoflow-0.1.0.tar.gz |
|---|---|
| Size | 14.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4d3a2d5f965e15644d2941d79747dc538a4154248a39181cd39d1db537bbd7c6
|
|
BLAKE2b-256 checksum How to use checksums |
8686182da34cec154f3d18829f1ab31d802a3ebebe7be1ed306bf45454fb3dc4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 21, 2026.
Transparency logRelease files / pomoflow-0.1.0-py3-none-any.whl
| Download URL | pomoflow-0.1.0-py3-none-any.whl |
|---|---|
| Size | 10.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
27a0f4f03c79cc103eec628c7f67c2fc730e4f1e98980df07568481b8a85a7b9
|
|
BLAKE2b-256 checksum How to use checksums |
491bc55b62e24674af725cc7b20436f1130a40a23e4cfd8b40a79e983e3e541a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 21, 2026.
Transparency log