Today I am going to talk about WakaTime and how I find it useful. What is WakaTime? It’s a tool used to track development time through the use of your code editor(s). You install a plugin on your code editor (if supported, most probably is) and it tracks when you type and how long for, also taking in account any time for thinking, research and other tasks we do while programming. Don’t worry though it does not actually key log when you are typing, it’s all open source as well.
I am in no way affiliated with WakaTime, I just find it useful and wanted to write about it.
This is what the dashboard looks like:
It has its own web interface so you can preview all the data it collects and calculates. The dashboard is the main screen/page you will interact with and use, it’s the place you go to see your tracked usage. It gives you an overview of what you’ve done.
Most likely your code editor already is supported, WakaTime supports loads of popular code editors already:
What does it mean for my editor to be supported? For WakaTime to work, you have to install a plugin on your chosen editor, that is what allows it to track your coding time. Once you have a plugin installed, anything you edit will be tracked and classed as coding time but this can be tweaked in the config later… Interested? - Check out how to install a plugin here: WakaTime Plugins
After installing a plugin you need to grab an API key, to do so, sign-up for an account at WakaTime.com
Once you have an account go to your settings and get the API key:
Then you will need to paste the API key into the installed plugin on your editor, then you are all set!
The API key works for all your editors, so use the same key on any plugin you install, then all your data is on one account.
At this stage, you should be all good and once you start coding, refresh the dashboard and you should see data coming in!
However, this is all good but I found it might be best to tweak a few settings before you continue using WakaTime… Let’s go over what I changed to make things better:
Before you go ahead and start producing a load of data, I would go over your account settings and tweak things like time zone, start of the week, time format and date format - That way you will see your data how you like it.
The default settings might be annoying for some but if you don’t want extra or any emails being sent to you about reports and activity, turn them off before they get too much.
Coding Timeout - Important!
I’d say this setting is very important, you might not be bothered but you should consider it first before letting coding activity be collected. What is the coding timeout? It basically means the timeout threshold between when WakaTime should detect a new coding session, more control over how much you have actually coded. Its unit is in minutes, the default is 15, the lower you set it the more accurate your coding time is, the higher you set it, the less accurate your coding time is but, it accounts more for tasks that you do while not actually typing/coding etc. Read more about the timeout here: Time Out FAQ
In my experience I found the default 15 minute timeout to be way too generous with how much I was actually coding, so I set mine to 5 minutes and found that was too strict and eventually settled on 7 minutes. If you find you code for long sessions with lots of research or thinking in between, set this number higher.
WakaTime New Project Detection - Important!
By default when you install one of WakaTime’s plugins, it will track any file you open in the editor you have a plugin installed on and in my opinion this can get annoying and skew your data in the dashboard with how much time you actually spent coding, making the data in my opinion, inaccurate.
Luckily, WakaTime has a config file for us to edit locally and change this behaviour. The setting we want to change is called
include_only_with_project_file, it can be found in your config file, usually located at
If you set
include_only_with_project_file = true, WakaTime will now only track your coding activity when the project has the
.wakatime-project file located in the root of your directory, you will also need to open this file and set the project name on the first line as this will show up in the dashboard. But that’s it! No more “Unknown Projects” showing up in the dashboard with data from random files you opened that are not part of a project…
Find more about the WakaTime config here.
Reset your starting collected data
If you installed a plugin and made an account, you will probably have data that started to get collected from messing about and testing out WakaTime. After you have setup your account the way you like it and if you have “Unknown Projects” sitting around, you probably want to start again, right? Well you can, go to the deletion tool to remove data you don’t want: Waka Delete Tool
If you choose to delete everything and start again, refresh the dashboard, check everything is gone (may take a few minutes) and then you can continue using your editor and tracking your activity with fresh data.
I find WakaTime useful for tracking how much work you are actually doing, if you have time management issues or lack motivation, you could use this tool to improve that! For example, it has leader boards which show weekly progress:
Seeing your overall progress shows how much time you have given to a particular project or language, it can be very interesting as a developer to see where we spend our most of time.
You can also set your own goals as well:
In the end, I think WakaTime is an interesting tool, doesn’t get in the way once setup and provides us with an overview of what we do. WakaTime is not completely free, it does have a pricing plan but as an individual dev, it’s more than usable; a good thing to note is the free plan only shows 2 weeks of data but if you decide to upgrade later on, you can get access to the rest of your data which gets displayed on the dashboard. Your data is also downloadable completely free, no matter the plan you’re on.
Thanks for reading and I hope you like this tool I found, I wanted to share my experience with it and what settings I changed to make it work for me, if you need any help or have questions visit the FAQ or send a reply to this topic
(WakaTime has more features and settings not discussed here, so maybe I will make another post in the future with what else it can do)