Skip to main content

Visually pleasing, deep system monitoring for macOS

Project description

Yamon 🍊

Beautiful, In-Depth System Monitoring for macOS.

Yamon is a modern system monitor engineered specifically for Apple Silicon. It goes beyond standard CPU and RAM metrics to reveal the true heartbeat of your Mac — from Neural Engine activity to precise component-level power consumption — all displayed in an elegant, real-time web interface.

Yamon Screenshot

✨ Features

🚀 Deep Apple Silicon Integration

Unlock metrics that standard tools often hide:

  • Total System Power: Accurate, real-time power readings (mW) derived directly from the SMC (System Management Controller).
  • Power Breakdown: visualize exactly how much energy your CPU, GPU, and Neural Engine are consuming.
  • Neural Engine (ANE) Usage: Track utilization of dedicated AI hardware.
  • GPU Frequency & Usage: Gain granular insights into graphics performance and clock speeds.

⚡️ Real-Time & Responsive

  • Millisecond Latency: Powered by WebSockets for an instant, lag-free monitoring experience.
  • Historical Context: Interactive charts visualize the last 2 minutes of performance data.
  • Modern UI: Built with React, TypeScript, and ECharts for a premium, responsive aesthetic on any device.

🛠️ Native Performance, Pure Python

  • Native APIs via ctypes: Directly interfaces with macOS IOReport and SMC private frameworks.
  • No Heavy Dependencies: Pure Python implementation without the need for compiling Rust or C/C++ binaries.
  • No Sudo Required: Most metrics, including granular Power and GPU stats, function without root privileges.*

📦 Installation

Install from PyPI (Recommended)

The easiest way to install Yamon:

pip install yamon

After installation, start the monitor:

yamon

Visit http://localhost:8000 to view your dashboard.

📦 Available on PyPI: https://pypi.org/project/yamon/

Install from Source

# Clone the repository
git clone https://github.com/grapeot/yamon.git
cd yamon

# Install in development mode
pip install -e .

📸 Usage

Production Mode (Single Server)

The most convenient way to run Yamon locally. The backend serves both the API and the compiled frontend.

# 1. Build Frontend
./build_frontend.sh

# 2. Run Backend
./run_backend.sh

Visit http://localhost:8000 to access the dashboard.

Development Mode (Separate Frontend & Backend)

For contributors who want to modify the frontend code.

# 1. Run Backend (Collects data)
./run_backend.sh

# 2. Run Frontend (Hot-reload dev server)
./run_frontend.sh

Visit http://localhost:5173 for the development server.

🏗️ Architecture

Yamon bridges the gap between low-level hardware counters and high-level visualization:

  1. Collectors (Python): Low-overhead bindings to Apple's private frameworks (IOKit, IOReport).
  2. Server (FastAPI): Aggregates metrics and broadcasts them via efficient WebSocket streams.
  3. Frontend (React): High-performance canvas rendering for dense data visualization.

🔋 Power Monitoring Accuracy

Yamon leverages the mach_task_self() iteration method to interface with the hardware SMC. This allows it to read the System Total Power (PSTR) sensor with high precision, bypassing standard permission restrictions found in other tools.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.


Note: While Yamon is designed to run without root, some deeply protected system metrics may unavailable without elevated privileges. The application will degrade gracefully in these cases.

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

yamon-0.1.1.tar.gz (900.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

yamon-0.1.1-py3-none-any.whl (463.9 kB view details)

Uploaded Python 3

File details

Details for the file yamon-0.1.1.tar.gz.

File metadata

  • Download URL: yamon-0.1.1.tar.gz
  • Upload date:
  • Size: 900.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for yamon-0.1.1.tar.gz
Algorithm Hash digest
SHA256 f1b9a6bf8162caac876830ee9cabc9a65b02c82e861d0f6f037b0bcb9de772d7
MD5 b31156db6f1cde071c2a2d6fc8dc2cc1
BLAKE2b-256 c58f8fd4a7d27bbe89ce22491f4a1fe1a3f8db4e287bc3a76038c16869c58bc6

See more details on using hashes here.

File details

Details for the file yamon-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: yamon-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 463.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for yamon-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5b0f7510b1a2b3dee53a5dfd2bba0fece1ed53e6cd18452770e9004eaafed5e3
MD5 e8cb592a791a85f7f1db662f8504c072
BLAKE2b-256 992a07885fe6e3c1aaa28b3a124d6399b13035f34a6a513d4eefef2301dd0728

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page