nvidia-smi equivalent for macOS Apple Silicon – Monitor Metal GPU usage, power, and temperature
Project description
🍎 apple-smi
nvidia-smi equivalent for Apple Silicon – High-performance, sudoless GPU monitoring with zero dependencies.
$ apple-smi
Wed Mar 04 14:52:00 2026
+-----------------------------------------------------------------------------------------+
| APPLE-SMI 0.1.4 macOS Version: 26.3 (25D125) Metal Version: 3 |
+-----------------------------------------+------------------------+----------------------+
| GPU Name | Disp.A | |
| Temp Pwr:Usage/Cap | Memory-Usage | GPU-Util |
|=========================================+========================+======================|
| 0 Apple M1 (8-Core GPU) | On | |
| 30C 2.4W / 20W | 13826MiB / 16384MiB | 12% |
+-----------------------------------------+------------------------+----------------------+
+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU PID Type Process name GPU Memory |
| Usage |
|=========================================================================================|
| 0 72743 C python3.11 530MiB |
| 0 1007 G NotificationCenter 170MiB |
| 0 3197 G WeType 216MiB |
+-----------------------------------------------------------------------------------------+
✨ Features
- 🚫 No sudo required – Uses private macOS APIs (
IOReport,IOHIDSensors,SMC) for sudoless operation. - ⚡ Ultra-Fast & Lightweight – Optimized startup (<50ms) using targeted
sysctlandioregcalls. - 🔋 Power Monitoring – Displays SoC power consumption (Usage) against chip TDP (Cap).
- 🌡️ Smart Thermals – High-accuracy GPU/SOC temperature readings with sensor fallback logic.
- 📋 Robust Process Listing – Lists active GPU processes with full name resolution (no truncation for paths with spaces).
- 🔍 C/G Classification – Categorizes processes by Type (
Cfor Compute,Gfor Graphics). - 💾 Memory Usage – Detailed breakdown of unified memory utilization.
- 🔄 Watch Compatible – Default 100ms sampling interval for smooth real-time monitoring.
- 📦 Zero Dependencies – Pure Python, utilizing
ctypesto interface with macOS frameworks.
📥 Installation
pip install apple-smi
🚀 Usage
Command Line Options
# Basic usage
apple-smi
# Set sampling interval (default: 100ms)
apple-smi --interval 250
# JSON output for integration with other tools
apple-smi --json
# Continuous monitoring (highly recommended)
watch -n 0.1 apple-smi
Process Filtering
By default, apple-smi only shows Compute (C) processes (e.g., Python, MLX, Torch, llama.cpp) to reduce system noise. You can show all GPU-connected processes (including window compositors and browsers) using an environment variable:
APPLE_SMI_SHOW_ALL_PROCESSES=1 apple-smi
Backends
apple-smi automatically selects the best available backend:
- IOKit (Default): Uses undocumented IOKit APIs for sudoless monitoring.
- Powermetrics (Fallback): Uses the system
powermetricstool (requiressudoor root privileges).
| Variable | Values | Description |
|---|---|---|
APPLE_SMI_BACKEND |
iokit, powermetrics |
Force a specific backend. Default: auto-detect. |
APPLE_SMI_SHOW_ALL_PROCESSES |
0, 1 |
Show all GPU processes (G+C). Default: 0. |
🔧 Requirements
- macOS on Apple Silicon (M1, M2, M3, M4, M5)
- Python 3.10+
📝 License
MIT License – see LICENSE for details.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file apple_smi-0.1.4.tar.gz.
File metadata
- Download URL: apple_smi-0.1.4.tar.gz
- Upload date:
- Size: 26.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e6a787cd5e705241fc4fa8847ad6198c41e559ceac51a5b6c8bc9dacf55583ee
|
|
| MD5 |
328d4ec534a8806982350631910bf428
|
|
| BLAKE2b-256 |
ff618a882e8e0519d8eb3fb540204f7d88929465c28c2a5e2aac30868a674fa6
|
File details
Details for the file apple_smi-0.1.4-py3-none-any.whl.
File metadata
- Download URL: apple_smi-0.1.4-py3-none-any.whl
- Upload date:
- Size: 26.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4e854523435e38fa622ce59c6395a2a158d43842a83211aec1044e86cb3b3e38
|
|
| MD5 |
cac616594a00c8050235ce3ced16df7e
|
|
| BLAKE2b-256 |
39d169df3d8895d75204c77cff2f80b70918175b68aa93451de6083176452f46
|