Skip to main content

GuestKit

Offline VM intelligence. Migration assurance you can prove.

Score boot readiness before power-on. Generate reviewable fix plans. Repair disks offline. Certify cutover with a signed Passport — then hand off to hyper2kvm / HyperSDK.

CI Crates.io PyPI License GHCR

Demos · Wiki · Feature guide · Quick start · GHCR · Docs · zyvor.dev

  disk.qcow2 / .vmdk / .vhdx
           │
           ▼
   ┌───────────────────┐     doctor 0–100     migrate-plan YAML
   │  Pure-Rust engine │ ──────────────────►  passport emit
   │  NBD/loop mount   │     rescue / plan apply (offline)
   └───────────────────┘
           │
     CLI · TUI · Python · Web · Agent

70+ commands · 6 disk formats · 0 libguestfs appliances · 8 migration targets · Apache-2.0


See it in action

Machina × GuestKit live guest-agent UX
Machina × GuestKit
Live Linux guest agent — health, TRIM, netplan, services
GuestKit CLI and TUI demo
CLI & TUI
Offline VM intelligence, explained
GuestKit web dashboard tour
Web Dashboard Tour
Server Image Vault, live KubeVirt cluster
GuestKit web dashboard tutorial
Web Dashboard Tutorial
Sources, live cluster, one-click intelligence

Recorded live against real deployments — no staged screenshots.


Why teams use it

Before GuestKit With GuestKit
“Will it boot?” answered at power-on Offline doctor score + root-cause chain
guestfish scripts and tribal knowledge Structured plans, JSON/YAML, CI gates
Migration surprises on cutover weekend Hypervisor-aware migrate-plan + day-0 packs
No audit trail MTV / virt-v2v can skip Signed Cutover Passport
Fleet drift invisible until outage fleet analyze/watch, forensic diff, policy-as-code
Migration order guessed by hand fleet wave-plan — dependency-aware migration waves
Deep inspect needs a running guest Carbon TUI + in-guest agent over QGA

Pairs with: hyper2kvm for VMware → KVM. GuestKit certifies; hyper2kvm converts.


What you can do

Assurance before cutover

guestkit doctor vm.qcow2 --target proxmox --explain
guestkit migrate-plan vm.vmdk --target proxmox --export plan.yaml
guestkit passport emit vm.qcow2 --target kvm -o passport.json
guestkit passport verify passport.json --fail-below 80

Targets: kvm · proxmox · qemu · aws · azure · gcp · cloud · hyperv

GitHub Actions: gate conversion on the same score, no CLI install step — see action.yml and the runbook at docs/devops/01-passport-ci-gate.md.

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

Offline repair (no boot required)

# Day-0 plans
guestkit plan generate win.qcow2 -p windows-rdp -o rdp.yaml
guestkit plan generate win.qcow2 -p windows-domain-leave --workgroup WORKGROUP
guestkit plan generate disk.qcow2 -p linux-ssh --user ubuntu --key-file ~/.ssh/id_ed25519.pub

# Rescue shortcuts
guestkit rescue disk.qcow2 -o enable-ssh
guestkit rescue disk.qcow2 -o fix-grub --force          # BIOS or UEFI ESP
guestkit rescue win.qcow2 -o reset-password --user Administrator --password '…'
# → AES/RC4 SAM NT-hash when registry-write is built; RunOnce fallback

guestkit plan apply plan.yaml --vm disk.qcow2 --yes     # backups + rollback

PackageInstall can stage from cache, host-fetch (GUESTKIT_PACKAGE_FETCH=1), or HTTP mirror (GUESTKIT_PACKAGE_MIRROR). Service enable/disable and CommandExec stage first-boot oneshots when chroot can’t run them live.

Live control + platform

  • In-guest agent (Linux + Windows) over virtio-serial / QGA — inject offline, then agent-proxy / agent-call
  • AI copilot (optional, --features ai) — read-only tool-calling loop over the offline evidence snapshot: doctor --explain --ai, migrate-plan --ai. Native tool-calling for OpenAI (rig-core), cross-run memory across repeated runs on the same VM, and an MCP server (guestkit mcp-serve, --features mcp) for external hosts like Claude Desktop. OpenAI/xAI/Anthropic/Ollama. Not the in-guest agent above — see AI Guest Agent roadmap
  • KubeVirt boot-inspect hooks and Guest Control Fabric
  • Web console + worker on GHCR; Helm chart under deploy/helm/zyvor
  • Python: pip install hypersdk-guestkitfrom guestkit import Guestfs

Full map: Customer Feature Guide (PDF) · Customer manuals


Quick start

cargo install guestkit          # installs guestkit + guestctl

guestkit doctor vm.qcow2 --target proxmox --explain
guestkit migrate-plan vm.vmdk --target proxmox --export plan.yaml
guestctl tui vm.qcow2           # Assurance · preview · export
You want… Go here
First hour Getting started
Command cheat sheet Quick reference
CLI depth CLI guide
Migration story Migration assurance
Fix plans / rescue Fix plans
Guest agent Guest agent
CE vs Enterprise ce-vs-enterprise

Host needs: Linux with qemu-img, losetup, and qemu-nbd (mount/repair may need root).


Run from GHCR

Public images under ghcr.io/hypersdk — no docker login required.

Image Role
ghcr.io/hypersdk/zyvor-ui Web console
ghcr.io/hypersdk/zyvor-api API
ghcr.io/hypersdk/guestkit-worker Disk-inspection worker
docker compose -f deploy/docker-compose.ghcr.yml pull
docker compose -f deploy/docker-compose.ghcr.yml up -d
open http://localhost:8088

Eval only — unauthenticated stack. Do not expose beyond localhost.
Production: deploy/docker-compose.prod.example.yml · Docker guide · Helm

Default console login for packaged installs is documented in remote deploy — change it before any network exposure.


Platform layout

Layer In this repo
Engine Pure-Rust parsers + evidence schema · NBD/loop mount (src/, crates/)
CLI / TUI guestkit · guestctl — doctor, passport, fleet, rescue, carbon TUI
Agent Linux + Windows · protocol 1.3 · agent-inject / agent-proxy
Python hypersdk-guestkit
K8s KubeVirt hooks · k8s/
Web / worker GHCR images · deploy/
┌────────────────────────────────────────────────────────────┐
│  guestkit CLI · guestctl TUI · Python · Web · Agent        │
├────────────────────────────────────────────────────────────┤
│  Rust evidence engine · boot scoring · fix-plan apply      │
├────────────────────────────────────────────────────────────┤
│  JSON · YAML · HTML · PDF · Passport · CI exit codes       │
└────────────────────────────────────────────────────────────┘

Documentation

Goal Document
Operator wiki hypersdk/guestkit/wiki
Docs home docs/README.md · INDEX
DevOps runbooks docs/devops — Passport CI, workers, air-gap, fleet, cutover, triage
Feature guide (all areas) guestkit-customer-feature-guide.md
Docker / GHCR DOCKER.md
Remote deploy DEPLOY-REMOTE.md
Architecture overview
User stories / industry USER_STORIES · INDUSTRY_USE_CASES
Changelog / roadmap CHANGELOG · roadmap

zyvor.dev/guestkit · Full Zyvor platform


Development

cargo build --release
cargo test

See CONTRIBUTING and CI under .github/workflows/. docs/ and this README are authoritative over any historical build notes in the tree.


License

Apache-2.0 · additional notes in docs/legal/ where applicable.

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-1.0.1.tar.gz (5.6 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-1.0.1-cp38-abi3-manylinux_2_39_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.39+ x86-64

hypersdk_guestkit-1.0.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ x86-64

File details

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

File metadata

  • Download URL: hypersdk_guestkit-1.0.1.tar.gz
  • Upload date:
  • Size: 5.6 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for hypersdk_guestkit-1.0.1.tar.gz
Algorithm Hash digest
SHA256 e0c3de266cd142fdcaf21e5003b76bdfa341733d22fb3c7f1a31c680d9ee33ef
MD5 9428a832be9a3b9fc023c68909c91c69
BLAKE2b-256 530683a22806f0ad83905a91c894fd5d29b91fb18404a8f60c22fc072a439b8e

See more details on using hashes here.

File details

Details for the file hypersdk_guestkit-1.0.1-cp38-abi3-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for hypersdk_guestkit-1.0.1-cp38-abi3-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 3579f884a4a9f3d0cc13a0ad80f9b6cdea0cd43069bc17d0941b24c4d93b6288
MD5 1b5cff141c2dee509ba3e9b0f1de1c1c
BLAKE2b-256 8ec8fdd83da08a070debfdbd2ab9d806631ac66e1b6a2878fe0d5e2750323cc6

See more details on using hashes here.

File details

Details for the file hypersdk_guestkit-1.0.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for hypersdk_guestkit-1.0.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1ec62827e1acebace0b1b1c1dec5467b04e0bdbf2f6341ae89fafe75aaa2cf50
MD5 80cf350ee35df86b6873d33dbbc837f8
BLAKE2b-256 381972d2dd7c630dafe06466784545a7a627a88fb50baf23b5198fa11a48fe87

See more details on using hashes here.

Release history Release notifications | RSS feed

1.2.2

3 files

1.2.1

2 files

1.2.0

2 files

1.1.0

3 files

This release

1.0.1 This release

3 files

1.0.0

3 files

0.3.20

3 files

0.3.19

3 files

0.3.18

3 files

0.3.17

3 files

0.3.15

5 files

0.3.14

1 file

0.3.13

1 file

0.3.12

1 file

0.3.11

1 file

0.3.9

3 files

0.3.3

3 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