GuestKit

io.github.zyvorai由 GitHub 账号 zyvorai 发布v1.2.9更新于 Nov 1, 2026

Read-only evidence and boot-readiness tools for one VM disk image, offline.

概览

AI 生成的概览

GuestKit 的 MCP 服务器提供六个只读证据工具,让助手在客户机离线时检查单个虚拟机磁盘镜像并判断能否启动。

可以做什么
  • 在客户机离线状态下检查单个虚拟机磁盘镜像,支持 qcow2、VMDK、VHDX、VHD、VDI 和 raw 格式
  • 从磁盘中读取操作系统身份与清单统计信息
  • 给出 0 到 100 的首次启动就绪评分,并解释各项阻塞原因
  • 针对 kvm、proxmox、qemu、kubevirt、aws、azure、gcp、hyperv 等目标生成迁移计划与切换证据
  • 保持只读:这些工具不会执行修复或其他更改
适用场景
适合在规划虚拟机管理程序迁移或切换时使用,让助手在开机前检查磁盘镜像的启动就绪度与阻塞项,或在不启动客户机的情况下收集迁移计划所需的证据。
运行要求
以本地 stdio 进程运行,通过 guestkit mcp-serve 命令针对一个镜像路径启动,也可使用已发布的 OCI 镜像。主机需为 Linux,并安装 qemu-img、losetup 和 qemu-nbd;打开磁盘需要 loop 或 NBD 访问权限,容器须以 root 身份并具备特权访问或 SYS_ADMIN 加设备权限。未声明任何 API 密钥或环境变量。
安装前请注意
工具本身只读,但容器需要 root 和特权访问才能打开磁盘,这对主机是较大的权限授予;挂载与修复路径也可能需要 root。随附的 Web 组件被说明为仅供评估且无身份验证,部分功能仍不完整,例如进程内 QCOW2 读取和 shrink。

安装

在 SourceWeft 中

  1. 打开 控制台中的 GuestKit,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

GuestKit

[CI] [crates.io] [PyPI] [License: Apache 2.0] [Rust] [GHCR] [Docs]

[Book a demo] [30-day PoC] [Quickstart]

[GuestKit - Know it will boot. Before you power it on.]

Know it will boot. Before you power it on.

Offline VM intelligence and migration assurance. GuestKit reads a VM disk while the guest is off, scores first-boot readiness 0–100, repairs it through a plan you can read, and certifies cutover with a signed Passport.

6 disk formats · 0–100 boot score · 0 appliance daemons · 8 migration targets · Apache-2.0

Gallery · Docs · Product · Wiki · 30-day Enterprise trial


What's new

ReleaseWhat changed
Agent (1.2.6)Per-container eBPF network policy and BPF-LSM controls in the guest agent (guestkit.netpolicy / guestkit.lsm), off by default, audit first, enforce only under a time-bound lease
1.2.5Offline inject on run_migrate_repair: hostname, network, users, services, first-boot scripts, cloud-init, AD rejoin, Windows KMS and RDP, appended to the repair plan
1.2.5Online snapshots freeze the filesystem through the privileged helper, so KubeVirt snapshots of PVC-backed VMs work with the unprivileged agent
1.2.5Linux agent connects to the virtio channel on stock distros (udev rule shipped in DEB, RPM and tarball); concurrent NBD mounts no longer race
1.2.2Web Image Vault reaches TUI parity: inventory tabs, Assurance (plan, passport, repair preview and gated apply), Profiles and Files
1.2.0guestkit-qemu assured QEMU/VirtIO runtime, guestkit vm, virtctl-guestkit guestfs, the cutover bundle and guestkit shrink for oversized disks

Full history: CHANGELOG.md.

Why GuestKit

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 — 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".

When this happens…GuestKit gives you…
"Will it boot?" is answered at power-onAn offline doctor score (0–100) with a root-cause chain for each blocker
Each migration relies on scripts and tribal knowledgeStructured plans in JSON/YAML and a CI gate on the same score
Cutover weekend is full of surprisesHypervisor-aware migrate-plan and day-0 packs, for 8 targets
There is no audit trail of what was checkedA signed Cutover Passport per disk
Repairs are hand edits inside a mounted imageFix plans you can read, applied with backups and rollback
Migration order is guessed by handfleet wave-plan: dependency-aware waves

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.

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

[Capabilities at a glance: Assure, Repair, Certify, Surfaces]

The full comparison has more rows, including fleet drift, the Carbon TUI with the in-guest agent, and guestkit qga as a drop-in for virsh qemu-agent-command.


GuestKit vs libguestfs + virt-v2v

[GuestKit vs libguestfs + virt-v2v: not just convert it, prove it will boot]

GuestKitlibguestfs + virt-v2v
Disk accessRust engine; guest files reached through qemu-nbd or loop mounts on the hostLaunches a small appliance VM to read and edit the disk
Boot readinessdoctor: a 0–100 first-boot score per target, with blockers explainedInspection and conversion; no readiness score
Migration planmigrate-plan per target (kvm, proxmox, qemu, kubevirt, aws, azure, gcp, hyperv)virt-v2v converts a guest to run on KVM
RepairFix plans with backups and rollback; rescue for SSH, GRUB and passwordsvirt-customize, virt-rescue and guestfish for scripted edits
Cutover evidenceSigned Cutover Passport and a GitHub Action that fails below a scoreNot part of the toolkit
InterfacesCLI, TUI, Python, web console, in-guest agent, GitHub ActionCLI tools and language bindings
Choose libguestfs whenYou need its broad filesystem and OS coverage, or virt-v2v's end-to-end conversion, and have no need for a score or a cutover record

GuestKit sits next to conversion tools rather than replacing all of them: h2kvm converts and deploys, and calls GuestKit for the offline fixes.


See it live

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

Assurance: doctor score 78, a REVIEW decision, and ranked findings with a fix command each.

[GuestKit web console — Summary with OS identity and inventory counts]

Summary: OS identity and inventory counts from inspect.

[GuestKit web console — Image Vault landing page]

Image Vault: import a disk, or try the offline demo.

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


How it fits together

[Read the disk offline; decide before power-on]

text
  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

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

Architecture in depth: docs/architecture/overview.md.


Quickstart

bash
# v1.2.6 GitHub Release — crates.io `guestkit` is still 0.3.2curl -fsSL -O https://github.com/zyvorai/zyvor-guestkit/releases/download/v1.2.6/guestkit-1.2.6-linux-amd64.tar.gz
guestkit doctor vm.qcow2 --target proxmox --explainguestkit migrate-plan vm.vmdk --target kvm --export plan.yamlguestkit passport emit vm.qcow2 --target kvm -o passport.jsonguestctl tui vm.qcow2           # Assurance · preview · exportguestkit-qemu plan vm.qcow2 --json   # assurance → QEMU definition

CI gate — same score, no CLI install step:

yaml
- 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.

MCP server — guestkit mcp-serve <image> [--target kvm] is a stdio MCP server exposing six read-only evidence tools for one disk image. Build with cargo build --release --features mcp. Registry name io.github.zyvorai/guestkit; OCI image ghcr.io/zyvorai/guestkit-mcp. Opening a disk needs loop/NBD, so the container must run as root with --privileged (or SYS_ADMIN plus devices) despite its nonroot default user. See docs/guides/MCP.md and DOCKER.md.


Documentation

GoalDocument
Docs sitezyvorai.github.io/zyvor-guestkit
Docs homedocs/README.md · INDEX
DevOps runbooksdocs/devops
Feature guideguestkit-user-feature-guide.md
h2kvm integrationh2kvm integration
QEMU / VirtIO runtimeqemu-runtime.md
Dump virsh → GuestKitvirsh-to-guestkit.md
Architectureoverview

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

Go deeper

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. [email protected] remains as a fallback.


Maturity

GuestKit is at v1.2.6 (GitHub Release; PyPI zyvor-guestkit; crates.io guestkit is still 0.3.2). The architecture overview states the engine's scope plainly:

AreaStatus
Pure-Rust parsing: partition tables, filesystem signatures, evidence schema, boot engine, assurance APIsShipped
Web UI (deploy/ui: inventory, Assurance, Profiles, Files), GHCR zyvor-uiShipped
In-process QCOW2 readPartial: format detection and selective reads; full cluster walk defers to qemu-nbd
File access inside guestsThrough loop devices / qemu-nbd and a host mount, not in-process ext4/NTFS parsers
guestkit shrinkNarrow by design: a single/last ext2/3/4 partition, MBR or GPT, no LVM/LUKS; other layouts are reported and left untouched
GHCR web stack (deploy/docker-compose.ghcr.yml)Eval only: unauthenticated, do not expose beyond localhost
Guest-agent eBPF policy and LSMOpt-in: gated by capabilities.ebpf, off by default

Part of the Zyvor stack

ProductRole next to GuestKit
GuestKitOffline VM assurance: boot score, repair, Cutover Passport
TransivaExports VMs out of the source hypervisor, upstream of GuestKit
h2kvmConverts and deploys to KVM; uses the GuestKit Python package for offline fixes
ZorviaKubeVirt VM platform to operate the migrated VMs
FluxVMRuns and manages VMs; production run, network and TTL sit there, not in guestkit vm

→ zyvor.dev


Support

Free under Apache-2.0. If it helps you, you can donate any amount you like: https://payments.cashfree.com/forms/zyvor-donate. A donation is voluntary and supports development and maintenance. It is not a purchase: it buys no support, SLA, features, priority or license, and it is not tax-deductible (Zyvor AI Labs Private Limited is a company, not a charity). Zyvor Enterprise (supported releases, SLAs, a named contact and enterprise features) is separate: [email protected].

License

GuestKit is free and open source 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. That does not change.

Zyvor Enterprise adds what production teams ask for: supported releases, deployment and upgrade guidance, priority incident triage, a named technical contact and 24x7 critical intake. Production support, SLAs, and Zyvor Enterprise products are licensed separately. Plans and terms: docs/SUBSCRIPTION-MODEL.md · Pricing · [email protected].

Report vulnerabilities privately per SECURITY.md. More at zyvor.dev/guestkit · docs · blog.


Know every disk will boot before cutover weekend

[Book a demo] [30-day PoC] [Pricing] [Contact sales] [Star on GitHub]

来源:README.md,提交 bf4c4e9

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

2
  1. v1.2.9最新Oct 18, 2026
  2. v1.2.8Oct 18, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分