Skip to content

Commit 8ac005e

Browse files
authored
docs: prepare v0.0.40 release docs (#3427)
## Summary - Add v0.0.40 release notes and update docs version metadata. - Document release-prep behavior changes around onboarding, local inference, policy preset filtering, and config recovery. - Refresh generated `nemoclaw-user-*` skills from the source docs. ## Source summary - #3383 -> `docs/about/release-notes.md`, `docs/reference/commands.md`, `docs/manage-sandboxes/lifecycle.md`: Reflect macOS Docker-driver OpenShell gateway onboarding and upgrade behavior. - #3378 -> `docs/about/release-notes.md`: Capture the Docker-driver gateway TCP readiness fix and clearer startup failures. - #3338 -> `docs/about/release-notes.md`, `docs/inference/use-local-inference.md`: Reflect the Ollama auth proxy token requirement on native API routes. - #3420 -> `docs/about/release-notes.md`, `docs/get-started/prerequisites.md`, `docs/inference/use-local-inference.md`: Document the Linux Ollama `zstd` preflight and sudo messaging. - #3417 -> `docs/about/release-notes.md`, `docs/inference/inference-options.md`, `docs/inference/use-local-inference.md`: Reflect detected running vLLM provider selection. - #3223 -> `docs/about/release-notes.md`, `docs/reference/commands.md`, `docs/reference/network-policies.md`, `docs/get-started/quickstart.md`: Document agent-aware policy preset filtering. - #3385 -> `docs/about/release-notes.md`: Capture the dashboard forward TCP reachability check. - #3160 -> `docs/about/release-notes.md`, `docs/reference/troubleshooting.md`: Document empty `openclaw.json` baseline recovery. - #3367 -> `docs/about/release-notes.md`: Capture OpenClaw plugin compatibility metadata. ## Test plan - [x] `python3 scripts/docs-to-skills.py docs/ .agents/skills/ --prefix nemoclaw-user` - [x] `make docs` - [x] `git diff --check` - [x] Skip-term scan for `docs/.docs-skip` terms <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit # Release Notes v0.0.40 * **New Features** * Sandbox configuration recovery when inference changes cause data loss * Policy presets now intelligently filter based on agent capabilities * Enhanced gateway health checks and upgrade reliability * **Documentation** * Improved local inference setup instructions with clearer dependency requirements * Clarified vLLM experimental feature availability and prerequisites * Reorganized architecture documentation for enhanced clarity * Refined security and hardening guidance [![Review Change Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/NVIDIA/NemoClaw/pull/3427) <!-- end of auto-generated comment: release notes by coderabbit.ai -->
1 parent 600d47b commit 8ac005e

27 files changed

Lines changed: 173 additions & 157 deletions

File tree

.agents/skills/nemoclaw-user-configure-inference/SKILL.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@ The onboard wizard detects Ollama automatically when it is installed or running
2828
If Ollama is installed but not running, NemoClaw starts it for you.
2929
On macOS and Linux, the wizard can also offer to install Ollama when it is not present.
3030
On WSL, the wizard can use, start, restart, or install Ollama on the Windows host through PowerShell interop.
31+
On Debian and Ubuntu, the native Linux install path checks for `zstd` before it runs the Ollama installer.
32+
If `zstd` is missing, NemoClaw installs it with `apt-get` and explains the sudo prompt before continuing.
33+
On non-apt Linux distributions, install `zstd` first, then rerun onboarding.
3134

3235
Run the onboard wizard.
3336

.agents/skills/nemoclaw-user-configure-inference/references/inference-options.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ NemoClaw uses provider-specific local tokens for those routes, and rebuilds of l
3131
| Hermes Provider | Hermes only | OpenAI-compatible route | Available when onboarding Hermes Agent through `nemohermes` |
3232
| Local Ollama | Caveated | Local Ollama API | Available when Ollama is installed or running on the host |
3333
| Local NVIDIA NIM | Experimental | Local OpenAI-compatible | Requires `NEMOCLAW_EXPERIMENTAL=1` and a NIM-capable GPU |
34-
| Local vLLM | Experimental | Local OpenAI-compatible | Requires `NEMOCLAW_EXPERIMENTAL=1` and a server already running on `localhost:8000` |
34+
| Local vLLM | Experimental | Local OpenAI-compatible | Appears when a vLLM server is already running on `localhost:8000`; managed install/start requires `NEMOCLAW_EXPERIMENTAL=1` |
3535
<!-- provider-status:end -->
3636

3737
## Provider Options

.agents/skills/nemoclaw-user-configure-security/references/best-practices.md

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -230,21 +230,6 @@ For sensitive workloads, use a reviewed host-side immutability workflow after in
230230
| Risk of default | A writable `.openclaw` directory lets the agent modify its own gateway config: disabling CORS or redirecting inference to an attacker-controlled endpoint. |
231231
| Recommendation | For always-on assistants handling sensitive workloads, lock config after initial setup. For development workflows, the writable default is appropriate. |
232232

233-
### Locking Config with Shields
234-
235-
NemoClaw exposes the reviewed host-side immutability workflow through shields commands:
236-
237-
| Command | Purpose |
238-
|---|---|
239-
| `nemoclaw <name> shields status` | Show whether the sandbox is in default mutable mode, locked mode, or temporarily unlocked mode. |
240-
| `nemoclaw <name> shields up` | Opt into lockdown for sensitive workloads by locking config and state entry points with root ownership, read-only modes, and the immutable flag where available. |
241-
| `nemoclaw <name> shields down --timeout 5m --reason "<reason>"` | Temporarily return a previously locked sandbox to the mutable default for maintenance, then auto-restore lockdown. |
242-
243-
Run shields commands from the host.
244-
They use privileged OpenShell and Kubernetes paths that do not inherit the sandbox process's Landlock context.
245-
Landlock itself stays fixed at sandbox creation; `shields up` does not rewrite the Landlock policy.
246-
Instead, it layers DAC permissions and `chattr +i` over paths that the default Landlock policy intentionally leaves writable.
247-
248233
### Writable Paths
249234

250235
The agent has read-write access to `/sandbox`, `/tmp`, and `/dev/null`.

.agents/skills/nemoclaw-user-deploy-remote/references/sandbox-hardening.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,6 @@ The agent's home directory (`/sandbox`) is writable by default:
9191
This writable default is intentional.
9292
Seeing the sandbox user create files under `/sandbox` or `/sandbox/.openclaw` in a fresh sandbox does not mean Landlock failed.
9393
Landlock still enforces the fixed read-only system paths below.
94-
Use `nemoclaw <name> shields up` from the host to opt into config lockdown for sensitive workloads.
95-
That host-side command layers root ownership, read-only modes, and the immutable flag where available; it does not change the Landlock policy after sandbox creation.
9694

9795
System paths remain read-only to prevent agents from:
9896

.agents/skills/nemoclaw-user-get-started/SKILL.md

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -272,7 +272,7 @@ For example, Slack bot tokens must start with `xoxb-`.
272272
### Choose Network Policy Presets
273273

274274
After the sandbox image builds and OpenClaw starts inside the sandbox, NemoClaw asks which network policy tier to apply.
275-
The default **Balanced** tier includes common development presets such as npm, PyPI, Hugging Face, Homebrew, and Brave Search.
275+
The default **Balanced** tier includes common development presets such as npm, PyPI, Hugging Face, Homebrew, and Brave Search when the selected agent supports web search.
276276
Use the arrow keys or `j` and `k` to move, Space to select, and Enter to confirm.
277277

278278
The preset selector lets you include more destinations, such as GitHub, Jira, Slack, Telegram, or local inference.
@@ -346,9 +346,4 @@ openclaw agent --agent main --local -m "hello" --session-id test
346346

347347
## Related Skills
348348

349-
- `nemoclaw-user-manage-sandboxes` — Manage NemoClaw sandboxes (use the `nemoclaw-user-manage-sandboxes` skill) for port forwards, rebuilds, upgrades, and uninstall
350-
- `nemoclaw-user-configure-inference` — Switch inference providers (use the `nemoclaw-user-configure-inference` skill) to use a different model or endpoint
351-
- `nemoclaw-user-manage-policy` — Approve or deny network requests (use the `nemoclaw-user-manage-policy` skill) when the agent tries to reach external hosts
352-
- `nemoclaw-user-deploy-remote` — Deploy to a remote GPU instance (use the `nemoclaw-user-deploy-remote` skill) for always-on operation
353-
- `nemoclaw-user-monitor-sandbox` — Monitor sandbox activity (use the `nemoclaw-user-monitor-sandbox` skill) through the OpenShell TUI
354-
- `nemoclaw-user-reference` — Consult the troubleshooting guide (use the `nemoclaw-user-reference` skill) for common error messages and resolution steps
349+
- `nemoclaw-user-overview` — NemoClaw Overview (use the `nemoclaw-user-overview` skill) to learn what NemoClaw is and its capabilities

.agents/skills/nemoclaw-user-get-started/references/prerequisites.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ The sandbox image is approximately 2.4 GB compressed. During image push, the Doc
2525

2626
On Linux, the installer can install Docker, start the Docker service, and add your user to the `docker` group.
2727
If the group change is not active in the current shell, the installer exits with `newgrp docker` guidance before it starts onboarding.
28+
If you choose the native Linux Ollama install path, the onboard wizard also requires `zstd` for Ollama archive extraction.
29+
On Debian and Ubuntu, NemoClaw installs `zstd` with `apt-get` if it is missing; on other Linux distributions, install `zstd` before onboarding.
2830

2931
:::{warning} OpenShell Lifecycle
3032
For NemoClaw-managed environments, use `nemoclaw onboard` when you need to create or recreate the OpenShell gateway or sandbox.

.agents/skills/nemoclaw-user-get-started/references/quickstart-hermes.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
Use NemoHermes when you want NemoClaw to create an OpenShell sandbox that runs Hermes instead of the default OpenClaw agent.
66
The `nemohermes` command is an alias for `nemoclaw` with the Hermes agent pre-selected.
77

8-
> **Warning:** The Hermes agent option is experimental.
8+
> **Experimental Feature:** The Hermes agent option is experimental.
99
> Interfaces, defaults, and supported features may change without notice, and it is not recommended for production use.
1010
1111
Review the Prerequisites (use the `nemoclaw-user-get-started` skill) before starting.

.agents/skills/nemoclaw-user-manage-sandboxes/SKILL.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,9 @@ When a new NemoClaw release becomes available, update the `nemoclaw` CLI on your
184184

185185
Re-run the installer.
186186
Before it onboards anything, the installer calls `nemoclaw backup-all` (use the `nemoclaw-user-reference` skill) automatically, storing a snapshot of each running sandbox in `~/.nemoclaw/rebuild-backups/` as a safety net.
187+
If your existing gateway is from OpenShell earlier than `0.0.37`, the installer prompts before it runs the new automatic gateway upgrade path.
188+
The automatic path is offered only when the existing `nemoclaw` CLI supports `backup-all`; older installs must preserve sandbox state manually before retiring the gateway.
189+
For unattended installs, set `NEMOCLAW_ACCEPT_EXPERIMENTAL_OPENSHELL_UPGRADE=1`, or manually run `nemoclaw backup-all` and `openshell gateway destroy -g nemoclaw || openshell gateway destroy` before rerunning the installer as `curl -fsSL https://www.nvidia.com/nemoclaw.sh | NEMOCLAW_OPENSHELL_UPGRADE_PREPARED=1 bash`.
187190

188191
```console
189192
$ curl -fsSL https://www.nvidia.com/nemoclaw.sh | bash

.agents/skills/nemoclaw-user-overview/references/ecosystem.md

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,18 +8,8 @@ This page describes how the ecosystem is formed across projects, where NemoClaw
88

99
## How the Stack Fits Together
1010

11-
Three pieces usually appear together in a NemoClaw deployment, each with a distinct scope:
12-
13-
| Project | Scope |
14-
|---------|--------|
15-
| [OpenClaw](https://openclaw.ai) | The assistant: runtime, tools, memory, and behavior inside the container. It does not define the sandbox or the host gateway. |
16-
| [OpenShell](https://github.com/NVIDIA/OpenShell) | The execution environment: sandbox lifecycle, network, filesystem, and process policy, inference routing, and the operator-facing `openshell` CLI for those primitives. |
17-
| NemoClaw | The NVIDIA reference stack that implements the definition above on the host: `nemoclaw` CLI and plugin, versioned blueprint, channel messaging configured for OpenShell-managed delivery, and state migration helpers so OpenClaw runs inside OpenShell in a documented, repeatable way. |
18-
19-
NemoClaw sits above OpenShell in the operator workflow.
20-
It drives OpenShell APIs and CLI to create and configure the sandbox that runs OpenClaw.
21-
Models and endpoints sit behind OpenShell's inference routing.
22-
NemoClaw onboarding wires provider choice into that routing.
11+
There are three pieces that are put together in a NemoClaw deployment: OpenClaw, OpenShell, and NemoClaw, each with a distinct scope.
12+
The following diagram shows how they fit together.
2313

2414
```mermaid
2515
flowchart TB
@@ -42,6 +32,19 @@ flowchart TB
4232
linkStyle 1 stroke:#76b900,stroke-width:2px
4333
```
4434

35+
NemoClaw sits above OpenShell in the operator workflow.
36+
It drives OpenShell APIs and CLI to create and configure the sandbox that runs OpenClaw.
37+
Models and endpoints sit behind OpenShell's inference routing.
38+
NemoClaw onboarding wires provider choice into that routing.
39+
40+
The following table shows the scope of each component in the stack.
41+
42+
| Project | Scope |
43+
|---------|--------|
44+
| [OpenClaw](https://openclaw.ai) | The assistant: runtime, tools, memory, and behavior inside the container. It does not define the sandbox or the host gateway. |
45+
| [OpenShell](https://github.com/NVIDIA/OpenShell) | The execution environment: sandbox lifecycle, network, filesystem, and process policy, inference routing, and the operator-facing `openshell` CLI for those primitives. |
46+
| NemoClaw | The NVIDIA reference stack that implements the definition above on the host: `nemoclaw` CLI and plugin, versioned blueprint, channel messaging configured for OpenShell-managed delivery, and state migration helpers so OpenClaw runs inside OpenShell in a documented, repeatable way. |
47+
4548
## NemoClaw Path versus OpenShell Path
4649

4750
Both paths assume OpenShell can sandbox a workload.

.agents/skills/nemoclaw-user-overview/references/how-it-works.md

Lines changed: 40 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -1,70 +1,47 @@
11
<!-- SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -->
22
<!-- SPDX-License-Identifier: Apache-2.0 -->
3-
# How NemoClaw Works
3+
# NemoClaw Architecture Overview
44

5-
This page explains how NemoClaw operates, which parts run where, how the blueprint drives OpenShell, and how inference and policy attach to the sandbox.
5+
This page explains how NemoClaw runs OpenClaw inside an OpenShell sandbox and how the gateway connects the agent to inference, integrations, and policy.
66

7-
## How the Pieces Connect
7+
NemoClaw does not replace OpenClaw or OpenShell.
8+
It packages them into a repeatable setup with a host CLI, a versioned blueprint, default policies, inference setup, plugin configuration, and state helpers.
9+
You can use that setup directly or adapt it for your own OpenShell integration.
810

9-
The `nemoclaw` CLI is the primary entrypoint for setting up and managing sandboxed OpenClaw agents.
10-
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.
11+
## High-Level Flow
1112

12-
Between your shell and the running sandbox, NemoClaw contributes these integration layers:
13+
NemoClaw keeps the user workflow on the host while OpenShell enforces the sandbox boundary.
14+
The gateway sits between NemoClaw control, the sandbox, inference providers, and external integrations.
15+
That placement lets NemoClaw configure the environment without giving the agent direct access to host credentials or uncontrolled network egress.
1316

14-
| Layer | Role in the flow |
17+
```{figure} images/nemoclaw-highlevel-component-diagram.png
18+
:alt: NemoClaw High-Level Component Diagram
19+
:width: 100%
20+
:align: center
21+
22+
NemoClaw High-Level Component Diagram
23+
```
24+
25+
The diagram has the following components:
26+
27+
| Component | Role in the flow |
1528
|-------|------------------|
16-
| Onboarding | `nemoclaw onboard` validates credentials, selects providers, and drives blueprint execution until the sandbox is ready. |
17-
| Blueprint | Supplies the hardened image definition, default policies, capability posture, and orchestration steps the runner applies through OpenShell. |
18-
| State management | Migrates agent state across machines with credential stripping and integrity checks. |
19-
| 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. |
29+
| Users and operators | Start from the CLI, installer, dashboard, or an end-user channel. |
30+
| NemoClaw control | Collects configuration, runs onboarding, prepares the blueprint, and asks OpenShell to create or update resources. |
31+
| OpenShell gateway | Owns sandbox lifecycle, networking, policy enforcement, inference routing, and integration egress. |
32+
| NemoClaw sandbox | Runs OpenClaw with the NemoClaw plugin, the selected blueprint contents, and supporting tools. |
33+
| Inference | Receives model requests through the gateway, using NVIDIA endpoints, NIM, or compatible APIs. |
34+
| Integrations | Reach messaging services, MCP servers, GitHub, package indexes, or model hubs through gateway-managed egress. |
35+
| State and artifacts | Store configuration, credentials, logs, workspace files, policies, and transcripts outside the running agent process. |
2036

2137
For repository layout, file paths, and deeper diagrams, see Architecture (use the `nemoclaw-user-reference` skill).
2238

23-
```mermaid
24-
flowchart TB
25-
subgraph Host
26-
CMD["nemoclaw onboard"]
27-
PLUGIN[nemoclaw plugin]
28-
BLUEPRINT[blueprint runner]
29-
CLI["openshell CLI sandbox · gateway · inference · policy"]
30-
31-
CMD --> PLUGIN
32-
PLUGIN --> BLUEPRINT
33-
BLUEPRINT --> CLI
34-
end
35-
36-
subgraph Sandbox["OpenShell Sandbox"]
37-
AGENT[OpenClaw agent]
38-
INF[NVIDIA inference, routed]
39-
NET[default network policy]
40-
FS[filesystem isolation]
41-
42-
AGENT --- INF
43-
AGENT --- NET
44-
AGENT --- FS
45-
end
46-
47-
PLUGIN --> AGENT
48-
49-
classDef nv fill:#76b900,stroke:#333,color:#fff
50-
classDef nvLight fill:#e6f2cc,stroke:#76b900,color:#1a1a1a
51-
classDef nvDark fill:#333,stroke:#76b900,color:#fff
52-
53-
class CMD,PLUGIN,BLUEPRINT nvDark
54-
class CLI nv
55-
class AGENT nv
56-
class INF,NET,FS nvLight
57-
58-
style Host fill:none,stroke:#76b900,stroke-width:2px,color:#1a1a1a
59-
style Sandbox fill:#f5faed,stroke:#76b900,stroke-width:2px,color:#1a1a1a
60-
```
61-
6239
## Design Principles
6340

6441
NemoClaw architecture follows the following principles.
6542

6643
Thin plugin, versioned blueprint
67-
: The plugin stays small and stable. Orchestration logic lives in the blueprint and evolves on its own release cadence.
44+
: The sandbox plugin stays small and stable. Host-side orchestration uses a versioned blueprint and runner that can evolve on its own release cadence.
6845

6946
Respect CLI boundaries
7047
: The `nemoclaw` CLI is the primary interface for sandbox management.
@@ -79,25 +56,26 @@ OpenShell-backed lifecycle
7956
Reproducible setup
8057
: Running setup again recreates the sandbox from the same blueprint and policy definitions.
8158

82-
## Plugin and Blueprint
59+
## CLI, Plugin, and Blueprint
8360

84-
NemoClaw is split into two parts:
61+
NemoClaw is split into three integration pieces:
8562

86-
- The *plugin* is a TypeScript package that registers an inference provider and the `/nemoclaw` slash command inside the sandbox.
87-
It handles user interaction and delegates orchestration work to the blueprint.
88-
- The *blueprint* is a versioned Python artifact that contains all the logic for creating sandboxes, applying policies, and configuring inference.
89-
The plugin resolves, verifies, and executes the blueprint as a subprocess.
63+
- The *host CLI* runs onboarding, validates provider choices, stores configuration, and calls OpenShell commands for gateway, provider, sandbox, and policy operations.
64+
- The *plugin* is a TypeScript package that runs with OpenClaw inside the sandbox.
65+
It registers the managed inference provider metadata, the `/nemoclaw` slash command, and runtime context hooks.
66+
- The *blueprint* is a versioned YAML package with the sandbox image, policy, inference profile, and supporting assets.
67+
The runner resolves and verifies the blueprint before applying it through OpenShell.
9068

91-
This separation keeps the plugin small and stable while allowing the blueprint to evolve on its own release cadence.
69+
This separation keeps the sandbox plugin small while allowing host orchestration and blueprint contents to evolve on their own release cadence.
9270

9371
## Sandbox Creation
9472

9573
When you run `nemoclaw onboard`, NemoClaw creates an OpenShell sandbox that runs OpenClaw in an isolated container.
96-
The blueprint orchestrates this process through the OpenShell CLI:
74+
The host CLI and blueprint runner orchestrate this process through the OpenShell CLI:
9775

98-
1. The plugin downloads the blueprint artifact, checks version compatibility, and verifies the digest.
99-
2. The blueprint determines which OpenShell resources to create or update, such as the gateway, inference providers, sandbox, and network policy.
100-
3. The blueprint calls OpenShell CLI commands to create the sandbox and configure each resource.
76+
1. NemoClaw resolves the blueprint, checks version compatibility, and verifies the digest.
77+
2. The onboarding flow determines which OpenShell resources to create or update, such as the gateway, inference providers, sandbox, and network policy.
78+
3. The runner calls OpenShell CLI commands to create the sandbox and configure each resource.
10179

10280
After the sandbox starts, the agent runs inside it with all network, filesystem, and inference controls in place.
10381

0 commit comments

Comments
 (0)