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.0
    
    [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.0.tar.gz (19.8 kB view details)

Uploaded Source

Built Distributions

wakapi_anyide-0.6.0-cp312-abi3-win_amd64.whl (232.7 kB view details)

Uploaded CPython 3.12+ Windows x86-64

wakapi_anyide-0.6.0-cp312-abi3-win32.whl (220.8 kB view details)

Uploaded CPython 3.12+ Windows x86

wakapi_anyide-0.6.0-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (397.2 kB view details)

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

wakapi_anyide-0.6.0-cp312-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl (446.9 kB view details)

Uploaded CPython 3.12+ manylinux: glibc 2.17+ s390x

wakapi_anyide-0.6.0-cp312-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (442.2 kB view details)

Uploaded CPython 3.12+ manylinux: glibc 2.17+ ppc64le

wakapi_anyide-0.6.0-cp312-abi3-manylinux_2_17_i686.manylinux2014_i686.whl (419.9 kB view details)

Uploaded CPython 3.12+ manylinux: glibc 2.17+ i686

wakapi_anyide-0.6.0-cp312-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (398.2 kB view details)

Uploaded CPython 3.12+ manylinux: glibc 2.17+ ARMv7l

wakapi_anyide-0.6.0-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (395.2 kB view details)

Uploaded CPython 3.12+ manylinux: glibc 2.17+ ARM64

wakapi_anyide-0.6.0-cp312-abi3-macosx_11_0_arm64.whl (315.4 kB view details)

Uploaded CPython 3.12+ macOS 11.0+ ARM64

wakapi_anyide-0.6.0-cp312-abi3-macosx_10_12_x86_64.whl (320.6 kB view details)

Uploaded CPython 3.12+ macOS 10.12+ x86-64

File details

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

File metadata

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

File hashes

Hashes for wakapi_anyide-0.6.0.tar.gz
Algorithm Hash digest
SHA256 88b0ec935e584da0839f5d22979e9687c320ae189ad00d79369838540126c679
MD5 ced4855ca58c658dcc8748f08d5027dd
BLAKE2b-256 c021a7c9902d20e860b2c4d59ac4ba3318c79b3bcde47ff0ef8fc112aca79a9b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.6.0-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 489ce95d2f11548d8faf8bc7f383189a220e0e84f0a586c1ed60761271777fda
MD5 9b873b9e93be0c72ad8875285ee4c7b1
BLAKE2b-256 fb3d47f5a1f7b743e5ffc4cbb657142e641d95477b570295752ec25e35f06283

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.6.0-cp312-abi3-win32.whl
Algorithm Hash digest
SHA256 13ff65803ba32a10ad0b953e3693690c9d894c58e64954317d95025f58d71852
MD5 e97401022fa68cc0e20740c308b9d605
BLAKE2b-256 fedda8658ab73f786cb9b2a36d7858738d920c70a79c21b1a7605e1a56064ecc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.6.0-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3f92896fd0222b046ca72411f0a6cce32f60c67f987f6044e0186722275547c8
MD5 99d099a8eb6b0b2308f0da1305136211
BLAKE2b-256 e2aadbe08c4c89dae4bee804db57a88c41a7f6203abd8b3eea913fa8cb9fe83d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.6.0-cp312-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 604755bf1b9a9d3a85188b6d1ce2df75d02fade70c0b6abb0e7a66acd198f3f8
MD5 449a7e84552fa3535c7db49d86814eec
BLAKE2b-256 7488215e35093da306fb07e477dc2a2aa33920e8f2bcd40b1ee226ca5fde013e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.6.0-cp312-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 6314ed54352834808d80680d62deec153614bab5c4fd69a7105845e6d46a920e
MD5 99f9983f0ecffce460c75768c283ff73
BLAKE2b-256 1e1947820caafd2dacbc8aa72ab49d4da42099f448411b51cda22dd460401db3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.6.0-cp312-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 82d1228ddd7a13f36cc3717e3cdc408bea7bcd6880a9506b6ad2e573b7ae597d
MD5 3101a8e6c062839496f1ff481763e09a
BLAKE2b-256 90b6bb7606bcef631d672d70a442223384d57e97a8390631f123ae4bac6481a1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.6.0-cp312-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 77bfa1d842930a3a5e27de98fde84e997d7181b631d3e93cf909f014ae2e7f42
MD5 817dea45e2e0a78fa46508f1ee3c25aa
BLAKE2b-256 374f0fb0c104097a6842e8340b9ac3f17c3fe97ba1d598f025c1495816de6a1d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.6.0-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 eaecc2f3d529af32acee9fef1f9514040c28475073b7484c4be85cf1bb8999b0
MD5 4e26b6a0f9c22d782fc7afd432674071
BLAKE2b-256 c7f18ee1f2b3e37e8028b33b5dcdac847896934dfa131e60f073b2904d276553

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.6.0-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bfed0d6eac7258b8bb8a1910205f5d634922965d7fa7f9e0158e734cbe8c9479
MD5 7e14c606c4c351f31304088d006947de
BLAKE2b-256 8ff5e557ddffb05fd422478ae332e8410aa71b0b8bfeeb29d8464f54b2c3f691

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.6.0-cp312-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 0e024fefb0cf8f50d55f95b68d294ecca5c43ae7e08e450d18eaa6b0388738e3
MD5 aaee4ce777a02474d40336354e04971d
BLAKE2b-256 db545d3f073cf6efccd4bf183a35ab015f688ae41d7b23b02b9df0c3dca332e9

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