Products

kcore: virtualisation built for automation, not for a web console

kcore is an open-core virtualisation platform for edge sites and datacenters, built and maintained by Tacconi Consulting Ltd. The API is the product; the CLI, Terraform provider and MCP server are clients of it. Hosts are immutable NixOS systems that roll back on a failed update. The product line has three parts, described below, with the current state of each stated plainly.

After years of running Proxmox and VMware in production, the same problems kept recurring. The API was an afterthought to the UI, so every Terraform run and CI pipeline fought the platform. Host upgrades were held-breath events. And when Broadcom moved VMware to per-core pricing with large minimums, estates that had been stable for a decade suddenly needed somewhere to go.

kcore started in January 2026 as an answer to those three things: an API-first hypervisor, atomic host updates with rollback, and per-socket pricing with a free evaluation ISO. It is written in Rust and Go, runs on NixOS, and uses Cloud Hypervisor on KVM. Development is in the open at github.com/kcorehypervisor/kcore; the product site is kcorehypervisor.com.

The hypervisor Evaluation ISO available

A controller holds desired state; node agents run Cloud Hypervisor on each NixOS host; operators work through kctl or the same gRPC APIs. Add a node by booting the ISO and pointing it at the controller.

Host OSNixOS, read-only root. Each update is one transaction; a failed update boots the previous generation. Every generation is kept.
APIgRPC with mTLS, certificate-CN authorisation per method. kctl apply -f for declarative YAML: VMs, networks, SSH keys, containers, security groups, disk layouts, Ceph clusters, cluster updates.
GuestsLinux and Windows (Server and desktop). Cloud-init. One physical GPU per VM via VFIO passthrough; NVIDIA vGPU is not supported.
StorageLocal directories, LVM or ZFS on the host. Ceph for shared disks; live migration between hosts requires Ceph. Snapshots, clones and rollback on every backend.
NetworkingNAT, VXLAN and bridge networks. Security groups with ingress rules and DNAT, attached to VMs or networks.
ClusteringMulti-node, with control-plane replication across datacenters on a CRDT-based state layer. Behaviour under partitions and node failure is specified in TLA+ and exercised by failure-injection tests.
SecurityLUKS disk encryption on hosts, TPM2-sealed where hardware allows. Cluster PKI with a root CA that never leaves the operator's machine, sub-CA for automatic node certificate renewal.
ToolingTerraform provider (kcore_vm and friends), MCP server for AI agents, Crossplane provider, kcore-migrate for VMware and Proxmox imports.
PricingPer CPU socket per year. Community ISO free on GitHub Releases. Standard, Premium and Enterprise tiers add signed ISOs, the enterprise channel and support.
Not yetIntegrated backup (see kcore Vault below), vSphere-style HA, direct disk pull from vCenter without Broadcom's VDDK.

Off-cluster backup Private channel · in development

Snapshots inside a cluster protect against operator mistakes and bad upgrades. They do not protect against losing the Ceph pool, the node holding an LVM or ZFS volume, or an attacker with cluster-admin. kcore Vault moves guest data out of the cluster.

ModelA Vault coordinator exposes a gRPC service (kcore.vault.Vault). It drives the open-core snapshot and export RPCs on the cluster: expose a read-only snapshot device, list changed extents between two snapshots, stream blocks out, stream blocks back in on restore.
IncrementalChanged-block tracking between snapshots means only extents that changed since the last run are read and transferred, on Ceph RBD, ZFS and LVM-thin volumes alike.
ConsistencyCrash-consistent by default; quiesced snapshots freeze guest filesystems over SSH first.
Trust boundaryVault clients authenticate with certificates from the Vault CA, not the cluster CA. The coordinator reaches the cluster with a scoped backup-operator identity. A compromised cluster has no credential that reads its backups.
Open hooksThe cluster-side RPCs are part of open-core kcore, so any backup tool can drive them. Vault is the supported, paid implementation on top.
TodayIn Community kcore, kctl backup copies controller state and SnapshotPolicy schedules in-cluster snapshots. The Vault coordinator exists; the storage engine, mover, dashboard and CLI follow. Immutable backup targets are planned.

Bare-metal provisioning Available

Installing one host from a USB stick is fine. Installing forty across three sites is not. kcore Provisioning turns racked servers into kcore nodes without anyone touching them.

Hardware controlDiscovers servers and their inventory over Redfish and IPMI, sets boot order, and controls power. Tested against Dell PowerEdge hardware, including the quirks of older iDRAC and iPXE firmware.
Network bootUEFI HTTP boot server with dynamic GRUB configuration per machine, serving the EFI bootloader and image artefacts. No TFTP, no PXE legacy stack.
ImagesImage registry with SHA-256 verification on download and on serve; corrupted artefacts are detected and removed. Size limits and rate limiting protect the server.
MachinesMachine registration by MAC and BMC address, boot-target assignment, and status tracking in SQLite.
PKIIssues host certificates so a freshly installed node joins the cluster with mTLS from first boot.
SecuritymTLS client authentication with bearer-token fallback, role-based authorisation, input validation on every identifier, path-traversal and command-injection protection, and an audit log of every operation.
InterfacesgRPC API, kctl integration, Terraform, and a read-only web dashboard (Leptos, server-rendered) for monitoring.
ImplementationRust. Controller and HTTP boot server as separate services; packaged as Nix flakes for reproducible deployment.
  • kcore-migrate

    Inventories a vCenter or Proxmox estate and writes one kcore_vm Terraform resource per guest, plus a gaps report for anything the record cannot express. Converts exported OVA, OVF, VMX and VMDK with virt-v2v, or changes container format with qemu-img. Written in Go.

  • Terraform provider

    A real provider built on the Terraform Plugin SDK, talking to the controller over gRPC. VMs are resources; terraform apply does the rest.

  • MCP server

    Lets an AI agent operate a cluster through the same declarative surface as kctl apply, with a discipline built in: advise on the questions an operator still has to answer, plan, then apply only with explicit confirmation. Ships as a Cursor plugin and a VS Code extension.

  • Crossplane provider

    Reconciles Kubernetes custom resources (VMs, networks, SSH keys, security groups, workloads) against the controller API, so a kcore estate can be managed from Argo CD like everything else.

The evaluation ISO and kctl are on GitHub Releases, with install and first-cluster guides at kcorehypervisor.com/docs. For a VMware or Proxmox exit, send us socket count and the rough guest mix and we will tell you whether kcore fits.