Skip to main content

Network policies

NemoClaw runs with a strict-by-default network policy. The sandbox can only reach endpoints that are explicitly allowed. Any request to an unlisted destination is intercepted by OpenShell, and the operator is prompted to approve or deny it in real time through the TUI.

Policy layers

The baseline policy in nemoclaw-blueprint/policies/openclaw-sandbox.yaml defines rules across four layers:

Baseline policy

The baseline policy is defined in nemoclaw-blueprint/policies/openclaw-sandbox.yaml.

Filesystem

The sandbox process runs as the sandbox user and group. Landlock LSM enforcement applies on a best-effort basis.

Network policies

The following endpoint groups are allowed by default. All endpoints use TLS termination on port 443.

Inference

The baseline policy allows only the local inference route. External inference providers are reached through the OpenShell gateway, not by direct sandbox egress. This means inference traffic does not appear in the sandbox network policy and does not require additional endpoint rules.

Policy YAML structure

Policies are written in YAML. The following example shows the structure of the baseline policy file:
openclaw-sandbox.yaml

Policy presets

Policy presets are named bundles of endpoint rules that extend the baseline. They are managed per sandbox.

Listing presets

View available presets and see which ones are applied to a sandbox:
Output format:
= applied, = not applied.

Adding a preset

Add a preset interactively:
The command displays available presets, prompts for the preset name, and confirms before applying.

Hot-reloadable vs. locked-at-creation policies

Some policy fields can be updated on a running sandbox without restarting. Others are locked at sandbox creation time.
The policy file header comments note: “Dynamic updates (network_policies, inference) can be applied post-creation via openshell policy set. Static fields are effectively creation-locked.”

Operator approval flow

When the agent attempts to reach an endpoint not listed in the policy, OpenShell intercepts the request and presents it for operator review:
1

Request intercepted

The agent makes a network request to an unlisted host. OpenShell blocks the connection and logs the attempt.
2

TUI notification

The openshell term TUI displays the blocked request with the destination host, port, and requesting binary.
3

Operator decision

The operator approves or denies the request in the TUI.
4

Session policy update

If approved, the endpoint is added to the running policy for the duration of the session.
To see the approval flow in action, run the walkthrough script:
This opens a split tmux session with the TUI on the left and the agent on the right.

Modifying the policy

Static changes (requires sandbox recreation)

Edit nemoclaw-blueprint/policies/openclaw-sandbox.yaml and re-run the onboard wizard:
This recreates the sandbox with the updated policy.

Dynamic changes (no restart required)

Apply network policy updates to a running sandbox without restarting:
Only network_policies and inference fields support hot-reload. Filesystem, process, and Landlock fields require sandbox recreation.