You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .agents/skills/nemoclaw-user-configure-inference/references/inference-options.md
+39Lines changed: 39 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -74,7 +74,46 @@ When you select it, NemoClaw starts the router proxy on the host, waits for its
74
74
The sandbox does not call the router port directly.
75
75
76
76
The router model pool lives in `nemoclaw-blueprint/router/pool-config.yaml`.
77
+
Edit that file to define which models the router can choose from.
77
78
The default pool routes between NVIDIA-hosted Nemotron models and uses the `tolerance` value to choose the lowest-cost model whose predicted quality stays within the configured threshold.
Copy file name to clipboardExpand all lines: .agents/skills/nemoclaw-user-configure-security/references/best-practices.md
+9Lines changed: 9 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -184,6 +184,15 @@ For sensitive workloads, use a reviewed host-side immutability workflow after in
184
184
185
185
-**DAC permissions (default).** The sandbox user owns `/sandbox/.openclaw` with mode `2770` (setgid `sandbox:sandbox`) and `openclaw.json` with mode `660`, so the agent and its group can read and write config directly. A reviewed host-side immutability workflow should compare the intended ownership and mode with the live sandbox filesystem before treating the config tree as locked.
186
186
-**Config integrity hash.** The image includes a SHA256 hash of `openclaw.json`. In the default mutable state, `.config-hash` is sandbox-owned and is not a tamper-proof trust anchor, so startup does not fail closed on that hash. When the hash is root-owned and read-only, startup enforces it and refuses to start if the hash does not match.
187
+
-**Content seal under shields up.**
188
+
When `nemoclaw <name> shields up` runs against a clean lock, it captures a SHA-256 seal of `openclaw.json` and any other locked files into the host-side shields state file.
189
+
On sealed sandboxes, every `shields status` call recomputes the hash inside the sandbox and surfaces drift on any mismatch, so a host-root tamper that flips perms back to `444 root:root` after rewriting the file is still flagged.
190
+
Sandboxes locked before this seal landed have no recorded hash; perm-only verification cannot prove their bytes match the image-original, so the seal is **not** a retroactive proof of integrity for legacy state.
191
+
The same refusal applies to partial seals where the locked file set grew after the existing seal was captured (some entries sealed, some missing).
192
+
By default, `shields up` refuses to seal in either case and asks you to rebuild the sandbox first for a known-good baseline.
193
+
`shields status` on a legacy lockdown surfaces `UP (UNSEALED — content integrity unknown for legacy lockdown)` and exits with status 2 so scripts treat it as a failure until the operator seals an explicit baseline.
194
+
If you explicitly trust the current bytes, opt in via `NEMOCLAW_SHIELDS_ACCEPT_LEGACY_BASELINE=1`, which captures a seal over the current files and is acknowledged in the log line.
195
+
Once a sandbox is sealed, `shields up` refuses to re-seal a tampered baseline; restore the original file or rebuild the sandbox before re-running.
187
196
-**Gateway token environment.** The gateway exports `OPENCLAW_GATEWAY_TOKEN` and writes it to `/tmp/nemoclaw-proxy-env.sh` for interactive sandbox sessions. Keep this in mind when deciding whether a workload should run with mutable config or an immutable config posture.
On DGX Spark, DGX Station, and Windows WSL, an interactive installer offers express install after you accept the third-party software notice.
75
75
Express install switches onboarding to non-interactive mode, allows `sudo` password prompts for required host changes, and selects the managed local inference path for that platform.
76
76
Unless `NEMOCLAW_POLICY_TIER` is set, it applies sandbox policy in `suggested` mode with the `balanced` tier by default, using the base sandbox policy plus supported package, model, web-search, and local-inference presets.
77
+
On DGX Spark, express install uses `my-spark-assistant` as the sandbox name unless `NEMOCLAW_SANDBOX_NAME` is already set.
77
78
On WSL, express install selects the Windows-host Ollama setup path.
78
79
Set `NEMOCLAW_NO_EXPRESS=1` to skip the express prompt, or set `NEMOCLAW_PROVIDER` before launching the installer when you want to choose a provider yourself.
The debug command gathers system information, Docker state, gateway logs, and sandbox status.
105
+
The debug command auto-redacts known secrets before writing files, but review the tarball before sharing it outside your trusted support path.
76
106
77
107
## Manage Dashboard Ports
78
108
@@ -116,15 +146,20 @@ For full details on port conflicts and overrides, refer to Port already in use (
116
146
## Reconfigure or Recover
117
147
118
148
Recover from a misconfigured sandbox without re-running the full onboard wizard or destroying workspace state.
149
+
Use `recover` when the sandbox container is still healthy but gateway or dashboard forwarding needs repair.
150
+
Use `rebuild` when the sandbox image, agent runtime, provider bake-in, or container state needs to be recreated while preserving workspace state.
119
151
120
152
### Change Inference Model or API
121
153
122
154
Change the active model or provider at runtime without rebuilding the sandbox:
123
155
124
156
```console
157
+
$ nemoclaw inference get
158
+
$ nemoclaw inference get --json
125
159
$ nemoclaw inference set --model <model> --provider <provider>
126
160
```
127
161
162
+
`inference get` is the read-only companion for checking the current route before you change it.
128
163
Refer to Switch Inference Providers (use the `nemoclaw-user-configure-inference` skill) for provider-specific model IDs and API compatibility notes.
129
164
130
165
### Restart the Gateway and Port Forward
@@ -187,7 +222,7 @@ Re-run the installer.
187
222
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.
188
223
If your existing gateway is from OpenShell earlier than `0.0.37`, the installer prompts before it runs the new automatic gateway upgrade path.
189
224
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.
190
-
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`.
225
+
For unattended installs, set `NEMOCLAW_ACCEPT_EXPERIMENTAL_OPENSHELL_UPGRADE=1`, or manually run `nemoclaw backup-all`, `openshell gateway remove nemoclaw || openshell gateway destroy -g nemoclaw || openshell gateway destroy` (both verbs are tried so the right one runs on either OpenShell release), and `sudo pkill -f openshell-gateway` if a privileged host gateway remains before rerunning the installer as `curl -fsSL https://www.nvidia.com/nemoclaw.sh | NEMOCLAW_OPENSHELL_UPGRADE_PREPARED=1 bash`.
|`--delete-models`| Also remove NemoClaw-pulled Ollama models. |
257
304
305
+
**Note:**
306
+
307
+
`nemoclaw uninstall` preserves `~/.nemoclaw/rebuild-backups/` (host-side snapshots that `nemoclaw <name> snapshot create` and `nemoclaw backup-all` write), `~/.nemoclaw/backups/` (workspace backups that `scripts/backup-workspace.sh` writes), and `~/.nemoclaw/sandboxes.json` (the sandbox registry) by default.
308
+
Uninstall removes every other entry under `~/.nemoclaw/`.
309
+
Interactive runs prompt before they remove the preserved entries; the default answer keeps them.
310
+
For non-interactive runs (`--yes`, `NEMOCLAW_NON_INTERACTIVE=1`, or a non-TTY shell), set `NEMOCLAW_UNINSTALL_DESTROY_USER_DATA=1` to acknowledge data loss and remove the preserved entries as well.
311
+
See `nemoclaw uninstall` (use the `nemoclaw-user-reference` skill) for the full preservation contract.
312
+
258
313
`nemoclaw uninstall` runs the version-pinned `uninstall.sh` that shipped with your installed CLI, so it does not fetch anything over the network at uninstall time.
259
314
260
315
If the `nemoclaw` CLI is missing or broken, fall back to the hosted script:
Copy file name to clipboardExpand all lines: .agents/skills/nemoclaw-user-manage-sandboxes/references/messaging-channels.md
+5-1Lines changed: 5 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -41,7 +41,9 @@ Telegram uses a bot token from [BotFather](https://t.me/BotFather).
41
41
Open Telegram, send `/newbot` to [@BotFather](https://t.me/BotFather), follow the prompts, and copy the token.
42
42
For Telegram group chats, disable privacy mode before testing group replies: in @BotFather, run `/setprivacy`, choose the bot, then choose **Disable**.
43
43
After changing privacy mode, remove the bot from each Telegram group and add it back so Telegram applies the new delivery setting to that group.
44
-
`TELEGRAM_ALLOWED_IDS` is a comma-separated list of Telegram user IDs for DM access.
44
+
`TELEGRAM_ALLOWED_IDS` is a comma-separated list of Telegram user or private-chat IDs for DM access.
45
+
For compatibility with older QA scripts, NemoClaw also treats `TELEGRAM_AUTHORIZED_CHAT_IDS` and `TELEGRAM_CHAT_ID` as aliases, but new automation should use `TELEGRAM_ALLOWED_IDS`.
46
+
Keep these aliases until QA automation and public repro templates have stopped exporting them for at least one full release.
45
47
Group chats stay open by default so rebuilt sandboxes do not silently drop Telegram group messages because of an empty group allowlist.
46
48
Set `TELEGRAM_REQUIRE_MENTION=1` to make the bot reply in Telegram groups only when users mention it.
47
49
Pairing and `TELEGRAM_ALLOWED_IDS` still govern direct messages.
@@ -158,6 +160,8 @@ If applying the preset fails, NemoClaw warns and tells you to re-apply manually
158
160
Choose the rebuild so the running sandbox image picks up the new channel.
159
161
For Telegram, Discord, and Slack, `channels add` also checks the rebuilt runtime for the selected bridge and reports startup, credential, or missing-plugin warnings before returning.
160
162
If you need optional channel settings such as `TELEGRAM_ALLOWED_IDS`, `TELEGRAM_REQUIRE_MENTION`, `DISCORD_SERVER_ID`, `DISCORD_USER_ID`, `DISCORD_REQUIRE_MENTION`, `SLACK_ALLOWED_USERS`, or `SLACK_ALLOWED_CHANNELS`, export them before the rebuild starts.
163
+
Telegram Bot API `sendMessage` calls prove outbound delivery from the bot; to test inbound agent replies, send a message from the Telegram client as an allowed user.
164
+
For a repeatable live Telegram reply check, run `test/e2e/test-messaging-providers.sh` with `TELEGRAM_BOT_TOKEN_REAL`, `TELEGRAM_AUTHORIZED_CHAT_IDS` or `TELEGRAM_CHAT_ID`, and `NEMOCLAW_TELEGRAM_INBOUND_REPLY_E2E=1`.
Copy file name to clipboardExpand all lines: .agents/skills/nemoclaw-user-manage-sandboxes/references/runtime-controls.md
+14Lines changed: 14 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -25,10 +25,24 @@ The table below maps each commonly changed item to the layer that owns it and th
25
25
| Sandbox name |**Locked at creation**| Re-onboard with a different `--name`|
26
26
| GPU passthrough enable / device selector |**Locked at creation**| Re-onboard with `--gpu` / `--sandbox-gpu-device`|
27
27
| Agents allow-list (`agents.list` in `openclaw.json`) | Runtime — hot-reloaded by OpenClaw on config change | Prefer agent or NemoClaw commands that keep host and sandbox state aligned |
28
+
|`/etc/hosts` aliases inside the sandbox | Runtime — updates the sandbox pod template and active hosts file |`nemoclaw <name> hosts-add <hostname> <ip>`, `hosts-list`, and `hosts-remove`|
28
29
|`openclaw.json` keys (general — model, agents.list, web.backend, channel config, etc.) | Mixed. Individual keys still follow the rebuild rules in the rows above, such as provider switch requiring rebuild even after editing the JSON. | Prefer NemoClaw host commands so the host registry and rebuilt image stay aligned |
29
30
30
31
If a row above conflicts with what you observe, the runtime source of truth inside the sandbox is `/opt/nemoclaw/openclaw.json`; the host registry caches metadata but the image and OpenClaw read from the in-sandbox file.
31
32
33
+
## Override DNS Inside the Sandbox
34
+
35
+
Use host aliases when a sandbox needs to reach a private hostname that normal DNS cannot resolve:
Copy file name to clipboardExpand all lines: .agents/skills/nemoclaw-user-manage-sandboxes/references/workspace-files.md
+14Lines changed: 14 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -98,6 +98,20 @@ You can edit them in two ways:
98
98
1. Ask your agent to update its persona, memory, or user context.
99
99
2. Use `nemoclaw <name> connect` to open a terminal inside the sandbox and edit files directly, or use `openshell sandbox upload` to push edited files from your host.
100
100
101
+
## Mount Sandbox Files on the Host
102
+
103
+
For longer editing sessions, mount a sandbox path onto the host with SSHFS and use your local editor:
104
+
105
+
```console
106
+
$ nemoclaw my-assistant share mount /sandbox/.openclaw/workspace ~/my-assistant-workspace
0 commit comments