docs/reference/network-policies.md
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.
The baseline policy is defined in nemoclaw-blueprint/policies/openclaw-sandbox.yaml.
| Path | Access |
|---|---|
/sandbox, /tmp, /dev/null | Read-write |
/usr, /lib, /proc, /dev/urandom, /app, /etc, /var/log | Read-only |
The sandbox process runs as a dedicated sandbox user and group.
Landlock LSM enforcement applies on a best-effort basis.
The following endpoint groups are allowed by default:
:::{list-table} :header-rows: 1 :widths: 20 30 20 30
claude_codeapi.anthropic.com:443, statsig.anthropic.com:443, sentry.io:443/usr/local/bin/claudenvidiaintegrate.api.nvidia.com:443, inference-api.nvidia.com:443/usr/local/bin/claude, /usr/local/bin/openclawgithubgithub.com:443/usr/bin/gh, /usr/bin/gitgithub_rest_apiapi.github.com:443/usr/bin/ghclawhubclawhub.com:443/usr/local/bin/openclawopenclaw_apiopenclaw.ai:443/usr/local/bin/openclawopenclaw_docsdocs.openclaw.ai:443/usr/local/bin/openclawnpm_registryregistry.npmjs.org:443/usr/local/bin/openclaw, /usr/local/bin/npmtelegramapi.telegram.org:443/bot*/**:::
All endpoints use TLS termination and are enforced at port 443.
The baseline policy allows only the local inference route. External inference
providers are reached through the OpenShell gateway, not by direct sandbox egress.
When the agent attempts to reach an endpoint not listed in the policy, OpenShell intercepts the request and presents it in the TUI for operator review:
openshell term displays the blocked request with host, port, and requesting binary.To try this, run the walkthrough:
$ ./scripts/walkthrough.sh
This opens a split tmux session with the TUI on the left and the agent on the right.
Edit nemoclaw-blueprint/policies/openclaw-sandbox.yaml and re-run the onboard wizard:
$ nemoclaw onboard
Apply policy updates to a running sandbox without restarting:
$ openshell policy set <policy-file>