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

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.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

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

Uploaded Source

Built Distributions

wakapi_anyide-0.5.0-cp312-abi3-win_amd64.whl (231.6 kB view details)

Uploaded CPython 3.12+ Windows x86-64

wakapi_anyide-0.5.0-cp312-abi3-win32.whl (219.8 kB view details)

Uploaded CPython 3.12+ Windows x86

wakapi_anyide-0.5.0-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (396.2 kB view details)

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

wakapi_anyide-0.5.0-cp312-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl (445.9 kB view details)

Uploaded CPython 3.12+ manylinux: glibc 2.17+ s390x

wakapi_anyide-0.5.0-cp312-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (441.2 kB view details)

Uploaded CPython 3.12+ manylinux: glibc 2.17+ ppc64le

wakapi_anyide-0.5.0-cp312-abi3-manylinux_2_17_i686.manylinux2014_i686.whl (418.9 kB view details)

Uploaded CPython 3.12+ manylinux: glibc 2.17+ i686

wakapi_anyide-0.5.0-cp312-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (397.2 kB view details)

Uploaded CPython 3.12+ manylinux: glibc 2.17+ ARMv7l

wakapi_anyide-0.5.0-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (394.2 kB view details)

Uploaded CPython 3.12+ manylinux: glibc 2.17+ ARM64

wakapi_anyide-0.5.0-cp312-abi3-macosx_11_0_arm64.whl (314.4 kB view details)

Uploaded CPython 3.12+ macOS 11.0+ ARM64

wakapi_anyide-0.5.0-cp312-abi3-macosx_10_12_x86_64.whl (319.6 kB view details)

Uploaded CPython 3.12+ macOS 10.12+ x86-64

File details

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

File metadata

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

File hashes

Hashes for wakapi_anyide-0.5.0.tar.gz
Algorithm Hash digest
SHA256 386c1e018eecbd8e97d8a5dbd615733db87bc8deba37e8e5ec3827064a13fb2f
MD5 15a5ac473d0f41efd5f417324fcda857
BLAKE2b-256 4cef8cbe0b09d2f001276c3a81478b5497fed790eaaeeaa895a8ca4dba9f2798

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.5.0-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 5ce4042673018eccdf5b3a138206c0c823be1553520ced9cc835355e9675d059
MD5 b34dc173b50c5f2ae7f4ce4070f065ec
BLAKE2b-256 5d9924022716d924c67e07a6e80a94dbf57c66fc8823521ebeb566a0d049ce30

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.5.0-cp312-abi3-win32.whl
Algorithm Hash digest
SHA256 4ffb507a0cf6fae8607a0119cd13f85a9684d4ea0d3f880de3e062f84f99c232
MD5 4c19ef09c537d28094c99b11cf6082f6
BLAKE2b-256 a388ef845b1246793c2f413149b02004c195d3702993fc6fc066e8daea7d7c79

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.5.0-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0bb11c632944b0b5c66d72b0be19142894e9d215044762d535b2510ed56968a3
MD5 b486f2d0126978a8c882985bd026380c
BLAKE2b-256 1619f13b36ad8aea5dd6849f333a3cbfea088e1807babc34f2a09316d56b2492

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.5.0-cp312-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 177637754dd5476f90eaab767bc63a90aa485eeadd9f540e33b043b7ad16a2bb
MD5 f39fc1b0509382bf2b2259862421078d
BLAKE2b-256 30f64aef1a9f079afcff096f15ca89ad8bf3dd76889cc56b0625f5594f0f2c24

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.5.0-cp312-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 2e6cffed19bdeb6048d5d56a5d3c991a3c62b60014401e60fc1d3c39fd1d731a
MD5 b1ffa9d71e74986032a19a77fe7ac661
BLAKE2b-256 0a9b0754ab4e98aeea2b13dbc530f468afb68b1114109713e407898b7e3280b3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.5.0-cp312-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 c1ce62b8d0b643954c43c3ce186b36676ad5d8f62be8bdfd9819ec9426bd8a27
MD5 527c9e635826ce18d6fcf5022f750955
BLAKE2b-256 64388f07a22dfa9882bf30370771f1ed19890f1e82368cacb194289b0b5b991c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.5.0-cp312-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 6b98bc821db4e1a60fa987617de0ed6adbe4e1537788ed5831b9f23cec6283b5
MD5 3e8b8942136562d3f472b0aa37cde764
BLAKE2b-256 a89e2fa2739613e3f4fa28951dceab2a1f2bbca817c90202a14fc54d608eb56f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.5.0-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4973ac19fe4621812859dc488ce235b98da439bf613ce7fe671e220729821e02
MD5 4d24dcefd53a37501801dbbfc3ae142e
BLAKE2b-256 d436dc1b6dce7f9fec0526c321e9a7a118355a6fc187e405d8109fb224585051

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.5.0-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 80e030e894eb341343572950a29d3ba773f42acd6082a8b40a617161e51f9181
MD5 0c78620afa35d3eead16e5338faf81cc
BLAKE2b-256 575c3fb9dedccf1be4b0c0ad1d0d5d90fbd3c22210727bd3294054d3f316cd88

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.5.0-cp312-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 c5f908d370df3e72cd79b572a2f4b82f150440bbf774a5cc4ccd5006d25907e7
MD5 c0ca7c64b8e1be6134d0e6cd4a409280
BLAKE2b-256 156bf94c11372e751a0fcf5d4e6e059c1c357f5394f18fd7451803ecd2a172d6

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