Skip to content
BasterHapyPublic

About

A modern cross-platform system monitor built with Python, pywebview, and psutil

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

PyNeoHtop Logo

PyNeoHtop

A modern cross-platform system monitor built with Python, pywebview, and psutil

License Python Platform

Inspired by NeoHtop

Table of Contents

Why Choose PyNeoHtop?

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.

Features

  • 🚀 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

Tech Stack

  • 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

Supported Platforms

Platform Status
Linux Supported✅
macOS To be tested✅
Windows Supported✅

Quick Start

Prerequisites

  • Python 3.12 or higher
  • pip or uv package manager

Installation

Clone the repository:

git clone https://gitcode.com/BasterHapy/PyNeoHtop.git
cd PyNeoHtop

Install dependencies:

Using pip:

pip install -r requirement.txt

Using uv:

uv sync

Run the Application

python main.py

With uv:

uv run main.py

Build & Release

You can use Nuitka to compile the project into a standalone executable file:

# Install packaging dependencies
pip install nuitka ordered-set zstandard

With uv:

uv pip install nuitka ordered-set zstandard

Build as a Single Executable File

nuitka --standalone --onefile \
     --enable-plugin=pywebview \
     --enable-plugin=pyside6 \
     --include-data-dir=static=static \
     --include-package=monitoring \
     --include-package=psutil \
     --include-package=cpuinfo \
     main.py

With 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.py

Project Structure

PyNeoHtop/
├── 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

Dependency Description

Package Purpose
psutil Collect cross-platform system performance data
pywebview Create lightweight native desktop application windows
zstandard Provide compression support for Nuitka packaging

Acknowledgements

This project is inspired by NeoHtop. Thanks to the original author for the outstanding design and inspiration.

License

This open-source project is licensed under the Apache License 2.0.

About

A modern cross-platform system monitor built with Python, pywebview, and psutil

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages