A Pomodoro timer for the terminal — track study sessions, build streaks, and stay focused
Project description
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
Project details
Release history Release notifications | RSS feed
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 pomoflow-0.1.0.tar.gz.
File metadata
- Download URL: pomoflow-0.1.0.tar.gz
- Upload date:
- Size: 14.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4d3a2d5f965e15644d2941d79747dc538a4154248a39181cd39d1db537bbd7c6
|
|
| MD5 |
52c5d3ce7cb55cc545c786e368880acf
|
|
| BLAKE2b-256 |
8686182da34cec154f3d18829f1ab31d802a3ebebe7be1ed306bf45454fb3dc4
|
Provenance
The following attestation bundles were made for pomoflow-0.1.0.tar.gz:
Publisher:
release.yml on guialmm/pomoflow
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pomoflow-0.1.0.tar.gz -
Subject digest:
4d3a2d5f965e15644d2941d79747dc538a4154248a39181cd39d1db537bbd7c6 - Sigstore transparency entry: 1902025792
- Sigstore integration time:
-
Permalink:
guialmm/pomoflow@4d7d3ed1628e2745f10ccd0626c2f44ef8bcd6dc -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/guialmm
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@4d7d3ed1628e2745f10ccd0626c2f44ef8bcd6dc -
Trigger Event:
push
-
Statement type:
File details
Details for the file pomoflow-0.1.0-py3-none-any.whl.
File metadata
- Download URL: pomoflow-0.1.0-py3-none-any.whl
- Upload date:
- Size: 10.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
27a0f4f03c79cc103eec628c7f67c2fc730e4f1e98980df07568481b8a85a7b9
|
|
| MD5 |
64c86ffe3664e557d869b5360f7be5f9
|
|
| BLAKE2b-256 |
491bc55b62e24674af725cc7b20436f1130a40a23e4cfd8b40a79e983e3e541a
|
Provenance
The following attestation bundles were made for pomoflow-0.1.0-py3-none-any.whl:
Publisher:
release.yml on guialmm/pomoflow
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pomoflow-0.1.0-py3-none-any.whl -
Subject digest:
27a0f4f03c79cc103eec628c7f67c2fc730e4f1e98980df07568481b8a85a7b9 - Sigstore transparency entry: 1902025874
- Sigstore integration time:
-
Permalink:
guialmm/pomoflow@4d7d3ed1628e2745f10ccd0626c2f44ef8bcd6dc -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/guialmm
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@4d7d3ed1628e2745f10ccd0626c2f44ef8bcd6dc -
Trigger Event:
push
-
Statement type: