Time in the shell
I like testing new web apps, so I have used things like Workflowy, Moo.do, Asana, Todoist, Evernote, Jira, etc. for keeping notes, tasks and other stuff like budget and expenses. But I always reach a point where the app can't do something I want to do, for example Workflowy can't give me summary of what I need to do today ( without me having to do a lot of clicks and search) or it can't alert me that I'm not keeping track of time. So when I reach that point I test a new app, and another one, and then maybe I'll use two apps to get most of the features...
But then it hit me, some years ago, I used Python scripts to keep my budget, and hey I had everything I needed made custom just for me. So I started searching for some time tracking tool on Linux, and I found Watson.
Watson is a CLI to keep track of time, it also generates some nice reports. But guess what, since it runs on the shell, I can use other tools to add more features to it. For example I have a CRON job every 5 minutes that lets me know based on "watson status" if I'm actually keeping track of my time at that moment, this way I don't forget to keep track of my time.
I use markdown files to keep track of my tasks and notes, and using #tags I have commands like "today" that show me the things I have to do today. I also have commands like watson-today, watson-yesterday that generate reports that I need and save them on GitHub.
When on the go, I use Dropbox Web (since it has markdown preview) to check my markdown files, before leaving I run the "today" command that nicely creates a markdown file that I can check on Dropbox on my phone.
I have features that don't exist on any app, some too personal probably. I also have some missing features, but the main thing that I like is that this setup adapts to my work habits and environment. Oh and I can edit my tasks with VIM very fast.
Time in the shell