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
- Set a goal for each project
🚀 Quick start
pip install hourtrack
hourtrack start myProject
pipx
is recommended, but you can use pip
instead.
✨ Features
- Supports multiple projects: Track time for multiple projects.
- Set goals: Set an hour goal for each project.
- 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
pip install hourtrack
Optional installation alternative
git clone https://github.com/P-ict0/HourTrack.git
cd HourTrack
pip install .
📲 Usage
Help!
hourtrack --help
hourtrack <command> --help
Initialize a project
Create a project to start tracking time. You can also initialize a project with a goal.
hourtrack init <project> # Create a new empty project
hourtrack init <project> --goal <hours> # Create a new project with a goal
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> --goal <hours> # Set/edit an hour goal for a project (or remove it with 0)
hourtrack edit <project> --add-session <hours> # Add a session to a project
# ending now that started <hours> hours ago.
hourtrack edit <project> --delete-session <id> # Delete session by its id (use `info` command 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 <project> <--rename <name>|--add-session <hours>|--delete-session <id|-1>|-g/--goal <hours>> |
One of --rename , --add-session , --delete-session , -g/--goal |
None | Renames a project, edits hour goal, adds a session or deletes a session |
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>] |
None | format smart |
List all/active projects. |
hourtrack info [<project>] [-f <smart|full|short|hours>] [-o <outputPath>] |
None | format smart |
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
# 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.7.1.tar.gz
.
File metadata
- Download URL: hourtrack-1.7.1.tar.gz
- Upload date:
- Size: 51.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.20
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ff6b5b6d74b2dfdd3555652ca08f38a07c0353fd918c399486565d3e8639637b |
|
MD5 | 6679317cd43c0ac96f9bebfe623dc671 |
|
BLAKE2b-256 | 39ed05bb3b9ae6756d0367d7d098185b32680b481cbc8ce19123dfd29d8fe210 |
File details
Details for the file hourtrack-1.7.1-py3-none-any.whl
.
File metadata
- Download URL: hourtrack-1.7.1-py3-none-any.whl
- Upload date:
- Size: 38.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.20
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 55789a19fd11ce0cdac6e0659789777e30a73ce43b8fb29b99e9fb16b05bc855 |
|
MD5 | 4ab45ac88e17cb356c039b5292464127 |
|
BLAKE2b-256 | e386e8c62590ab0616be64f838341578c22421cb207d57ee97dc987d203cb9a8 |