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

Uploaded Source

Built Distributions

wakapi_anyide-0.6.1-cp312-abi3-win_amd64.whl (233.2 kB view details)

Uploaded CPython 3.12+ Windows x86-64

wakapi_anyide-0.6.1-cp312-abi3-win32.whl (221.4 kB view details)

Uploaded CPython 3.12+ Windows x86

wakapi_anyide-0.6.1-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.1-cp312-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl (447.4 kB view details)

Uploaded CPython 3.12+ manylinux: glibc 2.17+ s390x

wakapi_anyide-0.6.1-cp312-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (442.7 kB view details)

Uploaded CPython 3.12+ manylinux: glibc 2.17+ ppc64le

wakapi_anyide-0.6.1-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.1-cp312-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (398.7 kB view details)

Uploaded CPython 3.12+ manylinux: glibc 2.17+ ARMv7l

wakapi_anyide-0.6.1-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.1-cp312-abi3-macosx_11_0_arm64.whl (315.9 kB view details)

Uploaded CPython 3.12+ macOS 11.0+ ARM64

wakapi_anyide-0.6.1-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.1.tar.gz.

File metadata

  • Download URL: wakapi_anyide-0.6.1.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.1.tar.gz
Algorithm Hash digest
SHA256 57ebde3fb6bffa71c7f168191066afecd29c79d89261303b32d6cd432e32ab37
MD5 a3ecd063449e5886b5e02e1257607e9a
BLAKE2b-256 9a908375658b867e5376c81b2f78bf21adcd7adb656e5a0ffd23819af38c0240

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.6.1-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 d53b6f47578ada91e0f83242b444a43ed0dd61fc0c25465223ec7ba0ec7aebbe
MD5 3c94901b73ba427262c92f332b24c7ad
BLAKE2b-256 88554c713baa5b5d23753465572637b41dffad1e2f328bd93301d5431b12722b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.6.1-cp312-abi3-win32.whl
Algorithm Hash digest
SHA256 c1952932788cf6016f8fe01ecb4e122c898d2af18d2a532844bf212d7e9fbb61
MD5 ef3a2151f281ae6d45cb89077a2a122f
BLAKE2b-256 f3c6c164c9b4dfa1ffb50e838e4ac8a3fab56943abf22aee995d25ebd863afb2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.6.1-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5af5113831c0288333c96f6550fb4ba5cc18a53c6a43279324b91645197d9e72
MD5 b01645a26a0306d966d1185d5cffdd39
BLAKE2b-256 d046f8f376731d01d077d782ea7029ecdab9a261f0c4aa3420aa61f1b0ea5662

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.6.1-cp312-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 d4deae15a1aaf809271ed8a1552b4f0cdde548ee64d6db28bb1cd13459cf80e3
MD5 5513360533f97f7ad6fde063b7630a20
BLAKE2b-256 fa815515119093296483442a54ed5b964a66bec6d7ce07fdceb2bcc6eec44975

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.6.1-cp312-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 d0ad6b996c35f19d6da02e624d621ba1f382936731857b5dbd206196094dff50
MD5 8bcf6dea25de9d5bc1cd54295555b411
BLAKE2b-256 99476bca1f11796c052331200cf2dfa20694544bea17c78f3397e1ff8e652b67

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.6.1-cp312-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 7a4ff496d3c586dc909808987133b307cfe8f1a6681909510511b877684ba912
MD5 cfae9c55fc9f9cd8ba9a4301eb08fd25
BLAKE2b-256 39b9737fb018ca4615f33ee760f847fd0ac1a6037b3588468471ffa8462e8c99

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.6.1-cp312-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 8ed671f58594c0aabe8b787fec78fc6f98e287074b306f05b779aa6f3599ca9b
MD5 44b0e9c16275740b3e60693d38a50b30
BLAKE2b-256 733104a9ad0d80eeef629d39acf6609288f863869741639b64c4a9f3550f82b3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.6.1-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f6a812d5c02021ededb03c63804f308c177675f9b4660afbb25ad65776517001
MD5 1241885551f434b83623e4f80918abfe
BLAKE2b-256 2c296b5d93aa41f37b7c836eab45cd2abbe9c2fc86cf3abfd8299c33741b2f8a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.6.1-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f0bf4d6b6731ff69b18e16c20c54502333ee51eadddb5c24192e055503a45dcb
MD5 528b32e1bc17fd9b642962a2bb7b7832
BLAKE2b-256 f69dd7e73bd00280253265ee53adb65f4e8e9aaf6bb1382d49537107781ac7fe

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.6.1-cp312-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 58a665631589150a1e23b10db03392ce78316570128c680a2971bd2b21a0532b
MD5 cdec48ea3544052d224d1e8943417091
BLAKE2b-256 739967201a4ba005e28f4499f32a47873530ba121338af5723811cba3fb51dc0

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