Local-first desktop activity tracker and report generator for Windows and Linux. WorkProof runs quietly in the background, captures active window/process activity, idle times and file events for a configurable Projects folder, stores data locally in SQLite, and produces HTML/PDF reports with charts.
For full developer and packaging docs see the docs/ directory. This README gives a quick overview and pointers to the installation and usage guides.
- Local-first: data stored on your machine only
- Tracks active window, running processes, idle time and project file events
- Daily summarizer with HTML and optional PDF export (Jinja2, Matplotlib/WeasyPrint)
- Simple SQLite storage with retention/purge utilities
- Packaging helper scripts for Windows (.exe) and Linux
-
Create and activate a virtual environment
Windows PowerShell:
python -m venv .venv .\.venv\Scripts\Activate.ps1 -
Install the package in editable mode and install requirements
pip install -e . pip install -r requirements.txt
-
Run the smoke test (short sampling run):
python run_smoke_test.py
-
Start the tracker (foreground):
python -m workproof.main -
Generate a report (example):
python -m workproof.report_generator --date today --out reports/today.html
run_smoke_test.py— quick local check to verify trackingbuild_win_exe.ps1/build_linux.sh— packaging helpers (PyInstaller specs included)examples/— example scripts for common tasks (report generation, import)docs/— detailed docs: installation, packaging, autostart, privacy, usage
Run the test suite with pytest:
pytest -q-
Source is under
src/workproof/(package nameworkproof). -
To run modules directly without installing, ensure
srcis onPYTHONPATH, e.g.:$env:PYTHONPATH = "$(Resolve-Path .\src)" python -m workproof.main
Contributions are welcome. Please open issues or PRs. See docs/usage.md and docs/packaging.md for guidance when changing behavior that affects reports or packaging.
MIT — see LICENSE.