Skip to main content

A terminal-based pomodoro timer with animated ASCII hourglass

Project description

hglass

A terminal-based pomodoro timer with an animated ASCII hourglass.

Install

pip install hglass

Usage

Single Timer

hglass 25              # 25-minute timer
hglass 5               # 5-minute timer
hglass 0.1             # 6-second test run

If hglass isn't on your PATH after install, use:

python3 -m hourglass.cli 25

Options

hglass 25 --label "Deep Work"      # label above the hourglass
hglass 25 --theme retro            # green-on-black matrix style
hglass 25 --theme light            # light terminal theme
hglass 25 --silent                 # no terminal bell
hglass 25 --no-notify              # no desktop notification

Pomodoro Mode

hglass pomo                                  # 4 rounds, 25min work / 5min break
hglass pomo --work 50 --break 10 --rounds 2  # custom durations
hglass pomo --label "Project X" --theme retro

Controls

Key Action
Space Pause / resume the timer
Ctrl+C Cancel the timer (in pomodoro mode, shows partial summary)

Themes

Theme Description
dark (default) Amber sand, sky blue caps — for dark terminals
light Deep blue caps, dark orange sand — for light terminals
retro Green-on-black matrix style

Testing

All testing is manual. Quick test commands:

# Basic timer (6 seconds)
python3 -m hourglass.cli 0.1

# Test each theme
python3 -m hourglass.cli 0.1 --theme dark
python3 -m hourglass.cli 0.1 --theme light
python3 -m hourglass.cli 0.1 --theme retro

# Test label
python3 -m hourglass.cli 0.1 --label "Focus Time"

# Test pause — press Space during the timer, press Space again to resume

# Test pomodoro (6s work, 3s break, 2 rounds)
python3 -m hourglass.cli pomo --work 0.1 --break 0.05 --rounds 2

# Test Ctrl+C during pomodoro — should show partial summary

# Test silent mode (no bell, no desktop notification)
python3 -m hourglass.cli 0.1 --silent --no-notify

Features

  • Large animated hourglass with falling sand
  • Smooth grain-drop neck animation at 8 fps
  • Big-digit countdown timer (MM:SS)
  • Pause/resume with Space key
  • Pomodoro mode with work/break cycles and round tracking
  • Desktop notifications on macOS and Linux
  • Three color themes (dark, light, retro)
  • Bell notification and flashing "TIME'S UP!" on completion
  • Automatic fallback for small terminal windows

Requirements

License

MIT

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

hglass-0.2.1.tar.gz (9.0 kB view details)

Uploaded Source

Built Distribution

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

hglass-0.2.1-py3-none-any.whl (10.6 kB view details)

Uploaded Python 3

File details

Details for the file hglass-0.2.1.tar.gz.

File metadata

  • Download URL: hglass-0.2.1.tar.gz
  • Upload date:
  • Size: 9.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for hglass-0.2.1.tar.gz
Algorithm Hash digest
SHA256 1e973ec4373bd6bd37150443625abcde0bc8a67109919d1fd16e9ac588ce4232
MD5 c36155e21fdb644118e8024294dca3af
BLAKE2b-256 6767ef53bf45bc503b5fe14d6763172ae3d33b772ea2643c027362292e185925

See more details on using hashes here.

File details

Details for the file hglass-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: hglass-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 10.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for hglass-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 89bf3e5b45f049bd68784804145bb27cdb19c3e18208feca0652101d9fbfc310
MD5 9b0cca10860d39d3e772267550b9ac0b
BLAKE2b-256 f061262e4d5ed483c299942d1464c33b82df345db2248506d64b66fbc123f00c

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