docs/changelog/2026-05-01.mdx
Redesigned TypeScript SDK
Builder API matching the Rust SDK, with await using, typed errors, async iterables, and bundled native binaries (no postinstall download).
await using sandbox = await Sandbox.builder("my-sandbox")
.image("alpine:latest")
.cpus(2)
.create();
See the TypeScript SDK reference.
Redesigned network policy
--network-policy is gone. Rules now carry their own direction, action, target, protocol, and ports through a single grammar: <action>[:<direction>]@<target>[:<proto>[:<ports>]].
msb run alpine --name agent \
--net-default-egress deny \
--net-rule "allow@public,allow@host" \
--net-rule "deny@private:tcp:445"
See the networking overview.
Other features
readonly is now consistent across volume types. See Sandbox volumes.--script flag. Register scripts on the command line with --script NAME=BODY; the file form is now --script-path NAME:PATH. See the CLI reference.msb alias. Installs from npm, pip, and cargo now put both microsandbox and msb on PATH.host.microsandbox.internal. Sandboxes can reach the host through this well-known DNS name.libkrunfw override for SDK callers developing against unreleased firmware.suffix= rules now enforce consistently across DNS, SNI, and policy layers.SCDynamicStore, matching what the OS actually uses.libkrunfw under its canonical name, fixing load failures on some Linux distros.