weft-microsandbox
Microsandbox runner plugin for Weft.
This extension runs disposable command and one-shot provider_cli agent tasks
inside Microsandbox microVM sandboxes. It is intended for probably-hostile tools,
MCP servers, and skills that need a harder process and filesystem boundary than
the host runner.
The runner name is microsandbox.
Install with:
uv add 'weft[microsandbox]'
The current Microsandbox SDK supports Linux x86_64/aarch64 and macOS Apple
Silicon. The SDK is Apache-2.0 licensed. A working local Microsandbox runtime
is required for real execution; weft spec validate --preflight --load-runner
checks the local runtime gate explicitly.
Tool Mode
{
"spec": {
"type": "command",
"process_target": "python",
"args": ["-c", "print('hello')"],
"runner": {
"name": "microsandbox",
"options": {
"image": "python:3.12-alpine",
"mode": "tool",
"network": "none",
"workspace_mode": "none"
}
}
}
}
Agent Mode
{
"spec": {
"type": "agent",
"persistent": false,
"agent": {
"runtime": "provider_cli",
"conversation_scope": "per_message",
"runtime_config": {
"provider": "codex"
}
},
"runner": {
"name": "microsandbox",
"options": {
"image": "ghcr.io/acme/codex-provider:latest",
"mode": "agent",
"executable": "codex",
"network": "allow",
"workspace_mode": "none"
}
}
}
}
runner.options.executable is the executable inside the guest image. It is not
resolved on the host.
Runner Options
image: required OCI image.mode: optional; derived fromspec.typeastoolfor command tasks andagentfor agent tasks.executable: required for agent mode; guest-local provider CLI command.network:noneby default, orallow.workspace_mode:noneby default, orcopy,mount-read-only, ormount-read-write.mounts: explicit host mounts. Entries default to read-only.cwd: guest working directory. Required for workspace modes.sandbox_name_prefix: optional runtime name prefix.
Security Defaults
networkdefaults tonone.workspace_modedefaults tonone.- host environment variables are not forwarded unless they are explicit in
spec.env. - persistent and interactive tasks are rejected.
Current Limitations
Memory, CPU, and file-descriptor limits are passed to the Microsandbox SDK, but
the runner does not yet map SDK OOM or metrics evidence to
RunnerOutcome(status="limit"). A guest killed by the runtime for memory
pressure may currently surface as a generic execution error.
This runner is a process, VM, and filesystem boundary. It is not a semantic defense against prompt injection or malicious output.
Metadata
Release files for weft-microsandbox 0.5.23
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| weft_microsandbox-0.5.23.tar.gz | 12.2 kB | Without provenance | Details for weft_microsandbox-0.5.23.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| weft_microsandbox-0.5.23-py3-none-any.whl | Python 3 | none | any | Details for weft_microsandbox-0.5.23-py3-none-any.whl |
Total release size: 28.0 kB
Release files / weft_microsandbox-0.5.23.tar.gz
| Download URL | weft_microsandbox-0.5.23.tar.gz |
|---|---|
| Size | 12.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d2f46dd7b2273cd5e3fe46547fec93017d30c2c520d38b45fe4632aceda539b2
|
|
BLAKE2b-256 checksum How to use checksums |
3938fbc8cf783adffcb893fe4f9ce497881c1601e654a68142b350fd5e6731f3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / weft_microsandbox-0.5.23-py3-none-any.whl
| Download URL | weft_microsandbox-0.5.23-py3-none-any.whl |
|---|---|
| Size | 15.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3546964ed6bcc3ccdefa51a99cca263767d1b59ef29aef3f29d33f3c069d3912
|
|
BLAKE2b-256 checksum How to use checksums |
033ff04efd94a21f418912c867b70ca992a062e347c18f1eb8359fe950c81511
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.13.0 {"installer":{"name":"uv","version":"0.13.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for weft-microsandbox 0.5.23
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.