Skip to main content

Microsandbox runner plugin for Weft

Project description

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 from spec.type as tool for command tasks and agent for agent tasks.
  • executable: required for agent mode; guest-local provider CLI command.
  • network: none by default, or allow.
  • workspace_mode: none by default, or copy, mount-read-only, or mount-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

  • network defaults to none.
  • workspace_mode defaults to none.
  • host environment variables are not forwarded unless they are explicit in spec.env.
  • persistent and interactive tasks are rejected.

This runner is a process, VM, and filesystem boundary. It is not a semantic defense against prompt injection or malicious output.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

weft_microsandbox-0.5.0.tar.gz (10.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

weft_microsandbox-0.5.0-py3-none-any.whl (13.8 kB view details)

Uploaded Python 3

File details

Details for the file weft_microsandbox-0.5.0.tar.gz.

File metadata

  • Download URL: weft_microsandbox-0.5.0.tar.gz
  • Upload date:
  • Size: 10.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.11 {"installer":{"name":"uv","version":"0.11.11","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}

File hashes

Hashes for weft_microsandbox-0.5.0.tar.gz
Algorithm Hash digest
SHA256 e51e6e0375f030849f896abac3b4f5f365eb9dda051c494e9cbdaa3a4e6520af
MD5 669339fa9ac4e5892360ed75db4f77d8
BLAKE2b-256 8883535f5104da3cf1ad08cc7c405d4e3af4d406706182f6b200d02e0cab04b8

See more details on using hashes here.

File details

Details for the file weft_microsandbox-0.5.0-py3-none-any.whl.

File metadata

  • Download URL: weft_microsandbox-0.5.0-py3-none-any.whl
  • Upload date:
  • Size: 13.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.11 {"installer":{"name":"uv","version":"0.11.11","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}

File hashes

Hashes for weft_microsandbox-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f702e75b553e8f679357cd3a9ccb6dc5f752ea03940c30535622a42411648576
MD5 d8cdaa85f286967332f2ba85aff541c7
BLAKE2b-256 5a9c9a6fad62060163a82fc5821161b35f7190e80f77635ed37933f05883c7b2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page