Command line interface used by all WakaTime text editor plugins.
Python C PHP HTML Java Go
Latest commit 504c199 Oct 24, 2016 @alanhamlett alanhamlett v6.2.0



Tests Coverage Version Dependencies Slack

Command line interface to WakaTime used by all WakaTime text editor plugins.

Note: You shouldn't need to directly use this package unless you are building your own plugin or your text editor's plugin asks you to install the wakatime cli interface manually.

Go to to install the plugin for your text editor or IDE.


Each plugin should install wakatime for you, except for the Emacs WakaTime plugin.

Install the plugin for your IDE/editor at, which will install wakatime-cli(this package) for you.

If your plugin does not install wakatime-cli, install it with:

sudo pip install wakatime


If you are building a plugin using the WakaTime API then follow the Creating a Plugin guide.

For command line options, run wakatime --help.


Options can be passed via command line, or set in the $HOME/.wakatime.cfg config file. Command line arguments take precedence over config file settings. The $HOME/.wakatime.cfg file is in INI format. An example config file with all available options:

debug = false
api_key = your-api-key
hidefilenames = false
exclude =
include =
offline = true
proxy = https://user:pass@localhost:8080
timeout = 30
hostname = machinename
    projects/foo = new project name
    ^/home/user/projects/bar(\d+)/ = project{0}


WakaTime CLI writes errors to a common log file in your User $HOME directory:


Set debug=true in ~/.wakatime.cfg for more verbose logging, but don't forget to set it back to debug=false afterwards or your editor might be laggy while waiting for wakatime cli to finish executing.

Each plugin also has it's own log file for things outside of the common wakatime cli:

  • Atom writes errors to the developer console (View -> Developer -> Toggle Developer Tools)
  • Brackets errors go to the developer console (Debug -> Show Developer Tools)
  • Cloud9 logs to the browser console (View -> Developer -> JavaScript Console)
  • Coda logs to /var/log/system.log so use sudo tail -f /var/log/system.log in Terminal to watch Coda 2 logs
  • Eclipse logs can be found in the Eclipse Error Log (Window -> Show View -> Error Log)
  • Emacs messages go to the messages buffer window
  • Jetbrains IDEs (IntelliJ IDEA, PyCharm, RubyMine, PhpStorm, AppCode, AndroidStudio, WebStorm) log to idea.log (locating IDE log files)
  • Komodo logs are written to pystderr.log (Help -> Troubleshooting -> View Log File)
  • Netbeans logs to it's own log file (View -> IDE Log)
  • Notepad++ errors go to AppData\Roaming\Notepad++\plugins\config\WakaTime.log (this file is only created when an error occurs)
  • Sublime Text logs to the Sublime Console (View -> Show Console)
  • TextMate logs to stderr so run TextMate from Terminal to see any errors (enable logging)
  • Vim errors get displayed in the status line or inline (use :redraw! to clear inline errors)
  • Visual Studio logs to the Output window, but uncaught exceptions go to ActivityLog.xml (more info...)
  • Vscode logs to the developer console (Help -> Toggle Developer Tools)
  • Xcode type sudo tail -f /var/log/system.log in a Terminal to view Xcode errors

Check that heartbeats are received by the WakaTime api with the last_heartbeat and last_plugin attributes from the current user api resource. You can also see a list of all your plugins and when they were last seen by the api with the user_agents api endpoint.

Note: Saving a file forces a heartbeat to be sent.

Official API Docs


Before contributing a pull request, make sure tests pass:

virtualenv venv
. venv/bin/activate
pip install tox

The above will run tests on all Python versions available on your machine. To just run tests on a single Python version:

virtualenv venv
. venv/bin/activate
pip install -r dev-requirements.txt

Many thanks to all contributors!