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。隨附的網頁元件被說明為僅供評估且無身分驗證,部分功能仍不完整,例如行程內 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 分