A terminal based stopwatch and countdown timer
Project description
time-manager
A powerful and visually stunning terminal-based timer application built with Textual and Typer.
- CLI Interface (default): Lightweight mode (no Textual UI).
- TUI Interface: Beautiful, responsive terminal user interface via
-i/--interactive. - Notifications: Visual and audio feedback (bell) when a countdown completes.
Features
- Stopwatch: Precise stopwatch with centisecond resolution.
- Countdown: Configurable countdown timer with support for seconds, minutes, and hours.
Installation
- Requires Python 3.10+
- Installs two commands:
tm(recommended) andtime-manager
From PyPI:
pip install time-manager
If you use uv:
uv tool install time-manager
# or (inside a project)
uv add time-manager
Usage
time-manager provides two command names for convenience:
tm- Short and convenient aliastime-manager- Full command name
Both commands work identically. Examples:
tm sw # or: time-manager sw (also: tm stopwatch)
tm cd 5 m # or: time-manager cd 5 m (also: tm countdown 5 m)
Stopwatch
Start a stopwatch to track elapsed time:
tm sw
For interactive TUI mode:
tm sw -i
Controls (TUI mode):
Space: Start/Stopr: Resetq: Quit
Countdown Timer
Start a countdown for a specific duration:
tm cd 5 m # 5 minutes
tm cd 60 s # 60 seconds
tm cd 1 h # 1 hour
For interactive TUI mode:
tm cd 5 m -i
Controls (TUI mode):
Space: Pause/Resumeq: Quit
Development
Prerequisites
- uv installed on your system.
- Python 3.10+
Installation for Development
To install in editable mode for development:
make local
Global Installation (Recommended for Testing)
To install as a system-wide utility:
make global
This builds a standalone executable and copies it to /usr/local/bin/time-manager, and also creates a /usr/local/bin/tm symlink.
Make Commands
| Command | Description |
|---|---|
make local |
Install in editable mode for development |
make global |
Build and install system-wide to /usr/local/bin |
make build |
Build standalone executable (with version bump) |
make bump |
Bump patch version (default) |
TYPE=MINOR make bump |
Bump minor version |
TYPE=MAJOR make bump |
Bump major version |
make clean |
Remove build artifacts |
make uninstall |
Remove global installation |
Project Structure
time-manager/
├── src/
│ ├── app.py # CLI entry point using Typer
│ ├── cli/
│ │ ├── __init__.py # CLI package exports
│ │ └── cli.py # CLI implementations for timers
│ ├── core/
│ │ ├── formatting.py # Time formatting utilities
│ │ └── termclock.py # Core timer logic
│ └── tui/
│ ├── __init__.py # TUI package exports
│ ├── countdown.py # Countdown TUI
│ ├── stopwatch.py # Stopwatch TUI
│ └── theme.tcss # Textual CSS theme
├── scripts/
│ └── bump.sh # Version bump script
├── pyproject.toml # Project configuration
├── uv.lock # Dependency lock file
├── Makefile # Build and install commands
├── LICENSE # Project license
└── README.md # This file
Publishing to PyPI
This repo uses make publish (via scripts/publish.sh) and defaults to TestPyPI.
Test PyPI (default)
To publish to Test PyPI (uses TEST_PYPI_PUBLISH_TOKEN):
make build
make publish
Production PyPI
To publish to production PyPI (uses PYPI_PUBLISH_TOKEN):
make build
PROD=TRUE make publish
Uninstallation
To remove the global installation:
make uninstall
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 time_manager-0.2.21.tar.gz.
File metadata
- Download URL: time_manager-0.2.21.tar.gz
- Upload date:
- Size: 118.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
725bffab1ef003df9cdcfd9e958d0f193241976276fa5611aef7e16fc41740ce
|
|
| MD5 |
5d4383ef1254e9051b4ab4588d373548
|
|
| BLAKE2b-256 |
a1482720c57bcf67abe3e5f9b7cb238dad68d6053ccb19d885fd307f3708ae5b
|
File details
Details for the file time_manager-0.2.21-py3-none-any.whl.
File metadata
- Download URL: time_manager-0.2.21-py3-none-any.whl
- Upload date:
- Size: 24.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d0bdd3be5e49ced44aba764b9b6777a63c2dfec967ae541d3cef85319cb5966e
|
|
| MD5 |
459e66d1d3d9b24930e28639bb91b47d
|
|
| BLAKE2b-256 |
371a81da1982d29f132492ebdea8e2dcaf28961683c17074cb150417b1176e7e
|