A lightweight terminal Pomodoro timer
Project description
Pomodoro — a lightweight terminal Pomodoro timer (Python 3.10+, Pygame optional).
Pomodoro-CLI
A lightweight command-line Pomodoro timer written in Python using ASCII art for a big timer display and optional sound notification via Pygame.
Features
- Simple CLI menu with Pomodoro, Short Break, and Long Break modes.
- ASCII-art time rendering for a large, visual countdown.
- Configurable durations at runtime.
- Pause/resume, return to menu, or exit during a running timer.
- Optional sound notification when the timer finishes (requires Pygame and a
sounds/bell.wavfile).
Requirements
- Python 3.10 or newer
- Pygame (for sound playback) — optional but recommended
Quick start (local)
- Copy the repository files (the app is a small set of .py files).
- (Optional) Install dependencies for sound: pip install pygame
- Make sure the sound file exists:
- Place a
bell.wavfile at./sounds/bell.wavrelative to the project root (same folder containing the .py files).
- Place a
- Run: python main.py
Installation (recommended)
- Create and activate a virtual environment (optional but recommended): python -m venv .venv source .venv/bin/activate # Linux / macOS .venv\Scripts\activate # Windows
- Install Pygame (for sound): pip install pygame
Usage
- Start the app: python main.py
- Menu options: 1 — Pomodoro (default 25 minutes) 2 — Short Break (default 5 minutes) 3 — Long Break (default 15 minutes) 4 — Leave
- When choosing Pomodoro / Break:
- You'll be asked whether to change the default time (in minutes).
- Confirm start (
Yor Enter) to begin the countdown. - During a running timer press Ctrl+C to pause; you can then: 1 — Resume timer 2 — Return to menu 3 — Leave the app
Notes & troubleshooting
- If Pygame is not installed or the sound file is missing, the app will continue to work but will print a sound-related error message. Sound is optional.
- The ASCII display depends on terminal width. If the timer output appears misaligned, try enlarging the terminal window.
Project structure
- main.py — entrypoint and CLI menu
- app.py — core pomodoro logic and timer flow
- utils.py — helper functions (clear screen, play sound)
- ascii_render.py — title and large ASCII time rendering
- ascii_digits.py — ASCII digits source and helpers
- style.py — ANSI color constants
- sounds/bell.wav — expected sound file (not included in this code bundle)
Contributing
- Bug reports, suggestions, and PRs are welcome.
- Keep changes small and document any behavior changes.
- Follow Python conventions and keep compatibility with Python 3.10+.
License
- Add your preferred license here (e.g., MIT) or remove this section if not needed.
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 pomodoro_cli_ascii-0.1.2.tar.gz.
File metadata
- Download URL: pomodoro_cli_ascii-0.1.2.tar.gz
- Upload date:
- Size: 242.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
173ada58438f73cf9446c4ab087b8351d86b0e2a76c708f8df734703ef0ac924
|
|
| MD5 |
dfbfc39007741c04dceca9a9573465fe
|
|
| BLAKE2b-256 |
3a6a552f8ac3ee4a92218232434555ca9007e0467c238ea23d732a4f0fd384d2
|
File details
Details for the file pomodoro_cli_ascii-0.1.2-py3-none-any.whl.
File metadata
- Download URL: pomodoro_cli_ascii-0.1.2-py3-none-any.whl
- Upload date:
- Size: 241.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bcbc6b6b82143fb8a8156e6003ba4ea3f2917a5bd51e37b1c1ab4511ee3fa656
|
|
| MD5 |
8bb6808a3d7c898e18aad65a28e56566
|
|
| BLAKE2b-256 |
734b67cbf358961ffae0b20cf9761b78a418313af21719ed0ab9c0e3421843d4
|