Home
Softono
NetSpeedTray

NetSpeedTray

Open source Python
449
Stars
24
Forks
24
Issues
8
Watchers
2 weeks
Last Commit

About NetSpeedTray

A lightweight, open-source network monitor for Windows that displays live upload/download speeds directly on the Taskbar with a native look and feel.

Platforms

Web Self-hosted Windows

Languages

Python

NetSpeedTray

GitHub release Downloads License Windows Made with Python winget Stars

NetSpeedTray Banner

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

Widget on taskbar
The Widget
Lives on your taskbar
Settings dialog
Modern Settings
Windows 11 styled
Graph view
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

  1. Install with the Winget command above (or the installer)
  2. Right-click the widget on your taskbar โ€” opens Settings, Graph, App Activity, or Exit
  3. 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 .csv or save high-resolution .png snapshots
  • 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

  1. Clone the Repository:

    git clone https://github.com/erez-c137/NetSpeedTray.git
    cd NetSpeedTray
  2. 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
  3. Install All Dependencies:

    pip install -r dev-requirements.txt

    Note 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 --pre flag if stable wheels are not yet available: pip install --pre -r dev-requirements.txt

  4. Run the Application from Source:

    python src/monitor.py
  5. Run the Test Suite:

    pytest -v
  6. 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 dist folder.

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.

Code signing by SignPath.io

Certificate by 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


Star History Chart


License

NetSpeedTray is licensed under the GNU GPL v3.0.