Metadata-Version: 2.4
Name: snooper_pkg
Version: 0.0.1
Summary: A transparent Windows foreground-application usage tracker
Author-email: Sayan Banerjee <sayanbanerjee32@gmail.com>
License: Apache-2.0
Project-URL: Repository, https://github.com/sayanbanerjee32/snooper_pkg
Project-URL: Documentation, https://sayanbanerjee32.github.io/snooper_pkg/
Keywords: nbdev,snooper
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Win32 (MS Windows)
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: Microsoft :: Windows
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: fastcore
Requires-Dist: fastlite
Requires-Dist: pandas
Requires-Dist: psutil
Requires-Dist: Pillow
Requires-Dist: platformdirs
Requires-Dist: pystray; sys_platform == "win32"
Requires-Dist: pywin32; sys_platform == "win32"
Provides-Extra: dev
Requires-Dist: nbdev; extra == "dev"
Dynamic: license-file

# snooper_pkg


<!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! -->

`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:

- `fastcore`
- `fastlite`
- `pandas`
- `psutil`
- `Pillow`
- `pystray` on Windows
- `pywin32` on 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:

``` bash
python -m pip install -e .
```

Export notebook changes into the package with:

``` bash
nbdev-export
```

Run notebook tests with:

``` bash
nbdev-test
```

Use the combined preparation command before committing:

``` bash
nbdev-prepare
```

## Running the MVP

The application startup flow creates a [`MonitorController`](https://sayanbanerjee32.github.io/snooper_pkg/monitoring_controller.html#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.
