Inspired by NeoHtop
- Why Choose PyNeoHtop?
- Features
- Tech Stack
- Supported Platforms
- Quick Start
- Build & Release
- Project Structure
- Acknowledgements
- License
PyNeoHtop is a Python implementation of NeoHtop. It provides developers with a lightweight and easily extendable system monitoring utility. Built purely with Python, it lowers the learning curve and facilitates secondary development.
- 🚀 Real-time System Monitoring — Comprehensive tracking for CPU, memory, disk and network
- 💻 CPU Monitoring — Processor model, overall usage and per-core load display
- 🧠 Memory Monitoring — RAM usage, total/used capacity, available memory and cache statistics
- 💾 Disk Monitoring — Disk utilization, used space and free storage overview
- 🌐 Network Monitoring — Real-time upload and download speed for each network adapter
- ℹ️ System Information — System uptime and average load display
- 🎨 Modern UI Design — Clean and elegant dashboard layout
- Language: Python >= 3.12
- GUI Framework: pywebview — Lightweight cross-platform native desktop window
- System Metrics: psutil — Cross-platform system monitoring library
- Frontend: HTML5 / CSS3 / JavaScript
- Packaging Tool: Nuitka — Python compiler for standalone builds
| Platform | Status |
|---|---|
| Linux | Supported✅ |
| macOS | To be tested✅ |
| Windows | Supported✅ |
- Python 3.12 or higher
- pip or uv package manager
Clone the repository:
git clone https://gitcode.com/BasterHapy/PyNeoHtop.git
cd PyNeoHtopInstall dependencies:
Using pip:
pip install -r requirement.txtUsing uv:
uv syncpython main.pyWith uv:
uv run main.pyYou can use Nuitka to compile the project into a standalone executable file:
# Install packaging dependencies
pip install nuitka ordered-set zstandardWith uv:
uv pip install nuitka ordered-set zstandardnuitka --standalone --onefile \
--enable-plugin=pywebview \
--enable-plugin=pyside6 \
--include-data-dir=static=static \
--include-package=monitoring \
--include-package=psutil \
--include-package=cpuinfo \
main.pyWith uv:
uv run nuitka --standalone --onefile \
--enable-plugin=pywebview \
--enable-plugin=pyside6 \
--include-data-dir=static=static \
--include-package=monitoring \
--include-package=psutil \
--include-package=cpuinfo \
main.pyPyNeoHtop/
├── main.py # Application entry point
├── pyproject.toml # Project configuration
├── requirement.txt # Dependency list
├── LICENSE # Apache 2.0 License
├── monitoring/
│ ├── system_monitor.py # Core system monitoring logic
│ ├── process_monitor.py # Process monitoring module
│ ├── function_tools.py # Common utility functions
│ └── type.py # Type definitions
└── static/
├── index.html # Frontend page
├── style.css # Global stylesheet
├── script.js # Frontend interaction logic
└── images/ # Icon and image resources
| Package | Purpose |
|---|---|
| psutil | Collect cross-platform system performance data |
| pywebview | Create lightweight native desktop application windows |
| zstandard | Provide compression support for Nuitka packaging |
This project is inspired by NeoHtop. Thanks to the original author for the outstanding design and inspiration.
This open-source project is licensed under the Apache License 2.0.