A powerful and user-friendly graphical interface for managing QEMU virtual machines with multilingual support, designed for testing and debugging purposes.
-
Virtual Machine Management
- Create, edit, clone, and delete VMs
- Start/stop VMs with one click
- Support for multiple disk configurations
- ISO image mounting for OS installation
-
Advanced Configuration
- Memory management with slider (min/max)
- CPU core configuration (hotplug support)
- Multiple architecture support (x86_64, ARM, etc.)
- Network configuration (NAT, Bridge, TAP)
- Port forwarding support
-
Display Options
- VNC support with password protection
- SPICE protocol support
- SDL and GTK display options
- USB and audio support
- Absolute pointer (tablet mode)
-
QEMU Monitor Integration
- Built-in QEMU Monitor console
- Send commands directly to VM
- Monitor VM status in real-time
-
Multilingual Support
- English, Русский, 中文, Deutsch, Français, Español
- Easy language switching
- Automatic language persistence
-
Additional Features
- VM cloning with disk copying
- Detailed logging system
- Dark theme UI
- Cross-platform support (Windows, Linux, macOS)
- Context menus for quick actions
- Persistent settings
- Windows: Windows 10/11
- Linux: Ubuntu 20.04+, Fedora 35+, or similar
- macOS: 10.15+
- QEMU: Version 6.0+ (with qemu-img)
- Python: 3.8 or higher
- PyQt6: 6.0 or higher
- Optional:
- VNC Viewer (TigerVNC, Vinagre, etc.)
- SPICE Client (spicy, virt-viewer)
- socat (for Linux monitor)
sudo apt update
sudo apt install qemu-system-x86 qemu-utils socat
pip install PyQt6sudo dnf install qemu-system-x86 qemu-img socat
pip install PyQt6sudo pacman -S qemu socat
pip install PyQt6- Download QEMU from qemu.org
- Add QEMU to PATH environment variable
- Install Python dependencies:
pip install PyQt6git clone https://github.com/yourusername/qemu-gui-manager.git
cd qemu-gui-manager
pip install -r requirements.txtpython qemu_gui.py- Click "New VM" button or select VM → New VM from menu
- Fill in the basic settings:
- VM Name
- Memory (min/max/current)
- CPU cores configuration
- Architecture
- Configure disks:
- Add disk(s) with size and format
- Use existing disk or create new
- Set up network:
- Choose network type (NAT, Bridge, TAP)
- Configure port forwarding if needed
- Configure display:
- Select display type (VNC, SPICE, SDL, GTK)
- Set VNC/SPICE port
- Enable USB, audio, tablet support
- Add additional QEMU arguments (optional)
- Click OK to create the VM
- Start: Select VM and click ▶ Start or use context menu
- Stop: Select VM and click ⏹ Stop or use context menu
- Edit: Select VM and click ✎ Edit (VM must be stopped)
- Clone: Right-click VM → Clone from context menu
- Delete: Select VM and click 🗑 Delete or use context menu
- Start a VM
- Type commands in the monitor input field
- Press Enter to execute
Common monitor commands:
info cpus - Show CPU information
info mem - Show memory information
info block - Show block device information
info network - Show network information
info usb - Show USB device information
info kvm - Show KVM status
Go to File → Language and select your preferred language. The setting will be automatically saved.
- Linux/macOS:
~/.qemu_gui_settings.json - Windows:
%USERPROFILE%/.qemu_gui_settings.json
- Linux/macOS:
~/qemu_vms/ - Windows:
%USERPROFILE%/qemu_vms/
All logs are stored in:
- Linux/macOS:
~/qemu_gui_logs/ - Windows:
%USERPROFILE%/qemu_gui_logs/
You can configure default settings through File → QEMU Settings:
- QEMU binary path
- Default memory, CPU cores, disk size
- Default display and network settings
- Global QEMU arguments
- Monitor port range
- Solution: Set the correct QEMU path in Settings → QEMU Settings
- Or install QEMU and add it to PATH
- Check QEMU path in settings
- Verify disk file exists
- Check if KVM is available (Linux only)
- Review console logs for detailed errors
- Ensure you have sufficient permissions
- Verify VM is running
- Check VNC port is not in use
- Ensure VNC client is installed
- Firewall might be blocking the connection
- VM must be running
- Check if monitor port is available
- On Linux, ensure socat is installed
- Check console logs for error messages
- Verify disk file exists and is not corrupted
- Check if QEMU binary is executable
- Ensure enough system resources (RAM, CPU)
qemu-gui-manager/
├── qemu_gui.py # Main application
├── translations.py # Language translations
├── requirements.txt # Python dependencies
├── README.md # This file
├── LICENSE # License file
└── screenshots/ # Screenshots directory
Contributions are welcome! Here's how you can help:
- Fork the repository
- Create a feature branch
- Commit your changes
- Push to the branch
- Open a Pull Request
- Add language to
LANGUAGESdict intranslations.py - Add translations for all strings in
STRINGSdict - Test the new language
This project is licensed under the MIT License - see the LICENSE file for details.
- Your Name - Initial work
- QEMU Project
- PyQt6
- All contributors and users of this project
- Snapshot management
- VM export/import
- Performance monitoring graphs
- VM templates
- Cloud integration
- Remote VM management
- Batch operations
- VM migration support
- Issues: GitHub Issues
- Discussions: GitHub Discussions
If you find this project useful, please consider giving it a star! ⭐
Made with ❤️ for the QEMU community
