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 macmon
You 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/bin
Usage: 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 - quit
You 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 | jq
This 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 | jq
This 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! πͺ