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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1b8e7cd7fae1fbdb054f1164769eea38681e256fcb5c90a1ad0906bb606c2e33
|
|
| MD5 |
793b15e571e3c6977a92095905d5b19e
|
|
| BLAKE2b-256 |
65e5e86dce5c6eb8d94ea22631c0543c791a51e251a7d7418d5375b4e71e0b2f
|
Provenance
The following attestation bundles were made for flexitracker-0.4.1.tar.gz:
Publisher:
release.yml on jvuori/flexitracker
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
flexitracker-0.4.1.tar.gz -
Subject digest:
1b8e7cd7fae1fbdb054f1164769eea38681e256fcb5c90a1ad0906bb606c2e33 - Sigstore transparency entry: 2296158881
- Sigstore integration time:
-
Permalink:
jvuori/flexitracker@85c4f1f56a2122d74538fb7303b71cd981dc5341 -
Branch / Tag:
refs/tags/v0.4.1 - Owner: https://github.com/jvuori
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@85c4f1f56a2122d74538fb7303b71cd981dc5341 -
Trigger Event:
release
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
276ec1a978816cdb65c0597a378f4d5ae995bbc3436f9794faedd7c85ead7e88
|
|
| MD5 |
51db4fa8fc4e5e36a90d7082083e3b07
|
|
| BLAKE2b-256 |
43f0ce8e9fb1f6b25016c67ca18f618bd906bb45af164de9e7e0c38f6392cb97
|
Provenance
The following attestation bundles were made for flexitracker-0.4.1-py3-none-any.whl:
Publisher:
release.yml on jvuori/flexitracker
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
flexitracker-0.4.1-py3-none-any.whl -
Subject digest:
276ec1a978816cdb65c0597a378f4d5ae995bbc3436f9794faedd7c85ead7e88 - Sigstore transparency entry: 2296158918
- Sigstore integration time:
-
Permalink:
jvuori/flexitracker@85c4f1f56a2122d74538fb7303b71cd981dc5341 -
Branch / Tag:
refs/tags/v0.4.1 - Owner: https://github.com/jvuori
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@85c4f1f56a2122d74538fb7303b71cd981dc5341 -
Trigger Event:
release
-
Statement type: