Skip to main content

Terminal-based interface to manage virtual machines using libvirt

Project description

VirtUI Manager

A powerful, text-based Terminal User Interface (TUI) application for managing QEMU/KVM virtual machines using the libvirt Python API.

Main

Why VirtUI Manager?

Managing virtual machines in a terminal environment has never been easier or more powerful. VirtUI Manager bridges the gap between the simplicity of command-line tools and the rich functionality of GUI-based solutions, offering the best of both worlds for virtualization administrators.

The Problem with Traditional Tools

  • Virt-manager requires X11 forwarding, which is slow, resource-intensive, and often impossible in remote environments
  • GUI-based solutions are heavy with X dependencies, making them unsuitable for headless servers or low-bandwidth connections
  • Command-line tools lack the intuitive interface needed for complex VM management tasks
  • Cockpit Machine is feature incomplete, and needs a lot of depencies. It is not multi hypervisor oriented
  • Complex Deployment as there is nothing to manage easily auto-installation of Virtual Machine with registration process and auto installation

Why VirtUI Manager is Different

VirtUI Manager solves these challenges with:

  • Lightweight Terminal Interface: No X11 dependencies, works perfectly over SSH
  • Remote Management: Efficient low-bandwidth control of remote libvirt servers
  • Rich Feature Set: Advanced VM management capabilities in a simple, intuitive interface
  • Multi-server Support: Manage VMs across multiple libvirt servers from a single interface
  • Performance Optimized: Built-in caching reduces libvirt calls and improves responsiveness (include a tracking resources call tool)
  • Libvirt Event handler: Only get update on event from libvirt
  • Migration Support: Live and offline VM migration capabilities and custom migration
  • Bulk Operations: Execute commands across multiple VMs at once (including configuration)
  • Web Console Access: Integrated VNC support with novnc over ssh tunnel for remote server
  • CMD line interface: improved command line to manage VMs: multi hypervisors, VMs selection, clone operation, bulk command, etc...
  • Auto installtion: Support auto installation for Debian, Ubuntu, Fedora, Archlinux (WIP), OpenSUSE and SLES (with SCC registration)

Documentation

VirtUI Manager doc

CI check

CI Check

Flatpak build

Build Flatpak

Requirements

  • Recommended Minimal Terminal Size: 34x92. 34x128 is the recommended Size
  • Remote Connection: SSH access to libvirt server (ssh-agent recommended)
  • Python 3.7+
  • libvirt with Python bindings
  • Python Dependencies: see requirements.txt file
  • Optional: virt-viewer, novnc, websockify for enhanced functionality
  • Tmux: To edit file with pseudo terminal

Note about Libvirt API

As there is no simple way to get sound and network model using libvirt API, the user can provides a list in his own configuration file.

To get a list of model for a machine type you can use the qemu command line:

qemu-system-x86_64 -machine pc-q35-10.1 -audio  model=help
qemu-system-x86_64 -machine pc-q35-10.1 -net  model=help

Possible User config parameters:

  • network_models: List of allowed network models (default: ['virtio', 'e1000', 'e1000e', 'rtl8139', 'ne2k_pci', 'pcnet'])
  • sound_models: List of allowed sound models (default: ['none', 'ich6', 'ich9', 'ac97', 'sb16', 'usb'])

Contributing

CONTRIBUTING.md

AI Assist

AI assistance is used to improve coding efficiency by automating boilerplate, suggesting relevant code completions, and quickly detecting bugs.

License

This project is licensed under the GPLv3 License.

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

virtui_manager-2.4.2.tar.gz (593.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

virtui_manager-2.4.2-py3-none-any.whl (611.6 kB view details)

Uploaded Python 3

File details

Details for the file virtui_manager-2.4.2.tar.gz.

File metadata

  • Download URL: virtui_manager-2.4.2.tar.gz
  • Upload date:
  • Size: 593.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for virtui_manager-2.4.2.tar.gz
Algorithm Hash digest
SHA256 031574a8566491f9f950c333616a39733c5692a48e5920cf3b4faaf6d2cc655c
MD5 2e6b8b11a2da80adf98c2463c9d1764f
BLAKE2b-256 44c8ed282f1ab3c25e90f44d744a7bdc71209f28e5eb0e4ed2274e3e531377b4

See more details on using hashes here.

File details

Details for the file virtui_manager-2.4.2-py3-none-any.whl.

File metadata

  • Download URL: virtui_manager-2.4.2-py3-none-any.whl
  • Upload date:
  • Size: 611.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for virtui_manager-2.4.2-py3-none-any.whl
Algorithm Hash digest
SHA256 4889b2edef3dff45345ad65981a32ccd4a4d230a042460649d42b4f60510f1a0
MD5 5714650b19ef8634cb5e29e1ce66e6eb
BLAKE2b-256 6f123af7e3783403c1c6cd7e5ea6d3e44fa51d1f42d1561c80374ce8f0bf9e59

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