A lightweight, unobtrusive desktop network monitoring application for Windows. It provides a transparent, click-through widget to track your upload and download speeds in real-time, coupled with a background Windows service that continually logs data usage.
- Click-Through Glass UI: A sleek, transparent overlay built with
tkinterandctypes. It blends into your desktop environment and lets you click through it without interrupting your workflow. - Accurate Traffic Monitoring: Leverages
psutilto intelligently measure bandwidth strictly on the primary internet-facing adapter. It ignores local loopback, LAN shares, and virtual adapters (like VM/WSL) for ISP-accurate readings. - Per-App Usage Tracking: Maps active external TCP/UDP connections to running processes, providing a granular breakdown of which individual apps are consuming data.
- Background Windows Service: Includes an optional decoupled service (
NetworkUsageTracker) built withwin32serviceutil. It runs persistently in the background, logging daily network usage to a local SQLite database even when the UI is closed. Includes automated 30-day data retention cleanup. - System Tray Integration: Sits quietly in your system tray via
pystrayfor easy access to the dashboard, toggling the widget, and setting up run-at-startup. - Smart Resource Management: Handles Sleep/Wake lifecycle events gracefully, managing adapters dropping or reconnecting without crashing.
- IP & Network Detection: Rapidly fetches external and internal IPs, along with the active network profile name.
main.py: Entry point for the desktop widget and system tray app.service.py: The background Windows service for persistent data logging.network_scanner.py: Core logic for speed tracking, adapter sensing, and IP detection.database.py: SQLite backend for logging and storing traffic history.widget.py&dashboard.py: UI components for the glass overlay and detailed statistics dashboard.
- Python 3.8+
- Windows OS
- Dependencies (see
requirements.txt):psutilpystrayPillowrequestspywin32(for the background service)
-
Install Dependencies:
pip install -r requirements.txt
-
Run the Desktop Widget:
python main.py
-
Install & Start the Background Service (Optional): Requires Administrator privileges.
python service.py install python service.py start
Simply double-click the setup.exe executable to run the widget. No Python installation or manual dependency setup is required!
A build_all.py script is provided to bundle the application into a standalone Windows Executable (.exe) via PyInstaller, embedding the custom app_icon.ico and producing NetworkMonitor.exe.