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. (Not for 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)

  • 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.5.2
    
    [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

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

Uploaded Source

Built Distributions

wakapi_anyide-0.5.2-cp312-abi3-win_amd64.whl (231.4 kB view details)

Uploaded CPython 3.12+ Windows x86-64

wakapi_anyide-0.5.2-cp312-abi3-win32.whl (219.6 kB view details)

Uploaded CPython 3.12+ Windows x86

wakapi_anyide-0.5.2-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (396.0 kB view details)

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

wakapi_anyide-0.5.2-cp312-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl (445.7 kB view details)

Uploaded CPython 3.12+ manylinux: glibc 2.17+ s390x

wakapi_anyide-0.5.2-cp312-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (440.9 kB view details)

Uploaded CPython 3.12+ manylinux: glibc 2.17+ ppc64le

wakapi_anyide-0.5.2-cp312-abi3-manylinux_2_17_i686.manylinux2014_i686.whl (418.7 kB view details)

Uploaded CPython 3.12+ manylinux: glibc 2.17+ i686

wakapi_anyide-0.5.2-cp312-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (397.0 kB view details)

Uploaded CPython 3.12+ manylinux: glibc 2.17+ ARMv7l

wakapi_anyide-0.5.2-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (394.0 kB view details)

Uploaded CPython 3.12+ manylinux: glibc 2.17+ ARM64

wakapi_anyide-0.5.2-cp312-abi3-macosx_11_0_arm64.whl (314.2 kB view details)

Uploaded CPython 3.12+ macOS 11.0+ ARM64

wakapi_anyide-0.5.2-cp312-abi3-macosx_10_12_x86_64.whl (319.4 kB view details)

Uploaded CPython 3.12+ macOS 10.12+ x86-64

File details

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

File metadata

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

File hashes

Hashes for wakapi_anyide-0.5.2.tar.gz
Algorithm Hash digest
SHA256 d9c06a52fce72d0c3f135184eb634ed8d21f159e091345a2cf6d1c2f697a6054
MD5 a28debb8f81d56e97da660442b10775d
BLAKE2b-256 fbece17cc3ec529bee00b1d49c499817e858c4a94f600ada2e40d6289fcfe109

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.5.2-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 15c9c3abb8155edf93f5c9b5cdbcca9a2734413395c1344f5cdcdf08eee55a79
MD5 7944ca3620673ce695dbaefcd3585fc1
BLAKE2b-256 223bae983a2fdc661ac7c4c9ae0bd0fb4afc14672f51b74946be524bc79111b1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.5.2-cp312-abi3-win32.whl
Algorithm Hash digest
SHA256 c85abf9f7742abcf27fbe7e76b220e5bed2f2b9c362bc55cbf106bd33a170376
MD5 03f70bde12e3c53a558dc0e5e78b13b7
BLAKE2b-256 63f0e4cef421ad47002e5fbaa60131ce2ea36f814211721cf81c0c98c1775ad1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.5.2-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 90ac0bcc6b6d4b5094a95f48d7d79656f99f487aa4d82ac77fa88f327aef0b05
MD5 a0bdbc17faecf410f08db39f40f08397
BLAKE2b-256 581ca5923700e9934f5d3a55e962655c2d40e56f0f990fc380f36f1d2dfc5c35

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.5.2-cp312-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 c46470476712cc4a0644b545b8ef87df784e6d31ab55c586ccb50ea7d4f3144a
MD5 8c68c3126a8c8bb3064d9ef0a31a2044
BLAKE2b-256 3af693c96eede10fcc08a77519ef613794783cbd28b98404e9407e18beea3124

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.5.2-cp312-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 5647b10d174b92119538c842f450ff433fe30e0560f96b50e9625f3dbab70fcd
MD5 8d342cdfc4773e41a4b87e45304e30de
BLAKE2b-256 64673042a7c2c4bd6e686b5680b32fe0835f10f734cc04117407535208473c73

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.5.2-cp312-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 49def19adf90c8d057930631e3acff18c7feefaabd8db151c36059a7d0418c8b
MD5 8cc99cd79cdfb8e5d01d2fa0d26bc95c
BLAKE2b-256 4488afa23ced683ff5398f01af1592188ad511bd2d68d1d14e41c8b3fbe2f02d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.5.2-cp312-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 e8c1fb3a15c7fd66d14244c635b12bb77b96f196dab5cd3e9d4c7d301489ab51
MD5 2391bde03a4dee49843fd1a162704afb
BLAKE2b-256 e98ea5177efaa4a6e70177f2b1d0b254a63d9519c1df77ce44cd1b2bf694064f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.5.2-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 733dba1f408d8aabe0dfba4904d0f27ccf81540a48b1b473b2763f2bf747ab84
MD5 874ed4bc5f2f7838cf140cdbb7738582
BLAKE2b-256 41b7ffc7a39eb9c1c2b39a0869fc3a7f2d6b14f2a1f7e4f822021324aa06a3ed

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.5.2-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ccfc3a9ecef02994d39c8c8e2192ed7e634efcc5087e77770f9c3d329cc91a03
MD5 c8d5111688a0e5b8e89b5b9c8acd877c
BLAKE2b-256 e99aeb301571030e88f4ffd862986416434be88635e5fcd389c7f9932bf84d18

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.5.2-cp312-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ebf514a0e067e004fe4a84155fd44c38f8be9671ebb1500cd07cc6e5fdf2af0a
MD5 8d3ece42f9af713d46ee91cb4a6bebb3
BLAKE2b-256 7057d38e4f60a8348cb219e7f78e23f5bc4164257a3ca42e8b2b6cf496521424

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