Skip to main content

FlexiTracker daemon (Python)

The client half of FlexiTracker, a flextime/saldo tracker: a pure-Python daemon that runs in the background on your machine, watches only when you're active vs. idle (input timing and screen-lock state — never keystrokes, window titles, or screenshots), and sends those timestamps over the network to the FlexiTracker cloud service, which turns them into trustworthy per-week working-time numbers in a web app. This is not an offline/local-only tool — installing and running this package means your activity data leaves the machine it's installed on. See the project README for the full picture, or self-host the backend if you'd rather not send data to someone else's server.

Pure stdlib, no compiled extension, so it installs with uv into a user profile — no admin rights and no compiler — which is what lets it run on managed machines that block unsigned executables. OS idle detection is done through ctypes (Windows GetLastInputInfo, Linux XScreenSaver).

Install

Recommended (all platforms):

uv tool install flexitracker

Or, on a machine that allows executables, download the standalone build from the GitHub Releases page (it bundles its own Python runtime): one binary on Linux, or on Windows two — a console one for login/test and a windowless one for auto-start. See install/README.md for per-OS auto-start (a single copy-pasteable command, no installer script) and the Windows SmartScreen trust step.

Use

flexitracker login                          # authorize this machine in a browser, then self-test
flexitracker login --key <ACCESS_KEY>       # headless/scripted: authorize with a pasted key instead
flexitracker test                           # connectivity check, sends no data
flexitracker                                # run the daemon

Develop

uv sync
uv run pytest        # unit tests + the 24 behavioural vectors (tests/vectors/)

The behavioural vectors in tests/vectors/ are the oracle for the state machine (back-dating, suspend reconciliation, the emit watermark, the return-to-work clock). Any change to that logic must be reflected in a vector.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

flexitracker-0.4.1.tar.gz (32.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

flexitracker-0.4.1-py3-none-any.whl (22.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: flexitracker-0.4.1.tar.gz
  • Upload date:
  • Size: 32.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for flexitracker-0.4.1.tar.gz
Algorithm Hash digest
SHA256 1b8e7cd7fae1fbdb054f1164769eea38681e256fcb5c90a1ad0906bb606c2e33
MD5 793b15e571e3c6977a92095905d5b19e
BLAKE2b-256 65e5e86dce5c6eb8d94ea22631c0543c791a51e251a7d7418d5375b4e71e0b2f

See more details on using hashes here.

Provenance

The following attestation bundles were made for flexitracker-0.4.1.tar.gz:

Publisher: release.yml on jvuori/flexitracker

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file flexitracker-0.4.1-py3-none-any.whl.

File metadata

  • Download URL: flexitracker-0.4.1-py3-none-any.whl
  • Upload date:
  • Size: 22.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for flexitracker-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 276ec1a978816cdb65c0597a378f4d5ae995bbc3436f9794faedd7c85ead7e88
MD5 51db4fa8fc4e5e36a90d7082083e3b07
BLAKE2b-256 43f0ce8e9fb1f6b25016c67ca18f618bd906bb45af164de9e7e0c38f6392cb97

See more details on using hashes here.

Provenance

The following attestation bundles were made for flexitracker-0.4.1-py3-none-any.whl:

Publisher: release.yml on jvuori/flexitracker

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.4.1 This release

2 files

0.4.0

2 files

0.3.1

2 files

0.3.0

2 files

0.2.1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page