Documentation Index
Fetch the complete documentation index at: https://docs.microsandbox.dev/llms.txt
Use this file to discover all available pages before exploring further.
New features
Captured logs andmsb logs
Every sandbox now records its captured stdout, stderr, and PTY output to an on-disk exec.log as JSON Lines, and a new msb logs command (plus logs() on the Rust, TypeScript, and Python SDKs) reads it back. Logs survive a stopped or crashed sandbox, so you can inspect what happened after the fact without keeping a process attached. Failed starts also produce a structured boot-error.json that surfaces the failure stage, errno, and a hint inline instead of a generic exit-status message.
msb logs reference.
File-first disk snapshots
Snapshot a stopped sandbox to a content-addressed directory on disk and boot a fresh sandbox from that artifact later, on the same host or a different one. Snapshots are sparse-aware (reflink on APFS, btrfs, and XFS; SEEK_DATA/SEEK_HOLE elsewhere) so they stay small. The CLI ships msb snapshot create, open, list, remove, export, import, verify, plus msb run --from <name|path> to fork. The Rust, TypeScript, and Python SDKs all gain matching Snapshot, SnapshotHandle, and Sandbox(Builder)? methods.
--init <PATH> (or --init auto for the common systemd-on-Debian/Ubuntu case). The agent does its boot setup, then forks; the parent execs your init and becomes PID 1, and the agent stays alive in the child to keep the host channel up. All three SDKs gain matching init / InitConfig surfaces, and shutdown adapts to send the right signal to the new init.
MSB_HOMEenv override. Point microsandbox at an isolated state directory without touching$HOME. Useful for parallel CI jobs that share a runner. See Configuration.
Bug fixes
- IPv4 and IPv6 in the guest are now gated on whether the host actually has a route for each family, fixing DNS upstream flakes on v4-only hosts that previously got an IPv6 address regardless.
- The 30 second relay handshake deadline is now enforced as wall-clock across the whole connect path, so a sandbox that stalls mid-handshake no longer hangs the CLI; on timeout, the runtime prefers the structured
boot-error.jsonover the raw IO error.