Skip to content

Repository files navigation

Bandwidth Monitor icon

Bandwidth Monitor

A lightweight, real-time network bandwidth overlay for Windows — sits quietly next to your system tray clock.


Overview

Bandwidth Monitor is a zero-dependency Windows desktop widget that displays live download and upload speeds as a compact, semi-transparent overlay. It positions itself next to the system tray clock, stays out of the way during fullscreen apps, and logs your usage history automatically.

Built on .NET Framework 4.8 — no runtime installation required on Windows 10/11.

Features

  • Real-time speeds — polls every 4 seconds with smooth odometer-style animation
  • System tray positioning — auto-anchors next to the clock, respects DPI scaling
  • Fullscreen awareness — hides when a fullscreen game or app is active
  • 24-hour stats — hover tooltip shows total download/upload over the last 24 hours
  • Bandwidth logging — minute-by-minute CSV log with 7-day rolling history
  • Network interface selection — auto-detects active adapter or pick one manually
  • Fully customizable — font, colors, units (MB/s or Mbps), icons, layout, and spacing
  • Single-instance — mutex-guarded so it won't launch twice
  • Portable-friendly — settings and logs stored in %APPDATA%\Bandwidth Monitor\

Screenshots

The widget appears as a small overlay next to the Windows taskbar clock, showing live ↓ download and ↑ upload speeds.

Installation

Pre-built Installer (recommended)

  1. Download BandwidthMonitorSetup.exe from Releases
  2. Run the installer — no admin rights required
  3. Optionally enable Start automatically with Windows during setup

Build from Source

Requirements: Windows 10/11, .NET SDK or .NET Framework 4.8

# Clone and build
git clone https://github.com/YOUR_USERNAME/BandwidthMonitor.git
cd BandwidthMonitor
powershell -ExecutionPolicy Bypass -File build.ps1

Output:

  • Executable: bin\Release\net48\BandwidthMonitor.exe
  • Installer (requires Inno Setup 6): installer_output\BandwidthMonitorSetup.exe
Manual build without .NET SDK
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe `
  /target:winexe /optimize `
  /out:BandwidthMonitor.exe `
  /win32icon:app.ico `
  /reference:System.Windows.Forms.dll `
  /reference:System.Net.NetworkInformation.dll `
  BandwidthMonitor.cs

Usage

Action Result
Hover over widget Tooltip with 24-hour totals and active interface
Right-click Context menu: interface selection, settings, data folder, exit

Settings

Right-click → Settings to customize:

  • Font family, size, bold
  • Download / upload / label colors
  • Speed units: MB/s (bytes) or Mbps (bits)
  • Icons: ↓↑ or alternative symbols
  • Text alignment and icon placement
  • Margins and padding

Data

File Location
settings.ini %APPDATA%\Bandwidth Monitor\ or install directory
bandwidth_log.csv Same as above — columns: Timestamp, DownloadBytes, UploadBytes

Right-click → Open Data Folder to access these files directly.

Requirements

OS Windows 10 or Windows 11
Runtime .NET Framework 4.8 (pre-installed on Windows 10 1903+ and Windows 11)
Permissions Standard user — no admin required

Project Structure

BandwidthMonitor/
├── BandwidthMonitor.cs       # Entire application (~1000 lines)
├── BandwidthMonitor.csproj   # .NET Framework 4.8 project file
├── build.ps1                 # PowerShell build + installer script
├── setup.iss                 # Inno Setup installer definition
├── app.manifest              # DPI awareness & OS compatibility manifest
├── app.ico                   # Application icon
└── .github/workflows/
    └── build.yml             # GitHub Actions: build on tag push

License

See LICENSE for details.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages