NetSpeedTray

Live network speeds, CPU/GPU stats, temperatures, and power draw โ sitting right on your Windows taskbar. Open source, signed, no ads, no telemetry. The feature Windows forgot.
๐ v1.3.2 is here โ Smaller installer (-24%), idle RAM cut roughly in half, Preferred Monitor for multi-display setups, and a one-click Support Bundle. Read the release notes โ
Install
winget install --id erez-c137.NetSpeedTray
Or grab the latest Setup.exe or Portable.zip directly. Both are digitally signed โ no SmartScreen warnings.
Requirements: Windows 10 or 11 (64-bit). No admin needed for the widget itself; LibreHardwareMonitor (optional, for CPU/GPU temperatures) does require admin.
At a Glance
![]() The Widget Lives on your taskbar |
![]() Modern Settings Windows 11 styled |
![]() History Graphs Network + CPU + GPU |
Why NetSpeedTray?
Windows has shown network usage in Task Manager since forever โ but you have to open Task Manager to see it. That's the gap I wanted to fill on my own machine, and I couldn't find a widget I trusted to do it cleanly.
So I built NetSpeedTray: live up/down speeds, CPU and GPU utilization, temperatures, and power draw โ all sitting in your taskbar where you can glance at them without breaking your flow. No browser tab open, no third process to launch, no telemetry, no ads, no tracking. Built in Python with PyQt6 and signed by the SignPath Foundation.
What It Does
๐ Network on Your Taskbar. Live upload and download speeds with sub-second updates. Auto-detects your primary internet connection or lets you pick specific adapters. Color-coded thresholds so heavy traffic stands out at a glance.
๐ฅ๏ธ Hardware Stats Too. CPU and GPU utilization right next to network speeds. Optional temperature and power readings (Watts) for both. Vendor-agnostic GPU support โ works with NVIDIA, AMD, and Intel via Windows Performance Counters. Temperatures via LibreHardwareMonitor (auto-detected), nvidia-smi, or ACPI fallback.
๐ History Graphs. Dual-axis area charts for download and upload. Dedicated CPU and GPU history tabs. Overview tab with synchronized charts. Three-tier retention: per-second for 24h, per-minute for 30 days, hourly up to a year. Export to CSV or save as PNG.
๐ Multi-Monitor Aware. Pin the widget to a specific monitor (new in v1.3.2). Free-move mode places it anywhere โ including secondary monitors or off-taskbar. Adapts to vertical taskbars and high-DPI setups automatically.
๐ฌ App Activity. A separate window showing estimated per-app network usage with connection details โ useful for figuring out which program is hammering your connection. Works in non-admin mode with reduced accuracy.
๐ Built to Be Trusted. Open source under GPLv3. Digitally signed installer โ no SmartScreen warnings โ courtesy of free code signing from SignPath.io with a certificate from the SignPath Foundation. Zero ads. Zero tracking. Zero telemetry. Logs are obfuscated for paths, IPs, MACs, hostnames, and interface GUIDs before they ever leave your machine.
Quick Start
- Install with the Winget command above (or the installer)
- Right-click the widget on your taskbar โ opens Settings, Graph, App Activity, or Exit
- Double-click the widget to open the full history graph
Want CPU/GPU temperatures? Install LibreHardwareMonitor and run it as Administrator โ NetSpeedTray detects it automatically. NVIDIA GPU temps also work natively via nvidia-smi.
FAQ
How is this different from Task Manager? Task Manager shows network speed too โ but you have to open it to see anything, and it disappears the moment you click away. NetSpeedTray lives permanently on your taskbar with sub-second updates, in the corner of your eye while you work.
Will it slow down my PC? As of v1.3.2, idle RAM is roughly 40โ75 MB depending on hardware (Python + Qt overhead), and CPU usage is near zero between polls. matplotlib and numpy only load when you actually open the graph window. The widget polls network counters every ~1 second using the same Windows APIs that Task Manager uses.
Why do I need LibreHardwareMonitor for CPU/GPU temperatures?
Reading hardware temperatures on modern CPUs/GPUs requires a kernel-level driver that Windows doesn't expose to regular apps. LHM installs that driver and publishes temperatures via WMI, which NetSpeedTray then reads. NVIDIA GPU temps work natively via nvidia-smi without LHM. The widget itself never asks for admin โ only LHM does.
Does it work on Windows 7 or 8? Officially supported on Windows 10 and 11 (64-bit). The taskbar APIs the widget uses changed enough between Win8 and Win10 that older versions aren't tested. It might work; it's not supported.
Where does it store data and settings?
%APPDATA%\NetSpeedTray\ โ config.json for settings, speed_history.db (SQLite) for the network/hardware history, and rotated log files. Everything stays local; nothing leaves your machine. The Settings dialog has an "Export Support Bundle" button if you ever need to share logs for a bug report (it auto-redacts paths, IPs, hostnames, MACs).
SmartScreen is warning about an "unknown publisher" โ is this a problem? You probably downloaded an unsigned dev build, or grabbed a release before signing kicked in. The official releases (Setup.exe and Portable.zip on the Releases page) are signed by the SignPath Foundation and shouldn't trigger SmartScreen.
Full Feature List (click to expand)
Network Monitoring
- Live Upload/Download Speeds on the taskbar with sub-second updates
- Auto-Primary Mode: Intelligently identifies your main internet connection, ignoring noise from VPNs and virtual adapters
- Interface Filtering: Monitor all hardware, specific adapters, or include virtual interfaces
- Color Coding: Set custom speed thresholds and colors to visualize network load at a glance
- App Activity Window: See estimated per-app network usage (with a non-admin fallback mode)
Hardware Monitoring
- CPU & GPU Utilization displayed alongside network speeds on the taskbar
- Temperature Readouts for CPU and GPU (via LibreHardwareMonitor, nvidia-smi, or Windows PDH/ACPI)
- Power Draw in Watts for CPU (Intel RAPL) and GPU (nvidia-smi / LHM)
- RAM & VRAM usage readouts
- Vendor-Agnostic GPU Support via Windows Performance Counters (PDH) โ works with NVIDIA, AMD, and Intel GPUs
- LibreHardwareMonitor Auto-Detection: If LHM/OHM is running, NetSpeedTray picks it up automatically for temperature and power readings across all GPU vendors
Widget Layout Modes
- Side-by-Side: Network and hardware stats displayed together
- Stacked: CPU + GPU in a compact column
- Auto-Cycle: Rotates through Network, CPU, and GPU views
- Per-Segment Ordering: Choose the display order (Network / CPU / GPU / None)
History & Graphs
- Dual-Axis Area Charts for download and upload with split view
- CPU & GPU History Tabs with dedicated graphs
- Overview Tab with synchronized Network/CPU/GPU charts and at-a-glance stats
- Symlog Scaling: Dynamic logarithmic scale shows fine detail in idle traffic and handles Gigabit spikes
- Time-Dynamic Rendering: Detailed line plots for recent data, "Mean & Range" aggregation for long-term history
- Data Export: Export to
.csvor save high-resolution.pngsnapshots - 3-Tier Data Retention: Raw (24h) โ Minute (30d) โ Hourly (configurable) for both network and hardware stats
Performance
- NumPy Vectorization for near-instant graph rendering with years of data
- Lazy-Loaded Heavy Modules: matplotlib + numpy only load when you open the graph window โ idle RAM stays low (v1.3.2)
- Dynamic Update Rate: Reduces polling when idle to save CPU and battery
- Global Debouncing: Intelligent input debouncing prevents UI thread freezes
- RDP Session Detection: Automatically detects Remote Desktop sessions, skipping GPU polling and adjusting App Activity to avoid performance issues in virtualized environments
Visual Customization
- Auto-Theme Detection: Switches text and background colors for Light, Dark, or Mixed taskbar themes โ updates the moment you toggle Windows theme (v1.3.2)
- Fluent Design: Modern Windows 10/11-style controls and flat card styling
- Free Move Mode: Place the widget anywhere โ another monitor, the desktop, a specific taskbar spot
- Mini-Graph Overlay: Real-time area chart on the widget with adjustable opacity and gradient fills
- Arrow Styling: Independent font, size, and weight for arrow symbols
- Font & Precision Control: Custom fonts, 0-2 decimal places, fixed-width values to prevent layout jitter
- Text Alignment & Units: Bits (Mbps), Bytes (MB/s), Binary (MiB/s), or Decimal units with toggleable suffixes
Positioning & Integration
- Preferred Monitor: Pin the widget to a specific display in multi-monitor setups (v1.3.2)
- Auto-Shift: Finds empty space near the system tray and adjusts for new icons
- Z-Order Management: Stays above the taskbar, hides for fullscreen apps and system menus, reappears instantly
- Tray Offset Control: Fine-tune position relative to the system tray
- Vertical Taskbar Support: Automatically adapts layout for side-mounted taskbars
- High-DPI Aware: Proper scaling on 4K and multi-monitor setups
Localization
- Full support for 9 languages: English, Korean, French, German, Russian, Spanish, Dutch, Polish, and Slovenian
- 100% key parity across all locales โ no missing translations
- Most translations contributed by the community โ see Translators below
Security & Privacy
- Digitally Signed by SignPath Foundation โ no SmartScreen warnings
- 100% Open Source under GPLv3 โ no ads, no tracking, no telemetry. Privacy Policy
- PII Obfuscation: Logs auto-redact paths, IPs (including IPv6), MAC addresses, hostnames, and interface GUIDs before being written
- Support Bundle Export: One-click sanitized zip of logs + config + system info for bug reports โ no manual scrubbing needed (v1.3.2)
Support This Project
NetSpeedTray is built and maintained by one person in their spare time. Every release represents real work โ v1.3.2 cut the installer 24% smaller, dropped idle RAM by roughly half, fixed multi-monitor positioning, hardened PII redaction in logs, and added a one-click Support Bundle for cleaner bug reports.
If NetSpeedTray earns a permanent spot on your taskbar, a one-time tip helps me keep shipping. Even a coffee makes a real difference when it's one person doing the work.
Can't contribute money? Three free things that genuinely help:
- โญ Star the repo โ one click, takes a second, hugely appreciated. Helps others find the project.
- ๐ File a good bug report โ use the bug report template and attach a Support Bundle. Saves me triage time.
- ๐ Improve a translation โ German and Spanish currently lack a native speaker reviewer. See TRANSLATORS.md.
Translators
NetSpeedTray's UI lives in 9 languages thanks to the contributors below. Each translation represents real time and care โ if you're using NetSpeedTray in your language, please give them a star and a thank-you.
| Language | Locale | Translator |
|---|---|---|
| ๐ฐ๐ท Korean | ko_KR |
@VenusGirl โค |
| ๐ณ๐ฑ Dutch | nl_NL |
@CMTriX |
| ๐ท๐บ Russian | ru_RU |
@ZeoNish |
| ๐ธ๐ฎ Slovenian | sl_SI |
@anderlli0053 (Andrew Poลพenel) |
| ๐ต๐ฑ Polish | pl_PL |
@FadeMind |
| ๐ซ๐ท French | fr_FR |
@logounet |
| ๐ฉ๐ช German | de_DE |
Maintainer โ native-speaker review welcome |
| ๐ช๐ธ Spanish | es_ES |
Maintainer โ native-speaker review welcome |
See TRANSLATORS.md for details on how translation works in NetSpeedTray and how to contribute fixes or new languages. Even one-line phrasing corrections are valuable.
Building from Source (click to expand)
Prerequisites
- Python 3.11+
- Git
- (Optional) Inno Setup 6 for building the Windows installer
- (Optional) UPX is auto-downloaded by the build script into
build/tools/if not present
Development & Build Instructions
-
Clone the Repository:
git clone https://github.com/erez-c137/NetSpeedTray.git cd NetSpeedTray -
Create and Activate a Virtual Environment:
# PowerShell (Recommended on Windows) python -m venv .venv .\.venv\Scripts\Activate.ps1# CMD python -m venv .venv .\.venv\Scripts\activate.bat -
Install All Dependencies:
pip install -r dev-requirements.txtNote for Python 3.13+ Users: If you are using a pre-release version of Python (e.g., 3.14), you may need to install dependencies with the
--preflag if stable wheels are not yet available:pip install --pre -r dev-requirements.txt -
Run the Application from Source:
python src/monitor.py -
Run the Test Suite:
pytest -v -
Build the Executable and Installer:
- Full Package (signed installer + portable zip):
.\build\build.bat - Executable Only (no installer, faster iteration):
.\build\build-exe-only.bat - Output lands in the
distfolder.
- Full Package (signed installer + portable zip):
Contributing
Issues and pull requests welcome. Use the bug report template for bugs and the feature request template for ideas. Even small things โ a typo, a clearer error message, a translation polish โ are very welcome.
Sponsors
Free code signing on Windows for open-source projects provided by SignPath.io, certificate by the SignPath Foundation.
This means every release of NetSpeedTray you download from this repository is digitally signed end-to-end โ no SmartScreen warnings, no "unknown publisher," and a verifiable chain of trust that the binary hasn't been tampered with since it left CI. SignPath donates this service for free to qualifying open-source projects, and NetSpeedTray wouldn't be able to ship signed builds without them.
Thanks
- Translations by the community โ see Translators above.
- Built on PyQt6, matplotlib, psutil, numpy, pywin32, LibreHardwareMonitor (when available), and Inno Setup.
License
NetSpeedTray is licensed under the GNU GPL v3.0.


