I’m looking for a tool able to automatically track the time I spend coding. A plus if it detects also the programming language I’m coding in (even if it’s a simple approach based on looking at the file extension instead of something more accurate like the GitHub’s Linguist language savant or Enry).
It turns out, the number of programming time tracking tools is rather limited. Sure, there are tens (hundreds?) of time tracking tools out there (I use toggl), but very few have explicit support for coding related tasks. These are the ones I found (pls, point me to the ones you use if not in the list).
WakaTime is by far the most well-known tool in this area. With Wakatime you know exactly how long you spend coding. The tool automatically tracks when you start and stop working, with detailed metrics per: project, file, branch, commit, feature, operating system, editor/IDE or language, that are then presented in your private dashboard with a number of useful charts and project usage stats, commit metrics
and even a leaderboard that adds “gamification” to the process by showing how well you fare against your fellow programmers
WakaTime has a free starting plan but you’ll need to pay for more advanced features. On the Pro side (beyond all of the above), WakaTime is compatible with basically all editors and languages you could ever use.
CodeTime is a solution specific for Mac users. It’s completely free but also much simpler than WakaTime. CodeTime monitors your file changes and adds up how much time you spend on each language. CodeTime has also a status bar app that keeps track of the amount of time that you have worked each day but lacks most of the reports and gamification aspects of WakaTime. Still, if you are fan of free and Mac-specific tools, CodeTime could do the trick
CodingTracker is a Visual Studio Code coding tracker. CodingTracker is defined as a VSCode extension. Basic behavior is like previous tools: you can know how much time you spend on each project/files/computers/languages/branches. Beyond its tight integration with Visual Studio, this tracker may be especially useful to Chinese speakers since it supports both simplified and traditional chinese. Moreover, it’s fully open source (see the CodingTracker GitHub repo).
Last but, definitely, not least, CodeAlike is more than a simple time tracking for your coding activities. And that’s what I like the most about this tool. Sure, you still get the time you spent coding and the distribution of that time per language/technology, but its focus is really on analyzing your coding from every possible angle so that you better understand how you code and how you could improve your productivity.
As an example, CodeAlike shows your “focus curve” where you can see how many times you got interrupted while coding. Or, it can explain to you whether you spend most time coding, debugging, reading or building your code. The following 2-min video will give you a great overview of what CodeAlike could do for you.
As WakaTime, it has a free plan but you’ll have to subscribe to a premium plan to get advanced features and team dashboards.
Code Time is an open source plugin for automatic programming metrics (and no, it’s not the same CodeTime mentioned above). It started as a VS Code extension but it now integrates with a variety of other IDEs. Some of the metrics they compute (see also the image below) are the programming time, the lines of code, the number of keystrokes, the main languages,…
They also help you to identify your ideal programming hours (i.e. those where, according to your programming history, you wrote more code) so that you can then try to “block” and “protect” those time slots. Some of these data is calculated and visualized via the web app linked to the plugin you install on your IDE (which means that you need to be online while using this time tracker).
For now, they provide 90 days of data history for free (and they commit this will always free forever but in the future, they will provide premium plans for advanced features and historical data access).
CommitSheet is a free tool to automatically generate timesheets from a GitHub project. It basically looks at the history of the commits in the project to create a report sheet like this one:
The tool is still in its early stages. For instance, right now is more of a “Git time tracker” than a “GitHub time tracker” since it doesn’t seem to track other project-related activities (like interacting and managing open issues) beyond development-oriented tasks. And, of course, it cannot calculate how many hours did you actually spent on a certain task (it just assumes that if you work X hours a day and there is a commit that day, you spent X hours working on it).
Still, a nice complement to some of the tools above.
(featured image by frankieleon )