K8E â Tandem storage, MCP gateway, and persistent warm-pool workspaces
A roundup of what shipped in the k8e repository since the announcement post â every item below is a real commit on main, grouped by theme.
Tandem: rqlite-backed etcd compatibility (KIP-29)
Embedded etcd is replaced by Tandem, a rqlite-backed etcd v3 compatibility layer, as the sole datastore backend.
- M0/M1 compatibility layer â the etcd v3 API surface implemented over rqlite, with a differential test suite that runs the same workload against real embedded etcd and asserts identical results (
7318d448,0ef61485,5dc477f0,d46f2b9c) - Differential testing â crash recovery, lease expiry, watch slow-consumer, and compaction concurrent-reader differentials all pass; each divergence the suite found was fixed in the layer (
bed6c1ea,b3e7b66a,a80c8cd5,14b9a6b3,3fd5b683) - Multi-member clusters â members can join and leave a running group, Raft traffic between members is protected with mTLS, and a member that leaves is removed and stopped (
40485f28,896e6f75,5972090a) - Snapshot/Restore â
/db/snapshotHTTP handler and Snapshot/Restore RPCs implemented (0aac4bc3) - Packaging â rqlite is wired into the packaging and download chain, and the Tandem datastore endpoint defaults to https (
7374b4fc,a9482738) - Single-node M1 validated â all single-node differential axes complete; network-partition, lease clock-skew, and compaction-reclamation validated on a three-node cluster (
c39dd382,d3212bab,6c0501a1,a4e8e81b)
Sandbox platform
- Unified session model â warm pool carries workspace PVCs. Every sandbox session is now persistent; the ephemeral/persistent split is gone. Each warm pod boots with its own pre-provisioned workspace claim (1Gi local-path), so claiming a warm pod yields a persistent VM â fast start and a PVC workspace (
647ac2e0) - MCP through the K8E API Gateway â the sandbox MCP service follows the 2026-07-28 HTTP protocol boundary, is exposed through the gateway, and ships a deployable
k8e-mcpimage in the release (665103ee,dcd9f91e,30a1ff18) - Configurable sandbox namespace end to end â
--sandbox-namespace/K8E_SANDBOX_NAMESPACEnow flows through every component that touches sandbox Pods, Secrets and Services (af19fa17) - Background runs past 30s â
run --backgroundjobs stay alive past the 30s exec window and are reaped on session reset (211c57e1) - API Key MCP entry operable, with readiness tests and static-analysis gates cleared (
1a12f32e,03094216)
Cluster core
- Kubernetes v1.37.0-k3s1 + etcd v3.7.1-k3s1 â the full dependency upgrade, including the kubelet v1.37 adaptation (the
--containerdflag is gone) (3b005782,2ab761d8) - Bundled cert-manager v1.21.2 â bundled by default with a documented lifecycle and opt-out (
4d9f2ad3,79d55e15) - Legacy cloud controllers dropped from kube-controller-manager (
c7120e36) - Installer fixes â official gVisor tarball release for the runtime install (matching the 2026-07 multi-file layout), invalid
--bootstrapflag removed from auto-configure, and the release publishessha256sum-amd64.txtso the install.sh checksum path works (7711faef,8f819146,262e39ab)
Release & CI
- arm64 k8e binary built and published in the release pipeline (
f62c5b8f) - E2E l1/l2 profiles run in CI with a docker-based harness; L1 30/30 and L2 24/24 pass on OrbStack arm64 (
d807a031,58641be7) - sandbox-mcp manifests default-skipped so unrunnable pods stop shipping when the component is disabled (
817e98dd) - Static-analysis gates (SonarCloud + DeepSource) unblocked on new code
Docs
- README slimmed and re-focused: the logo is now
https://k8e.sh/images/k8e-mark-on-dark.svg, gVisor install steps match the official tarball layout, the capabilities table reflects the persistent-workspace model, and tutorial content moved to k8e.sh/docs
Try it
curl -sfL https://k8e.sh/install.sh | sh -
Then connect your AI agent (Claude Code, Codex, or Pi) with the standalone k8e-sandbox-cli. See the Getting Started guide.