Skip to main content
GuestKit — offline VM intelligence and migration assurance

GuestKit

Offline VM intelligence and migration assurance.

Score boot readiness before power-on, repair disks offline, and certify cutover with a Passport.

CI crates.io PyPI License: Apache 2.0 GHCR

Book a demo · Start a 30-day PoC · 30-day Enterprise trial

Quick start · Gallery · Docs · Product · Wiki · FluxVM · h2kvm


Know it will boot. Before you power it on.

GuestKit reads a VM disk while the guest is off — qcow2, VMDK, VHDX, VHD, VDI or raw — through its own pure-Rust engine (NBD or loop mount). There is no appliance daemon and no "power it on and see". It scores first-boot probability 0–100, explains the blockers, and writes a reviewable fix plan.

Fixes are never implicit. Repairs go through a plan you can read, applied with backups and rollback, and the same score drives the CI gate, the signed Cutover Passport, and assured QEMU launch.

GuestKit web console — Assurance panel showing a boot score of 78 with ranked findings

The bundled OSS web console rendering its offline demo data, not a live deployment. More in the gallery.

Boot-readiness scoring
First-boot probability 0–100, the blockers explained, and a reviewable fix plan.
The cutover problem
Offline repair
Repairs go through a plan you can read, applied with backups and rollback.
What you can do
Migration assurance
The same score drives the CI gate, the signed Cutover Passport and assured QEMU launch.
Quick start
Engine and formats
A pure-Rust engine over qcow2, VMDK, VHDX, VHD, VDI and raw, through NBD or loop mount.
Platform layout
Suite hand-offs
Export with Transiva, convert and deploy with h2kvm, assure with GuestKit, operate on Zorvia or Zeus OS.
Who does what
CLI, TUI, web, CI
CLI, TUI, QEMU, Python, web console, in-guest agent and a GitHub Action.
Run the web stack

70+ commands · 6 disk formats · 0 appliance daemons · 8 migration targets · Apache-2.0


60-second quick start

# v1.2.5 GitHub Release — crates.io `guestkit` is still 0.3.2
curl -fsSL -O https://github.com/zyvorai/guestkit/releases/download/v1.2.5/guestkit-1.2.5-linux-amd64.tar.gz

guestkit doctor vm.qcow2 --target proxmox --explain
guestkit migrate-plan vm.vmdk --target kvm --export plan.yaml
guestkit passport emit vm.qcow2 --target kvm -o passport.json
guestctl tui vm.qcow2           # Assurance · preview · export
guestkit-qemu plan vm.qcow2 --json   # assurance → QEMU definition

CI gate — same score, no CLI install step:

- uses: zyvorai/guestkit@v1
  with:
    disk: vm.qcow2
    target: kvm
    fail-below: '80'

Targets: kvm · proxmox · qemu · kubevirt · aws · azure · gcp · hyperv. Host needs: Linux with qemu-img, losetup, and qemu-nbd (mount/repair may need root).

Python (v1.1.0+), on PyPI: pip install zyvor-guestkit, then guestkit.run_doctor("vm.qcow2", target="kvm", explain=True). The full quick start, shrink and Python examples: docs/quick-start.md.


The cutover problem, solved offline

Every hypervisor exit fails the same way: you discover the disk was broken at 2am, in the cutover window, after power-on. GuestKit reads the disk while the guest is off, scores first-boot probability 0–100, and emits a reviewable fix plan.

  disk.qcow2 / .vmdk / .vhdx / .vhd / .vdi / .raw
                    │
                    ▼
         ┌──────────────────────┐
         │  Pure-Rust engine    │──►  doctor 0–100 + blockers
         │  NBD / loop mount    │──►  migrate-plan YAML
         └──────────────────────┘──►  Passport · repair · CI gate
                    │                 guestkit-qemu (assured launch)
      CLI · TUI · QEMU · Python · Web · Agent · GitHub Action
VMware to KubeVirt, four tools one path: Transiva exports, h2kvm converts and deploys, GuestKit assures, Zorvia operates, each with Community and Enterprise tiers.

Export with Transiva (Apache-2.0) → convert & deploy with h2kvm (Zyvor Production License) → assure with GuestKit (Apache-2.0) → operate on Zorvia or Zeus OS. Run and manage VMs with FluxVM. Who does what · h2kvm integration

Why teams switch

Before GuestKit With GuestKit
“Will it boot?” answered at power-on Offline doctor score + root-cause chain
guestkit scripts and tribal knowledge Structured plans, JSON/YAML, CI gates
Surprises on cutover weekend Hypervisor-aware migrate-plan + day-0 packs
No audit trail MTV / virt-v2v can skip Signed Cutover Passport
Migration order guessed by hand fleet wave-plan — dependency-aware waves

The full comparison has four more rows.


Open source, Enterprise

Open source — free under Apache-2.0. This repo · personal, lab, and commercial production. Full offline doctor, migrate-plan, repair, fleet, policy · CLI · TUI · Python · self-hosted web/workers.

Enterprise — buy for programs. Same engine — not a locked doctor. Command Center · Portfolio · Assurance · Migration Factory · Passport Authority · OIDC / RBAC / audit · SLA · air-gap · hypervisor exit workshops.

Open source vs Enterprise · Full feature matrix · 30-day Enterprise trial · Pricing

Trial expired or want a guided evaluation? Book a demo or start a 30-day PoC — no email needed. sales@zyvor.dev remains as a fallback.

Documentation

Goal Document
Docs site zyvorai.github.io/guestkit
Docs home docs/README.md · INDEX
DevOps runbooks docs/devops
Feature guide guestkit-user-feature-guide.md
h2kvm integration h2kvm integration
QEMU / VirtIO runtime qemu-runtime.md
Dump virsh → GuestKit virsh-to-guestkit.md
Architecture overview

The complete map, with the changelog and roadmap, is in docs/documentation-map.md.

Go deeper


License

Commercial subscriptions and support: see docs/SUBSCRIPTION-MODEL.md.

Open source (Apache-2.0)

This repository is licensed under the Apache License, Version 2.0. You may use, modify, and run it for personal, lab, and commercial production use at no charge, subject to Apache-2.0 (preserve notices / NOTICE where required). See NOTICE and docs/legal/ where applicable.

Enterprise

Production support, SLAs, and Zyvor Enterprise products are licensed separately. Book a demo, start a 30-day PoC, or see zyvor.dev. Email sales@zyvor.dev as a fallback.

More at zyvor.dev/guestkit · docs · blog

Metadata

Release files for zyvor-guestkit 1.2.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for zyvor-guestkit 1.2.5
File Size Uploaded
zyvor_guestkit-1.2.5.tar.gz 7.4 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for zyvor-guestkit 1.2.5
File Interpreter ABI Platform
zyvor_guestkit-1.2.5-cp38-abi3-manylinux_2_39_x86_64.whl CPython 3.8 abi3 Linux glibc 2.39+ x86-64 Details
zyvor_guestkit-1.2.5-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.8 abi3 Linux glibc 2.17+ x86-64 Details

Total release size: 12.4 MB

Release files / zyvor_guestkit-1.2.5.tar.gz

Download URL zyvor_guestkit-1.2.5.tar.gz
Size 7.4 MB
Tags Source
SHA-256 checksum
How to use checksums
dd728817007f518b84156cf0233b3bab958e80e6f36f2b3b812532c645305c0c
BLAKE2b-256 checksum
How to use checksums
9fa5e8d74802ab8ebbee5863a5730e4b31d65b8e3aed94d71db450b8aee010fb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / zyvor_guestkit-1.2.5-cp38-abi3-manylinux_2_39_x86_64.whl

Download URL zyvor_guestkit-1.2.5-cp38-abi3-manylinux_2_39_x86_64.whl
Size 2.5 MB
Tags CPython 3.8 Linux glibc 2.39+ x86-64 abi3
SHA-256 checksum
How to use checksums
816a3b8c5c7d3ca049b38aebcd189f6ef37f4a6409a858837f7aa0085b5e9874
BLAKE2b-256 checksum
How to use checksums
c04971ec4ab88cb26285ca9314a5c29978168aca19c3c2363193ff114ab8271c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.15.0

Release files / zyvor_guestkit-1.2.5-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL zyvor_guestkit-1.2.5-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 2.5 MB
Tags CPython 3.8 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
da79b2fda934c5bc719925c56499c49a1094224a3aa3c4f4bcd15b1e41d4f189
BLAKE2b-256 checksum
How to use checksums
fd044e4fb9f898bcfb316041847d3eb22573842122aa9a01b207f24a2a97bd85
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

This release

1.2.5 This release

3 release files

1.2.4

3 release files

1.2.3

3 release files

1.2.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page