Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

πŸ¦€βš™οΈ Sudoless performance monitoring for Apple Silicon processors. CPU / GPU / RAM usage, power consumption & temperature 🌑️

License

Notifications You must be signed in to change notification settings

vladkens/macmon

Repository files navigation

macmon – Mac Monitor

A sudoless performance monitoring CLI tool for Apple Silicon processors.

donate

Motivation

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. πŸŽ‰

🌟 Features

  • 🚫 Runs without sudo
  • ⚑ Real-time CPU / GPU / ANE power usage
  • πŸ“Š CPU utilization per cluster
  • πŸ’Ύ RAM / Swap usage
  • πŸ“ˆ Historical charts with average and max values
  • 🌑️ Average CPU / GPU temperature
  • 🎨 Switchable color themes (6 variants)
  • πŸͺŸ Can be displayed in a small window
  • πŸ¦€ Written in Rust

πŸ“₯ Installation

brew install macmon
sudo port install macmon
cargo install macmon
nix-env -i macmon

πŸš€ Usage

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

🚰 Piping

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.

Output

{
 "timestamp": "2025εΉ΄02月24ζ—₯T20: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)
}

πŸ“¦ Build from Source

  1. Install Rust toolchain

  2. Clone the repo:

git clone https://github.com/vladkens/macmon.git && cd macmon
  1. Build and run:
cargo run -r

🀝 Contributing

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. πŸ’ͺ

πŸ“ License

macmon is distributed under the MIT License. For more details, check out the LICENSE file.

πŸ” See also


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! πŸ’ͺ

About

πŸ¦€βš™οΈ Sudoless performance monitoring for Apple Silicon processors. CPU / GPU / RAM usage, power consumption & temperature 🌑️

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /