Use case
I don't want to install and run Docker Desktop just to get sandboxed agent runs — it's a heavyweight VM on top of an OS (macOS) that already ships a native, lightweight container runtime. Docker mode already exists as an alternative isolation backend to the Seatbelt cage; Apple's own container tool would let Apple Silicon users get that same stronger-filesystem-boundary isolation without the Docker Desktop dependency.
Proposal
Add Apple Containers as a third sandbox backend alongside the existing Seatbelt cage and Docker mode:
- Backend logic alongside the existing seatbelt/proxy code in
src-tauri/src/sandbox.rs
- Surfaced as a new preset in
src/lib/sandboxPresets.ts, matching how Docker mode is already exposed
Compatibility
Apple's container CLI requires macOS 15+ and Apple Silicon — this would need to be gated similarly to how the Seatbelt cage is already macOS-only, and further scoped to arm64 (Termic's baseline is macOS 12+, with Intel supported for dev).
Open question
Docker mode is currently experimental because network egress isn't restricted the way the in-process CONNECT proxy restricts the Seatbelt cage. Should an Apple Containers backend inherit that same allowlist proxy from day one, or ship with the same known limitation as Docker mode initially?
Related: #297 (exposing container CLI commands from within the sandbox) builds on this existing as a backend.
Use case
I don't want to install and run Docker Desktop just to get sandboxed agent runs — it's a heavyweight VM on top of an OS (macOS) that already ships a native, lightweight container runtime. Docker mode already exists as an alternative isolation backend to the Seatbelt cage; Apple's own
containertool would let Apple Silicon users get that same stronger-filesystem-boundary isolation without the Docker Desktop dependency.Proposal
Add Apple Containers as a third sandbox backend alongside the existing Seatbelt cage and Docker mode:
src-tauri/src/sandbox.rssrc/lib/sandboxPresets.ts, matching how Docker mode is already exposedCompatibility
Apple's
containerCLI requires macOS 15+ and Apple Silicon — this would need to be gated similarly to how the Seatbelt cage is already macOS-only, and further scoped to arm64 (Termic's baseline is macOS 12+, with Intel supported for dev).Open question
Docker mode is currently experimental because network egress isn't restricted the way the in-process CONNECT proxy restricts the Seatbelt cage. Should an Apple Containers backend inherit that same allowlist proxy from day one, or ship with the same known limitation as Docker mode initially?
Related: #297 (exposing
containerCLI commands from within the sandbox) builds on this existing as a backend.