How other repos use it
FreeMoCap
- Declares
skellypingsinpyproject.tomlsourced fromgit+https://github.com/freemocap/skellypings;uv.lockpins commit94b9e4b5. freemocap/system/telemetry/telemetry.pyis a thin wrapper around the client.initialize_telemetry()is called in the FastAPI lifespan startup inapp/app.py(withshutdown_telemetry()at shutdown) and constructs the client withapp_name="freemocap"and auser_id_fileof<freemocap base folder>/telemetry_uid. It immediately tracks anapp_openedevent whose payload is anonymous system specs collected withpsutil/platform: OS name/version/release, architecture, Python version, physical/logical CPU counts, total RAM in GB.- Opt-in/opt-out lives entirely in
telemetry_config.json({"telemetry_enabled": true}, written by the Electron UI's Settings/Welcome toggle; defaults to enabled on first launch). If turned off,initialize_telemetry()never constructs a client, andtrack_event()becomes a no-op, callers don't need to re-check the preference. api/http/telemetry/telemetry_router.pyexposesPOST /freemocap/telemetry/track(the router is registered under the/freemocapprefix viaFREEMOCAP_ROUTERS) so the frontend can forward UI-originated events (for example tour analytics, with aeventTypecamelCase alias); it forwards straight intotrack_event.- Server coordinates come from
build_info.py:SKELLYPINGS_SERVER_URLis hardcoded to the production service (https://skellypings-401698866387.northamerica-northeast1.run.app) andSKELLYPINGS_SECRETdefaults to the placeholder"not-configured". The installer build workflow (.github/workflows/build-installers-pyinstaller.yml) regeneratesbuild_info.pyduring PyInstaller builds, injecting the real secret from theSKELLYPINGS_SECRETGitHub secret and printing a redacted diff. - The startup "System info" banner in
app/app.pyreports the installedskellypingsversion alongside the other Skelly packages.
SkellyCam
- Same pattern, independently:
skellypingsis a git-sourced dependency whoseuv.lockcurrently pins a different commit (4c5bffc9) than FreeMoCap's. skellycam/system/telemetry/telemetry.pyis a near-identical wrapper (app_name="skellycam", user ID file under SkellyCam's base folder, sameapp_openedsystem-specs payload), initialized and shut down in the lifespan ofskellycam/app.py. Unlike FreeMoCap it defines no HTTP tracking route, only the startup event flows through it.- Its own
skellycam/system/telemetry/build_info.pycarries the same server URL and placeholder secret, but unlike FreeMoCap's workflow, SkellyCam's installer build workflow (.github/workflows/build-installers-pyinstaller.yml) writes the realSKELLYPINGS_SECRETsecret toskellycam/build_info.py(a top-level package path nothing imports) instead of toskellycam/system/telemetry/build_info.py, the module the wrapper actually reads. Shipped SkellyCam installers therefore still sign telemetry with"not-configured", which fails HMAC verification on the server, so SkellyCam's events arrive as unverified telemetry regardless of how the secret is configured.