verdict
Activity Monitor is already on your Mac, and for some jobs it is the better tool. It sees every process, including root’s and other users’, without a password. It can sample a process, show its open files and ports, and send it a signal, and it keeps 12 hours of energy history per app on a laptop. Use plottypus when you want units and the chip: watts per process rather than a unitless score, CPU and GPU clocks, temperatures, fans and system power, in a terminal you can reach over ssh.
At a glance#
Checked 2026-09-24 against Apple’s Activity Monitor User Guide and plottypus 1.0.0 on an M5 Pro running macOS 27.0.
| plottypus 1.0.0 | Activity Monitor | |
|---|---|---|
| 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 |
No |
| System watts | SMC PSTR |
No |
| GPU MHz / °C | Yes / yes | GPU History window (% busy) |
| Per-cluster clocks | Super, Performance and Efficiency clusters with MHz | No |
| Temperatures, fans | Yes, by cluster and GPU; fans with idle state | No |
| Per-process energy | Watts (the kernel’s per-task estimate) | Energy Impact, “a relative measure” with no unit; 12 hr Power on laptops |
| Per-process GPU | GPU share in the details card | % GPU and GPU Time columns |
| Other users’ processes | Name and pid; the rest shows — without sudo |
Everything |
| Needs sudo | No | No |
| Works over ssh / in tmux | Yes | No, it is a GUI app |
| Process actions | TERM, KILL, INT, STOP/CONT, any signal, renice, background QoS | Quit, Force Quit, send a signal, sample a process |
| JSON output | --json, --json-stream |
No |
| Price / licence | Free download, proprietary EULA; a paid Pro tier is planned, not on sale | Built into macOS |
Sources: Energy pane, GPU activity, process information, and Howard Oakley’s notes on Activity Monitor’s CPU view.
Energy Impact is not watts#
Apple describes Energy Impact as “a relative measure of the current energy consumption of the app (lower is better)”. It is good for ranking apps against each other. It cannot tell you that Safari drew 2 W while you read, or add up to what the battery lost.
plottypus shows each process’s energy in watts, from the kernel’s per-task energy counter (ri_energy_nj in proc_pid_rusage), readable without sudo for your own processes. From one sample on our M5 Pro (compacted, rounded):
plottypus --json --procs 3 | jq '.processes[] | {name, cpu_pct, energy_w}'{"name": "rustdoc", "cpu_pct": 96.6, "energy_w": null}
{"name": "Music", "cpu_pct": 59.2, "energy_w": 2.55}
{"name": "HeadphoneSettingsExtension", "cpu_pct": 48.6, "energy_w": 1.79}rustdoc came back null in that sample: plottypus had no energy reading for it, and says so instead of printing 0. Next to the per-process figures sit CPU, GPU and whole-system watts, so you can see what share of the machine one app is.
CPU percent#
Per process, both count the same way: 100% is one busy core. The machine-wide graph differs. Activity Monitor reports busy time; plottypus weights each core’s busy time by the clock it ran at, so a Mac idling along at low clocks reads lower in plottypus than in Activity Monitor. Howard Oakley notes that Activity Monitor’s GPU percentages also appear to be “based on a similar concept of active residency without making any allowance for frequency”. plottypus shows the GPU’s clock next to its load.
What Activity Monitor still does better#
- It reads every process, root’s included, with no password. Without sudo, plottypus shows other users’ processes by name and pid only, with
—in the other cells. - Sample Process, open files and ports, and per-process network and disk totals in its own tabs.
- 12 hr Power per app on laptops. plottypus 1.0.0 keeps history only while it runs; saved history is planned for the Pro tier, which is not on sale yet.
- Nothing to install.
From Activity Monitor to plottypus#
| Activity Monitor | plottypus |
|---|---|
| Search field | / or f, then type |
| Click a column header to sort | same, or < >, r to reverse |
| Double-click a process | same, or Enter: the details card |
| Quit / Force Quit | x (TERM) / K (KILL), each after a y/n prompt |
| View > Send Signal to Process | X |
| View > All Processes, Hierarchically | t for the tree |
| View > Update Frequency | [ slower, ] faster; -i 1s on the command line |
| Memory column | the same footprint figure |
Want a one-line answer instead of a window? plottypus --diagnose prints All normal, or names the process behind a busy CPU with its evidence.