Skip to main content

vtop 🖥️

Advanced System Monitor for Apple Silicon Macs

A beautiful, real-time system monitoring tool designed specifically for Apple Silicon (M1/M2/M3/M4) Macs. Monitor every CPU core, GPU, memory, storage, and more—all from your terminal.

Python macOS License PyPI

✨ Features

CPU Monitoring

  • Per-core history charts for both E-cores (Efficiency) and P-cores (Performance)
  • Real-time frequency tracking for each core
  • Total CPU usage with cluster breakdown

GPU Monitoring

  • GPU utilization percentage and frequency
  • Historical usage chart

Memory & Storage

  • RAM usage with percentage
  • Swap usage tracking
  • SSD usage (shows actual available space like Finder)
  • Memory Pressure indicator (Normal/Moderate/High)

Power Consumption

  • CPU power draw with avg/peak tracking
  • GPU power draw with avg/peak tracking
  • Total system power consumption
  • Thermal throttling status

System Information

  • Thermal status
  • System uptime
  • Load average (1/5/15 min)
  • Disk I/O (read/write speeds)
  • Network I/O (download/upload speeds)
  • Battery status (percentage, charging state, time remaining)
  • Top CPU-consuming processes

📸 Screenshot

vtop screenshot

🚀 Installation

From PyPI (recommended)

pip install vtop

From GitHub

pip install git+https://github.com/filippovicidomini/vtop.git

From source

git clone https://github.com/filippovicidomini/vtop.git
cd vtop
pip install .

Development install

git clone https://github.com/filippovicidomini/vtop.git
cd vtop
pip install -e .

📖 Usage

vtop requires sudo to access power metrics:

sudo vtop

Options

Option Default Description
--interval 1 Refresh interval in seconds
--color 2 Color theme (0-8)
--avg 30 Window for averaged values (seconds)

Examples

# Default usage
sudo vtop

# Update every 2 seconds
sudo vtop --interval 2

# Use a different color theme
sudo vtop --color 5

Press Ctrl+C to exit.

🔧 Requirements

  • macOS with Apple Silicon (M1, M2, M3, M4 series)
  • Python 3.8+
  • Terminal with Unicode support

Dependencies

  • dashing - Terminal UI library
  • psutil - System monitoring library

🏗️ Architecture

vtop/
├── vtop.py      # Main application and UI layout
├── parsers.py   # Parsing powermetrics output
├── utils.py     # Utility functions and data gathering
└── __init__.py

🤝 Contributing

Contributions are welcome! Feel free to:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

📝 License

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

🙏 Acknowledgments

  • Inspired by asitop by tlkh
  • Built with dashing terminal UI library

📊 Comparison with other tools

Feature vtop htop asitop
Per-core history ✅ ❌ ❌
GPU monitoring ✅ ❌ ✅
Power consumption ✅ ❌ ✅
Memory pressure ✅ ❌ ❌
Battery status ✅ ❌ ❌
Top processes ✅ ✅ ❌
Disk I/O ✅ ❌ ❌
Network I/O ✅ ❌ ❌
Apple Silicon optimized ✅ ❌ ✅

Made with ❤️ for Apple Silicon

Metadata

Release files for vtop 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for vtop 1.0.1
File Size Uploaded
vtop-1.0.1.tar.gz 13.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for vtop 1.0.1
File Interpreter ABI Platform
vtop-1.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 25.5 kB

Release files / vtop-1.0.1.tar.gz

Download URL vtop-1.0.1.tar.gz
Size 13.5 kB
Tags Source
SHA-256 checksum
How to use checksums
09e8df0e00f0578c9e043b94dc04a2426574eccb911ff76086680334e73d0823
BLAKE2b-256 checksum
How to use checksums
72122d2edd3cfba122960101a113416581b0d2b5a3a98e19f5130fac90f1eff7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.2

Release files / vtop-1.0.1-py3-none-any.whl

Download URL vtop-1.0.1-py3-none-any.whl
Size 12.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
29e4ef3d9d897349b069b8debdc876d27727274f823854ea4df88437dc8abbee
BLAKE2b-256 checksum
How to use checksums
934a0f06dedb1c77395fefebb4cb201e3ff84f52ccc0a903cb08e473d97c03c7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.2

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page