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

Installed via winget? Verify the binary on disk in one command with Verify-Release.ps1:

PowerShell — verify your winget-installed binary
# Resolves the winget shim to the real binary and checks build
# provenance + cosign signature; version auto-detected from `winget show`.
.\Verify-Release.ps1 -WinGet

# Or pin the release version explicitly:
.\Verify-Release.ps1 -WinGet -Version v1.0.0
Example output
Checking prerequisites
────────────────────────────────────────────────────────────
  [PASS] gh
  [PASS] cosign (cosign-windows-amd64)
  [PASS] winget

Locating winget-installed michaelsanford.wtop
────────────────────────────────────────────────────────────
  [PASS] michaelsanford.wtop is installed
         Installed version (winget list): 1.1.0.0
         Auto-detected version (winget show): v1.1.0
  [PASS] Binary: C:\Users\you\AppData\Local\Microsoft\WinGet\Packages\michaelsanford.wtop_Microsoft.Winget.Source_8wekyb3d8bbwe\wtop.exe
         Architecture: amd64  (bundle: wtop-v1.1.0-windows-amd64.exe.bundle)

1/2  GitHub Attestation  (gh attestation verify)
────────────────────────────────────────────────────────────
         Subject: C:\Users\you\AppData\Local\Microsoft\WinGet\Packages\michaelsanford.wtop_Microsoft.Winget.Source_8wekyb3d8bbwe\wtop.exe
  [PASS] Build provenance verified

2/2  Cosign Keyless Signature  (cosign-windows-amd64 verify-blob)
─────────────────────────────────────────────────────────────────
         Certificate identity: https://github.com/michaelsanford/wtop/.github/workflows/release.yml@refs/tags/v1.1.0
         OIDC issuer:          https://token.actions.githubusercontent.com
         Downloading bundle: wtop-v1.1.0-windows-amd64.exe.bundle
  [PASS] Cosign signature verified

Summary  —  v1.1.0  (winget install)
────────────────────────────────────────────────────────────
  [PASS] GitHub Attestation (gh attestation verify)
  [PASS] Cosign Signature   (cosign verify-blob)
         SBOM Integrity     (skipped — not installed by winget)

  winget-installed wtop v1.1.0 passed all verification checks.