Windows system monitor

wtop

A self-contained, single-binary system monitor for Windows — inspired by htop. CPU, memory, GPU, network, and processes. Live. In your terminal.

Latest stable release
PowerShell
winget install michaelsanford.wtop
↓  Download Latest Release View on GitHub
CI MIT Go 1.26+ amd64 · arm64 Attested Sigstore CycloneDX SBOM
Windows PowerShell — wtop.exe
wtop screenshot showing CPU grid, memory bars, GPU panel, and sortable process list
Capabilities

Everything at a glance

Six panels, one binary. Live metrics updated every second across every subsystem that matters.

CPU

Per-core utilisation bars in a compact grid. Colour-coded green → yellow → red as load climbs. Aggregate total always pinned at the bottom.

Memory

RAM and swap in GiB with htop-style colour layering — used, cached, and buffered pages each in a distinct colour so you know exactly where memory is going.

GPU

Automatic detection: full telemetry (util, VRAM, temp, power, clocks, fan, P-state) from NVIDIA via nvidia-smi, or utilisation from AMD/Intel via Get-Counter. Loads in the background — other panels appear immediately while the GPU panel populates.

Network

Per-interface send/receive rates in real time. Loopback and zero-traffic interfaces hidden automatically. Delta-per-second calculation handles clock resets cleanly.

Process list

Top processes sortable by CPU%, memory, PID, or name. Toggle an htop-style tree view (t) to see parent → child relationships with box-drawing connectors. Kill any selected process with a confirmation step.

Zero dependencies

Single statically-linked binary with no installer, no runtime, and no admin rights to run. CGO-free. Just download wtop.exe and go.

Keyboard

Navigate at the speed of thought

Every action is one keypress away. No mouse. No menus.

Key Action
 /   or  k / j Scroll process list
s Cycle sort column — CPU% → Mem MB → PID → Name
d Reverse sort order
t Toggle tree view — htop-style parent → child with box-drawing connectors; tree● indicator appears in the status bar when active
g Cycle between GPUs (when multiple are detected)
x Kill selected process — asks for confirmation
y / n / Esc Confirm or cancel kill
q / Ctrl+C Quit
Get started

Up and running in seconds

Install with winget, or download a pre-built binary for amd64 and arm64. No installer. No admin rights.

PowerShell
winget install michaelsanford.wtop

Or download the latest release and run directly:

PowerShell
# No installer needed
.\wtop-v1.0.0-windows-amd64.exe

Build from source (Go 1.26+ required):

PowerShell
git clone https://github.com/michaelsanford/wtop
cd wtop
go build -o wtop.exe ./cmd/wtop/
.\wtop.exe
Supply chain

Verify what you run

Every release is built reproducibly in GitHub Actions and ships with a complete audit trail.

📋

CycloneDX SBOM

Full dependency inventory in JSON format — wtop-vX.Y.Z-sbom.cdx.json — attached to every release.

🔐

Sigstore cosign

Keyless signature via Sigstore. A .bundle file ships with each binary for offline verification.

🔗

Build provenance

GitHub Actions attestation links each binary to its exact source commit and workflow run. Verify with gh attestation verify.

Shell — verify a release binary
# Verify GitHub Actions build provenance
gh attestation verify wtop-v1.0.0-windows-amd64.exe \
    --repo michaelsanford/wtop

# Verify Sigstore cosign bundle
cosign verify-blob wtop-v1.0.0-windows-amd64.exe \
    --bundle wtop-v1.0.0-windows-amd64.exe.bundle \
    --certificate-identity-regexp "https://github.com/michaelsanford/wtop" \
    --certificate-oidc-issuer https://token.actions.githubusercontent.com