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.6
    
    [meta]
    version = 1
    watchers = ['files']
    
    [files]
    include = ["*"]  # files to include in tracking
    exclude = []  # files to exclude in tracking
    exclude_files = [".gitignore"]  # files whose contents will be used to exclude other files from tracking
    exclude_binary_files = true  # whether to ignore binary files
    # language_mapping = {".kicad_sch" = "Kicad Schematic"}  # custom language mapping
    
    [project]
    name = "test2"  # 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.6.tar.gz (20.2 kB view details)

Uploaded Source

Built Distributions

wakapi_anyide-0.6.6-cp312-abi3-win_amd64.whl (233.0 kB view details)

Uploaded CPython 3.12+ Windows x86-64

wakapi_anyide-0.6.6-cp312-abi3-win32.whl (221.2 kB view details)

Uploaded CPython 3.12+ Windows x86

wakapi_anyide-0.6.6-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (397.6 kB view details)

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

wakapi_anyide-0.6.6-cp312-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl (447.3 kB view details)

Uploaded CPython 3.12+ manylinux: glibc 2.17+ s390x

wakapi_anyide-0.6.6-cp312-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (442.5 kB view details)

Uploaded CPython 3.12+ manylinux: glibc 2.17+ ppc64le

wakapi_anyide-0.6.6-cp312-abi3-manylinux_2_17_i686.manylinux2014_i686.whl (420.3 kB view details)

Uploaded CPython 3.12+ manylinux: glibc 2.17+ i686

wakapi_anyide-0.6.6-cp312-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (398.6 kB view details)

Uploaded CPython 3.12+ manylinux: glibc 2.17+ ARMv7l

wakapi_anyide-0.6.6-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (395.6 kB view details)

Uploaded CPython 3.12+ manylinux: glibc 2.17+ ARM64

wakapi_anyide-0.6.6-cp312-abi3-macosx_11_0_arm64.whl (315.8 kB view details)

Uploaded CPython 3.12+ macOS 11.0+ ARM64

wakapi_anyide-0.6.6-cp312-abi3-macosx_10_12_x86_64.whl (321.0 kB view details)

Uploaded CPython 3.12+ macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: wakapi_anyide-0.6.6.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.6.tar.gz
Algorithm Hash digest
SHA256 ffac25ca9920e35b665f4c6a554d9f7f07150f49a44ef9d73a6fec3f6d3f3783
MD5 b69dcdea3ad8f69523a67a4b46a208a0
BLAKE2b-256 3201c1e11c06f0587d08b6e2ba06673c4dfc84409d4f114ad26810f5f918481b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.6.6-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 0f72de97d8abbf6245443da0b9a64c78ebd01d698871a0cd2277a7314d59cefa
MD5 94375893174aa672fc415f1e7d40bc83
BLAKE2b-256 f164997417b61c3b2a4109398627f4f8b4c07b437d4a8c01df5e5869da0a1027

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.6.6-cp312-abi3-win32.whl
Algorithm Hash digest
SHA256 36e08f525a74e147dbab52a6a5e930f931f619ee709ff2aa2e159613cdd5f69b
MD5 6070e1d11cc99a9880e3ae028e8ceffd
BLAKE2b-256 74fcafd42667ec82c48ff536386332011500ac42d4ffdbc177c5e3f7d00b5f6b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.6.6-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 63bb9fe1453f10b3eb6c073a6ca8e681a54addc3885226105ecb41bbf7784f43
MD5 32ffafd03da2a09fa8d042f9868ddb3b
BLAKE2b-256 a140340729fb8d027ab0ad1e3bc62aec04fed14c290a013f084b02804358cbac

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.6.6-cp312-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 4225a3071de921b270488d2b37c363b58d583c8c0cdb06173e80f64c9f42cd0e
MD5 fa59808e789fd1befd60f61e41e7de24
BLAKE2b-256 e906d10f74926c53b9f6aaffd238205698caa61007ff2cb8605eb3ccd32a2995

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.6.6-cp312-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 8fce19e3e0c3cb17c7f4a0b773a483a3c81991810ac8d53d4080b5fa6a1e8eb6
MD5 6c3e6e59dc9b853a57add1fbeb69e8a0
BLAKE2b-256 458c492b40ddc15dad448abf4d6777897f2e43eaf0f77b1c4490e29906137a23

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.6.6-cp312-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 e825896d31bf8796ad347c854b52ae0e99ef04ebfcc7110e665293a02b20adb5
MD5 4e39f4cd49e538123177b1a551b3d993
BLAKE2b-256 075678b2b048b813b361a24439b78789c650b22f076e52347c60d5d1b7ab4770

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.6.6-cp312-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 6e86dafe7156f7dcabae3e8d915a7ef0191ac740bb2d03602923e2d8de5b0ae5
MD5 f624d33fe0c44d18bf0fa1f93c358175
BLAKE2b-256 4b2bee334ceef0d301c1e54e97c0dbb1fa08b7296365ad926743eb2a05bbd810

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.6.6-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 ed47efde92736696aaf2c77874dc33261a3210e9b98158df6eac8d2f8d61ae65
MD5 db5abb6842908f84afe55ea828f32795
BLAKE2b-256 e3e39fd5cee040a4778690940de3a71e8d504727a295c9c681ec30b43de38a25

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.6.6-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 044e3f645200d16502e28ac7763466a2a1bc859cdd70f11430631cdb74e0321a
MD5 c42d2a937633ca329e3bd928d6af8a90
BLAKE2b-256 b46ae18d8b1ebb64c24cecf3e190067601b3fcda4d2e5aec1aa3d02dc8dc9dc0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for wakapi_anyide-0.6.6-cp312-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 198c09e5d187ec1e30317f30bce7bb5b9c7c208868b10a7d37693d4d2a60e224
MD5 4f589e8e06aaf7495811f01acabd96db
BLAKE2b-256 f7781ada9482719e7e33f679c4cf1225372188a72013fa916b4d4add1bb5b50d

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