This is a zx-based cli tool to manage the personal Harvest timer using its API v2.
Start this script with (cf. prerequisites):
npx zx index.js
Exit the script with ctrl+c
.
Tip: Create an alias within your bash; e.g., harvest=npx zx <path-to-script>/index.js
.
- β shows today's entries (with breaks, conflicts, and missing notes)
- β show entries of preceding workdays (max. five workdays)
- β
start timer (on a project task with notes and start time)
- β exclude irrelevant projects from prompts via config
- β
input relative start time; e.g.,
-15m
for 15 minutes ago
- β start timer using configurable rules (pre-defining the project, task, and notes)
- β stop running timer (with end time)
- β restart timer by choosing an entry from preceding workdays
- β edit an entry (start time, end time, notes, and task)
- β delete an entry
- π‘ TODO start timer rules with lookups; e.g., title form ticket system
- π‘ TODO start timer rules deducing project; e.g., via ticket number
- π‘ TODO restart timer configurable rules; e.g., development -> pair programming -> testing
- π‘ TODO fix overlaps
- π‘ TODO fix gaps (unwanted breaks)
- π‘ TODO create new entry with endet time
- π‘ TODO configure workdays
- π‘ TODO bundle to binary (e.g., with pgk?)
- Node version >= 16.0.0
- Install project dependencies with
npm install
- Create a Harvest **developer API token
**
- Set the environment variables
HARVEST_ACCOUNT_ID
andHARVEST_API_TOKEN
; e.g., in the.env
file
- Set the environment variables
The configuration for the script is saved in .json-files under the .config
directory.
If a configuration file is missing, a default one will be created. The files are read only once on startup.
- Stop action isn't shown when a timer is running but its start time is before the start time of the latest entry.
- Unknown unknowns π€·ββοΈ