> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/openshell/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/openshell/_mcp/server.

# Isolation Backends

> Understand the runtime boundary used to launch and supervise sandboxed workloads.

The supervisor uses one Rust interface, `IsolationBackend`, to launch and
control the agent workload. `OpenShellRuntimeBackend` implements that interface
by calling `openshell-sandbox` over the OpenShell Sandbox Protocol. Because the
supervisor depends only on the interface, another backend can provide the same
operations with different isolation mechanisms without changing the gateway API
or policy model.

![The supervisor calls the IsolationBackend interface. OpenShellRuntimeBackend implements it as a supervisor-side client and talks to openshell-sandbox, the workload-side server, over the Sandbox Protocol.](https://fdr-prod-docs-files-public.s3.us-east-1.amazonaws.com/openshell.docs.buildwithfern.com/5d96018a5dd2a81f843b09326de2549c8adc9e386faf7628708316da8b9b039f/pages-latest/images/openshell-isolation-backend.svg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA6KXJSKKNFOCF7G4B%2F20260925%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20260925T224047Z&X-Amz-Expires=604800&X-Amz-Signature=e2d5e6bfb5357d92374ec436e642dd37d72fb2c719d3c794ffe07e68e62e9f10&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject)

## The Interface

Each step returns a new type, so the supervisor can't start an agent on a
boundary that hasn't been confirmed. The traits are defined in
[`contract.rs`](https://github.com/NVIDIA/OpenShell/blob/main/crates/openshell-isolation-interface/src/contract.rs)
in the
[`openshell-isolation-interface`](https://github.com/NVIDIA/OpenShell/tree/main/crates/openshell-isolation-interface)
crate. `OpenShellRuntimeBackend` is implemented in
[`openshell-sandbox-backend`](https://github.com/NVIDIA/OpenShell/tree/main/crates/openshell-sandbox-backend).

| Rust surface                                | What it does                                                        | Returns                     |
| ------------------------------------------- | ------------------------------------------------------------------- | --------------------------- |
| `IsolationBackend::attach()`                | Binds a verified runtime descriptor to one admitted sandbox.        | `BoundBoundary`             |
| `BoundBoundary::confirm()`                  | Checks the workload's controls before any agent code runs.          | `ConfirmedBoundary`         |
| `ReadyBoundary::start_agent()`              | Rechecks launch controls and starts the agent.                      | `RunningBoundary`           |
| `RunningBoundary::agent()`                  | Waits for, signals, attaches to, or stops the agent process.        | `BoundaryProcess`           |
| `RunningBoundary::exec()`                   | Starts exec and terminal sessions inside the same boundary.         | `BoundaryExec`              |
| `RunningBoundary::loopback_connector()`     | Reaches a loopback service inside the workload for forwarding.      | `BoundaryLoopbackConnector` |
| `BoundBoundary::network_mediation_source()` | Receives TCP opens and DNS queries tagged with the calling program. | `NetworkMediationSource`    |

## Who Owns What

| Component         | Owns                                                                                                                              |
| ----------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| Supervisor        | Policy decisions. Policy, credentials, DNS resolution, and approved external connections stay outside the agent workload.         |
| Compute driver    | Placement and fencing. The driver creates runtime resources, installs the outer egress fence, and supplies a verified descriptor. |
| Isolation backend | Common behavior. The backend turns the shared Rust calls into a protected session with the sandbox runtime.                       |

For how `openshell-sandbox` enforces the boundary, refer to [Inside the Sandbox Boundary](/about/architecture#inside-the-sandbox-boundary). For driver-specific
workload behavior, refer to [Runtimes](/how-it-works/sandboxes/runtimes).