Skip to main content

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.

Stopwatch TUI Screenshot

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) and time-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 alias
  • time-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
tm sw -n "Project Alpha"

For interactive TUI mode:

tm sw -i
tm sw -i -n "Project Alpha"

Controls (TUI mode):

  • Space: Start/Stop
  • r: Reset
  • q: 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/Resume
  • q: 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 run Run the application
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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

time_manager-0.2.26.tar.gz (119.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

time_manager-0.2.26-py3-none-any.whl (26.4 kB view details)

Uploaded Python 3

File details

Details for the file time_manager-0.2.26.tar.gz.

File metadata

  • Download URL: time_manager-0.2.26.tar.gz
  • Upload date:
  • Size: 119.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.17

File hashes

Hashes for time_manager-0.2.26.tar.gz
Algorithm Hash digest
SHA256 34211632882407f7fc05f1f7c7aa57e1f08bde3bf03c90ad151325ce4ec5e5f0
MD5 99923ef82a49b82f092495d580516af1
BLAKE2b-256 b61f275435a67ebf1a1d6f6c8c656bc00ec0e5091e54ff4f58584ae72b555939

See more details on using hashes here.

File details

Details for the file time_manager-0.2.26-py3-none-any.whl.

File metadata

File hashes

Hashes for time_manager-0.2.26-py3-none-any.whl
Algorithm Hash digest
SHA256 468b5635c9c15f0c7091f1724d20e91b1a955d205ddeef9d8b8c576465d0e54d
MD5 db6a7fa521c7faec93dc087aa4681380
BLAKE2b-256 455653e4e9323b86d7f89c726b50cda24643792d60fda0e1dcc8e16c40e09131

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page