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

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

Uploaded Source

Built Distributions

wakapi_anyide-0.4.1-cp312-abi3-win_amd64.whl (226.3 kB view details)

Uploaded CPython 3.12+ Windows x86-64

wakapi_anyide-0.4.1-cp312-abi3-win32.whl (215.0 kB view details)

Uploaded CPython 3.12+ Windows x86

wakapi_anyide-0.4.1-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (390.6 kB view details)

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

wakapi_anyide-0.4.1-cp312-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl (439.8 kB view details)

Uploaded CPython 3.12+ manylinux: glibc 2.17+ s390x

wakapi_anyide-0.4.1-cp312-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (435.4 kB view details)

Uploaded CPython 3.12+ manylinux: glibc 2.17+ ppc64le

wakapi_anyide-0.4.1-cp312-abi3-manylinux_2_17_i686.manylinux2014_i686.whl (412.6 kB view details)

Uploaded CPython 3.12+ manylinux: glibc 2.17+ i686

wakapi_anyide-0.4.1-cp312-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (392.4 kB view details)

Uploaded CPython 3.12+ manylinux: glibc 2.17+ ARMv7l

wakapi_anyide-0.4.1-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (388.8 kB view details)

Uploaded CPython 3.12+ manylinux: glibc 2.17+ ARM64

wakapi_anyide-0.4.1-cp312-abi3-macosx_11_0_arm64.whl (308.7 kB view details)

Uploaded CPython 3.12+ macOS 11.0+ ARM64

wakapi_anyide-0.4.1-cp312-abi3-macosx_10_12_x86_64.whl (313.9 kB view details)

Uploaded CPython 3.12+ macOS 10.12+ x86-64

File details

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

File metadata

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

File hashes

Hashes for wakapi_anyide-0.4.1.tar.gz
Algorithm Hash digest
SHA256 d368fb1f1b17ebfa31f5acf57e48573ddc9350d8e983920c3fa5439c7f63c720
MD5 9dcecff35b7c45bb91a3e0799549fdce
BLAKE2b-256 88e66ade50e337df7b81b228a3c9815002f5009703295e8bf66a1d6d228fa6a2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.4.1-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 d8a34312aa74d8c18c4fcbf13df96bdcd6477945f3efe5e3cde7da3e7d90f2e2
MD5 45e4d3a0315dfed98178fa3b4b9c52b6
BLAKE2b-256 cd8e70e244c61ff937bd7e57138aba57301a228564cb880804e104e8df77de8f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.4.1-cp312-abi3-win32.whl
Algorithm Hash digest
SHA256 5d3a0bb86b18e2317b2f2ebce074b15bcab3271291ec733c84c9f9ce33a72448
MD5 97eda400c138a8e0ff6eede96090274c
BLAKE2b-256 b72ef0144b2f95fb2eacd5e3f95e2eb9f4bd6aac624d5017f1c35d1e69948eff

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.4.1-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8d557f6d755f4aff9ca99309a1891b3669bbfbf4eb0f4d37b9437ddb58eaac9c
MD5 ff7e1ac45c6f2594c66d43005dce44e2
BLAKE2b-256 e9ed94d9f3a1e4913efc1fffea19d210445a6729ff3a20362f27c5acb1e720d9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.4.1-cp312-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 b17ec352d82f52a6b8023fe205b0b8abaa51359e6ce7be90a27d2d20a0d5ddf1
MD5 366f4d7b5a6de609175627f75c12c37d
BLAKE2b-256 f4ba04f96cf557141f40515ccacd44b72ea7c04f50379713181233834f3b6536

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.4.1-cp312-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 baa246a0f4d778c7e10bba8dce054d1f6d16d3d110adcebf682ac37f54483499
MD5 3ff3ff5aa026540bd18eea752f779f16
BLAKE2b-256 5045d9fa00c3d479bcbc483d62adee6a62099bd363a318da3377f2a4a27323cb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.4.1-cp312-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 f9414415618e703377f55d59ec1bc59952ab401425d7be5a62ce45b2e2f76f0b
MD5 7874e6fed0840bfa0859cde13dbfdaa6
BLAKE2b-256 002c7f27cc4903eb90c431e5099e9ce287cc682b9a7c8ee6775edac61281ebe1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.4.1-cp312-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 b4f8960792fc97badc0b5337dbb021f58f7f30d3bd50f57b9868644e391244e6
MD5 c2c86de93510eb92e21d5f43a59dc123
BLAKE2b-256 3a18ca8c98bbb47da0c8059745c9aeb4ac15ee4ac6f90676cb1ff9bbfb3b711d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.4.1-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 faacb41cd7f141598b04b5d002cb8564826b3b197949262a3204878ae9452b7c
MD5 3893d87a56de7c30f209b765c5abd4e4
BLAKE2b-256 28b7d3bd9e9ffaa43df6b6354e1baed64b3b8a5b1c40da894e7886daaf4ab0b7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.4.1-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 337551f1b92026adbb6e92f77aafe8f3e8752d2c8b62a40d1ce04dc51187ceec
MD5 e290483dd1dcba6ce9690ae9d33f5c42
BLAKE2b-256 c2ad9f2c489981bd8259f567ca6802a77904fec8deb7ea5e00c0bf8c01b6b5c8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.4.1-cp312-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 956ccac8961818fbf3728a83c1b7c71458728ddf5ffc71e6c29565540feb6683
MD5 879c1be79a8dd590b015f6f9c93875af
BLAKE2b-256 cd8dc865be7c360d6c5af02577fa8d53046e8269b54cf5ee63f5f2ca0867a33c

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