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.5
    
    [wakapi-anyide]
    version = 1  # don't change this
    
    [files]
    include = ["/python/**/*.py", "/*.toml"]  # files to include in tracking (ie /src)
    exclude = ["/.venv"]  # files to exclude in tracking (ie /node_modules)
    exclude_files = [".gitignore"]  # files whose contents will be used to exclude other files from tracking
    exclude_binary_files = true
    
    
    [project]
    name = "wakapi-anyide"  # 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.

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.5.tar.gz (20.2 kB view details)

Uploaded Source

Built Distributions

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

Uploaded CPython 3.12+ Windows x86-64

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

Uploaded CPython 3.12+ Windows x86

wakapi_anyide-0.6.5-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.5-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.5-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.5-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.5-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.5-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (395.7 kB view details)

Uploaded CPython 3.12+ manylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.12+ macOS 11.0+ ARM64

wakapi_anyide-0.6.5-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.5.tar.gz.

File metadata

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

File hashes

Hashes for wakapi_anyide-0.6.5.tar.gz
Algorithm Hash digest
SHA256 250a911eaca6c3db9156d3cc27c012881c68390948392144ec7c5a62da4f2bc7
MD5 ba839fd812b04fe6474adee8992f0092
BLAKE2b-256 c939299a5f5ba9cc9cdda0c9aa4d9aaa4580197f90655a66d8a585840118642a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.6.5-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 c00de8393a666f122cb0ac5d9da40fe29a14695997015e2f8d0e43587416d1b9
MD5 9919fd3be79cf988740d7575cdbc6a11
BLAKE2b-256 7faf1980fff6fd680415e77e7efb987af0955e2b7c9789eee6dcb9124cdb9092

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.6.5-cp312-abi3-win32.whl
Algorithm Hash digest
SHA256 87011c45352337c020eba3a8c1c02a9d156a5e3a83af558b07e555758dac4831
MD5 5be1714671b2dcf05d9a8a5eac403e2b
BLAKE2b-256 5c7d01e03e75389657ed16efd16029d2b03bef48a15b1996bfec9e434b8b543d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.6.5-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d992443b06f064218a4e01a0c7e586f8cb562d5cab418687778142cc65cb1735
MD5 f699cecb8567959c4e3f8bde4134b470
BLAKE2b-256 142b6fa48cda4807ebde8af6c8d5f3bdcb3e4503ab9a4f885ce87a4f182cddc7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.6.5-cp312-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 2f037154bc8f3036e1fbf9c8c62aefd24aa5bbf942f921c051d1359cd027d366
MD5 9657b0a14ee25dbecb4eec09901ddefa
BLAKE2b-256 afa543b7cb94abb8691bb07c5e1eced10f3082b755124d0e2c6ae03ac6683b37

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.6.5-cp312-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 8f5edba52b0e4b4c56b19f34685086dea700337034ff5697c7438ae3fbac6730
MD5 ede0d6462cece8e765bead9dfca84769
BLAKE2b-256 f8c4b955e9d9ef3fd8ce0760a729512f47e9535412a1746d70ae49cb29fb9c37

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.6.5-cp312-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 0573b2d26fd541225062b2bfad32ed171f5e4d9cd505f1c3233404e5f0927c6d
MD5 4d41c106d7211b055a34cafb05b607d0
BLAKE2b-256 210e3ca76751527e0850585892424c92f91646cfb0f9751b9ccb547f687b8d4d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.6.5-cp312-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 da2a051060c767176c7bacf9838bca5a912de1d472c401ead8de67a810d731c4
MD5 c9766e0d710f45a37ac08cddfaa77a37
BLAKE2b-256 103902de18fc014df2b5e0991fcd4dc972b45c5f6a756edf717e10cf900ab8d6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.6.5-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 89a93d1530cf143a4ff8a87892fd4c7e0b572fd954900e970a89c9cfa800ca00
MD5 b262e8773c9057bb475d2eb20488dde3
BLAKE2b-256 c083851e340193d5c0421802d9935a81314ee8336d6f37f058bcca3c4b27fb5a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.6.5-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c7b9f7930e0cb7e25457ad3bd94087d091bddb9974fe92736096fa69049bdfe5
MD5 b51007d29eb13d2dcab91eca9b7cf6a7
BLAKE2b-256 f2919d724e66b64c7a42f05cb49b472c94e6f9bccf11769e887fd3ee9299dff7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.6.5-cp312-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 fa1cb8e5d6f61298f0abf7ea599084a4ba086c51bd394fe48f2fb301501a0265
MD5 7b7cad9c0e68c1b11544d0467d867c26
BLAKE2b-256 90097f1021175eaadc4ccf8dcf4f3cf77ec9b3ef46b8400fa5e7fcab9780aa53

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