snooper_pkg
snooper_pkg records a simple, useful signal: which application and window is in the foreground, and for how long. It is intended to make productive-work sessions easier to review together, without capturing the contents of that work.
Time away from the keyboard is treated separately from active foreground use. For example, if a browser remains open while someone is away, that interval can be reported as idle time rather than browser activity.
Privacy boundaries
This application is designed for transparent, consensual use. It is not intended to record:
- keystrokes
- screenshots
- messages
- passwords
- complete webpage contents
- detailed personal content
Window titles can themselves contain sensitive information. Title display is configurable through SHOW_WINDOW_TITLES; disable it when titles should not appear in reports.
Current MVP features
The current notebooks implement:
- automatic monitoring startup
- monitoring sessions stored in SQLite
- foreground application and window interval tracking
- Windows idle detection
- process start and stop events
- cleanup of old session data
- pause and automatic resume
- system-tray controls
- session report generation
- a table-style Tkinter report window
- clean application exit
Requirements
The package metadata now declares the runtime dependencies used by the implementation notebooks:
fastcorefastlitepandaspsutilPillowpystrayon Windowspywin32on Windows
The package still needs to be verified from a built wheel on a clean Windows installation. That test must confirm that the dependencies install correctly, the foreground-window and idle tracking work, the system-tray application starts, and the report UI opens successfully.
tkinter is not listed as a PyPI dependency because it is part of Python’s standard library. Its availability should instead be checked on the target Windows Python installation.
Development installation
From the project root, install the package in editable mode:
python -m pip install -e .Export notebook changes into the package with:
nbdev-exportRun notebook tests with:
nbdev-testUse the combined preparation command before committing:
nbdev-prepareRunning the MVP
The application startup flow creates a MonitorController, starts monitoring, opens the most recent completed-session report, and enters the system-tray loop. Run it only in a Windows environment after the notebook modules have been exported and the required runtime packages are installed.
The immediate project priority is a real Windows MVP test: confirm tray startup, foreground intervals, idle handling, reporting, pause/resume, and clean exit before expanding scope.