/wakatime

Command line interface used by all WakaTime text editor plugins.

Primary LanguagePythonBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Tests Windows Tests Coverage Version Supported Python Versions Code time tracker

WakaTime

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

Go to http://wakatime.com/editors to install the plugin for your text editor or IDE.

Installation

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 manually.

Each plugin installs the WakaTime CLI for you, except for the Emacs WakaTime plugin.

Install the plugin for your IDE/editor:

https://wakatime.com/editors

Each plugin either comes pre-bundled with WakaTime CLI, or downloads the latest version from GitHub for you.

Usage

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

For command line options, run wakatime --help.

Some more usage information is available in the FAQ.

Configuring

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

[settings]
debug = false
api_key = your-api-key
hide_file_names = false
hide_project_names = false
hide_branch_names =
exclude =
    ^COMMIT_EDITMSG$
    ^TAG_EDITMSG$
    ^/var/(?!www/).*
    ^/etc/
include =
    .*
include_only_with_project_file = false
status_bar_icon = true
status_bar_coding_activity = true
offline = true
proxy = https://user:pass@localhost:8080
no_ssl_verify = false
ssl_certs_file =
timeout = 30
hostname = machinename
[projectmap]
projects/foo = new project name
^/home/user/projects/bar(\d+)/ = project{0}
[git]
disable_submodules = false

For commonly used configuration options, see examples in the FAQ.

Troubleshooting

Read How to debug the plugins.

Make sure to set debug=true in your ~/.wakatime.cfg file.

Common log file location in your User $WAKATIME_HOME directory:

~/.wakatime.log

Each plugin also has it's own log file:

  • 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...)
  • VS Code 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

Useful API Endpoints:

Useful Resources:

Contributing

To install the dev environment:

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

Before contributing a pull request, make sure tests pass:

tox

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

nosetests

To run only a single test method, specify the test file location, test class, and test method. For example, to only run the Git project detection test:

nosetests tests.test_project:ProjectTestCase.test_git_project_detected

Many thanks to all contributors!