Skip to content

How wardcell Compares

Agent sandboxes have arrived from several directions at once. This page is an honest comparison with the three closest: NVIDIA OpenShell, AWS Strands Box and Microsoft MXC. Each is good at something; wardcell is built for one thing in particular — the developer’s own machine, macOS and Linux, run in place.

wardcellOpenShell (NVIDIA)Strands Box (AWS)MXC (Microsoft)
What it isNative OS sandbox; wraps the agent where it runsRuntime platform: gateway + per-sandbox supervisorNative macOS sandbox + interposed shell/Python, MCP brokerOS-level policy sandbox, enforced outside the agent
IsolationSeatbelt (macOS); bwrap + userns + netns (Linux)Container or microVM, with Landlock/seccomp/netnsSeatbelt + interposed interpretersAppContainer (Win); Seatbelt (macOS); bwrap (Linux); exp. microVM/Hyperlight
macOS✅ Native, transparent capture, 13+⚠️ Linux sandbox inside Docker or a microVM✅ Native, 15+ (via HTTPS_PROXY)✅ Native (Seatbelt)
Linux✅ Native, unprivileged✅ Primary platform❌ “In development”✅ Native (Bubblewrap)
Windows⚠️ Planned⚠️ WSL2, experimental❌✅ Native (AppContainer) — primary target
Host needsNo VM or Docker; macOS one-time extension; Linux unprivilegedDocker/Podman, Kubernetes, or a hypervisorNo VM or Docker; Apple siliconVaries by backend
Network capture✅ Transparent on both (system extension / netns)✅ Transparent (netns + veth)HTTPS_PROXY env varDeny-by-default by CIDR/protocol/port
Host / HTTP / path rules✅ Built in: hostname, method, path, GraphQL mutation✅ REST, MCP, GraphQL, JSON-RPC, WebSocket✅ Method, path, body size⚠️ Delegated to a proxy you run
Service discovery (Consul, K8s, custom)✅ Plugin resolves names and bare addresses from any registry (discovery.resolve_name/resolve_addr)⚠️ In-cluster DNS only — it runs inside Kubernetes; no registry hook❌❌
Credential injection✅ Headers or mTLS, minted per request; agent never sees themPlaceholder tokens in envPlaceholder swap incl. SigV4; any process in the box can use any credential❌ Caller’s responsibility
Composable policy✅ Fragments + requires, three layers, ~30 bundledProvider rules merge; admin policy replacesCedar permit/forbid, hand-written per boxSingle versioned policy per sandbox
Policy picked by command✅ selects_on❌ by image❌ per box❌
Per-repo policy layer✅ Checked-in .wardcell.sbx, auto-applied per directory, add-only over the base❌ fixed per sandbox at creation❌ one policy per box❌ single policy per sandbox
Blocking human approval✅ Zones + plugin; standing approvals⚠️ Async: approve a draft rule, agent retries❌❌
Escalate privilege mid-run✅ Zones❌❌❌
Learn / draft mode✅ policy draft writes a reviewable fragment from a real run⚠️ drafts rules from denials❌ none — read denials by hand (jq)✅ learning mode
MCP-aware policy⚠️ Planned✅✅ broker checks tools/call❌ (not documented)
Resource limits / GPU❌✅ CPU, memory, GPU❌❌
Kubernetes / fleets❌✅ pods, gRPC API, Python/Rust SDKs❌ planned❌
Backing / maturityPre-release (Wardplane)~Production; NVIDIA; ~15k starsDeveloper preview; AWSGA Oct 2026; Microsoft, with OpenAI, NVIDIA, GitHub Copilot on board
License / languageRust, Apache-2.0Rust, Apache-2.0Rust, Apache-2.0Rust/.NET/Node, MIT

wardcell — agents on your laptop, macOS or Linux

Section titled “wardcell — agents on your laptop, macOS or Linux”

Choose wardcell when the agent runs on your own machine and you want least privilege without the tools breaking. It is the only option that captures macOS traffic transparently and gates it on hostnames, HTTP paths and GraphQL mutations, injects credentials the agent never sees, and escalates privilege through zones with a human in the loop. Its composable fragment library means you require the tools you use and get exactly their permissions — no VM, no container, your real environment. It is also the only one here whose policy can live in the repo: a checked-in .wardcell.sbx is applied automatically to any run started in that directory and can only add to the org base, never weaken it — so a project’s extra reach travels with it and reviews like code. The others pin one policy per sandbox or box at creation. It has no Kubernetes, GPU or resource-limit story; MCP-aware policy and Windows support are planned, not yet shipped.

OpenShell — fleets of agents, server-side

Section titled “OpenShell — fleets of agents, server-side”

Choose OpenShell when you are running many agents on Kubernetes or servers, multi-tenant, and need resource limits, GPU passthrough, OCSF audit events and a gRPC API with SDKs. It is the most mature of the four. The trade-off on a developer’s Mac is real: the agent runs inside a Linux container, not your environment — no Xcode or Swift toolchain, no Keychain, no desktop apps. OpenShell for the fleet; wardcell for the laptop.

Strands Box — time- and rate-based rules

Section titled “Strands Box — time- and rate-based rules”

Choose Strands Box when you need its headline feature: Cedar policies with time-based operators (“3 posts per 10 minutes”, “push only after tests pass”), alongside an MCP broker that inspects tool-call arguments and SigV4 request signing for AWS APIs. It takes the same native, no-VM approach as wardcell but is macOS 15+ only with no Linux yet, relies on HTTPS_PROXY, and documents that the agents’ own file tools can bypass its policy.

MXC — Windows-first, and the Microsoft ecosystem

Section titled “MXC — Windows-first, and the Microsoft ecosystem”

Choose MXC if you need Windows (its primary, AppContainer-backed target) or want to ride the ecosystem forming around it (OpenAI, NVIDIA, GitHub Copilot). MXC shares wardcell’s Seatbelt and Bubblewrap primitives on macOS and Linux, but it is a thinner policy layer: network rules are CIDR/protocol/port, HTTP filtering is delegated to a proxy you run yourself, and it brokers no credentials — all three of which wardcell ships built in. For turnkey name-, path- and credential-level control on macOS and Linux, that gap is the reason to pick wardcell.

wardcell’s bet is focus: the best sandbox for running coding agents natively on a developer’s macOS or Linux machine, with network and credential control that works out of the box and policies composed so your tools keep working. For server fleets reach for OpenShell; for Windows or the Microsoft ecosystem, MXC; for macOS-only temporal rules, Strands Box.