🍎 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.
Metadata
Release files for apple-smi 0.1.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| apple_smi-0.1.4.tar.gz | 26.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| apple_smi-0.1.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 53.2 kB
Release files / apple_smi-0.1.4.tar.gz
| Download URL | apple_smi-0.1.4.tar.gz |
|---|---|
| Size | 26.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
e6a787cd5e705241fc4fa8847ad6198c41e559ceac51a5b6c8bc9dacf55583ee
|
|
BLAKE2b-256 checksum How to use checksums |
ff618a882e8e0519d8eb3fb540204f7d88929465c28c2a5e2aac30868a674fa6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / apple_smi-0.1.4-py3-none-any.whl
| Download URL | apple_smi-0.1.4-py3-none-any.whl |
|---|---|
| Size | 26.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4e854523435e38fa622ce59c6395a2a158d43842a83211aec1044e86cb3b3e38
|
|
BLAKE2b-256 checksum How to use checksums |
39d169df3d8895d75204c77cff2f80b70918175b68aa93451de6083176452f46
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|