Skip to main content

GuestKit

Offline VM intelligence and migration assurance.

CI Crates.io PyPI License

📖 Feature Guide

GuestKit — Customer Feature Guide — a complete, customer-facing reference covering all 63 features across 10 areas, grounded in the product's actual capabilities. Also available as a print-ready PDF.

Customer manual (page-by-page) — getting started, admin basics, and a guide for every product surface (PDFs under docs/customer/pdf/).

Inspect QCOW2, VMDK, and RAW images without powering them on. Score boot readiness, generate hypervisor-aware fix plans, and explore disks from a carbon-themed TUI — Rust control plane, no libguestfs appliance (uses host NBD/loop for mount).

┌──────────────────────────────────────────────────────────────┐
│  Interfaces   guestkit CLI · guestctl TUI · Python bindings  │
├──────────────────────────────────────────────────────────────┤
│  Engine       Rust parsers + boot scoring · NBD/loop mount layer   │
├──────────────────────────────────────────────────────────────┤
│  Outputs      JSON · YAML · HTML · PDF · CI gate artifacts   │
└──────────────────────────────────────────────────────────────┘

Why GuestKit

Problem GuestKit answer
"Will it boot?" answered at power-on Offline doctor score before cutover
guestfish scripts don't scale Structured assurance APIs + exports
Migration surprises cost weekends Fix plans with driver injections
Fleet drift is invisible fleet analyze and forensic diff
No VM boot for deep inspection Carbon TUI explores partitions in place

Pairs with: hyper2kvm for VMware → KVM pipelines.


🆕 What's New — In-Guest Agent

GuestKit now runs inside the guest too, not just offline against the disk — same evidence schema, same fix-plan format, over the existing virtio-serial QGA channel.

  • Offline Windows install, no boot requiredagent-inject --windows writes the GuestKitAgent service and the virtio-serial (vioser) driver straight into the SYSTEM hive via hivex.
  • Stock qemu-guest-agent gets out of the way automatically — any QEMU-GA/qemu-ga/QEMUGuestAgent service found is disabled so GuestKit answers the channel uncontended, while still speaking QGA-compatible commands so KubeVirt/libvirt notice nothing.
  • Converted-image driver fix — deletes the stale cached PCI devnode so Windows re-detects the virtio-serial device and runs a full driver install on next boot, instead of staying stuck on "no driver."
  • Generic QGA passthroughguestkit-rpc exposes every agent RPC method through the standard QGA channel, so host-side automation needs only virsh qemu-agent-command.

Details, protocol reference, and the Linux path: docs/features/guest-agent.md · Protocol 1.3


Platform at a Glance

Layer What's in the repo
Core Rust disk engine + assurance APIs — crates/, src/
CLI guestkit + guestctl — doctor, migrate-plan, fleet
In-guest agent Linux + Windows, protocol 1.3 — agent-inject, agent-proxy, agent-call
TUI Carbon-themed multi-view dashboard
Python hypersdk-guestkit on PyPI
K8s KubeVirt integration hooks — k8s/
Web stack Prebuilt GHCR images — ghcr.io/hypersdk/{zyvor-ui,zyvor-api,guestkit-worker}
Deploy Docker/Helm, remote deploy scripts — deploy/

Quick Start

cargo install guestkit   # guestkit + guestctl

guestkit doctor vm.qcow2 --target proxmox --explain
# → boot assurance score · blockers · root-cause chain

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

guestctl tui vm.qcow2
# → carbon TUI · Assurance · fix-plan preview
Scenario Path
Getting started docs/user-guides/getting-started.md
CLI reference docs/user-guides/cli-guide.md
Migration assurance docs/features/migration-assurance.md
In-guest agent (Linux + Windows) docs/features/guest-agent.md
CE vs Enterprise docs/ce-vs-enterprise.md

Web console: self-hosted via GHCR or Helm. First-login credentials for packaged installs are documented in remote deploy — change defaults before exposing to a network.


Run from GHCR (prebuilt images)

The web stack is published to the GitHub Container Registry under ghcr.io/hypersdkpublic images, no docker login required.

Image Role
ghcr.io/hypersdk/zyvor-ui Web console + login
ghcr.io/hypersdk/zyvor-api API backend
ghcr.io/hypersdk/guestkit-worker Disk-inspection worker

Tags: latest, vX.Y.Z (e.g. v0.3.13), per-commit SHA. Bring the whole stack up straight from GHCR:

docker compose -f deploy/docker-compose.ghcr.yml pull
docker compose -f deploy/docker-compose.ghcr.yml up -d
open http://localhost:8088          # web console

Eval only: this stack runs without authentication. Do not expose it beyond localhost. For production, use deploy/docker-compose.prod.example.yml — see Docker guide.

For clusters, use the Helm chart. Full details: docs/guides/DOCKER.md → Published images.


Three Commands Before Cutover

Command Outcome
guestkit doctor Boot assurance score + blockers
guestkit migrate-plan Executable fix plan YAML
guestctl tui Interactive assurance workspace

Documentation

Goal Document
Docs index docs/README.md
Run from GHCR / Docker docs/guides/DOCKER.md
Remote deploy docs/guides/DEPLOY-REMOTE.md
User stories docs/USER_STORIES.md
Industry use cases docs/INDUSTRY_USE_CASES.md
Architecture docs/architecture/overview.md
Full index docs/INDEX.md

zyvor.dev/guestkit · Demo video · Full Zyvor platform


Development

See project docs for CI, testing, and contribution guidelines. Historical build summaries in the repo root are snapshots — docs/ and this README are authoritative.


License

See LICENSE or project-specific licensing files in docs/legal/.

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.15.tar.gz (5.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.15-cp311-cp311-manylinux_2_39_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.39+ x86-64

hypersdk_guestkit-0.3.15-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

hypersdk_guestkit-0.3.15-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-0.3.15-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-0.3.15.tar.gz.

File metadata

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

File hashes

Hashes for hypersdk_guestkit-0.3.15.tar.gz
Algorithm Hash digest
SHA256 7ded59f2ffd2958efc80717b56475bd1af8e928fc124f35872a0c6b160cb3809
MD5 12dbccb5bd949582db6c04dfb3c8a510
BLAKE2b-256 9a09e8360e3ee5a9a159f9fd65d6eee9d4240ff0c775d5eefdbeb1acbd65c999

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hypersdk_guestkit-0.3.15-cp311-cp311-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 8bc97197345bd9bf57786cb5949c9cb07607614ccb6200995e5ed8f4779fb0b9
MD5 b0297fb012233bf09131cf8997ce555f
BLAKE2b-256 5d57d25b112407e9c1d7515979e1a663f782d2360d683c74e65619f197658b34

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hypersdk_guestkit-0.3.15-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5b72f6b203d1551b07d2fae94694348cee312fb27d22725eb2cd0d0027ed7a47
MD5 e9e0f6e556d5ebfeccc038e73ca9aa5f
BLAKE2b-256 b3eab9b9d5f2472da63910b6e2b58621b84c05a8780e3f28857e8beb68cd61b6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hypersdk_guestkit-0.3.15-cp38-abi3-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 7b7abbdcb405df1a26b59aaa5342ee7852d9e8674e07175eb1181ff791b42411
MD5 067b6fbe3907d2ec6c3364c24b2e2727
BLAKE2b-256 0085d646e6083679ef71cdf51c3e86afabd79425119b1b67e8db7e103bb2eeed

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for hypersdk_guestkit-0.3.15-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 32b30e0c48e22862f25ed0f58aa07fdd8a51d2fdeb31e0bde28f95cac232ece8
MD5 d43f17c1a3ed32d96cbcd5df05db99aa
BLAKE2b-256 6ca5cedf0205a3883c3456d3997ea21407f73e032a06c1232d5b2f87dd8a76fa

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

1.0.1

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

This release

0.3.15 This release

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