Apple Silicon processors don't provide an easy way to see live power consumption. I was interested in this information while testing local LLM models. asitop is a nice and simple TUI to quickly see current metrics, but it reads data from powermetrics and requires root privileges. macmon uses a private macOS API to gather metrics (essentially the same as powermetrics) but runs without sudo. π
- π« Works without sudo
- β‘ Real-time CPU / GPU / ANE power usage
- π CPU utilization per cluster
- πΎ RAM / Swap usage
- π Historical charts + avg / max values
- π‘οΈ Average CPU / GPU temperature
- π¨ Switchable colors (6 variants)
- πͺ Can be rendered in a small window
- π¦ Written in Rust
You can install macmon using brew:
$ brew install macmonYou can also install macmon using MacPorts:
$ sudo port install macmon-
Install Rust toolchain
-
Clone the repo:
git clone https://github.com/vladkens/macmon.git && cd macmon- Build and run:
cargo run -r- (Optionally) Binary can be moved to bin folder:
sudo cp target/release/macmon /usr/local/binUsage: macmon [OPTIONS] [COMMAND]
Commands:
pipe Output metrics in JSON format
debug Print debug information
help Print this message or the help of the given subcommand(s)
Options:
-i, --interval <INTERVAL> Update interval in milliseconds [default: 1000]
-h, --help Print help
-V, --version Print version
Controls:
c - change color
v - switch charts view: gauge / sparkline
q - quitYou can use the pipe subcommand to output metrics in JSON format, which is suitable for piping into other tools or scripts. For example:
macmon pipe | jqThis command runs macmon in "pipe" mode and navigate output to jq for pretty-printing.
You can also specify the number of samples to run using -s or --samples parameter (default: 0, which runs indefinitely), and set update interval in milliseconds using the -i or --interval parameter (default: 1000 ms). For example:
macmon pipe -s 10 -i 500 | jqThis will collect 10 samples with an update interval of 500 milliseconds.
We love contributions! Whether you have ideas, suggestions, or bug reports, feel free to open an issue or submit a pull request. Your input is essential in helping us improve macmon πͺ
macmon is distributed under the MIT License. For more details, check out the LICENSE.
- tlkh/asitop β Original tool. Python, requires sudo.
- dehydratedpotato/socpowerbud β ObjectiveC, sudoless, no TUI.
- op06072/NeoAsitop β Swift, sudoless.
- graelo/pumas β Rust, requires sudo.
- context-labs/mactop β Go, requires sudo.
PS: One More Thing... Remember, monitoring your Mac's performance with macmon is like having a personal trainer for your processor β keeping those cores in shape! πͺ

{ "timestamp": "2025-02-24T20:38:15.427569+00:00", "temp": { "cpu_temp_avg": 43.73614, // Celsius "gpu_temp_avg": 36.95167 // Celsius }, "memory": { "ram_total": 25769803776, // Bytes "ram_usage": 20985479168, // Bytes "swap_total": 4294967296, // Bytes "swap_usage": 2602434560 // Bytes }, "ecpu_usage": [1181, 0.082656614], // (Frequency MHz, Usage %) "pcpu_usage": [1974, 0.015181795], // (Frequency MHz, Usage %) "gpu_usage": [461, 0.021497859], // (Frequency MHz, Usage %) "cpu_power": 0.20486385, // Watts "gpu_power": 0.017451683, // Watts "ane_power": 0.0, // Watts "all_power": 0.22231553, // Watts "sys_power": 5.876533, // Watts "ram_power": 0.11635789, // Watts "gpu_ram_power": 0.0009615385 // Watts (not sure what it means) }