Meet “macmon”: Mac Usage Monitor in Terminal

A TUI program that helps to monitor resource usage in real time

vladkens
2 min readAug 6, 2024

When MacBook moved to ARM architecture (M1 processor), old system APIs stopped working and with them existing monitoring tools. However, macOS has a built-in console utility called powermetrics. It can show real-time resource consumption, but it does it in plain text.

Asitop is the first utility that allows users to view resource and energy consumption visually in a terminal. But it works on top of powermetrics which requires sudo to work. The program is written in Python and has compatibility issues with new M-processors.

macmon attempts to solve these issues. Coded in Rust as a single binary file it uses an undocumented Apple API (the same API that uses powermetrics, but doesn’t require sudo) to get metrics on system utilization, power consumption and temperature.

Installation

brew install vladkens/tap/macmon

Features

  • No Sudo Required: Run seamlessly without administrative privileges.
  • Real-Time Metrics: Monitor CPU/GPU/ANE power usage live.
  • Detailed Utilisation: Track CPU usage per cluster and RAM/Swap usage.
  • Historical Data: View historical charts with average and max values.
  • Customizable Interface: Switch between six color variants.
  • Compact Design: Fits neatly in a small terminal window.
  • Built with Rust: Ensuring performance and reliability.

Interface Overview

The top line shows the chip model, number of Effective (E) and Performance (P) cores, number of GPU cores, and RAM.

The second line shows the chart of E and P cluster utilization of the CPU. MacOS uses E-cores for normal tasks, but when something complex needs to be done, process switches to P-cores.

The third line shows memory usage and GPU loading (during gaming, video processing or LLM running 😈).

And finally, the fourth line, the most interesting one, shows the power consumption for compute tasks, by system in general and separately for CPU, GPU and ANE (Apple Neural Engine). It also shows the average temperature of CPU and GPU.

macmon is an open-source program. You can view, star, request features or report bugs on Github.

--

--