One thing Linux cannot do
A checkpoint is the whole running machine.
Apple's Virtualization framework saves memory and device state, and the disk is cloned with APFS. Saving costs about a second and next to nothing until the disk changes.
Measured on a real k3s cluster (2 vCPU, 3 GiB) on a Mac mini. Checkpoints work on single-node clusters.
Everything a Linux developer expects
It feels local, because it is.
Plain kubectl
The cluster is merged into your kubeconfig. No port-forward, no VM to log into.
kubectl get podsReal names
Every Service and Ingress host answers on a .localhost name, with HTTPS from a local CA limited to .localhost.
https://web.localhostTime machine
A checkpoint is the whole running machine. Undo a kubectl apply, including what it did to running pods.
kube try -- kubectl apply -f x.yamlServices in one line
Seventeen development services with their usual ports on the Mac and a connection string.
kube add postgresSave a file, see it run
Rebuild an image on save, or copy files into a pod with no build at all.
kube sync web --to /appEvery replica, one stream
Logs from all pods and containers behind a workload, each line tagged and colored by pod.
kube logs web -fCopy files both ways
Like docker cp. Files travel as a tar stream, nothing to install in the pod.
kube cp ./site web:/usr/share/nginx/htmlBackups that are a file
Postgres, MySQL and MongoDB contents as one private file on your Mac, and back again.
kube db-backup postgresIt tells you what is wrong
A doctor for the Mac and the VM, and a macOS notification when a pod crash-loops.
kube doctorSleeps when you do
Park the cluster to a checkpoint when idle or on battery. The next kubectl call wakes it.
kube supervise --idle-sleep 30mThe same bytes everywhere
Print every running image as a tag plus digest and paste it into a manifest.
kube pinShow it on your phone
Open a Service to a phone on the same Wi-Fi with a QR code, a time limit and a private-network-only filter.
kube share webIntel images just run
Give the cluster VM the Mac's Rosetta so amd64-only images start instead of failing.
kube up --rosettaCall your Mac from a pod
Make a program on the Mac, such as a model server or Postgres.app, a Service the pods reach by name.
kube host model 11434Follows your git branch
Switch branches and the cluster is saved for the one you leave and restored for the one you enter.
kube git installWhat changed since it worked
Compare two checkpoints, or one against now: images, replicas and config, without starting anything.
kube diffLet an AI agent drive it
MCP tools for status, doctor, checkpoints and diff; applying a manifest takes a checkpoint first.
fluxctl mcp serve --allow-writeWorks your hours
Sleep outside working hours and on low power, wake when the day starts.
kube supervise --active 09:00-19:00 --ecoIn the menu bar
Pod count, failing pods and one-click Sleep and Wake, through SwiftBar or xbar.
kube menubarkube add
The services you reach for. One line each.
Each runs in the cluster with its usual port on 127.0.0.1, a .localhost name, and a throwaway password for development.
- Postgres
- Redis
- MySQL
- MongoDB
- ClickHouse
- Redpanda
- NATS
- RabbitMQ
- Mailpit
- Grafana
- Qdrant
- Meilisearch
- Keycloak
- SeaweedFS
- Vault
- Jaeger
- Temporal
What it is not
- One server, no high availability. Extra nodes are agents only.
- The containers share the VM's kernel, unlike the per-container microVMs of the sandboxes.
- Checkpoints need a single-node cluster and restore on the same kind of Mac.
- The first boot needs internet unless you use --offline.
Start a cluster in one command.
Built with Claude Code and tested on a real Mac mini.