A cross-platform desktop application for monitoring and managing virtual machines over SSH.
VM Performance Monitor & Controller provides a modern GUI for administrators and developers to connect to a VM, view live system metrics, inspect running processes, execute shell commands, and manage processes remotely.
The application is built with:
- Python
- CustomTkinter for the desktop interface
- Paramiko for SSH communication
- psutil for local dependency support
- Live CPU usage monitoring
- Live memory usage monitoring
- Color-coded resource indicators
- Periodic refresh of remote system data
- View remote process list
- Sort processes by CPU usage
- Kill processes gracefully
- Force kill processes when needed
- Protection against terminating critical system processes
- Execute shell commands on the VM
- Support for
sudocommands with password prompt - Background execution for long-running commands
- Output and error logging in the GUI
- SSH connection dialog
- Save connection settings locally
- Reconnect and disconnect controls
- Connection status indicator
- VM OS information
- Kernel version
- Uptime
- CPU details
- Disk usage
- Network address information
The application uses a secure client-server model over SSH:
- VMConnection handles SSH connectivity and command execution
- VMMonitor builds the main interface and orchestrates updates
- CommandPanel provides a terminal-like interface for remote commands
- Background threads keep the UI responsive during remote operations
Add screenshots here if available.
- Python 3.10+ recommended
- SSH access to a Linux-based VM
- The following Python packages:
paramikopsutilcustomtkinter
pip install paramiko psutil customtkinter- Run the application:
python main.py- Enter the VM host/IP, SSH port, username, and password.
- Connect to the VM.
- Monitor system metrics, manage processes, or run commands from the dashboard.
- The app uses SSH for encrypted remote communication.
- Do not store credentials on shared systems unless you trust the environment.
- Be careful when using force kill or remote command execution.