How NemoClaw Works#
This page explains how NemoClaw operates, which parts run where, how the blueprint drives OpenShell, and how inference and policy attach to the sandbox.
How the Pieces Connect#
The nemoclaw CLI is the primary entrypoint for setting up and managing sandboxed OpenClaw agents.
It delegates heavy lifting to a versioned blueprint, a Python artifact that orchestrates sandbox creation, policy application, and inference provider setup through the OpenShell CLI.
Between your shell and the running sandbox, NemoClaw contributes these integration layers:
Layer |
Role in the flow |
|---|---|
Onboarding |
|
Blueprint |
Supplies the hardened image definition, default policies, capability posture, and orchestration steps the runner applies through OpenShell. |
State management |
Migrates agent state across machines with credential stripping and integrity checks. |
Channel messaging |
OpenShell-managed processes connect Telegram, Discord, Slack, and similar platforms to the agent. NemoClaw enables this through onboarding and blueprint wiring; delivery is not a separate NemoClaw host daemon. |
For repository layout, file paths, and deeper diagrams, see Architecture.
flowchart TB
subgraph Host
CMD["nemoclaw onboard"]
PLUGIN[nemoclaw plugin]
BLUEPRINT[blueprint runner]
CLI["openshell CLI sandbox · gateway · inference · policy"]
CMD --> PLUGIN
PLUGIN --> BLUEPRINT
BLUEPRINT --> CLI
end
subgraph Sandbox["OpenShell Sandbox"]
AGENT[OpenClaw agent]
INF[NVIDIA inference, routed]
NET[default network policy]
FS[filesystem isolation]
AGENT --- INF
AGENT --- NET
AGENT --- FS
end
PLUGIN --> AGENT
classDef nv fill:#76b900,stroke:#333,color:#fff
classDef nvLight fill:#e6f2cc,stroke:#76b900,color:#1a1a1a
classDef nvDark fill:#333,stroke:#76b900,color:#fff
class CMD,PLUGIN,BLUEPRINT nvDark
class CLI nv
class AGENT nv
class INF,NET,FS nvLight
style Host fill:none,stroke:#76b900,stroke-width:2px,color:#1a1a1a
style Sandbox fill:#f5faed,stroke:#76b900,stroke-width:2px,color:#1a1a1a
Design Principles#
NemoClaw architecture follows the following principles.
- Thin plugin, versioned blueprint
The plugin stays small and stable. Orchestration logic lives in the blueprint and evolves on its own release cadence.
- Respect CLI boundaries
The
nemoclawCLI is the primary interface for sandbox management.- Supply chain safety
Blueprint artifacts are immutable, versioned, and digest-verified before execution.
- OpenShell-native for new installs
For users without an existing OpenClaw installation, NemoClaw recommends
openshell sandbox createdirectly rather than forcing a plugin-driven bootstrap.- Reproducible setup
Running setup again recreates the sandbox from the same blueprint and policy definitions.
Plugin and Blueprint#
NemoClaw is split into two parts:
The plugin is a TypeScript package that registers an inference provider and the
/nemoclawslash command inside the sandbox. It handles user interaction and delegates orchestration work to the blueprint.The blueprint is a versioned Python artifact that contains all the logic for creating sandboxes, applying policies, and configuring inference. The plugin resolves, verifies, and executes the blueprint as a subprocess.
This separation keeps the plugin small and stable while allowing the blueprint to evolve on its own release cadence.
Sandbox Creation#
When you run nemoclaw onboard, NemoClaw creates an OpenShell sandbox that runs OpenClaw in an isolated container.
The blueprint orchestrates this process through the OpenShell CLI:
The plugin downloads the blueprint artifact, checks version compatibility, and verifies the digest.
The blueprint determines which OpenShell resources to create or update, such as the gateway, inference providers, sandbox, and network policy.
The blueprint calls OpenShell CLI commands to create the sandbox and configure each resource.
After the sandbox starts, the agent runs inside it with all network, filesystem, and inference controls in place.
Inference Routing#
Inference requests from the agent never leave the sandbox directly.
OpenShell intercepts every inference call and routes it to the configured provider.
During onboarding, NemoClaw validates the selected provider and model, configures the OpenShell route, and bakes the matching model reference into the sandbox image.
The sandbox then talks to inference.local, while the host owns the actual provider credential and upstream endpoint.
Protection Layers#
The sandbox starts with a default policy that controls network egress, filesystem access, process privileges, and inference routing.
Layer |
What it protects |
When it applies |
|---|---|---|
Network |
Blocks unauthorized outbound connections. |
Hot-reloadable at runtime. |
Filesystem |
Prevents reads and writes outside |
Locked at sandbox creation. |
Process |
Blocks privilege escalation and dangerous syscalls. |
Locked at sandbox creation. |
Inference |
Reroutes model API calls to controlled backends. |
Hot-reloadable at runtime. |
When the agent tries to reach an unlisted host, OpenShell blocks the request and surfaces it in the TUI for operator approval. Approved endpoints persist for the current session but are not saved to the baseline policy file.
For details on the baseline rules, refer to Network Policies. For container-level hardening, refer to Sandbox Hardening.
Next Steps#
Read Ecosystem for stack-level relationships and NemoClaw versus OpenShell-only paths.
Follow the Quickstart to launch your first sandbox.
Refer to the Architecture for the full technical structure, including file layouts and the blueprint lifecycle.
Refer to Inference Options for detailed provider configuration.