/run/k7d/k7d.sock (override with --socket or the K7D_SOCKET env var).
Protocol: one JSON request object per line, one JSON response object per line. A connection may carry multiple request/response pairs. Requests are tagged with "op", responses with "status". Errors are always an explicit {"status": "error", "message": "..."} response — never a silent success.
Clients reach the guest agent themselves over vsock, using the
guest_cid returned by create_vm — the daemon does not proxy the agent protocol (vsock CIDs are a kernel-global namespace, so any host process can connect to a running VM’s agent).examples/cluster-tree-search/k7d_client.py.
VM lifecycle operations
VmConfig
The config object accepted by create_vm (and the tree-create operations):
vm_created responses carry vm_id, guest_cid, vm_index (determines the guest IP 10.200.0.{2 + vm_index}), pod_netns_attached, and pooled (whether the VM was served from the warm pool instead of cold-booted).
Tree operations
Snapshot-tree semantics (budgets, LRU eviction, protect/prune) are explained in Snapshot tree; cluster specifics in Cluster mode.TreeBudget
Fork responses
tree_created, tree_forked, and tree_resumed responses carry guest_cids — one vsock CID per payload member, ordered by vm_index (a single entry for single-VM trees). Fork responses additionally carry fork_memory_full_copy (per member): false means the CoW MAP_PRIVATE fast path; true means a full memory copy (only virtiofs-backed sources — e.g. read-write hostPath — take that fallback).
