GuestKit
Offline VM intelligence. Migration assurance you can prove.
Score boot readiness before power-on · repair disks offline · certify cutover with a Passport
Product · Demos · Quick start · h2kvm · Wiki · Open source vs Enterprise · 30-day Enterprise trial · Book a demo
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 — no appliance daemon, no “just try it and hope.”
disk.qcow2 / .vmdk / .vhdx / .vhd / .vdi / .raw
│
▼
┌──────────────────────┐
│ Pure-Rust engine │──► doctor 0–100 + blockers
│ NBD / loop mount │──► migrate-plan YAML
└──────────────────────┘──► Passport · repair · CI gate
│
CLI · TUI · Python · Web · Agent · GitHub Action
| 70+ commands | 6 disk formats |
| **0 appliance daemons | 8 migration targets |
| Apache-2.0 | Used in CI, labs, and hypervisor-exit programs |
Certify with GuestKit → convert & deploy with h2kvm → operate on Zeus OS.
See it in action
|
▶ CLI & TUI Offline VM intelligence, explained |
▶ Web Dashboard — Overview Server Image Vault, live KubeVirt cluster |
|
▶ Web Dashboard — Deep Dive Sources, live cluster, one-click intelligence |
▶ Machina × GuestKit Live Linux guest agent — health, TRIM, netplan, services |
Recorded live against real deployments — no staged screenshots.
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 |
| Fleet drift invisible until outage | fleet analyze / watch, forensic diff, policy-as-code |
| Migration order guessed by hand | fleet wave-plan — dependency-aware waves |
| Deep inspect needs a running guest | Carbon TUI + in-guest agent over QGA |
60-second quick start
cargo install guestkit # guestkit + guestctl
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
CI gate — same score, no CLI install step:
- uses: hypersdk/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+)
Same assurance engine as CLI — used by h2kvm offline fixer:
pip install "hypersdk-guestkit>=1.1.0"
import guestkit
guestkit.run_doctor("vm.qcow2", target="kvm", explain=True)
guestkit.run_migrate_repair("vm.qcow2", target="kvm", apply=False) # dry-run
guestkit.run_migrate_repair("vm.qcow2", target="kvm", apply=True) # apply fixes
See python-bindings.md and examples/python/assurance_doctor.py.
| You want… | Go here |
|---|---|
| First hour | Getting started |
| Python assurance APIs | python-bindings.md |
| h2kvm pipeline | hyper2kvm-integration.md |
| Remote SSH deploy | DEPLOY-REMOTE.md |
| Cheat sheet | Quick reference |
| Full feature map | Customer feature guide |
| Open source vs Enterprise | ce-vs-enterprise.md |
h2kvm integration
GuestKit provides offline disk intelligence; h2kvm provides hypervisor-to-KVM conversion and deploy. Together:
guestkit doctor / migrate-plan ← pre-flight score + fix plan
│
▼
h2kvmctl local --backend guestkit ← convert + run_migrate_repair
│
▼
libvirt · KubeVirt · OpenStack
# Pre-flight
guestkit doctor source.vmdk --target kvm --explain
guestkit migrate-repair source.vmdk --target kvm --apply
# Convert + deploy
h2kvmctl local --vmdk source.vmdk --to-output out.qcow2 --backend guestkit --libvirt-import
Deploy both to a lab host:
GUESTKIT_ZYVOR_ACCEPT=1 ./scripts/deploy-remote.sh HOST user --quick --key # GuestKit CLI
cd /path/to/h2kvm && ./scripts/deploy-remote.sh HOST user --keep-sources # h2kvm
Full guide: hyper2kvm-integration.md
What you can do
Assure · plan · certify
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
Repair offline (no boot required)
guestkit plan generate disk.qcow2 -p linux-ssh --user ubuntu --key-file ~/.ssh/id_ed25519.pub
guestkit rescue disk.qcow2 -o enable-ssh
guestkit rescue disk.qcow2 -o fix-grub --force
guestkit rescue win.qcow2 -o reset-password --user Administrator --password '…'
guestkit plan apply plan.yaml --vm disk.qcow2 --yes # backups + rollback
Live control · platform · AI
- In-guest agent (Linux + Windows) over virtio-serial / QGA — inject offline, then
agent-proxy/agent-call - Optional AI (
--features ai) — read-only tool-calling over the offline evidence snapshot; MCP server via--features mcp - KubeVirt boot-inspect hooks and Guest Control Fabric
- Web console + worker on GHCR · Helm under
deploy/helm/zyvor - Python:
pip install hypersdk-guestkit→import guestkit+run_doctor/run_migrate_repair(v1.1.0+)
Run the free web stack (GHCR)
Public images under ghcr.io/hypersdk — no docker login required.
| Image | Role |
|---|---|
ghcr.io/hypersdk/zyvor-ui |
Web console — Image Vault, KubeVirt cluster |
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
Open source vs Enterprise
One failed first-boot weekend costs more than the license.
Enterprise turns offline scores into shared, gated decisions your board can fund.
30-day Enterprise trial (binary)
Try the control plane before you buy — same packaging pattern as Veyron:
- Download the trial asset from GitHub Releases (
guestkit-enterprise-*-trial-linux-amd64.tar.gz) - Verify the
.sha256, extract, run./install.sh - Keep bundled
trial.tokennext to the install — after 30 days email sales@zyvor.dev
Full feature matrix (every screen) → · What Zyvor sells → · Book a demo · Pricing · sales@zyvor.dev
Platform layout
┌────────────────────────────────────────────────────────────┐
│ guestkit CLI · guestctl TUI · Python · Web · Agent │
├────────────────────────────────────────────────────────────┤
│ Rust evidence engine · boot scoring · fix-plan apply │
├────────────────────────────────────────────────────────────┤
│ JSON · YAML · HTML · PDF · Passport · CI exit codes │
└────────────────────────────────────────────────────────────┘
| Layer | In this repo |
|---|---|
| Engine | Pure-Rust parsers + evidence schema · NBD/loop (src/, crates/) |
| CLI / TUI | guestkit · guestctl — doctor, passport, fleet, rescue |
| Agent | Linux + Windows · protocol 1.3 · agent-inject / agent-proxy |
| Python | hypersdk-guestkit — run_doctor, run_migrate_repair (v1.1.0+) |
| h2kvm | hyper2kvm-integration.md — convert/deploy partner |
| K8s | KubeVirt hooks · k8s/ |
| Web / worker | GHCR images · deploy/ |
Documentation
| Goal | Document |
|---|---|
| Operator wiki | hypersdk/guestkit/wiki |
| Docs home | docs/README.md · INDEX |
| DevOps runbooks | docs/devops |
| Feature guide | guestkit-customer-feature-guide.md |
| Docker / GHCR | DOCKER.md |
| Remote deploy | DEPLOY-REMOTE.md |
| h2kvm integration | hyper2kvm-integration.md |
| Architecture | overview |
| Changelog / roadmap | CHANGELOG · roadmap |
→ zyvor.dev/guestkit · docs · blog
Development
cargo build --release
cargo test
See CONTRIBUTING and CI under .github/workflows/. docs/ and this README are authoritative.
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
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hypersdk_guestkit-1.1.0.tar.gz.
File metadata
- Download URL: hypersdk_guestkit-1.1.0.tar.gz
- Upload date:
- Size: 6.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f0a44ce9973c5a6df0840d4f17fe32c366d21e19863acf50c2b75d7f72d9f639
|
|
| MD5 |
2acc3afb594ce9a1296395ff3a715583
|
|
| BLAKE2b-256 |
3cbe56777e4e5b05c9f70cbaf318413b0cc2fd70dc57fe743e1e5581b7f19647
|
File details
Details for the file hypersdk_guestkit-1.1.0-cp38-abi3-manylinux_2_39_x86_64.whl.
File metadata
- Download URL: hypersdk_guestkit-1.1.0-cp38-abi3-manylinux_2_39_x86_64.whl
- Upload date:
- Size: 2.4 MB
- Tags: CPython 3.8+, manylinux: glibc 2.39+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
maturin/1.15.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
845a6a7bbcaf45d39a5842064782bc4dc65f0b310062fb6f32d28c09f1207e1c
|
|
| MD5 |
6957bf1e744cdbe1fd5e864b4f968f86
|
|
| BLAKE2b-256 |
e50ef6b0841e960c7e14345c9eb25a96bc2e686cf1bfa59246d88582e6360184
|
File details
Details for the file hypersdk_guestkit-1.1.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: hypersdk_guestkit-1.1.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 2.4 MB
- Tags: CPython 3.8+, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d96f3910f03a0e867267344674f8c57cc0492a66932ce2265ba0916bc4f0d3f3
|
|
| MD5 |
34b5ab2bde29ad7f904b1b38a57b2323
|
|
| BLAKE2b-256 |
7fdac1c19365682ea6ff7f6bea84e62382a15cad5248a1f57c41b9850c0d066a
|