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

Uploaded Source

Built Distributions

wakapi_anyide-0.4.2-cp312-abi3-win_amd64.whl (226.6 kB view details)

Uploaded CPython 3.12+ Windows x86-64

wakapi_anyide-0.4.2-cp312-abi3-win32.whl (215.2 kB view details)

Uploaded CPython 3.12+ Windows x86

wakapi_anyide-0.4.2-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (390.9 kB view details)

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

wakapi_anyide-0.4.2-cp312-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl (440.1 kB view details)

Uploaded CPython 3.12+ manylinux: glibc 2.17+ s390x

wakapi_anyide-0.4.2-cp312-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (435.7 kB view details)

Uploaded CPython 3.12+ manylinux: glibc 2.17+ ppc64le

wakapi_anyide-0.4.2-cp312-abi3-manylinux_2_17_i686.manylinux2014_i686.whl (413.0 kB view details)

Uploaded CPython 3.12+ manylinux: glibc 2.17+ i686

wakapi_anyide-0.4.2-cp312-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (392.9 kB view details)

Uploaded CPython 3.12+ manylinux: glibc 2.17+ ARMv7l

wakapi_anyide-0.4.2-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (389.1 kB view details)

Uploaded CPython 3.12+ manylinux: glibc 2.17+ ARM64

wakapi_anyide-0.4.2-cp312-abi3-macosx_11_0_arm64.whl (309.1 kB view details)

Uploaded CPython 3.12+ macOS 11.0+ ARM64

wakapi_anyide-0.4.2-cp312-abi3-macosx_10_12_x86_64.whl (314.2 kB view details)

Uploaded CPython 3.12+ macOS 10.12+ x86-64

File details

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

File metadata

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

File hashes

Hashes for wakapi_anyide-0.4.2.tar.gz
Algorithm Hash digest
SHA256 43bb59772c18039b0aaf34921ff14547f39050aea495373f38c7c2dab9363c0f
MD5 a2882b07994f4b2a49950fcd64a1b8a9
BLAKE2b-256 50c1eeba41bc139fb1175fd37a1d031133ed3d5aec48117f902a31de469bdf25

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.4.2-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 e6998cb1f6a7dd6b08bc7185a3d7b88495f9b1571d12d3243cb2211833702467
MD5 4f55bbcd8be95db8f268c2e4c50616fd
BLAKE2b-256 1e7f7a18cfe0f24462636bcb7aba5981bf5331988c001d9401a073c3ecb559b7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.4.2-cp312-abi3-win32.whl
Algorithm Hash digest
SHA256 9d8ca5dc314c4fbcf0831bfed17938c1427d610e79a2c238d61800a51eec90d7
MD5 4a09c0876e0c512d929c47a402c34d59
BLAKE2b-256 62400c643ea85adacb5ce1e8ff16c3547229ed2bfec804c5d6f733ccb5ef2bdc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.4.2-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1556006830e4bd63d0dcd5edf08337ac4324cf50b8b48e15423a88212f1c7504
MD5 068fc011e8c82df1a30cb1fa8e692f9a
BLAKE2b-256 f403e5d135426dadc5ad3a820eae57b3499b0087f1dd0abde8159050d83bb37e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.4.2-cp312-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 3cfa8618a0ca5964797bac98e07f7dfb7501d47c882c30f37ed9d705cab04965
MD5 e18b89504471386b478d494625448d19
BLAKE2b-256 a1e50bb2347e8b529260af2010bd639f8871c98fef07255cf2d5a1da68fef8a7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.4.2-cp312-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 87a5efa1959354d263cecf4821f1bd4692def63de78c9dbfef043f992a6e1c14
MD5 b10a6ca40e5ba1aae71fa4f4fa0ea7ac
BLAKE2b-256 4d77dc8f4ff278c9086ffb7700ac050d3cb4ee1be3e96c7fa755238f9351977e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.4.2-cp312-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 5b64213e97db6ba83c282bc720aee0cde59321da0b3a86934ca8db043b3cb6b0
MD5 2edf093bb209d8f3a09a955551c646a2
BLAKE2b-256 064b13da00eeee9c90d111923375d148b7364850062f15bf7bcc7083a4b0da88

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.4.2-cp312-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 806b67b8c04a384d6a880ef6ef5ef69bf0647b3e562734f42408277f7ce1ba3f
MD5 725f1fefa835de999f480f82803eb5f6
BLAKE2b-256 554394cf25119234699fdb11b918185fb2990c60fad795b05f1024e894024a35

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.4.2-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7b8415a4e59d128d4dd28df2e378fae20f67ee900ddb3cd5bdf3f81ee5738053
MD5 c4e4598fd5b819ff673fb82a8d174aab
BLAKE2b-256 1a6aa0fdf425a8bc034094aa4b1c7245c3d4dd29225dad898b428d63dbb8865b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.4.2-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8cbff519c804ce1294233fe713cb206c73ccde30266081c326b1adfa328b8f5a
MD5 c9bfa062e5b68eba05588fedc47ae446
BLAKE2b-256 e8db15b5cbf7a706a4f9748eada1a090b6c3ef5d82f68572315f8e32eff967cc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.4.2-cp312-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 94bdefce2ead648e38ff95b6f56fc793836f16b8e032301b9baedc8032729769
MD5 a5c1fad223b9f67f880daa3cb469d74f
BLAKE2b-256 02ff622ae07ae1957168eebd7caf8ef63adc7404d889f8bf9f019f0733021ce5

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