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.
Metadata
Release files for flexitracker 0.5.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| flexitracker-0.5.0.tar.gz | 35.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| flexitracker-0.5.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 61.1 kB
Release files / flexitracker-0.5.0.tar.gz
| Download URL | flexitracker-0.5.0.tar.gz |
|---|---|
| Size | 35.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
02de2b9d843da8b456ef3896d48a99a08db6b9c1c38389ea29c4eadb4912f5d9
|
|
BLAKE2b-256 checksum How to use checksums |
ed90b46a6cadb27d694380414db6e55691aa3f4f8874dab66f6b6148a3dbe8fe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 4, 2026.
Transparency logRelease files / flexitracker-0.5.0-py3-none-any.whl
| Download URL | flexitracker-0.5.0-py3-none-any.whl |
|---|---|
| Size | 25.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d399760c68fc21ba577279277da8e1836a217280984e4e4fcc3eab893fc2c577
|
|
BLAKE2b-256 checksum How to use checksums |
cac44f615ffcdc0e666ef3c9432e35f59e93e75e148ab21c0d72505baba10078
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 4, 2026.
Transparency log