| Crates.io | macmon |
| lib.rs | macmon |
| version | 0.6.1 |
| created_at | 2025-06-02 20:55:14.729814+00 |
| updated_at | 2025-06-02 20:55:14.729814+00 |
| description | Sudoless performance monitoring CLI tool for Apple Silicon processors |
| homepage | |
| repository | https://github.com/vladkens/macmon |
| max_upload_size | |
| id | 1698369 |
| size | 102,395 |
macmon – Mac Monitor
Apple Silicon processors don't provide an easy way to view live power consumption. I was interested in this data while testing local LLM models. asitop is a nice and simple TUI for quickly checking current metrics, but it reads data from powermetrics and requires root privileges. macmon uses a private macOS API to gather similar metrics (essentially the same as powermetrics), but runs without sudo. 🎉
brew install macmon
sudo port install macmon
cargo install macmon
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 makes it suitable for piping into other tools or scripts. For example:
macmon pipe | jq
This command runs macmon in "pipe" mode and sends the output to jq for pretty-printing.
You can also specify the number of samples to collect using the -s or --samples parameter (default: 0, which runs indefinitely), and set the 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.
{
"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)
}
Install Rust toolchain
Clone the repo:
git clone https://github.com/vladkens/macmon.git && cd macmon
cargo run -r
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 to helping us improve macmon. 💪
macmon is distributed under the MIT License. For more details, check out the LICENSE file.
P.S. One more thing... Monitoring your Mac's performance with macmon is like having a personal trainer for your processor — keeping those cores in shape! 💪