← Home

Harvest CLI

Status: active | Years active: 2023-present | Programming Language: Python | License: GPLv3 | Source code

This was my first serious attempt at a CLI and it’s one that I use every day at my job to enter my time into our time tracking system.

The first iteration of this tool was notably heavier than it is now because I wrote it earlier. There was a lot of code duplication and a needless wrapper class around the Harvest API which I simply didn’t need. I refactored it in mid-2025 to remove a lot of bloat, make the output a lot nicer, and make the program flow easier to debug.

It’s technically not feature-complete as it lacks commands for several CRUD operations on objects which are supported by the Harvest API, but my goal with this was to provide a CLI tool which made it easier for me to track my time and as such is mostly geared around retrieving information about projects and tasks and logging time. I may add these features in at a later date.

Again, this is a dependency-light script which is installable via a simple Make file and doesn’t require many libraries which are not in the Python standard libraries.