vmmanager
A terminal UI for OpenBSD's vmm/vmd virtual machines. Think VirtualBox, but in a terminal and built on vmctl and vm.conf: create, start, run, connect, stop, update, delete and migrate VMs, with networking set up for you.
Requirements
- OpenBSD (tested on 8.0, amd64) with virtualization enabled in the BIOS
- Python 3.11+
vmdrunning (rcctl enable vmd && rcctl start vmd) and the VM BIOS firmware (fw_update); vmmanager offers to do both on first rundoasfor creating, changing, deleting and migrating VMs (permit persist :wheelin/etc/doas.confsaves you a password prompt per step)
Installation
Quick install (recommended)
$ pkg_add py3-pipx
$ pipx install openbsd-vmmanager
Or with pip:
$ pip install openbsd-vmmanager
Then run:
$ vmmanager
From source
$ git clone https://github.com/OpenBSDGuy/vmmanager
$ cd vmmanager
$ python3 -m venv venv && . venv/bin/activate
$ pip install -e .
$ vmmanager
First run
vmmanager checks the host before showing your VMs and offers a fix for anything missing: vmd not running, missing VM firmware, or a VM whose configuration is broken (for example because its folder was deleted by hand). It also offers to install the man pages system-wide.
The first time you create a VM with Internet on, vmmanager sets up NAT for VMs once: it writes /etc/vmmanager/pf.conf (loaded as a pf anchor from a marked block it adds to /etc/pf.conf), turns on IP forwarding, and starts unwind if no DNS resolver is running. Every change that needs root is explained first and asks before it runs through doas.
Usage
| Key | Action |
|---|---|
| n | Create a VM: name, memory, CPUs, disk size, install ISO, Internet on/off |
| s | Start the VM in the background |
| r | Run: start the VM and attach its serial console |
| o | Connect to the console of a running VM |
| x | Stop the VM (graceful first, then offers a force stop) |
| e | Update memory, CPUs, ISO and Internet of a stopped VM |
| d | Delete a stopped VM; asks separately before removing its disk |
| m | Migrate a VM you wrote by hand in /etc/vm.conf into vmmanager |
| ? | Show the manual page |
| q | Quit |
| ~. | Leave a VM console and return to vmmanager |
In the ISO browser, . shows or hides dot files and folders.
Notes
- Each VM gets its own folder,
~/vmmanager/<name>/, holding its disk and a smallvmmanager.toml. Itsvm.confblock lives in/etc/vmmanager/<user>/<name>.conf, which/etc/vm.confincludes through one added line. - vmmanager never rewrites your hand-written
/etc/vm.conf. VMs defined there are listed but locked until you migrate them; migration moves the disks, comments out the old block and can be undone by hand (seevmmanager(8), MIGRATING). - Every VM vmmanager creates is owned by you (
ownerinvm.conf), so vmd itself stops other users from starting, stopping or opening the console of your VMs. They can still see them. - Starting, stopping and the console need no root. Writing configuration does, and every write is checked with
vmd -nand rolled back if it fails. - Networking is either on (NAT through the host) or off (no network interface at all, an air-gapped VM).
- Deleting a VM keeps its folder unless you agree to remove it.
Manual
vmmanager(8) covers keys, files, privileges, networking, migration, security and how to uninstall, and vmmanager.toml(5) the per-VM file. Read them with man vmmanager once installed system-wide (vmmanager --install-man), or without installing with vmmanager --man.
License
GPL-3.0
Metadata
Release files for openbsd-vmmanager 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| openbsd_vmmanager-0.1.0.tar.gz | 60.3 kB | Without provenance | Details for openbsd_vmmanager-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| openbsd_vmmanager-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for openbsd_vmmanager-0.1.0-py3-none-any.whl |
Total release size: 110.1 kB
Release files / openbsd_vmmanager-0.1.0.tar.gz
| Download URL | openbsd_vmmanager-0.1.0.tar.gz |
|---|---|
| Size | 60.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1dc9c6866375d0be0c10ae2ab0c1617c0275768223a5f86fbb376467a1a1bb07
|
|
BLAKE2b-256 checksum How to use checksums |
5c4fc30a1b057cb0ef7525ca6c9da891d399d048dd819d361869c11f621bcdb4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.9
|
Release files / openbsd_vmmanager-0.1.0-py3-none-any.whl
| Download URL | openbsd_vmmanager-0.1.0-py3-none-any.whl |
|---|---|
| Size | 49.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ce74ad1646c6103eb0877355bfc5ae6f2cc941e699a70bc5e698d2e4250c12f5
|
|
BLAKE2b-256 checksum How to use checksums |
4ff6d5c4d053b1a78a15c37eea4e2c8c6f1e78442f549dbc263faec32c3061d0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.9
|
Security for openbsd-vmmanager 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.