Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>Monitor ProNew to Visual Studio Code? Get it now.
Monitor Pro

Monitor Pro

Nexmoe

|
21,534 installs
| (8) | Free
Monitor all the resources you care about.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Monitor Pro

Github Repo

VSCode Installs

English | 简体中文 | 繁體中文 | 日本語

Monitor Pro is a real-time system resource monitoring tool that works directly in the VS Code status bar and a dedicated Webview panel. From the very beginning, the plugin was designed with cross-platform and remote development machine performance monitoring in mind, with full implementations on local systems, Remote SSH, and WSL.

A hybrid architecture delivers the best of both worlds: a native Go binary on Windows bypasses PowerShell/WMI overhead for over 10x faster data collection compared to systeminformation; macOS Apple Silicon machines use mactop (when installed) for SoC-level metrics (CPU/GPU/ANE power, temperature) via a Prometheus HTTP endpoint; Linux and macOS without mactop fall back to the Node.js (systeminformation) data source, ensuring full platform compatibility.

[!WARNING]

Breaking Change 0.7.0

The status bar now defaults to only CPU, Memory Active, and Battery. Other metrics (Network, CPU Temperature, CPU Speed, Uptime, Disk I/O, Disk Space, OS Distro) must be manually enabled in VSCode settings under monitor-pro.metrics.*.

Rationale: with the new Resource Usage webview, most metrics are better visualized in their dedicated panel. Keeping the status bar lean avoids clutter for new users.

0.7.0 Major Update Overview

Side panel monitoring view:

Side panel monitoring view

CPU speed, Disk and other info:

CPU speed, Disk and other info

Auxiliary panel fullscreen view:

Auxiliary panel fullscreen view

Main panel view:

Main panel view

Bottom panel sidebar view:

Bottom panel sidebar view

Theme adaptive — Dark:

Theme adaptive — Dark

Bar chart demo:

Bar chart demo

l10n — Japanese source:

l10n — Japanese source

l10n — Chinese, battery level, health and power:

l10n — Chinese, battery level, health and power

Discharge and charge chart transition:

Discharge and charge chart transition

Features

Status Bar

14 individually toggleable metrics shown as status bar items with Codicon icons:

Metric Default Icon Example
CPU on $(chip) 73.2%
Memory Active on $(pie-chart) 4.21 / 15.6 GiB
Battery on $(plug) 85.2% (Charging)
Memory Used off $(pie-chart) 8.15 / 15.6 GiB
Network off $(cloud-download) $(cloud-upload) 125 KiB/s 2.34 MiB/s
CPU Temperature off $(flame) 52.3°C
CPU Speed off $(dashboard) 3.81 GHz
GPU off $(circuit-board) 73.2%
GPU Temperature off $(lightbulb-sparkle) 52.3°C
GPU Memory off $(layers) 11.2 / 24 GiB
Uptime off $(clock) 2d 14h 32m
Disk I/O off $(log-in) $(log-out) 50.2 MiB/s 12.1 MiB/s
Disk Space off $(database) / 45.2% 120/256 GiB
OS Distro off — Ubuntu 22.04

GPU metrics require NVIDIA hardware with nvidia-smi, or Apple Silicon with the mactop backend; they hide automatically otherwise. GPU Memory additionally needs VRAM, which the mactop integrated-GPU backend does not expose.

Resource Usage Webview

A dedicated side panel with live line/bar charts for 14 metrics: CPU, Memory (Active/Used), Network (Down/Up), Disk (Read/Write), Battery, Battery Power / SoC Power, CPU Temperature, CPU Speed, GPU, GPU Temperature, GPU Memory. On macOS Apple Silicon with the mactop backend, the power chart switches to SoC Power mode, showing total chip power consumption (CPU + GPU + ANE).

Each chart features:

  • Live 2D canvas rendering with gradient fill and Bezier curves
  • Auto-scaling Y-axis; the current scale maximum is labeled with an ↑ prefix
  • Toggle between line and bar view
  • Per-core / per-card array view: CPU Usage, CPU Temperature, GPU, GPU Temperature, and GPU Memory cards can switch to a grid of colored bars — one per CPU core (C0, C1, …) or per GPU (G0, G1, …) — showing each item's utilization / temperature / memory. Hovering a GPU cell reveals the card model (and used/total memory for the GPU Memory view).
  • Subtitle: battery health, charge/discharge state, temperature min, speed range
  • 10–500 configurable history points

GPU charts are enabled by default and automatically hidden when no GPU data source is available (NVIDIA nvidia-smi or the mactop backend on Apple Silicon). The per-card GPU array view only appears with more than one GPU.

A lower Info section displays uptime, OS distro, and disk space with colored progress bars. These cards are part of the resourceUsage.charts configuration and can be toggled via charts.osDistro.enabled / charts.uptime.enabled / charts.diskSpace.enabled (enabled by default).

On-Demand Querying

Disabled metrics are never queried — collection is driven entirely by what is enabled. The actual data source call (systeminformation on macOS/Linux, the Go backend on Windows) only fetches the dimensions currently in use:

  • Status bar monitor-pro.metrics.* toggles and webview resourceUsage.charts.*.enabled are merged into a single enabled set.
  • Unused SI.* calls and unused Go collection groups (CPU / Memory / Disk / Network / Host / Battery) are skipped entirely, not fetched-and-filtered.
  • This keeps the refresh cycle lightweight when only a few metrics are shown. Change any toggle and collection adapts on the next tick via hot-reload.

Battery / SoC Power Monitoring

Monitor Pro reports real-time power consumption in watts across two modes:

  • Windows: Battery net power (positive for charging, negative for discharging) via the native Go backend.

  • macOS Apple Silicon: Total SoC power (CPU + GPU + ANE) via the mactop backend, shown as a non-negative value. Also includes battery health and time remaining from pmset.

  • Signed values: positive for charging, negative for discharging

  • Zero reference: a dashed guideline always marks 0W

  • 5-sample moving average for stable readings

  • Health percentage: ratio of current full capacity to design capacity

  • State detection: Charging / Discharging / Idle

Formatting Consistency

All formatted values (%, W, °C, GHz, byte rates) uniformly respect three configuration options:

  • showSpace: whether to insert a space between number and unit
  • singleUnit: abbreviate units to first letter (K, M, G)
  • significantDigits: per-metric significant digits

These settings apply to the status bar and webview alike.

CPU Performance

  • Windows: Uses the same PDH counters as Task Manager (% Processor Utility) for accurate CPU readings. CPU frequency is read dynamically via % Processor Performance — reflects actual turbo boost and power-saving states in real time.
  • Linux: Non-blocking delta-based calculation from /proc/stat with cached initial values — 30x faster than traditional blocking approaches.

Cross-Platform

  • Works in local, Remote SSH, and WSL environments
  • Go binary for Windows (native performance); mactop for macOS Apple Silicon (SoC metrics); transparent fallback to Node.js on all platforms
  • Multi-language: English, 简体中文, 繁體中文, 日本語

Configuration

Settings are grouped under monitor-pro.* and apply instantly via hot-reload.

Setting Default Description
monitor-pro.metrics.* varies Toggle each status bar metric on/off
monitor-pro.metricsOrder — Reorder status bar items
monitor-pro.refresh-interval 2000 ms Polling interval (500–30000ms)
monitor-pro.unitSystem binary binary (KiB/MiB) or decimal (kB/MB)
monitor-pro.showSpace false Space between number and unit
monitor-pro.singleUnit false Abbreviate unit to first letter (K, M, G)
monitor-pro.significantDigits per-metric Significant digits (1–6) per metric
monitor-pro.uptimeFormat auto Custom format with {d}, {h}, {m}, {s}
monitor-pro.resourceUsage.charts — Chart/card enable/view/color per metric (incl. osDistro, uptime, diskSpace)
monitor-pro.resourceUsage.samplingPoints 60 Chart history length (10–500)
monitor-pro.resourceUsage.diskSpaceMounts ["all"] Mount filter for disk space card
monitor-pro.diskSpace ["/", "C:"] Mount filter for status bar

Screenshots (pre-0.6.0, still compatible with the current version)

Screenshot 0 Screenshot 1 Screenshot 2

Requirements

  • VS Code 1.104+
  • Windows 10/11 (for native Go backend; Linux/macOS use built-in fallback)
  • macOS 12+ Apple Silicon (optional): mactop via Homebrew (v2.1.4+) for SoC metrics (brew install mactop). When missing, the extension prompts once on first run offering to auto-install it (suppressible via the monitor-pro.mactop.enabled setting)

Developing

See CONTRIBUTING.md

Quick Start

pnpm install
pnpm run compile

Commands

Command Description
pnpm run lint Lint TypeScript sources
pnpm run go:test Run Go backend tests
pnpm run go:vet Run Go vet
pnpm run go:build:win32-x64 Cross-compile Go binary for Windows x64
pnpm run go:build:win32-arm64 Cross-compile Go binary for Windows ARM64
pnpm run package:vsix:universal Package universal VSIX (macOS/Linux)
pnpm run package:vsix:win32-x64 Package Windows x64 VSIX
pnpm run package:vsix:win32-arm64 Package Windows ARM64 VSIX
pnpm run gen-l10n Regenerate l10n bundle from source

Inspiration & Acknowledgments

Inspiration

  • vscode-resource-monitor
  • resmon

Acknowledgments

  • TrafficMonitor: Adopted its PDH query lifecycle pattern (persistent handle + baseline collection + single collection per tick) for the Windows Go backend CPU monitoring, ensuring readings match Task Manager exactly.

Feedback

Issues and feature requests: github.com/nexmoe/vscode-monitor-pro/issues

Support

Please give a star on GitHub or leave a review on VS Code Marketplace!

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft