Python TUI with Textual for tracking time
Project description
ChronoTUI
ChronoTUI is a modern terminal-based stopwatch and timer manager built with Textual. It lets you track multiple timers with a beautiful, keyboard-driven interface, and automatically saves your session state.
Features
- Multiple stopwatches, each with custom names
- Start, stop, reset, and rename timers
- Keyboard navigation and control (Vim-like bindings)
- Autosave and autoload: your timers persist between sessions
- Dark/light mode toggle
- Fast, responsive UI in your terminal
Installation
You can install ChronoTUI using either pip or uv:
pip install chronotui
Alternatively, if you have uv installed, you can install it in a special virtual environment:
uv tool run chronotui
# identical to the shortcut alias
uvx chronotui
Note that when installed via uv, you have to run it with the uvx command on every start.
Usage
After installation, launch ChronoTUI from your terminal:
chronotui
If this doesn't work (possibly due to incorrect symlink creation during installation), you can also run it as a module:
python -m chronotui
Keyboard Shortcuts
q— Save and quitspace— Start/stop selected stopwatchr— Reset selected stopwatcha— Add a new stopwatchd— Delete selected stopwatchn— reName timer (alternativelycfor "change name")t— Theme selections— Settingsup/down/j/k— Select stopwatch (hidden)S— Save stopwatches manually (hidden)L— Load stopwatches manually (hidden)
State Persistence
ChronoTUI automatically saves your timers and their states to session.json in your user data directory when you quit, and reloads them when you start the app. If a stopwatch was running when you quit, its elapsed time will be updated when you restart.
User data directory is typically located at ~/.local/share/chronotui/ on Linux, or %APPDATA%\Local\chronotui\ on Windows.
Similarly, the configuration file is saved to config.json in the user config directory, allowing you to customize settings like the theme and key bindings.
User config directory is typically located at ~/.config/chronotui/ on Linux, or %APPDATA%\Local\chronotui\ on Windows (same as user data).
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 chronotui-0.4.0.tar.gz.
File metadata
- Download URL: chronotui-0.4.0.tar.gz
- Upload date:
- Size: 13.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8aa509f5e013878d963f5da69b3eeca983acd7bf4a6a50e2b288406e3e4efa8e
|
|
| MD5 |
8e0b5e1aee5457f26bf13724282a3356
|
|
| BLAKE2b-256 |
1490602017aec1c8a8402e1302cb3c82a95988cd4815d6265b5fa68dceadb93e
|
File details
Details for the file chronotui-0.4.0-py3-none-any.whl.
File metadata
- Download URL: chronotui-0.4.0-py3-none-any.whl
- Upload date:
- Size: 11.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cb6cd5bbfabb7f7a3a406fcafaa6d9a670588c71c09f78881de412546a9d3d51
|
|
| MD5 |
61dd6f91f290897f87e3f3894ceaf922
|
|
| BLAKE2b-256 |
4ce5b77aadf97b2a1a19c745fb57c96aceaa83065647a7646912c4d65d4a4dd2
|