(You might find my Python stub[2] if you search for the name. It's really just a development setup based on other work, to maybe use the ideas from the original Perl implementation and hopefully involve a wider community.)
[0] https://debian.catalyst.net.nz/catalyst/dists/stable/catalys...
I set up separate accounts on my machine for personal, work, sideprojects and log in to those accounts when I am working or when I want to veg out and play minecraft. Couple this with an invasive tracker like rescuetime and I can have HN and reddit blocked on my work-related user accounts.
But I've used Harvest [0] in the past when I was a contractor and I was happy with that for time tracking and invoicing.