I’ve recently started using TimeWarrior to track my time. Having everything in the terminal makes it very easy to link up things to do multiple stuff. For example, I have aliases set up to automatically create a branch and start time tracking based on a JIRA issue number, as well as updating the tracked time to JIRA. One of the limitations I have found with TimeWarrior though is the fact that it has no simple native sync method.