[Media] macpow – real-time power tree for Apple Silicon

212 points k06a 23 comments
[Media] macpow – real-time power tree for Apple Silicon

I built a TUI power monitor for Apple Silicon that shows per-component and per-core power draw in a collapsible tree, with sparklines and per-process energy attribution.

Unlike asitop/macmon/mactop, macpow shows the full power tree: individual CPU cores with power + utilization + temps, peripherals (WiFi/BT/USB with estimated power), display/keyboard brightness, and a "Software" section ranking processes by energy.

Tech stack:

- ratatui + crossterm for TUI

- IOReport (private libIOReport.dylib) for SoC energy model

- SMC user-space protocol for temps/fans/system power

- CoreAudio for volume detection

- Mach host_processor_info for per-CPU utilization

- getifaddrs/host_statistics64 instead of spawning subprocesses

- ~5700 lines, ~1% CPU at default 500ms interval

Supports M1 through M5, all variants. No sudo required.

Install via Rust:

cargo install macpow

Install via Homebrew:

brew tap k06a/tap && brew install macpow

Or build from source: https://github.com/k06a/macpow