Python program that tracks total time spent on projects and saves sessions. It supports multiple projects.
Project description
⌛ HourTrack
Contents
- 📖 Description
- 🚀 Quick start
- ✨ Features
- 📦 Installation
- 📲 Usage
- ⚙ Options
- 💻 Development
- 👥 Contributing
📖 Description
💻 Windows, Linux and Mac compatible. 💻
A Python script to track time spent on various projects. This script allows you to start, stop, and monitor time tracking for different projects, as well as output data to files.
It is very lightweight since it doesnt have to be running in the background.
This script is going to help you track:
- Total time spent on different projects
- Work sessions information
- Time spent on each session
🚀 Quick start
pipx install hourtrack
hourtrack start myProject
✨ Features
- Supports multiple projects: Track time for multiple projects.
- Start/Stop tracking: Start and stop tracking time for a project.
- List projects: List all projects being tracked.
- Delete project: Delete a project and all its data.
- Reset project: Reset a project's data.
- Export data: Export data to a
.txt
file. - ...
📦 Installation
From PyPI
pipx install hourtrack
pipx
is recommended, but you can use pip
instead.
Optional installation alternative
git clone https://github.com/P-ict0/HourTrack.git
cd HourTrack
pipx install . # You can also use `pip`
📲 Usage
Help!:
hourtrack --help
(Optional) Initialize a project:
Create a project to start tracking time. (This is not necessary, as the project will be created when you start tracking time for it.)
hourtrack init <project>
Start tracking:
Start tracking session for a project. If the project does not exist, it will be created.
hourtrack start <project>
Stop tracking:
Stop current session for a project, saving the time spent. With option to delete all projects.
hourtrack stop <project> # Stop tracking for a project
hourtrack stop --all # Stop tracking for all projects
Reset project:
Delete all sessions for a project or all projects and reset the timer to 0, but don't delete
hourtrack reset <project> # Reset a project
hourtrack reset --all # Reset all projects
Edit project:
hourtrack edit <project> --rename <new_name> # Rename a project
hourtrack edit <project> --add-session <hours> # Add a session to a project
# ending now that <hours> hours ago.
hourtrack edit <project> --delete-session <id> # Delete session by its id (use `info` to get the id)
hourtrack edit <project> --delete-session -1 # Delete last session
Delete project:
Delete a project and all its data. With option to delete all projects.
hourtrack delete <project> # Delete a project
hourtrack delete --all # Delete all projects
List projects:
List all/active projects.
Available formats: smart
, full
, short
, hours
.
Note: If not specified, smart
format is the default format.
hourtrack list all [-f <format>] # List all projects
hourtrack list active [-f <format>] # List active projects
Project Info:
Show the status of a specific project or of all projects. With option to output to a file.
Available formats: smart
, full
, short
, hours
.
Note: If not specified, smart
format is the default format.
hourtrack info <project> [-f <format>] # Show project info
hourtrack info --all [-f <format>] # Show current active session info
hourtrack info <project|-all> -o <outputPath> [-f <format>] # Output to a file
⚙ Options
Command | Requirement | Default | Description |
---|---|---|---|
hourtrack --help |
None | None | For help |
hourtrack init <project> |
Project name | None | Create a new empty project. |
hourtrack start <project> |
Project name | None | Start tracking session for a project. If the project does not exist, it will be created. |
hourtrack stop <project|--all> |
Project name or -a/--all flag |
None | Stop current session for a project, saving the time spent. With option to stop all projects |
hourtrack reset <project|--all> |
Project name or -a/--all flag |
None | Reset a project's data. With option to reset all projects |
`hourtrack edit <--rename |--add-session |--delete-session <id | -1>>` | One of --rename , --add-session , --delete-session |
None |
hourtrack delete <project|--all> |
Project name or -a/--all flag |
None | Delete a project and all its data. With option to delete all projects |
hourtrack list <all|active> [-f <smart|full|short|hours>] |
format smart |
None | List all/active projects. |
hourtrack info [<project>] [-f <smart|full|short|hours>] [-o <outputPath>] |
format smart |
None | Show the info of a specific project or show current active session if project is not specified. With option to output to a file. |
💻 Development
git clone https://github.com/P-ict0/HourTrack.git
cd HourTrack
python -m venv venv
pip install -r requirements.txt
source venv/bin/activate # Windows: .\venv\Scripts\activate.ps1
# Note: You probably will need to remove the line from `utils/argument_parser.py`: from importlib.metadata import version
# And also remove the `version` option from the parser (below in the file).
# Run the script
python src/hourtrack.py --help
👥 Contributing
Contributions are welcome! Please fork the repository and submit a pull request with your suggested changes.
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
File details
Details for the file hourtrack-1.6.2.tar.gz
.
File metadata
- Download URL: hourtrack-1.6.2.tar.gz
- Upload date:
- Size: 50.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.19
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a264e1b68880ece1963ff09d737a8649b094eb17555f9b2398cfa4c0a4b254a8 |
|
MD5 | 1299887cb3e102aea253ef68fe0569db |
|
BLAKE2b-256 | 4c98a7f678083afe16d91e4fa08508aac45260ac7f52ea2620d0b5d1e9159443 |
File details
Details for the file hourtrack-1.6.2-py3-none-any.whl
.
File metadata
- Download URL: hourtrack-1.6.2-py3-none-any.whl
- Upload date:
- Size: 37.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.19
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8ae415819070fc1728d428608809181859e916359d0f994691d17acae7387514 |
|
MD5 | 7ea9dbe47ba412a6930e7d672e812409 |
|
BLAKE2b-256 | b6605befeaab2f365bd1c0863c08ba185cce60a1318946716a48db1565da9111 |