This application functions as a local input event logger. It captures keyboard activities in the background, buffers the data for performance optimization, and allows the user to export logs in various structured formats. The system is built with a focus on clean architecture, separating the backend monitoring logic from the frontend Tkinter GUI.
- Real-time Monitoring: Asynchronous background capture of input events using
pynput. - Performance Optimization: Implements data buffering to minimize I/O operations, storing logs in memory before flushing to disk.
- Versatile Exports: Supports saving log data to .txt, .csv, or .json formats.
- Session Management: GUI-based controls to Start, Stop, and Clear logging sessions instantly.
- Clean Architecture: Strict separation of concerns between the logging engine and the display layer.
- Language: Python 3.10+
- Core Library:
pynput(Input monitoring) - Interface:
tkinter(Standard Python GUI) - Package Manager:
piporuv
-
Clone the repository:
git clone https://github.com/yourusername/Endpoint-Activity-Monitor.git cd Endpoint-Activity-Monitor -
Install dependencies:
pip install pynput
-
Run the application:
python main.py
-
Initialize the project:
uv init Endpoint-Activity-Monitor cd Endpoint-Activity-Monitor -
Create and activate virtual environment:
- Windows (PowerShell):
.venv\Scripts\activate
- macOS/Linux:
source .venv/bin/activate
- Windows (PowerShell):
-
Install dependencies:
uv pip install -r requirements.txt
-
Run the application:
python main.py
- Launch the App: Run
main.pyto open the control panel. - Start Monitoring: Click the Start button. Application will begin capturing events in the background.
- Stop & Save: Click Stop to halt capture. Export the buffered data to your preferred file format.
- Clear Data: Use the Clear button to wipe the current memory buffer without saving.
This application stores data locally on your machine and does not possess networking capabilities nor transmit logs to any external servers or third parties.