Skip to main content

Pure Rust VM disk toolkit with beautiful output, Windows registry parsing, and VM migration support - Python bindings

Project description

GuestKit
Offline VM intelligence & migration assurance — powered on zyvor.dev

CI Crates.io PyPI Rust 1.70+ Apache-2.0

▶ Watch demo  ·  zyvor.dev/demo  ·  Contact sales

GuestKit demo video


GuestKit answers the question every migration team asks too late: will this VM actually boot on the target?

Inspect QCOW2, VMDK, or RAW images without powering them on — using GuestKit's pure Rust disk engine (not libguestfs). Score boot probability, generate hypervisor-aware migration plans, export executable fix plans, and explore disks from a carbon-themed TUI — all in Rust, with structured JSON/YAML/HTML/PDF for CI.

Part of the open-source stack on zyvor.dev · pairs with hyper2kvm for VMware → KVM pipelines.

Three commands before cutover

cargo install guestkit   # guestkit + guestctl

guestkit doctor vm.qcow2 --target proxmox --explain
# → 82% boot probability · blockers · root-cause chain

guestkit migrate-plan vm.vmdk --target proxmox --export plan.yaml
# → migration score · driver injections · executable fix plan

guestctl tui vm.qcow2
# → carbon TUI · Assurance (doctor) · fix-plan preview · offline files
Without GuestKit With GuestKit
Boot every VM to “just check” Inspect offline in place (pure Rust — no libguestfs appliance)
Shell scripts over guestfish GuestKit assurance APIs + structured export
Migration surprises at power-on doctor score before cutover
Manual runbooks for fleet drift fleet analyze · forensic-diff

TUI — control plane in your terminal

guestctl tui is a multi-view dashboard for incident response and deep dives — no VM boot required.

Navigation Two-tier tabs: Overview · System · Security + views in group · Ctrl+P jump menu
Keys Tab · { } groups · : palette · Ctrl+Shift+P search · a → Assurance from dashboard
Assurance d doctor · t target · p plan preview · e export YAML (Security group)
Views Dashboard, issues, packages, services, files, storage, profiles, Assurance, topology, …
Fleet guestctl tui img.qcow2 --fleet ./images/ — sidebar, N / P switch disks
Theme Carbon graphite + orange accent — config in ~/.config/guestkit/tui.toml

TUI guide

Features

Doctor Bootability % on KVM/Proxmox/cloud — blockers, warnings, --explain
Migrate-plan Target-aware score, drivers, downtime · --export fix plan YAML/JSON
Inspect OS, disks, network, packages, DBs, web servers, users, kernel, security
Windows --profile windows-migration — BitLocker, VirtIO, hypervisor remnants
Policy Expression DSL (bootability.score >= 80) · guestkit policy check
Fleet Cluster identical VMs, snowflakes, migration blockers
Forensic diff Security drift between two snapshots
Repair guestkit repair --fix boot — plan apply + post-check
Fix plans Preview → export bash/Ansible → apply with backup/rollback
Shell REPL: ls, cat, grep, explore, upload/download, optional ai
Batch inspect-batch --parallel 8 with cache
SBOM/CVE SPDX/CycloneDX + OSV lookup (offline cache)
Cloud S3/Azure/GCS sources (--features cloud-s3, …)
Python PyO3 — same API in pipelines
AI (opt) Narration on deterministic evidence (--features ai)

Aliases: guestkit (primary) · guestctl (kubectl-style) — same binary, your choice of name.

Quick start

# Install
cargo install guestkit
# pip install hypersdk-guestkit

# Assurance workflow
guestkit doctor disk.qcow2 --target kvm -o json
guestkit migrate-plan disk.vmdk --target proxmox --export migration.yaml
guestkit repair disk.qcow2 --fix boot --dry-run

# Inspect & report
guestkit inspect disk.qcow2 --profile security --export report.html
guestkit fleet analyze ./vms/ -o json

# Explore
guestctl tui disk.qcow2
guestkit interactive disk.qcow2
guestkit explore disk.qcow2 /etc

Docker: docker build -t guestkit . · Docker guide
Tarball: GitHub Releases or remote package script

Command cheat sheet

Goal Command
Boot gate guestkit doctor IMAGE --target kvm --explain
Migration + plan file guestkit migrate-plan IMAGE --target proxmox --export plan.yaml
Policy guestkit policy check IMAGE --policy policy.yaml
TUI guestctl tui IMAGE
Security report guestkit inspect IMAGE --profile security -o html
Fleet guestkit inspect-batch ./vms/*.qcow2 --parallel 4

How it fits your stack

flowchart LR
  subgraph disks [Offline disks]
    IMG[QCOW2 / VMDK / RAW]
  end
  subgraph gk [GuestKit]
    DOC[doctor]
    MIG[migrate-plan]
    INS[inspect / repair]
    TUI[tui]
  end
  subgraph out [Outputs]
    PLN[fix plans]
    RPT[JSON HTML PDF]
    H2K[hyper2kvm]
  end
  IMG --> DOC --> MIG --> PLN
  IMG --> INS --> RPT
  IMG --> TUI
  PLN --> H2K
  RPT --> CI[CI / CMDB]

Typical flows

  • Migrationdoctormigrate-plan --exportrepair --fix boothyper2kvm
  • Incidentguestctl tui on a clone; production stays off
  • Compliance — profiles → HTML/PDF for auditors
  • Automationinspect -o json → jq → ticketing

Python (30 seconds)

from guestkit import Guestfs

with Guestfs() as g:
    g.add_drive_ro("vm.qcow2")
    g.launch()
    for root in g.inspect_os():
        print(g.inspect_get_distro(root), g.inspect_get_hostname(root))

examples/python/ · Python guide

Documentation

Topic Link
Index docs/INDEX.md
Migration assurance migration-assurance.md
TUI tui-enhancements.md
CLI reference quick-reference.md · cli-guide.md
Quick reference quick-reference.md
Fix plans fix-plans.md
VM migration vm-migration.md

Project layout

src/
├── cli/          # commands, TUI, shell, migrate/plan
├── evidence/     # EvidenceSnapshot (digital twin)
├── boot/         # bootability engine
├── fleet/        # clustering & snowflakes
├── guestfs/      # disk inspect & file ops
└── python.rs     # PyO3

Roadmap

  • ✅ Migration assurance (doctor, migrate-plan, repair --fix boot)
  • ✅ TUI Assurance view, fix-plan preview, palette & global search
  • ✅ TUI two-tier navigation, scrollable jump menu & help
  • ✅ Fix plan export & apply (CLI); TUI export + read-only preview
  • 🔄 Windows EFI / boot diagnostics
  • 🔮 Deeper cloud pull & plugin profiles

Full roadmap · Changelog

Contributing

git clone https://github.com/hypersdk/guestkit && cd guestkit
cargo test && cargo clippy && cargo fmt

Contributing guide · Issues · Discussions

License

Document What it covers
LICENSE Apache-2.0 — GuestKit source code (copyright ZyvorAI Labs Private Limited)
NOTICE Copyright and attribution for Apache 2.0 distributions
ZYVOR-COMPANY-TERMS.md Zyvor brand, binaries, and zyvor.dev distribution — accept on deploy/install

Apache 2.0 is permissive with a patent grant. ZyvorAI Labs Private Limited owns GuestKit.

Zyvor company terms apply when you use Zyvor-built customer bundles or ./scripts/deploy-remote.sh / ./scripts/package-binary-remote.sh (type ACCEPT or set GUESTKIT_ZYVOR_ACCEPT=1). Enterprise: sales@zyvor.dev · General: info@zyvor.dev.

Company reference: docs/legal/CORPORATE.md.


Zyvor AI Labs

GuestKit is the open-source guest-disk layer of the HyperSDK Platform from Zyvor AI Labs.

Demo · Contact · sales@zyvor.dev · info@zyvor.dev · CE vs Enterprise · Enterprise guide

HyperSDK · hyper2kvm · GuestKit · v9s · PacketWolf — full suite

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

hypersdk_guestkit-0.3.9.tar.gz (2.4 MB view details)

Uploaded Source

Built Distributions

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

hypersdk_guestkit-0.3.9-cp311-cp311-manylinux_2_39_x86_64.whl (12.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.39+ x86-64

hypersdk_guestkit-0.3.9-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (12.2 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

File details

Details for the file hypersdk_guestkit-0.3.9.tar.gz.

File metadata

  • Download URL: hypersdk_guestkit-0.3.9.tar.gz
  • Upload date:
  • Size: 2.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for hypersdk_guestkit-0.3.9.tar.gz
Algorithm Hash digest
SHA256 7a57e2875220a90ac8c496d13f119d5a36e05fde498fbb02651addba856279bc
MD5 6bde29fd09cc0c961f3c76b000eb6e3d
BLAKE2b-256 062fa07f43530bdd7054238ac819b24f4475601ff992dac293fa05aeb4b93cea

See more details on using hashes here.

File details

Details for the file hypersdk_guestkit-0.3.9-cp311-cp311-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for hypersdk_guestkit-0.3.9-cp311-cp311-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 a86a3b96eaddbdb47aa640b7894b6f92f9528106ed621faba8f4ffd4e211e11e
MD5 1c7e514fae025ec1246f6331c694c2d7
BLAKE2b-256 c5c19513aa9b6bf43807b0fe65f99cf6d0e64497613d79906816c9858922747f

See more details on using hashes here.

File details

Details for the file hypersdk_guestkit-0.3.9-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for hypersdk_guestkit-0.3.9-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 04e888e7e47d6a93b16cc60621b7bb9b23dd323889682d70f107a56a7c7bd793
MD5 adb4cdba388e1e554a276e0dbce1fae0
BLAKE2b-256 b47cc731142316cce29cb61e7604031d22b1b4a76881dd1af49ebcb74e91e544

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