Highlights
Docker Sandboxes v0.51.0 runs built-in agents from published kits and adds custom mount targets for additional workspaces, environment launch command defaults, and more controls for automation. It also strengthens workspace-copy and credential protections and improves network, MCP, and sandbox startup reliability.
Breaking changes
Built-in agents and shell images
Built-in agent names now resolve to published kits at docker.io/sbx/<name>:latest. This applies to Claude, Codex, Cursor, Devin, Docker Agent, OpenCode, Kiro, Copilot, and Droid. sbx run sbx/<kit> also accepts published kits, including kits named after built-in agents. The kit.allowExtractedAgents setting is removed.
- Sandboxes created by earlier releases from embedded Claude or Codex specifications keep running, but must be recreated before using
sbx kit add,sbx run --model, orsbx move. Save files and unpushed commits before removing a sandbox. - The shell agent now uses a published Debian 13 v3 kit. First use requires registry access. To provide shell sandboxes with provider credentials, add the
shell-credentialsmixin. Existing shell sandboxes keep running. - V1 and v2 kits cannot be combined with v3 kits. Upgrade older mixins to v3 before combining them with the new built-in kits.
- The
docker/sandbox-templatesimages forcodex,cursor-agent,devin,docker-agent, andopencode, including their-dockervariants, are no longer published. - The
docker/sandbox-templates:shelland:shell-dockerimages are no longer refreshed. For custom workloads, usedocker.io/sbx/shell-imageanddocker.io/sbx/shell-docker-image.
Clipboard access and custom secrets
- Copying text from a local sandbox to the host clipboard now requires opting in with the
clipboard.textCopysetting. Native clients such as Codex are supported. - Custom secrets without destination hosts no longer substitute credentials. Repair existing mappings by adding explicit destination hosts while preserving their placeholders and other settings.
What's new
Security
sbx cpblocks symbolic links in mounted directories from escaping onto other host paths. On Windows, it also blocks workspace escapes through substituted drives.- Unix clients verify that daemon sockets belong to the same account before sending requests.
sbx kit signno longer runs configured Git filter drivers while checking signed file contents. Its recovery guidance preserves committed bytes even when repository attributes request line-ending conversion.- Files replaced by Sandboxes on Windows retain their existing access control lists.
- Network policy commands reject empty
--sandboxvalues instead of applying changes globally.
Kits and agents
sbx kit addinstalls added image content in all-v3 sandboxes while preserving filesystem changes.sbx run --modelgenerates a v3 model kit when the base uses v3.sbx kit inspect --resolvedshows the kit with itsextendsparent merged in.- Kit installation logs are saved inside the sandbox at
/var/log/sbx-kits/<kit>/install-<n>.log. Progress shows command descriptions, and debug mode streams successful installation output and the startup log. Failed startup commands produce a warning with the log tail instead of failingsbx run. - Kits can request publication of a host-loopback port when granted the required permission. Each request requires user approval and expires after 45 seconds.
- Kits declaring
agent-context@2guidance work with local and cloud sandboxes, including when they also offeragent-context@1. - Optional kit credentials no longer prevent creation when absent. Kit changes after a daemon restart preserve stored Bedrock profiles, and recovery after a failed kit change preserves access to shared skills.
- Shell kits support custom templates, and v3 kits load correctly when their descriptor is named
spec.yaml. - Docker Hardened Images (DHI) kits are accepted by the default kit source allow list.
- GitHub Copilot authentication works when the GitHub secret is stored with
--commandor as a reference.
Sandbox lifecycle and workspaces
- Additional workspaces accept
PATH:TARGET[:ro]withsbx createandsbx run. Environment files support the same custom targets throughadditionalWorkspaces[].target. sbx run --workdirstarts the agent in a directory inside the workspace, including when reattaching to an existing sandbox.- Environment files support
entrypointandcmddefaults forsbx env run. Command-line arguments can replace the default command.sandboxOptionsalso acceptsrootSize,dockerSize, andclonedWorkspaceSize. - Interactive
sbx env execoffers to create a missing environment sandbox. Interactivesbx env runcan adopt a matching existing sandbox when its environment records have been lost, after confirmation. - New local sandboxes support FUSE filesystems, controlled through
sandbox.fuseand the environment optionsandboxOptions.fuse. - Sandbox memory limits can be set up to the host's total memory, with a warning above 75%.
- Workspace, clone, kit-volume, and mount targets that would hide the shared skills store are rejected before creation or modification. Startup also explains how to recover when a file occupies the shared skills directory.
sbx inspectshows the Sandboxes version that created a sandbox, for sandboxes created with this release onward.sbx ls,sbx inspect, andsbx prune --dry-runJSON include configured host bind mounts, including workspace, kit, and skills mounts. List and prune output also indicate missing mount sources. Existing workspace fields remain available.sbx lsreports unreadable sandbox state instead of silently omitting the sandbox. Clone failures include Git's underlying reason, such as dubious ownership.- Resizing an interactive terminal during startup or shutdown no longer produces spurious errors. On Windows, Ctrl+Z no longer ends input forwarding, and automatically started daemons are less likely to stop when the launching command exits.
Networking and policy
- Linux hosts using split-horizon DNS, including VPN configurations with corporate nameservers, can reach internal HTTPS hosts through the sandbox proxy and retrieve proxy auto-configuration files from them.
- The proxy reuses upstream connections when injecting credentials, improving parallel downloads such as package installations.
- Bursts of outbound connections no longer crash the daemon when the host network stalls.
- Failed upstream connections for inspected HTTPS requests return a 502 response identifying the host and reason instead of an empty reply.
sbx policy check httpchecks HTTP governance policy behavior.- Policy listings keep the implicit default-deny fallback visible and distinguish it from explicit deny rules. Policy setup correctly identifies the local preset, and Gordon preserves HTTP rule restrictions.
- The policy TUI shows setup guidance after a reset, warns about stale rules, and resumes updates after setup. Storage failures report a server error instead of incorrectly requesting policy initialization.
sbx resetreports how many user-added and approval-granted network rules it will remove, including with--force, and points tosbx policy initafterward.sbx portsaccepts-pfor--publishand identifies the destination sandbox port when a host port is already published.
Authentication, MCP, and models
sbx secret set-custom --value-stdinreads a secret from standard input, avoiding secret values in command arguments.- Daemon image pulls use the
sbx loginsession and stored registry credentials. Published agent kits can be fetched through authenticated registry mirrors. - Enable
mcp.useServerNamePrefixesto prefix MCP tool names with their server name. sbx createandsbx runaccept--static-mcp noneto use static MCP mode without attaching servers.- Approval-gated MCP calls proceed after approval, including with newer MCP clients. Server tools ending in
-authorizeor-revoke-authare available again. - MCP servers have more time to initialize, reducing startup timeouts. Code-mode sessions cancel in-flight tool calls on exit and handle parallel requests more reliably.
sbx mcp authandsbx mcp addsuggest--client-idwhen a server refuses dynamic client registration.- Set
model.server.enabledtofalse, then runsbx daemon restart, to disable the bundled model server and its inference-runtime download.
Cloud sandboxes
- Kit updates no longer fail with “Template has N running sandboxes” while sandboxes using an earlier version are running.
- Building source kits uses less temporary disk space during upload.
- Volume names tolerate surrounding whitespace and reject whitespace-only values. Cloud launches reject local-only model overflow flags instead of silently ignoring them.
- Port listings include the reported protocol in JSON and YAML output.
sbx move --ttlaccepts case-insensitive duration units. - Help and shell completion identify supported cloud options and explain file-transfer limitations for symbolic links and empty directories.
CLI, settings, and diagnostics
--no-inputprevents interactive prompts, including Docker sign-in, and reports the command needed to continue.sbx run --no-progresssuppresses creation progress while retaining command results.sbx create --no-progressstill prompts for cloud network-policy confirmation when needed.sbx --versionprints the client version without starting the daemon. Canceled sandbox and environment creation exits with status 130 and a clear message.- Persistently disable local CLI and daemon telemetry with
sbx settings set telemetry.disabled true. The next CLI invocation uses the preference; runsbx daemon restartto apply it to a running daemon. - Compatibility errors and stale engine tasks identify
sbx daemon restartas the recovery command. Daemon startup failures show only the current attempt's error output, preserving line breaks. - Windows SSH configuration works with both native OpenSSH and Git Bash OpenSSH.
sbx diagnosedetects missing Windows shell support for Claude Desktop SSH connections and warns when the state directory uses eCryptfs, which can cause image-pull I/O errors. - Command help and empty-list hints provide clearer next steps for secrets, MCP servers, skills, cloud sandboxes, and template recovery.