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)

pip install yamon

After installation, start the monitor:

yamon

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

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.0.tar.gz (897.5 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.0-py3-none-any.whl (462.3 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for yamon-0.1.0.tar.gz
Algorithm Hash digest
SHA256 7bcc1b1bab953269bf01b400b3c946718978433c48aa15e55ceeb185ea2193a9
MD5 2e7e95f3ca24bf7c6694136770269a7a
BLAKE2b-256 2accbffbf388a8c2b9a7c1a286f5ec0a6b73ea44d9403c058c9e052aad24ac68

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for yamon-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 461e2bc6774f8d2abe9a2a29cd1e89d3c78b3119f98b7c58efd90ee088ea4f06
MD5 95a8946d54bb6f49dde5e036b887240e
BLAKE2b-256 ed8b0f1a900bb74774705f05d8e332a5a3784cd5b678dc0735e423f71f8e1080

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