verdict
asitop was one of the first Apple Silicon power dashboards in the terminal, and its method has one real strength: every number comes from powermetrics, Apple’s own sampler, so there is no reverse-engineering between you and the reading. Use it if you want exactly what powermetrics says, on a Mac and macOS version it was built for, and running it with sudo is fine. Its last release, 0.0.24, is from June 2023, and its README says it “only works on Apple Silicon Macs on macOS Monterey”. Use plottypus if you want the same kind of dashboard without sudo, on current chips (M1 to M5, including Pro, Max and Ultra), with processes, battery, fans, disk and network in the same window.
At a glance#
Checked 2026-09-24 against asitop’s README, PyPI page and repository. We did not run asitop for this page.
| plottypus 1.0.0 | asitop 0.0.24 | |
|---|---|---|
| Data source | IOReport, SMC, IOKit HID, Mach and sysctl, read in-process |
sudo powermetrics text output, plus psutil, sysctl and system_profiler |
| CPU watts on macOS 27 | Yes. Live from SMC power rails on the M5 Pro; other chips get the last IOReport batch, marked ≈ with its age |
Whatever powermetrics prints; not checked on macOS 27 |
| GPU MHz / °C | Yes / yes | MHz yes / no temperature listed |
| Per-cluster clocks | Super, Performance and Efficiency clusters with MHz | E and P clusters with frequency and utilization |
| Per-process energy / GPU | Watts per process; GPU share in the details card | No process list |
| Needs sudo | No | Yes |
| Self-cost | ~1.5% of one core at 500 ms, ~1.0% at 1 s (our measurement) | Not measured (a Python process plus a root powermetrics) |
| Works over ssh / in tmux | Yes | Yes |
| Process actions | TERM, KILL, INT, STOP/CONT, any signal, renice, background QoS | n/a |
| JSON output | --json, --json-stream |
No |
| Themes | 10 built-in plus one built from your terminal’s palette | --color 0 to 8 |
| Platforms | macOS on Apple Silicon, M1 to M5 | Apple Silicon; the README says “only works on Apple Silicon Macs on macOS Monterey” |
| Price / licence | Free download, proprietary EULA; a paid Pro tier is planned, not on sale | Free, MIT |
Sources: asitop README, asitop on PyPI (0.0.24, uploaded 2023-06-17; last commit to the repository April 2024).
sudo#
asitop runs powermetrics, which needs root, so asitop does too (sudo asitop). That is a Python program and a sampler running as root for as long as the dashboard is open.
plottypus needs no sudo for any reading. CPU and GPU clocks and energy come from IOReport; temperatures, fans and system power from the SMC; process data from proc_pid_rusage and proc_pidinfo. The one thing root would add is detail for other users’ processes, which macOS does not share with a normal user. plottypus shows — in those cells instead of a 0. Run sudo plottypus if you want them; nothing else changes.
Chips since 2023#
asitop hardcodes a few figures it cannot read (CPU and GPU TDP, maximum memory bandwidth, ANE maximum power, per its README), and it knows E and P clusters. The M5 Pro changed that: on our Mac17,8 the 18 cores are 6 Super and 12 Performance, with no Efficiency cores at all.
plottypus labels each cluster by kind, so the M5 Pro shows as it is (output compacted):
plottypus --json | jq '.soc, .cpu.clusters'{"name": "Apple M5 Pro", "e_cores": 0, "p_cores": 12, "s_cores": 6, "gpu_cores": 20, "memory_bytes": 25769803776}
[
{"kind": "performance", "cores": 12, "usage": 1.0, "scaled": 1.0, "freq_mhz": 4380},
{"kind": "super", "cores": 6, "usage": 1.0, "scaled": 0.948, "freq_mhz": 4368}
]Beyond the power dashboard#
asitop is one screen: CPU and GPU utilization and frequency, ANE, memory, and power charts with peak and rolling averages. plottypus covers the same ground (ANE watts appear when its counters publish) and adds a process table with per-process watts and signals, a battery panel, fans, heat by cluster, disk and network. plottypus --diagnose sums it up in one line (All normal, Busy: rustc using 9.1 cores, Hot: fans at 80%).
Switching from asitop#
| asitop | plottypus |
|---|---|
sudo asitop |
plottypus |
--interval 1 (seconds) |
-i 1s, or interval_ms = 1000 in the config |
--color 5 |
--theme <name>; T cycles themes in the app |
--avg 30 (averaging window) |
no rolling average; z zooms the time axis of every graph |
To keep a compact, asitop-like window, start on the Glance surface and the silicon preset:
plottypus --surface glance # then press 1 for the silicon preset