Skip to main content

Time tracking for any IDE with WakaTime-like servers

Project description

wakapi-anyide

Log your coding time against any WakaTime-like server.

[!NOTE] Teenager? Check out High Seas!

[!IMPORTANT] wakapi-anyide is still in development. Please report any tracking bugs!

Alternatives

You should try use an editor extension over wakapi-anyide if you can. If you don't need precise coding metrics, use the WakaTime app instead. The WakaTime app does not work with High Seas.

Quickstart guide for most IDEs

These instructions are best run in an existing project.

  • Create a .wakatime.cfg file if you don't already have one. If you're doing High Seas, this is explained in the Signpost (click "View instructions for all platforms" and scroll down).

  • Set your IDE to autosave as quickly as possible. This is how wakapi-anyide is able to track your coding time. Ideally, something like a second, so it saves as you type. However, anything under your editor timeout preference in your WakaTime settings is fine. For High Seas, it must be under two minutes.

  • Install wakapi-anyide with your favourite Python package manager (try pipx install wakapi-anyide[color] to install with colour support!)

  • Run wakapi-anyide setup and follow the instructions.
    The included paths are the paths that wakapi-anyide will watch for changes.
    The excluded paths are the paths that wakapi-anyide will ignore. You should put things like generated/compiled code or packages there (ie *.o, /node_modules). By default, if you have a .gitignore then it will ignore every file listed in it.

  • Inspect and edit the generated wak.toml:

    # https://github.com/iamawatermelo/wakapi-anyide v0.6.7
    
    [meta]
    version = 1
    watchers = ['files']
    
    [files]
    include = ["*"]  # files to include in tracking
    exclude = []  # files to exclude in tracking
    exclude_files = [".gitignore"]  # files whose contents will be used to exclude other files from tracking
    exclude_binary_files = true  # whether to ignore binary files
    # language_mapping = {".kicad_sch" = "Kicad Schematic"}  # custom language mapping
    
    [project]
    name = "test2"  # your project name
    
  • Run wakapi-anyide test in the same directory you have wak.toml in. Ensure that wakapi-anyide is not tracking any generated files by reading through the paths it has cached. If there are no generated files in the cached paths, you're good to go.

  • Run wakapi-anyide track to actually track your progress. You must run this every time.

What wakapi-anyide sends

wakapi-anyide tells the WakaTime server:

  • your OS and that you are using wakapi-anyide (wakatime/unset (Linux-none-none) wakapi-anyide-wakatime/unset)
  • an anonymised hostname based off of your computer's name (anonymised machine 749f8c4e)
  • the relative path of the files you change (./wakatime_anyide/__init__.py)
  • the estimated time you have spent
  • your estimated cursor position over time
  • the estimated language of any files you edit (py, Makefile)
  • the amount of lines changed
  • the branch you are editing if you use Git
  • any information you specified in the project section of wak.toml

Additionally, the WakaTime server will be able to see:

  • your IP address, which means your approximate location
  • the time of day your requests are being sent

Every website you visit can see this information.

wakapi-anyide does not send:

  • any information about your system not listed above, like your username
  • file content
  • filenames outside of those included in your wak.toml

For security, wakapi-anyide does not use wakatime-cli.

Support for existing WakaTime configuration

wakapi-anyide supports the WAKATIME_HOME and the WAKATIME_API_KEY environment variables. The configuration value takes precedence over the environment variable.

$WAKATIME_HOME/.wakatime.cfg

Only these configuration values are supported:

[settings]

option description type default value
api_key Your WakaTime API key. string
api_key_vault_cmd A command to get your api key. Shell syntax is not supported, use sh -c "<your command>" for that. string
api_url The WakaTime API base url. string https://api.wakatime.com/api/v1
hostname Optional name of local machine. string (an anonymised hostname)
heartbeat_rate_limit_seconds How often to send heartbeats, in seconds. int 120

All other configuration values are silently ignored.

.wakatime-project

Not supported.

Quirks and limitations

Tracking

wakapi-anyide is not integrated with your editor. It can only guess what you are doing through file changes. As such, it may sometimes pick up generated files.

By default, any directory beginning with . will be untracked. You cannot change this.

Binary files

wakapi-anyide can track binary files with files.exclude_binary_files = false. File changes are reported specially:

  • they are appended with #wakapi-anyide-binary in tracking
  • cursor position is set to the last change in the binary file
  • the line count are set to the binary diff count

Large files

For performance reasons, files which are larger than 64 KiB will only report changes in filesize.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wakapi_anyide-0.6.7.tar.gz (20.3 kB view details)

Uploaded Source

Built Distributions

wakapi_anyide-0.6.7-cp312-abi3-win_amd64.whl (233.1 kB view details)

Uploaded CPython 3.12+ Windows x86-64

wakapi_anyide-0.6.7-cp312-abi3-win32.whl (221.3 kB view details)

Uploaded CPython 3.12+ Windows x86

wakapi_anyide-0.6.7-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (397.7 kB view details)

Uploaded CPython 3.12+ manylinux: glibc 2.17+ x86-64

wakapi_anyide-0.6.7-cp312-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl (447.3 kB view details)

Uploaded CPython 3.12+ manylinux: glibc 2.17+ s390x

wakapi_anyide-0.6.7-cp312-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (442.6 kB view details)

Uploaded CPython 3.12+ manylinux: glibc 2.17+ ppc64le

wakapi_anyide-0.6.7-cp312-abi3-manylinux_2_17_i686.manylinux2014_i686.whl (420.4 kB view details)

Uploaded CPython 3.12+ manylinux: glibc 2.17+ i686

wakapi_anyide-0.6.7-cp312-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (398.6 kB view details)

Uploaded CPython 3.12+ manylinux: glibc 2.17+ ARMv7l

wakapi_anyide-0.6.7-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (395.6 kB view details)

Uploaded CPython 3.12+ manylinux: glibc 2.17+ ARM64

wakapi_anyide-0.6.7-cp312-abi3-macosx_11_0_arm64.whl (315.8 kB view details)

Uploaded CPython 3.12+ macOS 11.0+ ARM64

wakapi_anyide-0.6.7-cp312-abi3-macosx_10_12_x86_64.whl (321.1 kB view details)

Uploaded CPython 3.12+ macOS 10.12+ x86-64

File details

Details for the file wakapi_anyide-0.6.7.tar.gz.

File metadata

  • Download URL: wakapi_anyide-0.6.7.tar.gz
  • Upload date:
  • Size: 20.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: maturin/1.7.4

File hashes

Hashes for wakapi_anyide-0.6.7.tar.gz
Algorithm Hash digest
SHA256 76a3b93c5638fcafe12e970f8ff6a36bf2f3febeffc05ed70e34c3dc84478bdc
MD5 7ef081b85b44603043962069cacc68e5
BLAKE2b-256 949c136144aa6d1508d0f384ab606f66aa254e525153843fe2039587d0b7ad84

See more details on using hashes here.

File details

Details for the file wakapi_anyide-0.6.7-cp312-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for wakapi_anyide-0.6.7-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 fe3e48148ab2307ea66edb7c2e40fbaa361622a1d696f81472425bfff0a99929
MD5 6cfab47c010a2ebee15f2cc9f9310bb5
BLAKE2b-256 6ee5319e1596a404ffa1daeea605090d8ad7a0bec646532afe8032a0b693ae0d

See more details on using hashes here.

File details

Details for the file wakapi_anyide-0.6.7-cp312-abi3-win32.whl.

File metadata

File hashes

Hashes for wakapi_anyide-0.6.7-cp312-abi3-win32.whl
Algorithm Hash digest
SHA256 ee12db89984ab8807b0e39b5f4c01076d393f2e5cbc058045a1ec1f6200ea636
MD5 fa53742cdd84d571d6e28f7cebd71b3e
BLAKE2b-256 c598c0195d3b9a86742582f2ec426bb4b913f567101356b4ef0870dd37604b4d

See more details on using hashes here.

File details

Details for the file wakapi_anyide-0.6.7-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for wakapi_anyide-0.6.7-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 50b88398c69a4bdcb1a269bca79638b27fb3e632f81b28aea7d70ddb21a184db
MD5 43f74e279aa59739bed4e549ee6e3cb3
BLAKE2b-256 9c249b5e38f32c1f1d18aaff716769d0ce42d659a93668ded450e931ea48179c

See more details on using hashes here.

File details

Details for the file wakapi_anyide-0.6.7-cp312-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for wakapi_anyide-0.6.7-cp312-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 24ee0501d82d25e9611c6dd1f2849e418d680949ea0afa80c335159ff08f3c42
MD5 c8352e30d4ae23bb834153cb4310bb60
BLAKE2b-256 e890ead3120cfa8bb90e96887b1385d33f0a31b7c7a067449ed1422c7a8359f5

See more details on using hashes here.

File details

Details for the file wakapi_anyide-0.6.7-cp312-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for wakapi_anyide-0.6.7-cp312-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 52dbf2cf49162fe2b45b90ff37678cab9bb7aeada5e99f7b72840ce2a1ce5695
MD5 a346bdc850247686bd310ed7533dfff4
BLAKE2b-256 738e0c64f660bb2c02468597b9d1afbd6fd46f2659548d482c5b78135aefb8c7

See more details on using hashes here.

File details

Details for the file wakapi_anyide-0.6.7-cp312-abi3-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for wakapi_anyide-0.6.7-cp312-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 0aefb8756f09af7e88a3038123b082f5034ecfb48cecbc7cd773ed3a9a5750a1
MD5 6d6ef2071dbb5e0c912d60b0b6543158
BLAKE2b-256 acc8f91df39036f11b392a908cbbcd02cf1b65ef7a40b9d506392493bf333f67

See more details on using hashes here.

File details

Details for the file wakapi_anyide-0.6.7-cp312-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for wakapi_anyide-0.6.7-cp312-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 5c9f1f5721698b236bd7280a3abc0cef8a46cbf43a82ed29d8afdfdfe2608ff4
MD5 3147855caad5d94eb70584376d5d63bf
BLAKE2b-256 0067e22338137a6ad11365fa2f35f254396da8db01e7a6f43cc6ba0e812cd9fd

See more details on using hashes here.

File details

Details for the file wakapi_anyide-0.6.7-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for wakapi_anyide-0.6.7-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 314ede321070e4701896cea9807699a8534d7b7b08c90cf2b1fa113af8beff87
MD5 84d42fb3ece44170343b5389817d1796
BLAKE2b-256 45e31c64da0efa69b7d3046d3538dbff1c8292ada0985f49e4abbc8cd7b50bfc

See more details on using hashes here.

File details

Details for the file wakapi_anyide-0.6.7-cp312-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for wakapi_anyide-0.6.7-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7062c2295b9a8073626b19ea02c5ac3fd598c7add0323f7ab79bc7eebc3fa326
MD5 b48bfade9cfd2f7d1493485cb8f839c0
BLAKE2b-256 2bfe1ae214a1ecffa874c309dad79bbf78ae77e419c8502ad50c6c0efbec6b3c

See more details on using hashes here.

File details

Details for the file wakapi_anyide-0.6.7-cp312-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for wakapi_anyide-0.6.7-cp312-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ec89fca4d1653f868de6607182f3ecac8ef5457515f9b467eab6d1741bdd51df
MD5 f0bb094e2254432a20954a7f12a02bac
BLAKE2b-256 97f844de8678f5c49bdfb04181e1ff2415801594a3e83ba57af05e7b08a07fd6

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page