the complete set
Everything crucible does.
One static Go binary: the daemon, the CLI, the TUI, and the MCP server. Runtime through platform, isolation through observability.
01
Isolation & security
Firecracker microVM per sandboxEvery workload is a real hardware VM with its own kernel.
crucible runJailer + KVM confinementchroot, seccomp, cgroups, and dropped capabilities around each guest.
--jailer-binPer-sandbox network namespaceOwn veth, subnet, DHCP, and DNS proxy; no shared network.
netnsDefault-deny egressNo network unless allowlisted by hostname or public CIDR.
--net-allowSSRF range-filteringMetadata, link-local, and RFC1918 blocked even with full egress.
--net-full-egressScoped policy tokensAPI keys bound to operations, egress ceilings, resource caps, and expiry.
/whoamiResource capsPer-sandbox vCPU, memory, disk, and timeout ceilings.
--memory --vcpus --disk02
The fork primitive
Live snapshotFreeze a running guest: memory, page cache, and writable rootfs.
snapshot createForkBranch independent copies of a snapshot in about 125 ms.
fork --countLazy userfaultfd memoryChildren page in only the working set they touch, not full guest RAM.
userfaultfdCopy-on-write rootfsO(1) disk clone on reflink filesystems; hundreds of forks bounded by RAM.
--work-baseClone-safetyReseed RNG, rotate machine-id and netns before a fork is reachable.
fatal-before-reachable03
Images & files
Boot any OCI imageRun unmodified Docker images in a microVM, no rebuild.
crucible run <image>BuildTurn a Dockerfile context into a bootable image.
crucible buildPrivate registriesPer-registry credentials feed every pull, including app re-pulls.
registry loginFile push & pullCopy files and directories into and out of a live VM.
crucible cpSizingGrow the rootfs and set memory and vCPUs per run.
--disk --memory --vcpusPrebuilt profilesEight language and runtime rootfs profiles out of the box.
--profile04
Durable apps
Deploy durable appsDesired-state services the daemon keeps alive across restarts.
app createReach by nameAn ingress proxy routes web.<domain> to the current instance.
ingress proxySelf-healingA crashed instance is reconciled back from spec automatically.
reconcileZero-downtime updatesBoot, health-gate, flip the route, drain the old instance.
app updateConfig & healthEnv vars and exec health checks per app.
--envOperate by nameexec, logs, and shell resolved to the current instance per call.
app exec / logs / shell05
Scale
Scale to zeroIdle apps sleep to ~0 RAM and wake in place in about 125 ms.
--min-scale 0 --idle-timeoutScale outN replicas forked from a golden snapshot, P2C load-balanced.
--min-scale --max-scaleAutoscaleReplica count tracks request concurrency.
autoscaleApp-to-app networkingPrivate, default-deny calls between apps at <app>.internal.
--can-call06
Observability
Per-app metricsRPS, latency, errors, replicas, and wake counts on /metrics.
/metricsOTLP exportMetrics and logs to any collector; honors OTEL_* env.
--otlp-endpointGrafana dashboardA reference dashboard ships with it.
grafana-dashboard.jsonpprofDaemon profiling on a loopback-gated port.
--pprof-listenPacket captureHost-side pcap of a sandbox or app, on demand.
sandbox captureDurable logsPer-sandbox logs that outlive the VM, streamable live.
crucible logs -f07
Interfaces & control
CLIA fast, scriptable command for every operation.
crucibleTUIA live terminal dashboard of sandboxes and apps.
crucible tuiMCP server27 scoped, policy-gated tools so agents drive the runtime.
crucible mcp serveGo SDKThe typed client the CLI, TUI, and MCP all use.
sdkOne REST APISpec-generated and drift-checked, documented byte by byte.
openapi.jsonAPI-key authOff on loopback, required everywhere once any key exists.
beareron any Linux + KVM box
One binary. Install and run.
The installer provisions Firecracker, jailer, and the guest kernel, then starts the daemon under systemd.
$ curl -fsSL https://github.com/gnana997/crucible/releases/latest/download/install.sh | sudo bash -s -- --with-deps --enable