Learning NemoClaw

01 Β· NemoClaw User Overview (from the nemoclaw-user-overview skill)

This document is the condensed output of NemoClaw's official nemoclaw-user-overview agent skill. It's the NVIDIA-authored framing of the same material covered across the rest of this walkthrough, useful when you want the "official" pitch and decision table without the conceptual build-up.

The Three Projects

Project Scope
OpenClaw The assistant: runtime, tools, memory, behavior inside the container. Does not define the sandbox or host gateway.
OpenShell The execution environment: sandbox lifecycle, network/filesystem/process policy, inference routing, and the operator openshell CLI.
NemoClaw The NVIDIA reference stack on the host: nemoclaw CLI + plugin, versioned blueprint, channel messaging wired for OpenShell-managed delivery, and state migration.

NemoClaw sits above OpenShell in the operator workflow β€” it drives OpenShell's APIs and CLI to create and configure the sandbox that runs OpenClaw. Models sit behind OpenShell's inference routing; NemoClaw onboarding wires provider choice into that routing.

🦞 NemoClaw  ──orchestrates──▢  🐚 OpenShell  ──isolates and runs──▢  🦞 OpenClaw
(CLI, plugin, blueprint)        (gateway, policy, inference)          (assistant in sandbox)

NemoClaw Path vs OpenShell Path

Both paths assume OpenShell can sandbox a workload. The difference is who owns the integration work.

Path What it means
NemoClaw path Adopt the reference stack. The blueprint encodes a hardened image, default policies, and orchestration, so nemoclaw onboard stands up a known-good OpenClaw-on-OpenShell setup with minimal custom glue.
OpenShell path Use OpenShell as the platform and supply your own container, OpenClaw install steps, policy YAML, provider setup, and any host bridges. OpenShell stays the sandbox/policy engine; nothing requires NemoClaw's blueprint or CLI.

What NemoClaw Adds Beyond openshell sandbox create --from openclaw

OpenShell already ships a community sandbox for OpenClaw β€” running openshell sandbox create --from openclaw produces a working isolated environment. NemoClaw layers on:

When to Use Which

Situation Prefer
Want OpenClaw with minimal assembly, NVIDIA defaults, documented install/onboard flow NemoClaw
Standardizing on NVIDIA's reference for always-on assistants with policy + inference routing NemoClaw
Need max flexibility for custom images, non-blueprint layouts, or workloads outside the reference stack OpenShell + your own integration
Building internal platform abstractions where NemoClaw's CLI/blueprint aren't the right fit OpenShell + your orchestration

The Three Scenarios β€” A Beginner's Walkthrough

The sections above give the official framing. This section walks through the same material as three concrete scenarios, with side-by-side tables, so you can see exactly what changes at each level.

Scenario A: OpenClaw standalone (no OpenShell, no NemoClaw)

Your laptop
β”œβ”€β”€ OpenClaw Gateway (running as YOU, with YOUR permissions)
β”œβ”€β”€ Your files (fully accessible)
β”œβ”€β”€ Your network (fully open)
β”œβ”€β”€ Your API keys (in env vars or config files)
└── Your messaging tokens (Telegram, Slack, etc.)

OpenClaw runs directly on your machine. It has full access to your filesystem, your network, your real API keys, and runs as your user account. It's like hiring a brilliant assistant and giving them the keys to your house, your car, and all your passwords. OpenClaw does have its own application-layer defenses (prompt injection filtering, tool deny lists, DM pairing, openclaw security audit), so it's not reckless β€” but the perimeter is your laptop itself.

Scenario B: OpenShell + OpenClaw (manual setup, no NemoClaw)

Your laptop (host)
β”œβ”€β”€ OpenShell gateway (control plane)
β”‚   β”œβ”€β”€ Credential store (real API keys live HERE)
β”‚   β”œβ”€β”€ L7 proxy (inspects all traffic)
β”‚   β”œβ”€β”€ Policy engine (your YAML rules)
β”‚   └── Inference proxy (model routing)
β”‚
└── Sandbox container (isolated)
    β”œβ”€β”€ OpenClaw Gateway (thinks it's on a normal machine)
    β”œβ”€β”€ Restricted filesystem (you decide what's writable)
    β”œβ”€β”€ Restricted network (deny-all by default)
    β”œβ”€β”€ Placeholder credentials (not real keys)
    └── Runs as user "sandbox" (not as you)

You manually run openshell sandbox create --from openclaw, write your own policy YAML files, set up providers, configure inference routing, and decide which hosts to allow. It's like building your own secure office from scratch β€” you pick the locks, write the guard's rulebook, and decide the floorplan. Flexible, but you own every decision.

Scenario C: NemoClaw (the full NVIDIA stack)

Your laptop (host)
β”œβ”€β”€ NemoClaw CLI (orchestrates everything below)
β”‚   └── calls OpenShell under the hood
β”œβ”€β”€ OpenShell gateway (same as Scenario B, but configured BY NemoClaw)
β”‚   β”œβ”€β”€ Credential store
β”‚   β”œβ”€β”€ L7 proxy
β”‚   β”œβ”€β”€ Policy engine (NemoClaw's hardened policies)
β”‚   └── Inference proxy
β”‚
└── Sandbox container (hardened beyond OpenShell defaults)
    β”œβ”€β”€ OpenClaw Gateway
    β”œβ”€β”€ Read-only home directory
    β”œβ”€β”€ No compilers (gcc, g++, make, netcat removed)
    β”œβ”€β”€ Process limit (max 512 processes)
    β”œβ”€β”€ Curated network allowlist
    β”œβ”€β”€ Placeholder credentials
    └── Runs as user "sandbox"

You run one command: nemoclaw onboard. It handles everything.

Side-by-side: setup experience

OpenClaw standalone OpenShell + OpenClaw NemoClaw
Install npm i -g openclaw Install OpenShell + create sandbox + write policies + create providers curl ... | bash then nemoclaw onboard
Effort 5 minutes 30–60 minutes (you write all YAML) 10 minutes (guided wizard)
Expertise needed Low High (must understand policies, L7 proxy, providers) Low (wizard asks questions)

Side-by-side: where credentials live

Standalone OpenShell + OpenClaw NemoClaw
API keys In your shell env or ~/.openclaw/openclaw.json In OpenShell providers (you set them up) In OpenShell providers (wizard sets them up)
Bot tokens In your shell env In OpenShell providers (you set them up) In OpenShell providers (wizard sets them up), filtered from build args
Inside the sandbox? N/A (no sandbox) Placeholder only Placeholder only + explicit filtering to prevent accidental leakage

With manual OpenShell, if you accidentally pass --env TELEGRAM_BOT_TOKEN=real-token during sandbox creation, the real token lands in the container. NemoClaw actively strips known credential env vars from the creation command β€” a guardrail against operator mistakes, not just agent mistakes.

Side-by-side: filesystem security

Standalone OpenShell + OpenClaw NemoClaw
Home directory Your real home, fully writable Depends on YOUR policy Read-only (/sandbox)
Gateway config Writable file on your laptop Depends on YOUR policy Immutable (/sandbox/.openclaw)
Writable locations Everything Whatever you allow Only /sandbox/.openclaw-data, /sandbox/.nemoclaw, /tmp
Compilers available Whatever's on your laptop Whatever's in the image Stripped (no gcc, g++, make, netcat)

Why strip compilers? If an agent is compromised, having gcc means an attacker could compile custom binaries to probe sandbox defenses. Removing them raises the bar. This is NemoClaw-specific hardening the community OpenShell sandbox doesn't do.

Side-by-side: network policies

Standalone OpenShell + OpenClaw NemoClaw
Default egress Everything open Everything denied (you write allowlist) Everything denied + curated allowlist for NVIDIA, Anthropic, ClawHub, npm, OpenClaw
Binary pinning N/A If YOU configure it Pre-configured (e.g., only /usr/local/bin/claude can reach api.anthropic.com)
Sentry exfil Open Depends on YOUR policy POST blocked, only GET allowed
GitHub access Open Depends on YOUR policy Not in baseline β€” opt-in via preset only
Presets N/A N/A (you write everything) Pre-built for Telegram, Discord, Slack, GitHub, Brave, npm, PyPI, Jira, etc.

Side-by-side: process isolation

Standalone OpenShell + OpenClaw NemoClaw
User YOUR user account sandbox user (if you configured it) sandbox user (pre-configured)
Process limits None OpenShell defaults (seccomp) seccomp + ulimit -u 512 (anti fork-bomb)
Privilege escalation Possible Blocked by seccomp Blocked by seccomp

Side-by-side: reproducibility

Standalone OpenShell + OpenClaw NemoClaw
Reproducible across machines? No (depends on your laptop state) Only if you version your YAML Yes β€” digest-pinned blueprint
Version control openclaw update You manage image versions Blueprint pins exact image digest + OpenClaw version
Upgrades openclaw update --channel stable You pull new images manually Wait for new blueprint, rerun nemoclaw onboard

The blueprint digest-pinning (sha256:b3d832b... in blueprint.yaml) means every machine running nemoclaw onboard with that blueprint gets the exact same container image, policies, and configuration. This is what makes fleet deployment auditable β€” your security team can verify one blueprint and know it applies everywhere.

Side-by-side: day-to-day operations

Task Standalone OpenShell + OpenClaw NemoClaw
Chat with the assistant openclaw tui openshell sandbox connect then openclaw tui nemoclaw my-assistant connect then openclaw tui
Switch model /model or env var openshell inference set openshell inference set (same)
Approve blocked request N/A (nothing blocked) openshell term openshell term (same)
Check health openclaw doctor openclaw doctor (inside sandbox) nemoclaw my-assistant status + openclaw doctor inside
Back up agent memory Copy ~/.openclaw/ openshell sandbox download ./scripts/backup-workspace.sh

What stays the same across ALL three

OpenClaw's application-layer defenses work identically everywhere:

These are baked into OpenClaw itself. NemoClaw doesn't add to them or change them.

Presentation-ready summary

OpenClaw (standalone) OpenShell + OpenClaw NemoClaw
What it is The AI assistant running on your machine The assistant in a manually-configured sandbox The assistant in an NVIDIA-hardened sandbox
Security model App-layer defenses only; you are the perimeter App-layer + infrastructure isolation (your policies) App-layer + infrastructure isolation (NVIDIA's policies + your customizations)
Who writes the policies? Nobody (no sandbox) You NVIDIA (baseline) + you (presets/overrides)
Credential safety Keys on your filesystem Keys in OpenShell providers (manual setup) Keys in OpenShell providers (automated) + leak prevention
Reproducible? No If you version-control your setup Yes (digest-pinned blueprint)
Best for Personal use, development, experimentation Teams building custom agent platforms Enterprise deployment with NVIDIA's security defaults

OpenClaw is the AI assistant. Running it standalone gives you app-level safety. Adding OpenShell gives you infrastructure-level isolation β€” but you write every policy. NemoClaw gives you NVIDIA's battle-tested policies out of the box, with a single command, reproducible across your entire fleet.

Core Capabilities

Capability What it does
Sandbox OpenClaw Creates an OpenShell sandbox pre-configured for OpenClaw with filesystem + network policies from first boot.
Route inference Configures OpenShell inference routing so agent traffic goes to the provider/model chosen at onboarding (NVIDIA Endpoints, OpenAI, Anthropic, Gemini, Ollama, vLLM, compatible endpoints). Agent talks to inference.local; credentials stay on the host.
Manage the lifecycle Blueprint versioning, digest verification, reproducible setup.
Layered protection Network, filesystem, process, and inference controls β€” hot-reloadable (network/inference) or locked at creation (filesystem/process).

The Core Challenge It Solves

Autonomous AI agents like OpenClaw can make arbitrary network requests, touch the host filesystem, and call any inference endpoint. Without guardrails, that creates security, cost, and compliance risks that compound as agents run unattended. NemoClaw gives you a single CLI (nemoclaw) that orchestrates the full stack β€” gateway, sandbox, inference provider, and network policy β€” so those guardrails come on by default and stay reproducible across machines.


Next: 02-mental-model.md β€” the unified stack model, end to end.