A lightweight Windows system tray monitor. SysInfo draws small live bar graphs directly into the notification area — one icon per metric — so you can watch CPU, memory, disk, and network activity at a glance without keeping a window open. It's inspired by Hexagora's "Performance Monitor" (DavPerf).
- Tiny footprint — around 60 MB working set and a fraction of a percent of one CPU core, idle.
- One icon per metric — CPU, memory, disk throughput, and network throughput, each a live scrolling bar graph.
- Sharp at any DPI — icons are rendered at the exact size Windows draws them, so the bars stay crisp instead of being resampled to a blur.
- Configurable — pick a colour per graph and a fixed scale for the disk and network graphs, or let them auto-scale.
- Coexists with shell replacements — uses only the standard tray API, so it works alongside tools like Start11 without hooking the taskbar.
Windows 11 is the target platform.
Download or build SysInfo.exe (see Building from source),
then put it somewhere stable — a per-user location like
%LOCALAPPDATA%\Programs\SysInfo needs no administrator rights:
dotnet publish src/SysInfo -c Release -r win-x64 --self-contained false -p:PublishSingleFile=true -o "$env:LOCALAPPDATA\Programs\SysInfo"This build is ~0.2 MB and needs the .NET 8 Desktop Runtime on the machine. For a standalone build that bundles the runtime (~160 MB, no install needed), see Building from source.
Run SysInfo.exe and its graphs appear in the notification area.
First run: the icons may be hidden. Windows starts tray icons from an unfamiliar app in the hidden overflow flyout (the
^arrow). Drag them out onto the taskbar once, or enable them under Settings → Personalisation → Taskbar → Other system tray icons, and Windows remembers.
Right-click any graph → Settings → tick Start with Windows → OK.
This adds the app to your per-user startup (the HKCU Run key) — no elevation,
nothing system-wide. Tick it from the installed copy, not from a build output
folder, since it registers whichever executable is currently running.
Right-click any graph and choose Settings:
- Colour — click a metric's swatch to pick its bar colour.
- Disk max / Network max — a fixed scale in MB/s for the throughput graphs. Leave a field empty to auto-scale against recent activity. A fixed ceiling keeps a bar's height meaning the same rate from one moment to the next, which is usually what you want.
Settings are stored as JSON in %AppData%\SysInfo\settings.json.
Requires the .NET 8 SDK.
# Build
dotnet build
# Run in the foreground (for manual testing)
dotnet run --project src/SysInfo
# Standalone single-file build — bundles the runtime, no install needed (~160 MB)
dotnet publish src/SysInfo -c Release -r win-x64 --self-contained -p:PublishSingleFile=true -p:PublishReadyToRun=trueKill any running instance before building — the executable locks itself, otherwise the build fails.
SysInfo is a windowless WinForms app: there's no main window, only tray icons.
Each metric is sampled once a second and drawn as a bar chart into a tray-sized
bitmap. CPU and memory read Windows performance counters (memory via
GlobalMemoryStatusEx, matching Task Manager); disk and network sum throughput
in bytes/sec across all drives and physical adapters. A single timer drives
every graph.
For the design decisions and the reasoning behind them, see ARCHITECTURE.md.
Issues and pull requests are welcome. Adding a new metric is deliberately
small: implement IMetricMonitor, add settings for it, and register it in
TrayApplicationContext. The steps are described under "Adding a metric" in
ARCHITECTURE.md.
Released under the MIT License.
