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

Uploaded Source

Built Distributions

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

Uploaded CPython 3.12+ Windows x86-64

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

Uploaded CPython 3.12+ Windows x86

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

Uploaded CPython 3.12+ macOS 11.0+ ARM64

wakapi_anyide-0.6.4-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.4.tar.gz.

File metadata

  • Download URL: wakapi_anyide-0.6.4.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.4.tar.gz
Algorithm Hash digest
SHA256 2c658807fb2d7e4858269de5a062151e685970f7f6e713956b4bf0e09bec0c2c
MD5 0947d7f93dbeed8ccf75b3b2d5773288
BLAKE2b-256 48e374b92138d316108f4fbbfd7c575eadc5fa8062b27c272fd256c173fef8d3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.6.4-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 329b8f2b6c87069e098333659bb5f1f543689ce26a73e63daffad845ac5c1077
MD5 7f654e7214bf02c37bf586a9c3928c2f
BLAKE2b-256 29d5c869967aa699fb0ae241de933462ebad87cad6381dbe5946d8c7b5030498

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.6.4-cp312-abi3-win32.whl
Algorithm Hash digest
SHA256 4dafe6665191bd1aec31ab532371e5449dbafc93fed90ab7ddebddd891de9f1f
MD5 9b2ca646fc9cc3c7868aed9b9b29e14f
BLAKE2b-256 eaee91d747b6b27d6ac8196b48bee6493f41b657b3da6c33f59023095f971ca3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.6.4-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8ff1b32e596e994e146e8ce43141eff188a3d65416efaea92f6e5fe1c2b88f3f
MD5 16525326150e5458028035605601652d
BLAKE2b-256 0bdd5813a3608e80a6a05472076924d036b9c336ee401ac075e3718e7da3d56c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.6.4-cp312-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 014403a5127b00a7fd35245f1846271923f32410e2a9d43829ba1b15c52473ba
MD5 551c6af49d2098145aac6d1986de8e56
BLAKE2b-256 035eb2aaa7caf6adf007e7cba2db9ac29118e57760fcdeab9fed2e6f17d65d45

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.6.4-cp312-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 5cf5fa1cd7646811f4b6f87308688f5e95692b8078c512d0635ea06466413476
MD5 f683e8f2ea2f5cb1e454414be3c02386
BLAKE2b-256 0304c8b5a2c1e9b7cc673e05c351f56195fc2ed5cd6292f852a6bdda85dbe65a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.6.4-cp312-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 825fe9d766dbd451381366045ba3c45831d4cdc9370d7b7c5724f12361465f5e
MD5 dc43950325c2e1c1a83d4650cbfe0678
BLAKE2b-256 78bb5cd3add30b27217fc22f8e468e89f7e1abb075af05e523df89e5a55b9efd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.6.4-cp312-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 6ecc73a43a7f0620a5e0adeb015dafa37b705265e850e344429ff7ffe3a79b0f
MD5 625928de32e2cc952a00b9e5b1bd9fd3
BLAKE2b-256 e7f0e017e001047a0a12181d541a3f55890472b2248036f33f5ce844953ec853

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.6.4-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0197c976099abe45a9ff69757f3cd5be7ff766f160fb8b5fd562c679e43ba686
MD5 f5450834e6fcc6c2cae03f9b5e02b1fc
BLAKE2b-256 3aa36cd3488cbfc3c043e7535fa8db84f333799227224087c972325af616f1b6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.6.4-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 746f22a69d71279ebc98273cf7106c0cd4d8514af20c4debb332df0bb4765996
MD5 052a5089724544374f75e46d0c511eab
BLAKE2b-256 66c460e9299d402f1641552b73c8485051dba30fcdd2122bb9443e275962562c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.6.4-cp312-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 2a1b43c0c7e8b4271f2fd95bc06d6f9eacfec9fae10b12a961b87912c78b9e52
MD5 8da331eeff4ccf1ffa5c190d5d71082f
BLAKE2b-256 43fa5a02300801a0609df562ddf0150029e5f7a20d5e5a14827b9e20fa5b499c

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