How to Monitor Mac GPU Power With siltop, Without sudo

The GPU wattage in siltop hasn’t moved during your local model run. Is that a live reading, or an old one still on screen?

How to Monitor Mac GPU Power With siltop, Without sudo
TLDR
  • siltop reads power, clocks and temperatures on Apple Silicon Macs without requiring sudo for monitoring.
  • The main CPU graph is frequency-weighted; process CPU percentages use a per-core scale by default.
  • A held power reading has an age. Missing hardware and unavailable measurements are not reported as zero.

Install it, then run the dashboard

siltop is a terminal monitor for checking what an Apple Silicon Mac is doing during a build, a local-model run or another workload. It reads power and clock information through SMC and IOReport without needing root privileges. With Homebrew installed, the starting commands are:

brew install cloaky233/tap/siltop
siltop

The target is macOS on Apple Silicon, not Intel Macs or Linux. The user guide describes a GPU panel with utilization and frequency in MHz; expanding it adds watts and temperature where the machine exposes those readings. Press ? for help and q to quit.

siltop --demo is useful for learning the interface, but it runs a prepared 60-second demo. Those values belong to the demo, not the Mac currently running the demo.

The large CPU graph and process table use different scales

The main CPU graph includes clock speed. In the guide's example, a busy core running at half its maximum frequency contributes half as much to that graph. Activity Monitor counts busy time, so a lower siltop percentage does not by itself mean one application has lost track of CPU activity.

Cluster rows separate busy share from clock speed. Read them together when deciding whether the cores are idle or working at a lower frequency. This is more informative than treating the two applications' headline percentages as interchangeable.

Process rows have another convention: by default, 200% represents two fully occupied cores. The process setting cpu_unit = "total" changes the scale so that 100% means the whole machine. Establish the scale before comparing a process row with the main graph.

An unchanged wattage can be an older measurement

Some power sources deliver updates in batches. Between updates, siltop retains the last measurement and labels its age. The guide's ≈ 12.4 W 2s example means the displayed 12.4-watt reading is two seconds old; after ten seconds, a held reading is considered stale.

What you seeWhat it means
≈ and an age beside wattsThe last measurement is being held until another arrives.
— in a process fieldmacOS may not expose that information to the current user.
No fan or battery panelThe Mac may not have that hardware.

A fanless Air does not acquire a fan reading, and a desktop does not acquire a battery panel. Likewise, an inaccessible process measurement is not evidence of zero activity. Keep the timestamp context when recording watts.

Match the sampling interval before comparing runs

These commands open a dashboard sampled every second, print one JSON snapshot, or report what the Mac exposes:

siltop -i 1s
siltop --json
siltop doctor

Sampling has a cost. In the project's October 16 measurements, version 1.2.0 used 1.34% of one CPU core at a one-second interval, compared with 1.70% at its default 500-millisecond interval. Those figures are medians of three 20-second windows on an M5 Pro running macOS 27.0.1.

They describe that test configuration. For comparisons on your own Mac, keep the interval, CPU scale and age of the power readings in view. The dashboard becomes useful when its numbers answer the same question from one run to the next.